|
В разделе материалов: 11 Показано материалов: 1-11 |
|
Matlab – одна из старейших, тщательно проработанных и апробированных систем автоматизации математических расчетов, построенная на расширенном представлении матричных операций. Этот факт отражает название системы – (MATrix LABoratory – матричная лаборатория). В настоящее время Matlab далеко вышла за пределы специализированной матричной системы и стала одной из наиболее мощных универсальных математических систем. Система Matlab была разработана Молером (C.B.Moler) и с конца 70-х годов широко использовалась на больших ЭВМ. В начале 80-х годов Дж.Литл (John Little) из фирмы MathWorks Inc. Разработал версию системы PC Matlab для ПК класса IBM PC, VAX и Macintosh. В дальнейшем были созданы версии системы для рабочих станций Sun, компьютеров с операционной системой UNIX и многих других типов больших и малых ЭВМ. |
Переменные в Matlab. В Matlab нет необходимости в определении переменных или размерности. Когда Matlab встречает новое имя переменной, он автоматически создает переменную и выделяет необходимый ей объем памяти. Если переменная уже существует, Matlab изменяет ее состав и если это необходимо выделяет дополнительную память. На выбор имен переменных в Matlab накладываются примерно такие же ограничения как и в других системах программирования: · Можно использовать латинские буквы, цифры и символ подчеркивания; · Большие и малые буквы в именах различаются; · Имя должно начинаться с буквы; · Длина имени может быть любой, но первый 31 символ должен обеспечивать уникальность имени; |
Форматы представления и отображения числовых данных. Matlab может оперировать, как вещественными, так и комплексными числами. В памяти персонального компьютера числовые значения и тех и других представлены в формате double. Т.о каждое вещественное число занимает 9 байт оперативной памяти и может принимать значения в диапазоне [-10308 : 10-308: 10308] . Комплексные числа представлены действительной и мнимой частью в таком же формате и занимают 16 байт. Значение наибольшего и наименьшего положительных чисел хранятся в системных константах realmax и realmin, соответственно, а значение относительной погрешности вычислений с плавающей точкой храниться в системной переменной eps и может быть изменено. |
Скаляры и массивы. Индексированные переменные. Как уже говорилось, система Matlab создавалась, как средство работы с матрицами, поэтому, основным видом данных, которые используются в пакете, являются матрицы. Даже скалярные переменные Matlab рассматривает, как матрицу 1х1. Эта особенность системы практически не заметна, поскольку для обращения к элементу матрицы размерности 1х1 (скалярной переменной) указание индексов не обязательно. >> x = 2; Однако никто не мешает обратиться к единственному элементу массива, задавая один или даже два индекса, указывая их в круглых скобках. Таким образом, записи x, x(1) и x(1,1) являются тождественными. |
Основу большинства расчетов составляют вычисления значений арифметических выражений. В качестве операндов в выражении могут выступать, переменные, константы, функции. Как уже упоминалось ранее, Matlab допускает использование в качестве операндов массивы, не зависимо от их размерности. В отличии от большинства алгоритмических языков, Matlab спокойно реагирует на переполнение разрядной сетки. Например, при делении на ноль система выдает предупреждение (а не ошибку, приводящую к остановке программы ) вещественное число, допустимое в формате double. Когда вычисление какой-либо функции приводит к переполнению, то в качестве результата также возвращается «машинная бесконечность» (Inf), но предупреждение о переполнении уже не выводиться. |
Важной вычислительной особенностью Matlab является возможность выполнять вычисления с комплексными числами. Запись комплексных величин, напоминает общепринятые математические стандарты. Мнимые части комплексных чисел дополняются либо буквой - i, либо буквой j . По умолчанию «переменные» i и j представляют собой «чисто» мнимую единицу и до тех пор пока они не переопределены их можно использовать как таковые. Кроме описанных выше способов, для конструирования комплексных чисел по паре двух вещественных может быть использована функция complex. Это может оказаться полезным при написании программы, когда конструирование комплексных чисел необходимо производить в автоматическом режиме. |
При составлении алгебраических выражений Matlab разрешает использование традиционных знаков арифметических операций. Однако, даже такие традиционные операции, как сложение и вычитание, в выражениях Matlab применяются особым способом. Самым привычным является сложение скалярных величин (т.е массивов размерности 1x1), соответствующие аналогичному действию в большинстве алгоритмических языков. Если обоими операндами являются массивы одинаковой размерности, то осуществляется покомпонентное сложение элементов с одинаковыми индексами. Если к массиву любой размерности добавляется скалярная величина, то она добавляется к каждому элементу массива. По сути дела, добавляемое скалярное значение преобразуется в массив такой же размерности, что и первое слагаемое, и каждый элемент расширенного массива равен этому значению. Попытка сложить массивы разной размерности (за исключением случая, когда один операнд – массив 1x1) система пресекает с выдачей соответствующего сообщения об ошибке. |
До сих пор мы использовали командное окно Matlab в режиме диалога пользователя с системой. При этом после набора в текущей строке команды и нажатия клавиши Enter - система выполняла соответствующие действие и, при необходимости, выдавала результат этого действия. Однако такой пошаговый режим хорош только для разового расчета. Даже повторение одной и той же вычислительной схемы с небольшой модификацией алгоритма или с изменением исходных данных в пошаговом режиме превращается в обременительное занятие. Дальнейшее изучение Matlab, целесообразно проводить в режиме программирования. Программирование в системе Matlab заключается в написании m-файлов, которые являются исполняемыми файлами языка Matlab (M-язык). Следует отметить, что m-файлы, создаваемые пользователем делятся на два класса: · Файлы-сценарии (script - скрипты), не имеющие входных параметров; · Файлы – функции (function), имеющие входные параметры; |
При моделировании и
анализе систем на персональном компьютере задача формирования тестового сигнала
решается программным образом. Иными
словами достаточно написать функцию, которая будет генерировать нужный сигнал в
соответствии с заданными параметрами.
При анализе систем
автоматического управления используются сигналы двух типов: Одиночные импульсы
и периодические сигналы. |
% nsu_main Главный файл программы. % nsu_main - главный файл программы. Выполняет подготовительную работу и % вызывает меню программы. Подготовительная работа заключается в % следующем: очистка глобального пространства имен для предотвращения % конфликтов имен переменных,отключение всех предупреждающих сообщений, % объявление глобальных переменных и вывод инструкций пользователю. % % Отключение всех предупреждающих сообщений выполняется командой % "warning off". Для справки наберите в командном окне "help warning" % % Описание программы. % lab5_main Вычисляет точное значение для Х и У в нелинейной системе % уравнений описанной в скипт - файле nsu . % Система состоит из двух уравнений : % X=sin(X+2)-1.5; % Y=0.5-cos(Y-2); % Значение начальной точки - решения хранятся в xx. % Решение систему уравнений осуществляется с помошью функции fsolve % для справки наберите help fsolve. % % % Пользователю предоставляется возможность указать х0 и y0 - начальные % приближение для Х и Y . % % После вычисления X и Y программа по команде пользователя выводит % графическое решение . % % При завершении программы освобождается память из - под переменных % с помощью фунции clear (для справки - help clear). % % Для вызова программы наберите в коммандном окне nsu_main |
%Программа предназначена для решения дифференциальных уравнений любого %порядка , записанных в виде системы . В ходе выполнения программы %подьзователю предоставляется возможность ввести начальные значения для % y , 1 и 2 производной y , а также значения констант c b aph xx , % соответственно . % Уравнения для решения представленно в функции diff_3. % Решение производится методом Рунге-Кутта 2-3 порядка точности. |
|
|