Как настроить смартфоны и ПК. Информационный портал

Программирование в матлаб. Специальные математические функции

Лекция 3. Программирование в среде MATLAB.

1. М-файлы. ...................................................................................................................................................

1.1. Работа в редакторе М-файлов. .......................................................................................................

1.2. Типы М-файлов. Файл-программы. ...............................................................................................

1.3. Файл-функции. ...................................................................................................................................

Файл-функции с одним входным аргументом. ......................................................................................

Файл-функции с несколькими входными аргументами. .......................................................................

Файл-функции с несколькими выходными аргументами. ....................................................................

1.4. Подфункции. ......................................................................................................................................

2. Управляющие конструкции языка программирования. ...................................................................

2.1. Операторы цикла. .............................................................................................................................

Цикл for . ................................................................................................................................................

Цикл while . .........................................................................................................................................

2.2. Операторы ветвления. ...................................................................................................................

Условный оператор if . .........................................................................................................................

Оператор switch. ....................................................................................................................................

2.3. Операторы break , continue и return . ......................................................................................

2.4. О рациональной техники программирования в MATLAB. .......................................................

Многие математические системы создавались, исходя из предположения, что пользователь будет решать свои задачи, практически не занимаясь программированием. Однако с самого начала было ясно, что подобный путь имеет недостатки и по большому счету порочен. Многие задачи нуждаются в развитых средствах программирования, которые упрощают запись их алгоритмов и порою открывают новые методы создания последних.

С одной стороны, MATLAB содержит огромное число встроенных операторов и функций (приближающееся к тысяче), которые успешно решают множество практических задач, для чего ранее приходилось готовить достаточно сложные программы. К примеру, это функции обращения или транспонирования матриц, вычисления значений производной или интеграла и т. д. и т. п. Число таких функций с учетом пакетов расширения системы уже достигает уже многих тысяч и непрерывно увеличивается. Но, с другой стороны, система MATLAB с момента своего создания создавалась как мощный математико-ориентированный на технические вычисления язык программированиявысокого уровня. И многие вполне справедливо рассматривали это как важное достоинство системы, свидетельствующее о возможности ее применения для решения новых, наиболее сложных математических задач.

Система MATLAB имеет входной язык, напоминающий Бейсик (с примесью средств Фортрана и Паскаля). Запись программ в системе традиционна и потому привычна для большинства пользователей компьютеров. К тому же система дает возможность редактировать программы с помощью любого, привычного для пользователя текстового редактора. Имеет она и собственный редактор с отладчиком. Язык системы MATLAB в части программирования математических вычислений намного богаче любого универсального языка программирования высокого уровня. Он реализует почти все известные средства программирования, в том числе объектно-ориентированное и визуальное программирование. Это дает опытным программистам необъятные возможности для самовыражения.

1. М-файлы.

В предыдущих лекциях мы рассмотрели достаточно простые примеры, для выполнения которых требуется набрать несколько команд в командной строке. Для более сложных задач число команд возрастает, и работа в командной строке становится непродуктивной. Использование истории команд,

сохранение переменных рабочей среды или ведение дневника при помощи diary незначительно

повышают производительность работы. Эффективное решение состоит в оформлении собственных алгоритмов в виде программ (М-файлов), которые можно запустить из рабочей среды или из редактора. Встроенный в MATLAB редактор М-файлов позволяет не только набирать текст программы и запускать ее целиком или частями, но и отлаживать алгоритм. Подробная классификация М-файлов приведена ниже.

1.1. Работа в редакторе М-файлов.

Для подготовки, редактирования и отладки m-файлов служит специальный многооконный редактор. Он выполнен как типичное приложение Windows. Редактор можно вызвать командойedit из командной строки или командой главного менюFile | New | M-file . После этого в окне редактора можно создавать свой файл, пользоваться средствами его отладки и запуска. Перед запуском файла его необходимо записать на диск, используя командуFile | Save as в меню редактора.

На рис.1 показано окно редактора/отладчика. Подготовленный текст файла (это простейшая и наша первая программа на языке программирования MATLAB) можно записать на диск. Для этого используется команда Save As , которая использует стандартное окно Windows для записи файла с заданным именем. Следует отметить, что имя М-файла должно быть уникально, а требование к имени файла такое же, как для имен переменных среды MATLAB. После записи файла на диск можно запустить командуRun на панели инструментов или менюDebug , или просто нажать ., для того чтобы исполнить m-файл.

На первый взгляд может показаться, что редактор/отладчик - просто лишнее звено в цепочке «пользователь - MATLAB». И в самом деле, текст файла можно было бы ввести в окно системы и получить тот же результат. Однако на деле редактор/отладчик выполняет важную роль. Он позволяет создать m-файл (программу) без той многочисленной «шелухи», которая сопровождает работу в командном режиме. Текст такого файла подвергается тщательной синтаксической проверке, в ходе которой выявляются и отсеиваются многие ошибки пользователя. Таким образом, редактор обеспечивает синтаксический контроль файла.

Редактор имеет и другие важные отладочные средства - он позволяет устанавливать в тексте файла специальные метки, именуемые точками прерывания (breakpoints ). При их достижении вычисления приостанавливаются, и пользователь может оценить промежуточные результаты вычислений (например, значения переменных), проверить правильность выполнения циклов и т. д. Наконец, редактор позволяет записать файл в текстовом формате и увековечить ваши труды в файловой системе MATLAB.

Для удобства работы с редактором/отладчиком строки программы в нем нумеруются в последовательном порядке. Редактор является многооконным. Окно каждой программы оформляется как вкладка. Редактор-отладчик позволяет легко просматривать значения переменных. Для этого достаточно подвести к имени переменной курсор мыши и задержать его - появится всплывающая подсказка с именем переменной и ее значением.

Очень удобной возможностью редактора М-файлов являетсявыполнение части команд. Для этого используется командаEvaluate Selection из контекстного меню или главного менюText , или просто функциональная клавиша , которые позволяют выполнить выделенный текст программы.

Рис. 1. Окно редактора М-файлов.

1.2. Типы М-файлов. Файл-программы.

М-файлы в MATLAB бывают двух типов: файл-программы (Script M-Files) , содержащие последовательность команд, и файл-функции (Function M-Files) , в которых описываются функции, определяемые пользователем.

Файл-программы представляют собой простейший тип М-файлов. Они не имеют входных и выходных аргументов и оперируют переменными, существующими в рабочей среде, или могут создавать новые переменные. Файл-программу mydemo вы написали при прочтении предыдущего раздела. Все переменные, объявленные в файл-программе, становятся доступными в рабочей среде после ее выполнения. Запустите файл-программу mydemo , приведенную в листинге рис.1. Перейдите в окно Workspace и убедитесь, что все введенные в М-файле переменные появились в рабочей среде. Все созданные при исполнении М-файла переменные остаются в рабочей среде после его завершения, и их можно использовать в других файл-программах и в командах, выполняемых из командной строки.

Запуск файл-программы осуществляется двумя способами.

1. Из редактора М-файлов так, как описано выше.

2. Из командной строки или другой файл-программы, при этом в качестве команды используется имя М-файла (без расширения). Применение второго способа намного удобнее, особенно если созданная файл-программа будет неоднократно использоваться впоследствии. Фактически созданный М-файл становится командой, которую понимает MATLAB.

Закройте все графические окна и наберите в командной строке mydemo , появляется графическое окно, соответствующее командам файл-программы mydemo.m . После ввода командыmydemo MATLAB производит следующие действия.

1. Проверяет, является ли введенная команда именем какой-либо из переменных, определенных

в рабочей среде. Если введена переменная, то выводится ее значение.

2. Если введена не переменная, то MATLAB ищет введенную команду среди встроенных функций. Если команда оказывается встроенной функцией, то происходит ее выполнение.

3. Если введена не переменная и не встроенная функция, то MATLAB начинает поиск М-файла с названием команды и расширением m. Поиск начинается стекущего каталога (Current Directory); если М-файл в нем не найден, то MATLAB просматривает каталоги, установленные впути поиска (Path). (Для установки текущего каталога можно использовать окно выбора с одноименным названием на панели инструментов или командуcd . Установка путей поиска осуществляется с

помощью команды Set Path команды менюFile или с помощью командыaddpath ).

Если ни одно из вышеперечисленных действий не привело к успеху, то в командное окно выводится сообщение, например, если сделать ошибку.

Последовательность поиска MATLAB говорит о том, что очень важно правильно задавать имя собственной файл-программы при сохранении ее в М-файле. Во-первых, ее имя не должно совпадать с именем существующих функций в MATLAB. Узнать, занято имя или нет можно при помощи функцииexist .

Во-вторых, имя файла не должно начинаться с цифры, знаков "+" или "-", словом с тех символов, которые могут быть интерпретированы MATLAB как ошибка при вводе выражения. Например, если вы назовете М-файл с файл-программой 5prog.m, то при ее запуске из меню редактора или по получите сообщение об ошибке. Это не удивительно, т. к. MATLAB ждет от вас 5 + prog (или 5, prog) для вычисления арифметического выражения с переменной prog (или добавления 5 в качестве первого элемента к вектор-строке prog). Следовательно, правильным было бы имя prog5.m (или хотя бы p5rog.m), но только начинающееся с буквы.

Обратите внимание, что если вы запускаете на выполнение выделенные команды (могут быть выделены все команды) М-файла с неверным именем при помощи , то ошибки не будет. Фактически происходит последовательное выполнение команд, не отличающееся от их вызова из командной строки, а не работа файл-программы.

Очень распространена еще одна ошибка при задании имени файл-программы, которая на первый взгляд имеет необъяснимые последствия: программа запускается только один раз. Повторный запуск не приводит к выполнению программы. Разберем эту ситуацию на примере файл-программы из листинга 5.1, которую вы сохранили в файле mydemo.m. Переименуйте файл в x.m, затем удалите все переменные рабочей среды из окна браузера переменных Workspace или из командной строки:

>> clear all

Выполните файл-программу, например, из редактора, нажав . Появляется графическое окно с двумя графиками и ничего не предвещает подвоха. Закройте теперь графическое окно и запустите программу снова. Графическое окно больше не создается, зато в командное окно вывелись значения массиваx в соответствии с первым пунктом приведенного выше алгоритма поиска MATLAB. Эти обстоятельства следует учитывать при выборе имени файл-программы. Не менее важный вопрос связан с третьим пунктом алгоритма поиска MATLAB – текущим каталогом и путями поиска. Как правило, собственные М-файлы хранятся в каталогах пользователя. Для того чтобы система MATLAB могла найти их, следует установить пути, указывающие расположение М-файлов.

1.3. Файл-функции.

Рассмотренные выше файл-программы являются последовательностью команд MATLAB, они не имеют входных и выходных аргументов. Для решения вычислительных задач и написания собственных приложений в MATLAB часто требуется программировать файл-функции, которые производят необходимые действия с входными аргументами и возвращают результат в выходных аргументах. Число входных и выходных аргументов зависит от решаемой задачи – может быть только один входной и один выходной аргумент, несколько и тех и других, или только входные аргументы.

Возможна ситуация, когда входные и выходные аргументы отсутствуют. В этом разделе разобрано несколько простых примеров, позволяющих понять работу с файл-функциями. Файл-функции, так же как и файл-программы, создаются в редакторе М-файлов.

Файл-функции с одним входным аргументом.

Предположим, что в вычислениях часто необходимо использовать значение функции:

− xx 2

Имеет смысл один раз написать файл-функцию, а потом вызывать ее всюду, где необходимо вычисление этой функции для заданного аргумента. Для этого необходимо открыть в редакторе М- файлов новый файл и набрать текст:

function f = myfun(x)

Слово function в первой строке определяет, что данный файл содержит файл-функцию. Первая строка являетсязаголовком функции, в которой размещаютсяимя функции и списки входных и выходных аргументов. Входные аргументы записываются в круглых скобках после имени функции. В нашем примере есть только один входной аргумент – х. Выходной аргумент f указывается слева от знака равенства в заголовке функции. При выборе имени файл-функции следует позаботиться об отсутствии конфликтов с занятыми именами в MATLAB. Аналогичный вопрос мы обсуждали выше: как сохранить файл-программу в файле с уникальным именем. Тот же самый подход, основанный на обращении к функцииexist , вы можете применить для задания имени файл-функции.

После заголовка размещается тело файл-функции – один или несколько операторов (их может быть достаточно много), которые реализуют алгоритм получения значения выходных переменных из входных. В нашем примере алгоритм простой – по заданному х вычисляется арифметическое выражение и результат записывается в f.

Теперь необходимо сохранить файл в рабочем каталоге или в другом, известном для MATLAB, месте. При выборе пунктов Save илиSave as... менюFile по-умолчанию предлагается имя файла, совпадающее с названием функции myfun. Необходимо сохранить файл-функцию с этим предложенным именем. Теперь созданную функцию можно использовать так же, как и встроенныеsin, cos и другие, например, из командной строки:

>> y=myfun(1.3) y =

При создании файл-функции myfun мы подавили вывод значения f в командное окно, завершив оператор присваивания точкой с запятой. Если этого не сделать, то оно выведется при обращенииy=myfun(1.3) . Как правило, лучше избегать вывода в командное окно результатов промежуточных вычислений внутри файл-функции.

Файл-функция, приведенная в предыдущем примере, имеет один существенный недостаток. Попытка вычисления значений функции от массива приводит к ошибке, а не к массиву значений так, как это происходит при использовании встроенных функций.

>> x=;

>> y=myfun(x)

??? Error using ==> ^ Matrix must be square.

Error in ==> C:\MATLAB6p5\work\myfun.m

On line 2 ==> f = exp(-x)*sqrt((x^2 + 1)/(x^4 + 0.1));

Очевидно, что для избежания этой ошибки необходимо использовать поэлементные операции. В частности, для правильной работы нашей функции необходимо текст функции переписать в следующем виде:

function f = myfun(x)

f = exp(-x).*sqrt((x.^2 + 1)./(x.^4 + 0.1));

Теперь аргументом функции myfun может быть как число, так и вектор или матрица значений, например:

>> x=;

>> y=myfun(x)

Переменная y , в которую записывается результат вызова функцииmyfun , автоматически становится вектором нужного размера.

Рассмотрим пример использования функций. Cтроим график функции myfun на отрезке при помощи файл-программы или из командной строки:

>> x=0:0.5:4;

>> y=myfun(x);

>> plot(x,y)

Решение вычислительных задач средствами MATLAB потребует от вас умения программировать файл-функции, соответствующие поставленной задаче (например, правая часть системы дифференциальных уравнений или подынтегральная функция).

Мы рассмотрим сейчас только один простой пример того, как использование файл-функций упрощает визуализацию математических функций. Только что мы построили график при помощиplot . Заметьте, что для вычисления вектора y не обязательно было вызыватьmyfun – можно сразу записать выражение для него и потом указать паруx иy вplot . Имеющаяся в нашем распоряжении файл-функция myfun позволяет обратиться к специальной функцииfplot , которой требуется указать имя нашей файл-функции (в апострофах) или указатель на нее (с оператором @ перед именем функции) и границы отрезка для построения графика (в векторе из двух элементов)

>> fplot("myfun", )

>> fplot(@myfun, )

Следует добавить алгоритм функции fplot автоматически подбирает шаг аргумента, уменьшая его на участках быстрого изменения исследуемой функции, что дает пользователю хорошее отображение данных.

Файл-функции с несколькими входными аргументами.

Написание файл-функций с несколькими входными аргументами практически не отличается от случая одного аргумента. Все входные аргументы размещаются в списке через запятую. Следующий пример содержит файл-функцию, вычисляющую длину радиус-вектора точки трехмерного

пространства x 2 + y 2 + z 2 .

function r = radius3(x,y,z) r = sqrt(x.^2 + y.^2 + z.^2);

>> R = radius3(1, 1, 1)

Кроме функций с несколькими аргументами, MATLAB позволяет создавать функции, возвращающие несколько значений, т. е. имеющих несколько выходных аргументов.

Файл-функции с несколькими выходными аргументами.

Файл-функции с несколькими выходными аргументами удобны при вычислении функций, возвращающих несколько значений (в математике они называются вектор-функции). Выходные аргументы добавляются через запятую в список выходных аргументов, а сам список заключается вквадратные скобки. Следующий пример приводит файл-функцию hms для перевода времени, заданного в секундах, в часы, минуты и секунды:

function = hms(sec) hour = floor(sec/3600);

При вызове файл-функций с несколькими выходными аргументами результат следует записывать в вектор соответствующей длины:

>> = hms(10000) H =

Если при использовании данной функции явно не указывать выходные параметры, то результатом вызова функции будет только первый выходной аргумент:

>> hms(10000) ans =

Если список выходных аргументов пуст, т. е. заголовок выглядит так: function myfun(a, b) илиfunction = myfun(a, b) ,

то файл-функция не будет возвращать никаких значений. Такие функции тоже иногда оказываются полезными.

Функции MATLAB обладают еще одним полезным качеством - возможностью получения информации о них при помощи команды help , например,help fplot . Собственные файлфункции так же можно наделить этим свойством, используя строки комментариев. Все строки комментариев после заголовка и до тела функции или пустой строки выводятся в командное окно командойhelp . Например для нашей функции можно создать подсказку:

function = hms(sec)%hms - перевод секунд в часы, минуты и секунды

% Функция hms предназначена для перевода секунд

% в часы минуты и секунды.

% = hms(sec)

hour = floor(sec/3600);

minute = floor((sec - hour*3600)/60); second = sec - hour*3600 - minute*60;

1.4. Подфункции.

Рассмотрим еще одну разновидность функций – подфункции. Использование подфункций основано на выделении части алгоритма в самостоятельную функцию, текст которой содержится в том же файле, что и основная функция. Рассмотрим это на примере.

function simple;

% Основная функция a = 2*pi;

fl = f(1.1, 2.1) f2 = f(3.1, 4.2)-a f3 = f(-2.8, 0.7)+a

function z = f(x, y)% Подфункция

z = x^3 - 2*y^3 - x*y + 9;

Первая функция simple являетсяосновной функцией вsimple.m , именно ее операторы выполняются, если пользователь вызываетsimple , например, из командной строки. Каждое обращение к подфункции f в основной функции приводит к переходу к размещенным в подфункции операторам и последующему возврату в основную функцию.

Файл-функция может содержать одну или несколько подфункций со своими входными и выходными параметрами, но основная функция может быть только одна. Заголовок новой подфункции одновременно является признаком конца предыдущей. Основная функция обменивается информацией с подфункциями только при помощи входных и выходных параметров. Переменные, определенные в подфункциях и в основной функции, являютсялокальными, они доступны в пределах своей функции.

Один из возможных вариантов использования переменных, которые являются общими для всех функций М-файла, состоит в объявлении данных переменных в начале основной функции и подфункции какглобальных, при помощиglobal со списком имен переменных, разделяемых пробелом.

2. Управляющие конструкции языка программирования.

Файл-функции и файл-программы, которые вы создавали при чтении двух предыдущих глав, являются самыми простыми примерами программ. Все команды MATLAB, содержащиеся в них, выполняютсяпоследовательно. Для решения многих более серьезных задач требуются программы, в которых действия повторяются циклически, а в зависимости от некоторых условий выполняются различные части программы. В данной главе описаны управляющие конструкции языка программирования MATLAB, которые могут быть использованы при написании как файл-программ, так и файл-функций.

2.1. Операторы цикла.

Схожие и повторяющиеся действия выполняются при помощи операторов цикла for иwhile . Циклfor предназначен для выполнениязаданного числа повторяющихся действий, awhile – для действий, число которых заранее не известно, но известноусловие продолжения цикла.

Цикл for .

Использование for осуществляется следующим образом:

for count = start:step:final

команды MATLAB

Здесь count -переменная цикла,start – ее начальное значение,final – конечное значение, astep – шаг, на который увеличиваетсяcount при каждом следующем заходе в цикл. Цикл заканчивается, как только значениеcount становится большеfinal . Переменная цикла может принимать не только целые, но и вещественные значения любого знака. Приведем пример применения циклаfor . Пусть требуется вывести графики семейства кривых дляx , которое

задано функцией y (x ,a )= e − ax sinx , зависящей от параметраa , для значений параметраа от -0.1 до

0.1 с шагом 0.02. Можно, конечно, последовательно вычислять у(х, а) и строить ее графики для различных значенийа , но гораздо удобнее использовать циклfor . Текст файл-программы:

figure % создание графического окна

x = 0:pi/30:2*pi; % вычисление вектора значений аргумента

% перебор значений параметра в цикле for a = -0.1:0.02:0.1

% вычисление вектора значений функции для текущего значения...

параметра

y = exp(-a*x).*sin(x); % добавление графика функцииhold on

plot(x, y) end

В результате выполнения этой файл-программы появится графическое окно, изображенное на рис. 2, которое содержит требуемое семейство кривых.

Рис. 2. Семейство кривых.

Циклы for могут бытьвложены друг в друга, при этом переменные вложенных циклов должны бытьразными. Вложенные циклы удобны для заполнения матриц. Пример создания матрицы Гильберта:

a = zeros(n); for i = 1:n

for j = 1:n

a(i, j) = 1/(i+j-1);

В заключение этого раздела отметим еще одну особенность цикла for , которая наряду с возможностью задания вещественного счетчика цикла с постоянным шагом делает циклfor достаточно универсальным. В качестве значений переменной цикла допускается использование массива значений:

for count = A

команды MATLAB

Если А - вектор-строка, тоcount последовательно принимает значение ее элементов при каждом заходе в цикл. В случае двумерного массиваА на i -ом шаге циклаcount содержит столбецА(:,i) . Разумеется, еслиА является вектор-столбцом, то цикл выполнится всего один раз со значениемcount , равнымА .

Цикл for оказывается полезным при выполнении определенного конечного числа действий. Существуют алгоритмы с заранее неизвестным количеством повторений, реализовать которые позволяет более гибкий циклwhile .

Цикл while .

Цикл while служит для организации повторений однотипных действий в случае, когда число повторений заранее неизвестно и определяется выполнением некоторого условия. Рассмотрим пример разложение sin(x) в ряд:

x 2k + 1

S (x )= ∑ (− 1)

(2k + 1) !

k = 0

Конечно, до бесконечности суммировать не удастся, но можно накапливать сумму с заданной точностью, например, 10-10 . Очевидно, что число членов ряда в данном случае неизвестно, поэтом использование оператораfor невозможно. Выход состоит в применении циклаwhile , который работает, пока выполняетсяусловие цикла:

while условие повторения цикла

команды MATLAB

В данном примере условием повторения цикла является то, что модуль текущего слагаемого

x 2 k + 1 (2k + 1) ! больше 10-10 . Текст файл-функции mysin, вычисляющей сумму ряда на основе

рекуррентного соотношения:

k − 1

2k (2k + 1)

function s = mysin(x)

% Вычисление синуса разложением в ряд

% Использование: у = mysin(x), -pi < х < pi

% вычисление первого слагаемого суммы для к = О k = 0;

% вычисление вспомогательной переменной

while abs(u) > 1.0e-10 k = k + 1;

u = -u* x2/(2*k)/(2*k + 1); s = s + u;

Это окно является основным в MatLAB. В нем появляются символы команд, которые набираются пользователем на экране дисплея, отображаются результаты выполнения этих команд, текст исполняемой программы и информация об ошибках выполнения программы, распознанных системой.

Признаком того, что MatLAB готова к восприятию и выполнению очередной команды, является возникновение в последней строке текстового поля окна знака приглашения " >> ", после которого расположена мигающая вертикальная черта.

В верхней части окна (под заголовком) размещена строка меню, в которой находятся меню File, Edit, View, Windows, Help. Чтобы открыть какое-либо меню, следует установить на нем указатель мыши и нажать ее левую кнопку. Подробнее функции команд меню будут описаны далее, в разделе «Интерфейс MatLab и команды общего назначения. Написание М-книг».

Здесь отметим лишь, что для выхода из среды MatLAB достаточно открыть меню File и выбрать в нем команду Exit MATLAB, или просто закрыть командное окно, нажав левую клавишу мыши, когда курсор мыши установлен на изображении верхней крайней правой кнопки этого окна (с обозначением косого крестика).

1.2. Операции с числами

1.2.1. Ввод действительных чисел

Ввод чисел с клавиатуры осуществляется по общим правилам, принятым для языков программирования высокого уровня:

для отделения дробной части мантиссы числа используется десятичная точка (вместо запятой при обычной записи) ;

десятичный показатель числа записывается в виде целого числа после предшествующей записи символа «е» ;

между записью мантиссы числа и символом «е» (который отделяет мантиссу от показателя ) не должно быть никаких символов , включая и символ пропуска.

Если, например, ввести в командном окне MatLAB строку

то после нажатия клавиши <Еnter> в этом окне появится запись:


Следует отметить, что результат выводится в виде (формате), который определяется предварительно установленным форматом представления чисел. Этот формат может быть установлен с помощью команды Preferences меню File (рис. 1.3). После ее вызова на экране появится одноименное окно (рис. 1.4). Один из участков этого окна имеет название Numeric Format . Он предназначен для установки и изменения формата представления чисел, которые выводятся в командное окно в процессе расчетов. Предусмотрены такие форматы:

Short (default) – краткая запись (применяется по умолчанию);

Long – длинная запись;

Hex – запись в виде шестнадцатиричного числа;

Bank – запись до сотых долей;

Plus – записывается только знак числа;

Short Е – краткая запись в формате с плавающей запятой;

Long Е – длинная запись в формате с плавающей запятой;

Short G – вторая форма краткой записи в формате с плавающей запятой;

Long G – вторая форма длинной записи в формате с плавающей запятой;

Rational – запись в виде рациональной дроби.

Избирая с помощью мыши нужный вид представления чисел, можно обеспечить в дальнейшем выведение чисел в командное окно именно в этой форме.

Как видно из рис. 1.2, число, которое выведено на экран, не совпадает с введенным. Это обусловлено тем, что установленный по умолчанию формат пред­ставления чисел (Short ) не позволяет вывести больше 6 значащих цифр. На самом деле введенное число сохраняется внутри MatLAB со всеми введенными его цифрами. Например, если избрать мышью селекторную кнопку Long Е (т. е. установить указанный формат представления чисел), то, повторяя те же действия, получим:

где уже все цифры отображены верно (рис. 1.5).

Следует помнить:

- введенное число и результаты всех вычислений в системе Ма tLAB сохраняются в памяти ПК с относительной погрешностью около 2.10-16 (т. е. с точными значениями в 15 десятичных разрядах ):

- диапазон представления модуля действительных чисел лежит в диапазоне между 10-308 и 10+308 .

1.2.2. Простейшие арифметические действия

В арифметических выражениях языка МаtLAB используются следующие знаки арифметических операций:

+ – сложение;

– – вычитание;

* – умножение;

/ – деление слева направо;

\ – деление справа налево;

^ – возведение в степень.

Использование MatLAB в режиме калькулятора может происходить путем простой записи в командную строку последовательности арифметических действий с числами, то есть обычного арифметического выражения, например: 4.5^2*7.23 – 3.14*10.4.

Если после ввода с клавиатуры этой последовательности нажать клавишу , в командном окне возникнет результат выполнения в виде, представленном на рис. 1.6, т. е. на экран под именем системной переменной ans выводится результат действия последнего выполненного оператора.

Вообще вывод промежуточной информации в командное окно подчиняется таким правилам:

- если запись оператора не заканчивается символом ";", результат действия этого оператора сразу же выводится в командное окно;

- если оператор заканчивается символом ";", результат его действия не отображается в командном окне ;

- если оператор не содержит знака присваивания (= ), т. е. является просто записью некоторой последовательности действий над числами и переменными , значение результата присваивается специальной системной переменной по имени ans ;

- полученное значение переменной ans можно использовать в следующих операторах вычислений, применяя это имя ans; при этом следует помнить, что значение системной переменной ans изменяется после действия очередного оператора без знака присваивания ;

- в общем случае форма представления результата в командном окне имеет вид :

<Имя переменной> = <результат>.

Пример. Пусть нужно вычислить выражение (25+17)*7. Это можно сделать таким образом. Сначала набираем последовательность 25+17 и нажимаем . Получаем на экране результат в виде ans = 42.Теперь записываем последовательность ans*7 и нажимаем . Получаем ans = 294 (рис. 1.7). Чтобы предотвратить выведение промежуточного результата действия 25+17, достаточно после записи этой последовательности добавить символ ";". Тогда будем иметь результаты в виде, представленном на рис. 1.8.

Применяя MatLAB как калькулятор, можно использовать имена переменных для записи промежуточных результатов в память ПК. Для этого служит операция присваивания, которая вводится знаком равенства "=" в соответствия со схемой: <Имя переменной> = <выражение>[;]

Имя переменной может содержать до 30 символов и должно не совпадать с именами функций, процедур системы и системных переменных. При этом система различает большие и маленькие буквы в переменных. Так, имена "amenu", "Amenu", "aMenu" в MatLAB обозначают разные переменные.

Выражение справа от знака присваивания может быть просто числом, арифметическим выражением, строкой символов (тогда эти символы нужно заключить в апострофы) или символьным выражением. Если выражение не заканчивается символом ";", после нажатия клавиши <Еnter> в командном окне возникнет результат выполнения в виде:

<Имя переменной > = <результат >.

Рис. 1.7. Рис. 1.8.

Например, если ввести в командное окно строку "х = 25 + 17", на экране появится запись (рис. 1.9).

Система MatLAB имеет несколько имен переменных, которые используются самой системой и входят в состав зарезервированных:

i, j – мнимая единица (корень квадратный из –1); pi – число p (сохраняется в виде 3.141592653589793); inf – обозначение машинной бесконечности; Na – обозначение неопределенного результата (например, типа 0/0 или inf/inf); eps – погрешность операций над числами с плавающей запятой; ans – результат последней операции без знака присваивания; realmax и realmin – максимально и минимально возможные величины числа, которое может быть использованы.

Эти переменные можно использовать в математических выражениях.

1.2.3. Ввод комплексных чисел

Язык системы MatLAB, в отличие от многих языков программирования высокого уровня, содержит в себе очень простую в пользовании встроенную арифметику комплексных чисел. Большинство элементарных математических функций допускают в качестве аргументов комплексные числа, а результаты формируются как комплексные числа. Эта особенность языка делает его очень удобным и полезным для инженеров и научных работников.

Для обозначения мнимой единицы в языке МatLAB зарезервированы два имени i и j. Ввод с клавиатуры значения комплексного числа осуществляется путем записи в командное окно строки вида:

<имя комплексной переменной > = <значение ДЧ > + i [j ] * <значение МЧ >,

где ДЧ – действительная часть комплексного числа, МЧ – мнимая часть. Например:

Из приведенного примера видно, в каком виде система выводит комплексные числа на экран (и на печать).

1.2.4. Элементарные математические функции

Общая форма использования функции в MatLAB такова:

<имя результата > = <имя функции >(<перечень аргументов или их значений> ).

В языке MatLAB предусмотрены следующие элементарные арифметические функции.

Тригонометрические и гиперболические функции

sin (z) – синус числа z;

sinh (z) – гиперболический синус;

asin (z) – арксинус (в радианах, в диапазоне от к );

а sinh (z) – обратный гиперболический синус;

со s (z) – косинус;

соsh(z) – гиперболический косинус;

acos (z) – арккосинус (в диапазоне от 0 к p );

асо sh (z) – обратный гиперболический косинус;

tan (z) – тангенс;

tanh (z) – гиперболический тангенс;

atan (z) – арктангенс (в диапазоне от от к );

аtап2 (Х, Y) – четырехквадрантный арктангенс (угол в диапазоне от –p до +p между горизонтальным правым лучом и лучом, который проходит через точку с координатами Х и Y );

atanh (z) – обратный гиперболический тангенс;

sec (z) – секанс;

sech (z) – гиперболический секанс;

asec (z) – арксеканс;

asech (z) – обратный гиперболический секанс;

csc (z) – косеканс;

csch (z) – гиперболический косеканс;

acsc (z) – арккосеканс;

acsch (z) – обратный гиперболический косеканс;

cot (z) – котангенс;

coth (z) – гиперболический котангенс;

acot (z) – арккотангенс;

acoth (z) – обратный гиперболический котангенс

Экспоненциальные функции

exp (z) – экспонента числа z;

log (z) – натуральный логарифм;

log 10 (z) – десятичный логарифм;

sqrt (z) – квадратный корень из числа z;

abs (z) – модуль числа z.

Целочисленные функции

fix (z) – округление к ближайшему целому в сторону нуля;

floor (z) – округление к ближайшему целому в сторону отрицательной бесконечности;

ceil (z) – округление к ближайшему целому в сторону положительной бесконечности;

round (z) – обычное округление числа z к ближайшему целому;

mod (X, Y) – целочисленное деление X на Y;

rem (X, Y) – вычисление остатка от деления X на Y;

sign (z) – вычисление сигнум-функции числа z

(0 при z = 0, –1 при z < 0, 1 при z > 0)

1.2.5. Специальные математические функции

Кроме элементарных в языке MatLAB предусмотрен целый ряд специальных математических функций. Ниже приведен перечень и краткое содержание этих функций. Правила обращения к ним и использования пользователь может отыскать в описаниях этих функций, которые выводятся на экран, если набрать команду help и указать в той же строке имя функции.

Функции преобразования координат

cart 2 sph – преобразование декартовых координат в сферические;

cart 2 pol – преобразование декартовых координат в полярные;

pol 2 cart – преобразование полярных координат в декартовые;

sph 2 cart – преобразование сферических координат в декартовые.

Функции Бесселя

besselj – функция Бесселя первого рода;

bessely – функция Бесселя второго рода;

besseli – модифицированная функция Бесселя первого рода;

besselk – модифицированная функция Бесселя второго рода.

Бета-функции

beta – бета-функция;

betainc – неполная бета-функция;

betaln – логарифм бета-функции.

Гамма-функции

gamma – гамма-функция;

gammainc – неполная гамма-функция;

gammaln – логарифм гамма-функции.

Эллиптические функции и интегралы

ellipj – эллиптические функции Якоби;

ellipke – полный эллиптический интеграл;

expint – функция экспоненциального интеграла.

Функции ошибок

erf – функция ошибок;

erfc – дополнительная функция ошибок;

erfcx – масштабированная дополнительная функция ошибок;

erflnv – обратная функция ошибок.

Другие функции

gcd – наибольший общий делитель;

lern – наименьшее общее кратное;

legendre – обобщенная функция Лежандра;

log2 – логарифм по основанию 2;

pow2 – возведение 2 в указанную степень;

rat – представление числа в виде рациональной дроби;

rats – представление чисел в виде рациональной дроби.

1.2.6. Элементарные действия с комплексными числами

Простейшие действия с комплексными числами – сложение, вычитание, умножение, деление и возведение в степень – осуществляются при помощи обычных арифметических знаков +,–,*,/, \ и ^ соответственно.

Примеры использования приведены на рис. 1.11.

Примечание. В приведенном фрагменте использована функция disp (от слова "дисплей"), которая тоже выводит в командное окно результаты вычислений или некоторый текст. При этом численный результат, как видно, выводится уже без указания имени переменной или ans.

1.2.7. Функции комплексного аргумента

Практически все элементарные математические функции , приведенные в п. 1.2.4, вычисляются при комплексных значениях аргумента и получают в результате этого комплексные значения результата.

Благодаря этому, например, функция sqrt вычисляет, в отличие от других языков программирования, квадратный корень из отрицательного аргумента, а функция abs при комплексном значении аргумента вычисляет модуль комплексного числа. Примеры приведены на рис. 1.12.

В МаtLАВ есть несколько дополнительных функций, рассчитанных только на комплексный аргумент:

real (z) – выделяет действительную часть комплексного аргумента z;

і mag (z) – выделяет мнимую часть комплексного аргумента;

angle (z) – вычисляет значение аргумента комплексного числа z (в радианах в диапазоне от –p до +p);

conj (z) – выдает число, комплексно сопряженное относительно z.

Примеры приведены на рис. 1.13.

Рис. 1.12. Рис. 1.3.

Кроме того, в MatLAB есть специальная функция cplxpair (V), которая осуществляет сортировку заданного вектора V с комплексными элементами таким образом, что комплексно-сопряженные пары этих элементов располагаются в векторе-результате в порядке возрастания их действительных частей, при этом элемент с отрицательной мнимой частью всегда располагается первым. Действительные элементы завершают комплексно-сопряженные пары. Например (в дальнейшем в примерах команды, которые набираются с клавиатуры , будут написаны жирным шрифтом , а результат их выполнения – обычным шрифтом ):

>> v = [ -1, -1+2i,-5,4,5i,-1-2i,-5i]

Columns 1 through 4

1.0000 -1.0000 +2.0000i -5.0000 4.0000

Columns 5 through 7

0 + 5.0000i -1.0000-2.0000i 0 - 5.0000i

>> disp(cplxpair(v))

Columns 1 through 4

1.0000 - 2.0000i -1.0000 + 2.0000i 0 - 5.0000i 0 + 5.0000i

Columns 5 through 7

5.0000 -1.0000 4.0000

Приспособленность большинства функций MatLAB к оперированию с ком­плексными числами позволяет значительно проще строить вычисления с действи­тельными числами, результат которых является комплексным, например, находить комплексные корни квадратных уравнений.

1. Гультяев А. К. MatLAB 5.2. Имитационное моделирование в среде Windows: Практическое пособие. - Спб.: КОРОНА принт, 1999. - 288 с.

2. Гультяев А. К. Визуальное моделирование в среде MATLAB: Учебный курс. - Спб.: ПИТЕР, 2000. - 430 с.

3. Дьяконов В. П. Справочник по применению системы PC MatLAB. - M.: Физматлит, 1993. - 113с.

4. Дьяконов В. Simulink 4. Специальный справочник. - Спб: Питер, 2002. – 518 с.

5. Дьяконов В., Круглов В. Математические пакеты расширения MatLAB. Специальный справочник. - СПб.: Питер, 2001. - 475с.

6. Краснопрошина А. А., Репникова Н. Б., Ильченко А. А. Современный анализ систем управления с применением MATLAB, Simulink, Control System: Учебное пособие. - К.: "Корнійчук", 1999. – 144 с.

7. Лазарев Ю. Ф. Початки програмування в среде MatLAB: Уч. пособие. - К.: "Корнійчук", 1999. - 160с.

8. Лазарев Ю. MatLAB 5.x. – К.: "Ирина" (BHV), 2000. – 384 с.

9. Медведев В. С., Потемкин В. Г. Control System Toolbox. MatLAB 5 для студентов. - Г.: "ДИАЛОГ-МИФИ", 1999. – 287 с.

10. Потемкин В. Г. MatLAB 5 для студентов: Справ. пособие. - M.: "ДИАЛОГ-МИФИ", 1998. - 314 с.

1. Урок 23. Знакомство с пакетами расширения MATLAB

Урок №23.

Знакомство с пакетами расширения МАТLАВ

    Вывод списка пакетов расширения

    Simulinc for Windows

    Пакет символьной математики

    Пакеты математических вычислений

    Пакеты анализа и синтеза систем управления

    Пакеты идентификации систем

    Дополнительные средства пакета Simulinc

    Пакеты для обработки сигналов и изображений

    Прочие пакеты прикладных программ

В этом уроке мы кратко ознакомимся с основными средствами профессионального расширения системы и ее адаптации под решение определенных классов математических и научно-технических задач - с пакетами расширения системы MATLAB. Несомненно, что хотя бы части из этих пакетов должен быть посвящен отдельный учебный курс или справочник, быть может, и не один. За рубежом по большинству таких расширений опубликованы отдельные книги, а объем документации по ним составляет сотни мегабайт. К сожалению, объем данной книги позволяет лишь немного пройтись по пакетам расширения, с тем чтобы дать читателю представление о том, в каких направлениях развивается система.

2. Вывод списка пакетов расширения

Вывод списка пакетов расширения

Полный состав системы MATLAB 6.0 содержит ряд компонентов, название, номер версии и дату создания которых можно вывести на просмотр командой ver:

MATLAB Version 6.0.0.88 (R12) on PCWIN MATLAB License Number: 0

MATLAB Toolbox

Version 6.0

06-0ct-2000

Version 4.0

Version 4.0

04-0ct-2000

Stateflow Coder

Version 4.0

04-0ct-2000

Real -Time Workshop

Version 4.0

COMA Reference Blockset

Version 1.0.2

Communications Blockset

Version 2.0

Communications Toolbox

Version 2.0

Control System Toolbox

Version 5.0

DSP Blockset

Version 4.0

Data Acquisition Toolbox

Version 2.0

05-0ct-2000

Database Toolbox

Version 2.1

Datafeed Toolbox

Version 1.2

Dials & Gauges Blockset

Version 1.1

Filter Design Toolbox

Version 2.0

Financial Derivatives Toolbox

Version 1.0

Financial Time Series Toolbox

Version 1.0

Financial Toolbox

Version 2.1.2

Fixed-Point Blockset

Version 3.0

Fuzzy Logic Toolbox

Version 2.1

GARCH Toolbox

Version 1.0

Image Processing Toolbox

Version 2.2.2

Instrument Control Toolbox

Version 1.0

LMI Control Toolbox

Version 1.0.6

MATLAB Compiler

Version 2.1

MATLAB Report Generator

Version 1.1

Mapping Toolbox

Version 1.2


Version 1.0.5

Motorola DSP Developer"s Kit

Version 1.1

Ol-Sep-2000

Ми-Analysis and Synthesis Toolbox

Version 3.0.5

Neural Network Toolbox

Version 4.0

Nonlinear Control Design Blockset

Version 1.1.4

Optimization Toolbox

Version 2.1

Partial Differential Equation Toolbox

Version 1.0.3

Power System Blockset

Version 2.1

Real -Time Workshop Ada Coder

Version 4.0

Real -Time Workshop Embedded Coder

Version 1.0

Requirements Management Interface

Version 1.0.1

Robust Control Toolbox

Version 2.0.7

SB2SL (converts SystemBuild to Simu

Version 2.1

Signal Processing Toolbox

Version 5.0

Simulink Accelerator

Version 1.0

Model Differencing for Simulink and...

Version 1.0

Simulink Model Coverage Tool

Version 1.0

Simulink Report Generator

Version 1.1

Spline Toolbox

Version 3.0

Statistics Toolbox

Version 3.0

Symbolic Math Toolbox

Version 2.1.2


Version 5.0

Wavelet Toolbox

Version 2.0

Version 1.1

xPC Target Embedded Option

Version 1.1

Обратите внимание, что практически все пакеты расширения в MATLAB 6.0 обновлены и датируются 2000 годом. Заметно расширено их описание, которое в PDF-формате уже занимает много более десятка тысяч страниц. Ниже дано краткое описание основных пакетов расширения

3. Simulink for Windows

Simulink for Windows

Пакет расширения Simulink служит для имитационного моделирования моделей, состоящих из графических блоков с заданными свойствами (параметрами). Компоненты моделей, в свою очередь, являются графическими блоками и моделями, которые содержатся в ряде библиотек и с помощью мыши могут переноситься в основное окно и соединяться друг с другом необходимыми связями. В состав моделей могут включаться источники сигналов различного вида, виртуальные регистрирующие приборы, графические средства анимации. Двойной щелчок мышью на блоке модели выводит окно со списком его параметров, которые пользователь может менять. Запуск имитации обеспечивает математическое моделирование построенной модели с наглядным визуальным представлением результатов. Пакет основан на построении блочных схем путем переноса блоков из библиотеки компонентов в окно редактирования создаваемой пользователем модели. Затем модель запускается на выполнение. На рис. 23.1 показан процесс моделирования простой системы - гидравлического цилиндра. Контроль осуществляется с помощью виртуальных осциллографов - на рис. 23.1 видны экраны двух таких осциллографов и окно простой подсистемы модели. Возможно моделирование сложных систем, состоящих из множества подсистем.

Simulink составляет и решает уравнения состояния модели и позволяет подключать в нужные ее точки разнообразные виртуальные измерительные приборы. Поражает наглядность представления результатов моделирования. Ряд примеров применения пакета Simulink уже приводился в уроке 4. Предшествующая версия пакета достаточно подробно описана в книгах. Основным нововведением является обработка матричных сигналов. Добавлены отдельные пакеты повышения производительности Simulink, такие как Simulink Accelerator для компиляции кода моделей, Simulink profiler для анализа кода и т. д.

Рис. 23.1. Пример моделирования системы гидравлического цилиндра с помощью расширения Simulink

1.gif

Изображение:

1b.gif

Изображение:

4. Real Time Windows Target и Workshop

Real Time Windows Target и Workshop

Подключающаяся к Simulink мощная подсистема имитационного моделирования в реальном масштабе времени (при наличии дополнительных аппаратных средств в виде плат расширения компьютера), представленная пакетами расширения Real Time Windows Target и Workshop, - мощное средство управления реальными объектами и системами. Кроме того, эти расширения позволяют создавать исполняемые коды моделей. Рис. 4.21 в уроке 4 показывает пример такого моделирования для системы, описываемой нелинейными дифференциальными уравнениями Ван-дер-Поля. Достоинством такого моделирования является его математическая и физическая наглядность. В компонентах моделей Simulink можно задавать не только фиксированные параметры, но и математические соотношения, описывающие поведение моделей.

5. Report Generator для MATLAB и Simulink

Report Generator для MATLAB и Simulink

Генераторы отчетов - средство, введенное еще в MATLAB 5.3.1, дает информацию о работе системы MATLAB и пакета расширения Simulink. Это средство очень полезно при отладке сложных вычислительных алгоритмов или при моделировании сложных систем. Генераторы отчетов запускаются командой Report. Отчеты могут быть представлены в виде программ и редактироваться.

Генераторы отчетов могут запускать входящие в отчеты команды и фрагменты программ и позволяют проконтролировать поведение сложных вычислений.

6. Neural Networks Toolbox

Neural Networks Toolbox

Пакет прикладных программ, содержащих средства для построения нейронных сетей, базирующихся на поведении математического аналога нейрона. Па-кет обеспечивает эффективную поддержку проектирования, обучения и моделирования множества известных сетевых парадигм, от базовых моделей персептрона до самых современных ассоциативных и самоорганизующихся сетей. Пакет может быть использован для исследования и применения нейронных сетей к таким задачам, как обработка сигналов, нелинейное управление и финансовое моделирование. Обеспечена возможность генерации переносимого С-кода с помощью Real Time Workshop.

В пакет включены более 15 известных типов сетей и обучающих правил, позволяющих пользователю выбирать наиболее подходящую для конкретного приложения или исследовательской задачи парадигму. Для каждого типа архитектуры и обучающих правил имеются функции инициализации, обучения, адаптации, создания и моделирования, демонстрации и пример приложения сети.

Для управляемых сетей можно выбрать прямую или рекуррентную архитектуру, используя множество обучающих правил и методов проектирования, таких как персептрон, обратное распространение, обратное распространение Левенберга, сети с радиальным базисом и рекуррентные сети. Вы можете легко изменять любые архитектуры, обучающие правила или переходные функции, добавлять новые, - и все это без написания единой строки на Си или ФОРТРАН. Пример применения пакета для распознавания образа буквы приводился в уроке 4. Детальное описание предшествующей версии пакета можно найти в книге.

7. Fuzzy Logic Toolbox

Fuzzy Logic Toolbox

Пакет прикладных программ Fuzzy Logic относится к теории нечетких (размытых) множеств. Обеспечивается поддержка современных методов нечеткой кластеризации и адаптивных нечетких нейронных сетей. Графические средства пакета позволяют интерактивно отслеживать особенности поведения системы.

Основные возможности пакета:

  • определение переменных, нечетких правил и функций принадлежности;
  • интерактивный просмотр нечеткого логического вывода;
  • современные методы: адаптивный нечеткий вывод с использованием нейронных сетей, нечеткая кластеризация;
  • интерактивное динамическое моделирование в Simulink;
  • генерация переносимого Си кода с помощью Real-Time Workshop.

Этот пример наглядно показывает отличия в поведении модели при учете нечеткой логики и без такого учета.

8. Symbolic Math Toolbox

Symbolic Math Toolbox

Пакет прикладных программ, дающих системе MATLAB принципиально новые возможности - возможности решения задач в символьном (аналитическом) виде, включая реализацию точной арифметики произвольной разрядности. Пакет базируется на применении ядра символьной математики одной из самых мощных систем компьютерной алгебры - Maple V R4. Обеспечивает выполнение символьного дифференцирования и интегрирования, вычисление сумм и произведений, разложение в ряды Тейлора и Маклорена, операции со степенными многочленами (полиномами), вычисление корней полиномов, решение в аналитическом виде нелинейных уравнений, всевозможные символьные преобразования, подстановки и многое другое. Имеет команды прямого доступа к ядру системы Maple V.

Пакет позволяет готовить процедуры с синтаксисом языка программирования системы Maple V R4 и устанавливать их в системе MATLAB. К сожалению, по возможностям символьной математики пакет сильно уступает специализированным системам компьютерной алгебры, таким как новейшие версии Maple и Mathematica.

9. Пакеты математических вычислений

Пакеты математических вычислений

В MATLAB входит множество пакетов расширения, усиливающих математические возможности системы, повышающих скорость, эффективность и точность вычислений.

10. NAG Foundation Toolbox

NAG Foundation Toolbox

Одна из самых мощных библиотек математических функций, созданная специальной группой The Numerical Algorithms Group, Ltd. Пакет содержит сотни новых функций. Названия функций и синтаксис их вызова заимствованы из известной библиотеки NAG Foundation Library. Вследствие этого опытные пользователи NAG ФОРТРАН могут без затруднений работать с пакетом NAG в MATLAB. Библиотека NAG Foundation предоставляет свои функции в виде объектных кодов и соответствующих m-файлов для их вызова. Пользователь может легко модифицировать эти МЕХ-файлы на уровне исходного кода.

Пакет обеспечивает следующие возможности:

    корни многочленов и модифицированный метод Лагерра;

    вычисление суммы ряда: дискретное и эрмитово-дискретное преобразование Фурье;

    обыкновенные дифференциальные уравнения: методы Адамса и Рунге-Кутта;

    уравнения в частных производных;

    интерполяция;

    вычисление собственных значений и векторов, сингулярных чисел, поддержка комплексных и действительных матриц;

    аппроксимация кривых и поверхностей: полиномы, кубические сплайны, полиномы Чебышева;

    минимизация и максимизация функций: линейное и квадратичное программирование, экстремумы функций нескольких переменных;

    разложение матриц;

    решение систем линейных уравнений;

    линейные уравнения (LAPACK);

    статистические расчеты, включая описательную статистику и распределения вероятностей;

    корреляционный и регрессионный анализ: линейные, многомерные и обобщенные линейные модели;

    многомерные методы: главных компонент, ортогональные вращения;

    генерация случайных чисел: нормальное распределение, распределения Пуассона, Вейбулла и Кощи;

    непараметрические статистики: Фридмана, Крускала-Уоллиса, Манна-Уитни; О временные ряды: одномерные и многомерные;

    аппроксимации специальных функций: интегральная экспонента, гамма-функция, функции Бесселя и Ганкеля.

Наконец, этот пакет позволяет пользователю создавать программы на ФОРТРАН, которые динамически линкуются с MATLAB.

11. Spline Toolbox

Пакет прикладных программ для работы со сплайнами. Поддерживает одномерную, двумерную и многомерную сплайн-интерполяцию и аппроксимацию. Обеспечивает представление и отображение сложных данных и поддержку графики.

Пакет позволяет выполнять интерполяцию, аппроксимацию и преобразование сплайнов из В-формы в кусочно-полиномиальную, интерполяцию кубическими сплайнами и сглаживание, выполнение операций над сплайнами: вычисление производной, интеграла и отображение.

Пакет Spline оснащен программами работы с В-сплайнами, описанными в работе «A Practical Guide to Splines» Карлом Дебуром, создателем сплайнов и автором пакета Spline. Функции пакета в сочетании с языком MATLAB и подробным руководством пользователя облегчают понимание сплайнов и их эффективное применение к решению разнообразных задач.

В пакет включены программы для работы с двумя наиболее широко распространенными формами представления сплайнов: В-формой и кусочно-полиномиальной формой. В-форма удобна на этапе построения сплайнов, в то время как кусочно-полиномиальная форма более эффективна во время постоянной работы со сплайном. Пакет включает функции для создания, отображения, интерполяции, аппроксимации и обработки сплайнов в В-форме и в виде отрезков полиномов.

12. Statistics Toolbox

Statistics Toolbox

Пакет прикладных программ по статистике, резко расширяющий возможности системы MATLAB в области реализации статистических вычислений и статистической обработки данных. Содержит весьма представительный набор средств генерации случайных чисел, векторов, матриц и массивов с различными законами распределения, а также множество статистических функций. Следует отметить, что наиболее распространенные статистические функции входят в состав ядра системы MATLAB (в том числе функции генерации случайных данных с равномерным и нормальным распределением). Основные возможности пакета:

    описательная статистика;

    распределения вероятностей;

    оценка параметров и аппроксимация;

    проверка гипотез;

    множественная регрессия;

    интерактивная пошаговая регрессия;

    моделирование Монте-Карло;

    аппроксимация на интервалах;

    статистическое управление процессами;

    планирование эксперимента;

    моделирование поверхности отклика;

    аппроксимация нелинейной модели;

    анализ главных компонент;

    статистические графики;

    графический интерфейс пользователя.

Пакет включает 20 различных распределений вероятностей, включая t (Стъюдента), F и Хи-квадрат. Подбор параметров, графическое отображение распределений и способ вычисления лучших аппроксимаций предоставляются для всех типов распределений. Предусмотрено множество интерактивных инструментов для динамической визуализации и анализа данных. Имеются специализированные интерфейсы для моделирования поверхности отклика, визуализации распределений, генерации случайных чисел и линий уровня.

13. Optimization Toolbox

Optimization Toolbox

Пакет прикладных задач- для решения оптимизационных задач и систем нелинейных уравнений. Поддерживает основные методы оптимизации функций ряда переменных:

    безусловная оптимизация нелинейных функций;

    метод наименьших квадратов и нелинейная интерполяция;

    решение нелинейных уравнений;

    линейное программирование;

    квадратичное программирование;

    условная минимизация нелинейных функций;

    метод минимакса;

    многокритериальная оптимизация.

Разнообразные примеры демонстрируют эффективное применение функций пакета. С их помощью можно также сравнить, как одна и та же задача решается разными методами.

14. Partial Differential Equations Toolbox

Partial Differential Equations Toolbox

Весьма важный пакет прикладных программ, содержащий множество функций для решения систем дифференциальных уравнений в частных производных. Дает эффективные средства для решения таких систем уравнений, в том числе жестких. В пакете используется метод конечных элементов. Команды и графический интерфейс пакета могут быть использованы для математического моделирования уравнений в частных производных применительно к широкому классу инженерных и научных приложений, включая задачи сопротивления материалов, расчеты электромагнитных устройств, задачи тепломассопереноса и диффузии. Основные возможности пакета:

    полноценный графический интерфейс для обработки уравнений с частными производными второго порядка;

    автоматический и адаптивный выбор сетки;

    задание граничных условий: Дирихле, Неймана и смешанных;

    гибкая постановка задачи с использованием синтаксиса MATLAB;

    полностью автоматическое сеточное разбиение и выбор величины конечных элементов;

    нелинейные и адаптивные расчетные схемы;

    возможность визуализации полей различных параметров и функций решения, демонстрация принятого разбиения и анимационные эффекты.

Пакет интуитивно следует шести шагам решения PDE с помощью метода конечных элементов. Эти шаги и соответствующие режимы пакета таковы: определение геометрии (режим рисования), задание граничных условий (режим граничных условий), выбор коэффициентов, определяющих задачу (режим PDE), дисркре-тизация конечных элементов (режим сетки), задание начальных условий и решение уравнений (режим решения), последующая обработка решения (режим графика).

15. Пакеты анализа и синтеза систем управления

Пакеты анализа и синтеза систем управления

Control System Toolbox

Пакет Control System предназначен для моделирования, анализа и проектирования систем автоматического управления - как непрерывных, так и дискретных. Функции пакета реализуют традиционные методы передаточных функций и современные методы пространства состояний. Частотные и временные отклики, диаграммы расположения нулей и полюсов могут быть быстро вычислены и отображены на экране. В пакете реализованы:

    полный набор средств для анализа MIMO-систем (множество входов - множество выходов) систем;

    временные характеристики: передаточная и переходная функции, реакция на произвольное воздействие;

    частотные характеристики: диаграммы Боде, Николса, Найквиста и др.;

    разработка обратных связей;

    проектирование LQR/LQE-регуляторов;

    характеристики моделей: управляемость, наблюдаемость, понижение порядка моделей;

    поддержка систем с запаздыванием.

Дополнительные функции построения моделей позволяют конструировать более сложные модели. Временной отклик может быть рассчитан для импульсного входа, единичного скачка или произвольного входного сигнала. Имеются также функции для анализа сингулярных чисел.

Интерактивная среда для сравнения временного и частотного отклика систем предоставляет пользователю графические управляющие элементы для одновременного отображения откликов и переключения между ними. Можно вычислять различные характеристики откликов, такие как время разгона и время регулирования.

Пакет Control System содержит средства для выбора параметров обратной связи. Среди традиционных методов: анализ особых точек, определение коэффициента усиления и затухания. Среди современных методов: линейно-квадратичное регулирование и др. Пакет Control System включает большое количество алгоритмов для проектирования и анализа систем управления. Кроме того, он обладает настраиваемым окружением и позволяет создавать свои собственные m-файлы.

16. Nonlinear Control Design Toolbox

Nonlinear Control Design Toolbox

Nonlinear Control Design (NCD) Blockset реализует- метод динамической оптимизации для проектирования систем управления. Этот инструмент, разработанный для использования с Simulink, автоматически настраивает системные параметры, основываясь на определенных пользователем ограничениях на временные характеристики.

Пакет использует перенос объектов мышью для изменения временных ограничений прямо на графиках, что позволяет легко настраивать переменные и указывать неопределенные параметры, обеспечивает интерактивную оптимизацию, реализует моделирование методом Монте-Карло, поддерживает проектирование SISO- (один вход - один выход) и MIMO-систем управления, позволяет моделировать подавление помех, слежение и другие типы откликов, поддерживает проблемы повторяющегося параметра и задачи управления системами с запаздыванием, позволяет осуществлять выбор между удовлетворенными и недостижимыми ограничениями.

17. Robust Control Toolbox

Robust Control Toolbox

Пакет Robust Control включает средства для проектирования и анализа многопараметрических устойчивых систем управления. Это системы с ошибками моделирования, динамика которых известна не полностью или параметры которых могут изменяться в ходе моделирования. Мощные алгоритмы пакета позволяют выполнять сложные вычисления с учетом изменения множества параметров. Возможности пакета:

    синтез LQG-регуляторов на основе минимизации равномерной и интегральной нормы;

    многопараметрический частотный отклик;

    построение модели пространства состояний;

    преобразование моделей на основе сингулярных чисел;

    понижение порядка модели;

    спектральная факторизация.

Пакет Robust Control базируется на функциях пакета Control System, одновременно предоставляя усовершенствованный набор алгоритмов для проектирования систем управления. Пакет обеспечивает переход между современной теорией управления и практическими приложениями. Он имеет множество функций, реализующих современные методы проектирования и анализа многопараметрических робастных регуляторов.

Проявления неопределенностей, нарушающих устойчивость систем, многообразны - шумы и возмущения в сигналах, неточность модели передаточной функции, немоделируемая нелинейная динамика. Пакет Robust Control позволяет оценить многопараметрическую границу устойчивости при различных неопределенностях. Среди используемых методов: алгоритм Перрона, анализ особенностей передаточных функций и др.

Пакет Robust Control обеспечивает различные методы проектирования обратных связей, среди которых: LQR, LQG, LQG/LTR и др. Необходимость понижения порядка модели возникает в нескольких случаях: понижение порядка объекта, понижение порядка регулятора, моделирование больших систем. Качественная процедура понижения порядка модели должна быть численно устойчива. Процедуры, включенные в пакет Robust Control, успешно справляются с этой задачей.

18. Model Predictive Control Toolbox

Model Predictive Control Toolbox

Пакет Model Predictive Control содержит полный набор средств для реализации стратегии предиктивного (упреждающего) управления. Эта стратегия была разработана для решения практических задач управления сложными многоканальными процессами при наличии ограничений на переменные состояния и управление. Методы предикативного управления используются в химической промышленности и для управления другими непрерывными процессами. Пакет обеспечивает:

    моделирование, идентификацию и диагностику систем;

    поддержку MISO (много входов - один выход), MIMO, переходных характеристик, моделей пространства состояний;

    системный анализ;

    конвертирование моделей в различные формы представления (пространство состояний, передаточные функции);

    предоставление учебников и демонстрационных примеров.

Предикативный подход к задачам управления использует явную линейную динамическую модель объекта для прогнозирования влияния будущих изменений управляющих переменных на поведение объекта. Проблема оптимизации формулируется в виде задачи квадратичного программирования с ограничениями, решаемой на каждом такте моделирования заново. Пакет позволяет создавать и тестировать регуляторы как для простых, так и для сложных объектов.

Пакет содержит более полусотни специализированных функций для проектирования, анализа и моделирования динамических систем с использованием предикативного управления. Он поддерживает следующие типы систем: импульсные, непрерывные и дискретные по времени, пространство состояний. Обрабатываются различные виды возмущений. Кроме того, в модель могут быть явно включены ограничения на входные и выходные переменные.

Средства моделирования позволяют осуществлять слежение и стабилизацию. Средства анализа включают вычисление полюсов замкнутого контура, частотного отклика, другие характеристики системы управления. Для идентификации модели в пакете имеются функции взаимодействия с пакетом System Identification. Пакет также включает две функции Simulink, позволяющие тестировать нелинейные модели.

19. мю - Analysis and Synthesis

(Мю)-Analysis and Synthesis

Пакет p-Analysis and Synthesis содержит функции для проектирования устойчивых систем управления. Пакет использует оптимизацию в равномерной норме и сингулярный параметр и. В этот пакет включен графический интерфейс для упрощения операций с блоками при проектировании оптимальных регуляторов. Свойства пакета:

  • проектирование регуляторов, оптимальных в равномерной и интегральной норме;
  • оценка действительного и комплексного сингулярного параметра мю;
  • D-K-итерации для приближенного мю -синтеза;

    графический интерфейс для анализа отклика замкнутого контура;

    средства понижения порядка модели;

    непосредственное связывание отдельных блоков больших систем.

Модель пространства состояний может быть создана и проанализирована на основе системных матриц. Пакет поддерживает работу с непрерывными и дискретными моделями. Пакет обладает полноценным графическим интерфейсом, включающим в себя: возможность устанавливать диапазон вводимых данных, специальное окно для редактирования свойств D-K итераций и графическое представление частотных характеристик. Имеет функции для матричного сложения, умножения, различных преобразований и других операций над матрицами. Обеспечивает возможность понижения порядка моделей.

20. Stateflow

Stateflow - пакет моделирования событийно-управляемых систем, основанный на теории конечных автоматов. Этот пакет предназначен для использования вместе с пакетом моделирования динамических систем Simulink. В любую Simulink-мо-дель можно вставить Stateflow-диаграмму (или SF-диаграмму), которая будет отражать поведение компонентов объекта (или системы) моделирования. SF-диаграмма является анимационной. По ее выделяющимся цветом блокам и связям можно проследить все стадии работы моделируемой системы или устройства и поставить ее работу в зависимость от тех или иных событий. Рис. 23.6 иллюстрирует моделирование поведения автомобиля при возникновении чрезвычайного обстоятельства на дороге. Под моделью автомобиля видна SF-диаграмма (точнее, один кадр ее работы).

Для создания SF-диаграмм пакет имеет удобный и простой редактор, а также средства пользовательского интерфейса.

21. Quantitative Feedback Theory Toolbox

Quantitative Feedback Theory Toolbox

Пакет содержит функции для создания робастных (устойчивых) систем с обратной связью. QFT (количественная теория обратных связей) - инженерный метод, использующий частотное представление моделей для удовлетворения различных требований к качеству при наличии неопределенных характеристик объекта. В основе метода лежит наблюдение, что обратная связь необходима в тех случаях, когда некоторые характеристики объекта неопределенны и/или на его вход подаются неизвестные возмущения. Возможности пакета:

    оценка частотных границ неопределенности, присущей обратной связи;

    графический интерфейс пользователя, позволяющий оптимизировать процесс нахождения требуемых параметров обратной связи;

    функции для определения влияния различных блоков, вводимых в модель (мультиплексоров, сумматоров, петель обратной связи) при наличии неопределенностей;

    поддержка моделирования аналоговых и цифровых контуров обратной связи, каскадов и многоконтурных схем;

    разрешение неопределенности в параметрах объекта с использованием параметрических и непараметрических моделей или комбинации этих типов моделей.

Теория обратных связей является естественным продолжением классического частотного подхода к проектированию. Ее основная цель - проектирование простых регуляторов небольшого порядка с минимальной шириной полосы пропускания, удовлетворяющих качественным характеристикам при наличии неопределенностей.

Пакет позволяет вычислять различные параметры обратных связей, фильтров, проводить тестирование регуляторов как в непрерывном, так и в дискретном пространстве. Имеет удобный графический интерфейс, позволяющий создавать простые регуляторы, удовлетворяющие требованиям пользователя.

QFT позволяет проектировать регуляторы, удовлетворяющие различным требованиям, несмотря на изменения параметров модели. Измеряемые данные могут быть непосредственно использованы для проектирования регуляторов, без необходимости идентификации сложного отклика системы.

22. LMI Control Toolbox

LMI Control Toolbox

Пакет LMI (Linear Matrix Inequality) Control обеспечивает интегрированную среду для постановки и решения задач линейного программирования. Предназначенный первоначально для проектирования систем управления пакет позволяет решать любые задачи линейного программирования практически в любой сфере деятельности, где такие задачи возникают. Основные возможности пакета:

    решение задач линейного программирования: задачи совместности ограничений, минимизация линейных целей при наличии линейных ограничений, минимизация собственных значений;

    исследование задач линейного программирования;

    графический редактор задач линейного программирования;

    задание ограничений в символьном виде;

    многокритериальное проектирование регуляторов;

    проверка устойчивости: квадратичная устойчивость линейных систем, устойчивость по Ляпунову, проверка критерия Попова для нелинейных систем.

Пакет LMI Control содержит современные симплексные алгоритмы для решения задач линейного программирования. Использует структурное представление линейных ограничений, что повышает эффективность и минимизирует требования к памяти. Пакет имеет специализированные средства для анализа и проектирования систем управления на основе линейного программирования.

С помощью решателей задач линейного программирования можно легко выполнять проверку устойчивости динамических систем и систем с нелинейными компонентами. Ранее этот вид анализа считался слишком сложным для реализации. Пакет позволяет даже такое комбинирование критериев, которое ранее считалось слишком сложным и разрешимым лишь с помощью эвристических подходов.

Пакет является мощным средством для решения выпуклых задач оптимизации, возникающих в таких областях, как управление, идентификация, фильтрация," структурное проектирование, теория графов, интерполяция и линейная алгебра. Пакет LMI Control включает два вида графического интерфейса пользователя: редактор задачи линейного программирования (LMI Editor) и интерфейс Magshape. LMI Editor позволяет задавать ограничения в символьном виде, a Magshape обеспечивает пользователя удобными средствами работы с пакетом.

23. Пакеты идентификации систем

Пакеты идентификации систем

System Identification Toolbox

Пакет System Identification содержит средства для создания математических моделей динамических систем на основе наблюдаемых входных и выходных данных. Он имеет гибкий графический интерфейс, помогающий организовать данные и создавать модели. Методы идентификации, входящие в пакет, применимы для решения широкого класса задач, от проектирования систем управления и обработки сигналов до анализа временных рядов и вибрации. Основные свойства пакета:

    простой и гибкий интерфейс;

    предварительная обработка данных, включая предварительную фильтрацию, удаление трендов и смещений; О выбор диапазона данных для анализа;

    анализ отклика во временной и частотной области;

    отображение нулей и полюсов передаточной функции системы;

    анализ невязок при тестировании модели;

    построение сложных диаграмм, таких как диаграмма Найквиста и др.

Графический интерфейс упрощает предварительную обработку данных, а также диалоговый процесс идентификации модели. Возможна также работа с пакетом в командном режиме и с применением расширения Simulink. Операции загрузки и сохранения данных, выбора диапазона, удаления смещений и трендов выполняются с минимальными усилиями и находятся в главном меню.

Представление данных и идентифицированных моделей организовано графически таким образом, что в процессе интерактивной идентификации пользователь легко может вернуться к предыдущему шагу работы. Для новичков существует возможность просматривать следующие возможные шаги. Специалисту графические средства позволяют отыскать любую из ранее полученных моделей и оценить ее качество в сравнении с другими моделями.

Начав с измерения выхода и входа, можно создать параметрическую модель системы, описывающую ее поведение в динамике. Пакет поддерживает все традиционные структуры моделей, включая авторегрессию, структуру Бокса-Дженкинса и др. Он поддерживает линейные модели пространства состояний, которые могут быть определены как в дискретном, так и в непрерывном пространстве. Эти модели могут включать произвольное число входов и выходов. В пакет включены функции, которые можно использовать как тестовые данные для идентифицированных моделей. Идентификация линейных моделей широко используется при проектировании систем управления, когда требуется создать модель объекта. В задачах обработки сигналов модели могут быть использованы для адаптивной обработки сигналов. Методы идентификации успешно применяются и для финансовых приложений.

24. Frequency Domain System Identification Toolbox

Frequency Domain System Identification Toolbox

Пакет Frequency Domain System Identification предоставляет специализированные средства для идентификации линейных динамических систем по их временному или частотному отклику. Частотные методы направлены на идентификацию непрерывных систем, что является мощным дополнением к более традиционной дискретной методике. Методы пакета могут быть применены к таким задачам, как моделирование электрических, механических и акустических систем. Свойства пакета:

    периодические возмущения, пик-фактор, оптимальный спектр, псевдослучайные и дискретные двоичные последовательности;

    расчет доверительных интервалов амплитуды и фазы, нулей и полюсов;

    идентификация непрерывных и дискретных систем с неизвестным запаздыванием;

    диагностика модели, включая моделирование и вычисление невязок;

    преобразование моделей в формат System Identification Toolbox и обратно.

Используя частотный подход, можно добиться наилучшей модели в частотной области; избежать ошибок дискретизации; легко выделять постоянную составляющую сигнала; существенно улучшить отношение сигнал/шум. Для получения возмущающих сигналов пакет предоставляет функции генерации двоичных последовательностей, минимизации величины пика и улучшения спектральных характеристик. Пакетом обеспечивается идентификация непрерывных и дискретных линейных статических систем, автоматическая генерация входных сигналов, а также графическое изображение нулей и полюсов передаточной функции результирующей системы. Функции для тестирования модели включают вычисление невязок, передаточных функций, нулей и полюсов, прогонку модели с использованием тестовых данных.

25. Дополнительные пакеты расширения MATLAB

Дополнительные пакеты расширения MATLAB

Communications Toolbox

Пакет прикладных программ для построения и моделирования разнообразных телекоммуникационных устройств: цифровых линий связи, модемов, преобразователей сигналов и др. Имеет богатейший набор моделей самых различных устройств связи и телекоммуникаций. Содержит ряд интересных примеров моделирования коммуникационных средств, например модема, работающего по протоколу v34, модулятора для обеспечения однополосной модуляции и др.

26. Digital Signal Processing (DSP) Blockset

Digital Signal Processing (DSP) Blockset

Пакет прикладных программ для проектирования устройств, использующих процессоры цифровой обработки сигналов. Это прежде всего высокоэффективные цифровые фильтры с заданной или адаптируемой к параметрам сигналов частотной характеристикой (АЧХ). Результаты моделирования и проектирования цифровых устройств с помощью этого пакета могут использоваться для построения высокоэффективных цифровых фильтров на современных микропроцессорах цифровой обработки сигналов.

27. Fixed-Point Blockset

Fixed-Point Blockset

Этот специальный пакет ориентирован на моделирование цифровых систем управления и цифровых фильтров в составе пакета Simulink. Специальный набор компонентов позволяет быстро переключаться между вычислениями с фиксированной и плавающей запятой (точкой). Можно указывать 8-, 16- или 32-битовую длину слова. Пакет обладает рядом полезных свойств:

    применение беззнаковой или двоичной арифметики;

    выбор пользователем положения двоичной точки;

    автоматическая установка положения двоичной точки;

    просмотр максимального и минимального диапазонов сигнала модели;

    переключение между вычислениями с фиксированной и плавающей точкой;

    коррекция переполнения и наличие ключевых компонентов для операций с фиксированной точкой; логические операторы, одно- и двумерные справочные таблицы.

28. Пакеты для обработки сигналов и изображений

Пакеты для обработки сигналов и изображений

Signal Processing Toolbox

Мощный пакет по анализу, моделированию и проектированию устройств обработки всевозможных сигналов, обеспечению их фильтрации и множества преобразований.

Пакет Signal Processing обеспечивает чрезвычайно обширные возможности создания программ обработки сигналов для современных научных и технических приложений. В пакете используется разнообразная техника фильтрации и новейшие алгоритмы спектрального анализа. Пакет содержит модули для разработки линейных систем и анализа временных рядов. Пакет будет полезен, в частности, в таких областях, как обработка аудио- и видеоинформации, телекоммуникации, геофизика, задачи управления в реальном режиме времени, экономика, финансы и медицина. Основные свойства пакета:

    моделирование сигналов и линейных систем;

    проектирование, анализ и реализация цифровых и аналоговых фильтров;

    быстрое преобразование Фурье, дискретное косинусное и другие преобразования;

    оценка спектров и статистическая обработка сигналов;

    параметрическая обработка временных рядов;

    генерация сигналов различной формы.

Пакет Signal Processing - идеальная оболочка для анализа и обработки сигналов. В нем используются проверенные практикой алгоритмы, выбранные по критериям максимальной эффективности и надежности. Пакет содержит широкий спектр алгоритмов для представления сигналов и линейных моделей. Этот набор позволяет пользователю достаточно гибко подходить к созданию сценария обработки сигналов. Пакет включает алгоритмы для преобразования модели из одного представления в другое.

Пакет Signal Processing включает полный набор методов для создания цифровых фильтров с разнообразными характеристиками. Он позволяет быстро разрабатывать фильтры верхних и нижних частот, полосовые пропускающие и задерживающие фильтры, многополосные фильтры, в том числе фильтры Чебышева, Юла-Уолкера, эллиптические и др.

Графический интерфейс позволяет проектировать фильтры, задавая требования к ним в режиме переноса объектов мышью. В пакет включены следующие новые методы проектирования фильтров:

    обобщенный метод Чебышева для создания фильтров с нелинейной фазовой характеристикой, комплексными коэффициентами или произвольным откликом. Алгоритм разработан Макленаном и Карамом в 1995 г.;

    метод наименьших квадратов с ограничениями позволяет пользователю явно контролировать максимальную ошибку (сглаживание);

    метод расчета минимального порядка фильтра с окном Кайзера;

    обобщенный метод Баттерворта для проектирования низкочастотных фильтров с максимально однородными полосами пропускания и затухания.

Основанный на оптимальном алгоритме быстрого преобразования Фурье пакет Signal Processing обладает непревзойденными характеристиками для частотного анализа и спектральных оценок. Пакет включает функции для вычисления дискретного преобразования Фурье, дискретного косинусного преобразования, преобразования Гильберта и других преобразований, часто применяемых для анализа, кодирования и фильтрации. В пакете реализованы такие методы спектрального анализа как метод Вельха, метод максимальной энтропии и др.

Новый графический интерфейс позволяет просматривать и визуально оценивать характеристики сигналов, проектировать и применять фильтры, производить спектральный анализ, исследуя влияние различных методов и их параметров на получаемый результат. Графический интерфейс особенно полезен для визуализации временных рядов, спектров, временных и частотных характеристик, расположения нулей и полюсов передаточных функций систем.

Пакет Signal Processing является основой для решения многих других задач. Например, комбинируя его с пакетом Image Processing, можно обрабатывать и анализировать двумерные сигналы и изображения. В паре с пакетом System Identification пакет Signal Processing позволяет выполнять параметрическое моделирование систем во временной области. В сочетании с пакетами Neural Network и Fuzzy Logic может быть создано множество средств для обработки данных или выделения классификационных характеристик. Средство генерации сигналов позволяет создавать импульсные сигналы различной формы.

29. Higher-Order Spectral Analysis Toolbox

Higher-Order Spectral Analysis Toolbox

Пакет Higher-Order Spectral Analysis содержит специальные алгоритмы для анализа сигналов с использованием моментов высшего порядка. Пакет предоставляет широкие возможности для анализа негауссовых сигналов, так как содержит алгоритмы, пожалуй, самых передовых методов для анализа и обработки сигналов. Основные возможности пакета:

    оценка спектров высокого порядка;

    традиционный или параметрический подход;

    восстановление амплитуды и фазы;

    адаптивное линейное прогнозирование;

    восстановление гармоник;

    оценка запаздывания;

    блочная обработка сигналов.

Пакет Higher-Order Spectral Analysis позволяет анализировать сигналы, поврежденные негауссовым шумом, и процессы, происходящие в нелинейных системах. Спектры высокого порядка, определяемые в терминах моментов высокого порядка сигнала, содержат дополнительную информацию, которую невозможно получить, пользуясь только анализом автокорреляции или спектра мощности сигнала. Спектры высокого порядка позволяют:

    подавить аддитивный цветной гауссов шум;

    идентифицировать неминимально-фазовые сигналы;

    выделить информацию, обусловленную негауссовым характером шума;

    обнаружить и проанализировать нелинейные свойства сигналов.

Возможные приложения спектрального анализа высокого порядка включают акустику, биомедицину, эконометрию, сейсмологию, океанографию, физику плазмы, радары и локаторы. Основные функции пакета поддерживают спектры высокого порядка, взаимную спектральную оценку, линейные модели прогноза и оценку запаздывания.

30. Image Processing Toolbox

Image Processing Toolbox

Пакет Image Processing предоставляет ученым, инженерам и даже художникам широкий спектр средств для цифровой обработки и анализа изображений. Будучи тесно связанным со средой разработки приложений MATLAB, пакет Image Processing Toolbox освобождает вас от выполнения длительных операций кодирования и отладки алгоритмов, позволяя сосредоточить усилия на решении основной научной или практической задачи. Основные свойства пакета:

    восстановление и выделение деталей изображений;

    работа с выделенным участком изображения;

    анализ изображения;

    линейная фильтрация;

    преобразование изображений;

    геометрические преобразования;

    увеличение контрастности важных деталей;

    бинарные преобразования;

    обработка изображений и статистика;

    цветовые преобразования;

    изменение палитры;

    преобразование типов изображений.

Пакет Image Processing дает широкие возможности для создания и анализа графических изображений в среде MATLAB. Этот пакет обеспечивает чрезвычайно гибкий интерфейс, позволяющий манипулировать изображениями, интерактивно разрабатывать графические картины, визуализировать наборы данных и аннотировать результаты для технических описаний, докладов и публикаций. Гибкость, соединение алгоритмов пакета с такой особенностью MATLAB, как матрично-векторное описание делают пакет очень удачно приспособленным для решения практически любых задач по разработке и представлению графики. Примеры применения этого пакета в среде системы MATLAB были даны в уроке 7. В MATLAB входят специально разработанные процедуры, позволяющие повысить эффективность графической оболочки. Можно отметить, в частности, такие особенности:

    интерактивная отладка при разработке графики;

    профилировщик для оптимизации времени выполнения алгоритма;

    средства построения интерактивного графического интерфейса пользователя (GUI Builder) для ускорения разработки GUI-шаблонов, позволяющие настраивать его под задачи пользователя.

Этот пакет позволяет пользователю тратить значительно меньше времени и сил на создание стандартных графических изображений и, таким образом, сконцентрировать усилия на важных деталях и особенностях изображений.

MATLAB и пакет Image Processing максимально приспособлены для развития, внедрения новых идей и методов пользователя. Для этого имеется набор сопрягаемых пакетов, направленных на решение всевозможных специфических задач и задач в нетрадиционной постановке.

Пакет Image Processing в настоящее время интенсивно используется в более чем 4000 компаниях и университетах по всему миру. При этом имеется очень широкий круг задач, которые пользователи решают с помощью данного пакета, например космические исследования, военные разработки, астрономия, медицина, биология, робототехника, материаловедение, генетика и т. д.

31. Wavelet Toolbox

Пакет Wavelet предоставляет пользователю полный набор программ для исследования многомерных нестационарных явлений с помощью вейвлетов (коротких волновых пакетов). Сравнительно недавно созданные методы пакета Wavelet расширяют возможности пользователя в тех областях, где обычно применяется техника Фурье-разложения. Пакет может быть полезен для таких приложений, как обработка речи и аудиосигналов, телекоммуникации, геофизика, финансы и медицина. Основные свойства пакета:

    усовершенствованный графический пользовательский интерфейс и набор команд для анализа, синтеза, фильтрации сигналов и изображений;

    преобразование многомерных непрерывных сигналов;

    дискретное преобразование сигналов;

    декомпозиция и анализ сигналов и изображений;

    широкий выбор базисных функций, включая коррекцию граничных эффектов;

    пакетная обработка сигналов и изображений;

    анализ пакетов сигналов, основанный на энтропии;

    фильтрация с возможностью установления жестких и нежестких порогов;

    оптимальное сжатие сигналов.

Пользуясь пакетом, можно анализировать такие особенности, которые упускают другие методы анализа сигналов, т. е. тренды, выбросы, разрывы в производных высоких порядков. Пакет позволяет сжимать и фильтровать сигналы без явных потерь даже в тех случаях, когда нужно сохранить и высоко- и низкочастотные компоненты сигнала. Имеются алгоритмы сжатия и фильтрации и для пакетной обработки сигналов. Программы сжатия выделяют минимальное число коэффициентов, представляющих исходную информацию наиболее точно, что очень важно для последующих стадий работы системы сжатия. В пакет включены следующие базисные наборы вейвлетов: биортогональный, Хаара, «Мексиканская шляпа», Майера и др. Вы также можете добавить в пакет свои собственные базисы.

Обширное руководство пользователя объясняет принципы работы с методами пакета, сопровождая их многочисленными примерами и полноценным разделом ссылок.

32. Прочие пакеты прикладных программ

Прочие пакеты прикладных программ

Financial Toolbox

Довольно актуальный для нашего периода рыночных реформ пакет прикладных программ по финансово-экономическим расчетам. Содержит множество функций по расчету сложных процентов, операций по банковским вкладам, вычисления прибыли и многое другое. К сожалению, из за многочисленных (хотя, в общем-то, не слишком принципиальных) различий в финансово-экономических формулах его применение в наших условиях не всегда разумно - есть множество отечественных программ для таких расчетов, - например «Бухгалтерия 1C». Но если вы хотите подключиться к базам данных агентств финансовых новостей - Bloom-berg, IDC через пакет Datafeed Toolbox MATLAB, то, конечно, обязательно пользуйтесь и финансовыми пакетами расширения MATLAB.

Пакет Financial является основой для решения в MATLAB множества финансовых задач, от простых вычислений до полномасштабных распределенных приложений. Пакет Financial может быть использован для расчета процентных ставок и прибыли, анализа производных доходов и депозитов, оптимизации портфеля инвестиций. Основные возможности пакета:

    обработка данных;

    дисперсионный анализ эффективности портфеля инвестиций;

    анализ временных рядов;

    расчет доходности ценных бумаг и оценка курсов;

    статистический анализ и анализ чувствительности рынка;

    калькуляция ежегодного дохода и расчет денежных потоков;

    методы начисления износа и амортизационных отчислений.

Учитывая важность даты той или иной финансовой операции, в пакет Financial включены несколько функций для манипулирования датами и временем в различных форматах. Пакет Financial позволяет рассчитывать цены и доходы при инвестициях в облигации. Пользователь имеет возможность задавать нестандартные, в том числе нерегулярные и несовпадающие друг с другом, графики дебитных и кредитных операций и окончательного расчета при погашении векселей. Экономические функции чувствительности могут быть вычислены с учетом разновременных сроков погашения.

Алгоритмы пакета Financial для расчета показателей движения денежных средств и других данных, отражаемых в финансовых счетах, позволяют вычислять, в частности, процентные ставки по займам и кредитам, коэффициенты рентабельности, кредитные поступления и итоговые начисления, оценивать и прогнозировать стоимость инвестиционного портфеля, вычислять показатели износа и т. п. Функции пакета могут быть использованы с учетом положительного и отрицательного денежных потоков (cash-flow) (превышения денежных поступлений над платежами или денежных выплат над поступлениями соответственно).

Пакет Financial содержит алгоритмы, которые позволяют анализировать портфель инвестиций, динамику и экономические коэффициенты чувствительности. В частности, при определении эффективности инвестиций функции пакета позволяют сформировать портфель, удовлетворяющий классической задаче Г. Марковица. Пользователь может комбинировать алгоритмы пакета для вычисления коэффициентов Шарпе и ставок дохода. Анализ динамики и экономических коэффициентов чувствительности позволяет пользователю определить позиции для стреддл-сделок, хеджирования и сделок с фиксированными ставками. Пакет Financial обеспечивает также обширные возможности для представления и презентации данных и результатов в виде традиционных для экономической и финансовой сфер деятельности графиков и диаграмм. Денежные средства могут по желанию пользователя отображаться в десятичном, банковском и процентном форматах.

33. Mapping Toolbox

Пакет Mapping предоставляет графический и командный интерфейс для анализа географических данных, отображения карт и доступа к внешним источникам данных по географии. Кроме того, пакет пригоден для работы с множеством широко известных атласов. Все эти средства в комбинации с MATLAB предоставляют пользователям все условия для продуктивной работы с научными географическими данными. Основные возможности пакета:

    визуализация, обработка и анализ графических и научных данных;

    более 60 проекций карт (прямые и инверсные);

    проектирование и отображение векторных, матричных и составных карт;

    графический интерфейс для построения и обработки карт и данных;

    глобальные и региональные атласы данных и сопряжение с правительственными данными высокого разрешения;

    функции географической статистики и навигации;

    трехмерное представление карт со встроенными средствами подсветки и затенения;

    конвертеры для популярных форматов географических данных: DCW, TIGER, ЕТОРО5.

Пакет Mapping включает более 60 наиболее широко известных проекций, включая цилиндрическую, псевдоцилиндрическую, коническую, поликоническую и псевдоконическую, азимутальную и псевдоазимутальную. Возможны прямые и обратные проекции, а также нестандартные виды проекции, задаваемые пользователем.

В пакете Mapping картой называется любая переменная или множество переменных, отражающих или назначающих численное значение географической точке или области. Пакет позволяет работать с векторными, матричными и смешанными картами данных. Мощный графический интерфейс обеспечивает интерактивную работу с картами, например возможность подвести указатель к объекту и, щелкнув на нем, получить информацию. Графический интерфейс MAPTOOL - полная среда разработки приложений для работы с картами.

Наиболее широко известные атласы мира, Соединенных Штатов, астрономические атласы входят в состав пакета. Географическая структура данных упрощает извлечение и обработку данных из атласов и карт. Географическая структура данных и функции взаимодействия с внешними географическими данными форматов Digital Chart of the World (DCW), TIGER, TBASE и ЕТОРО5 собраны воедино, чтобы обеспечить мощный и гибкий инструмент для доступа к уже существующим и будущим географическим базам данных. Тщательный анализ географических данных часто требует математических методов, работающих в сферической системе координат. Пакет Mapping снабжен подмножеством географических, статистических и навигационных функций для анализа географических данных. Функции навигации дают широкие возможности для выполнения задач перемещения, таких как позиционирование и планирование маршрутов.

34. Power System Blockset

Data Acquisition Toolbox и Instrument Control Toolbox

Data Acquisition Toolbox - пакет расширения, относящийся к области сбора данных через блоки, подключаемые к внутренней шине компьютера, функциональных генераторов, анализаторов спектра - словом, приборов, широко используемых в исследовательских целях для получения данных. Они поддержаны соответствующей вычислительной базой. Новый блок Instrument Control Toolbox позволяет подключать приборы и устройства с последовательным интерфейсом и с интерфейсами Канал общего пользования и VXI.

36. Database toolbox и Virtual Reality Toolbox

Database toolbox и Virtual Reality Toolbox

Более чем в 100 раз повышена скорость работы Database toolbox, при помощи которого осуществляется обмен информацией с целым рядом систем управления базами данных через драйверы ODBC или JDBC:

  • Access 95 или 97 Microsoft;

    Microsoft SQL Server 6.5 или 7.0;

    Sybase Adaptive Server 11;

    Sybase (бывший Watcom) SQL Server Anywhere 5.0;

    IBM DB2 Universal 5.0;

  • Computer Associates Ingres (все версии).

Все данные предварительно преобразуются в массив ячеек в MATLAB 6.0. В MATLAB 6.1 можно использовать и массив структур. Визуальный конструктор (Visual Query Builder) позволяет составлять сколь угодно сложные запросы на диалектах языка SQL этих баз данных даже без знания SQL. В одном сеансе может быть открыто много неоднородных баз данных.

Пакет Virtual Reality Toolbox доступен начиная с версии MATLAB 6.1. Позволяет осуществлять трехмерную анимацию и мультипликацию, в том числе моделей Simulink. Язык программирования - VRML - язык моделирования виртуальной реальности (Virtual Reality Modeling Language). Просмотр анимации возможен с любого компьютера, оснащенного браузером с поддержкой VRML. Подтверждает, что математика - наука о количественных соотношениях и пространственных формах любых действительных или виртуальных миров.

37. Excel Link

Позволяет использовать Microsoft Excel 97 как процессор ввода-вывода MATLAB. Для этого достаточно установить в Excel как add-in функцию поставляемый Math Works файл excllinkxla. В Excel нужно набрать Сервис > Надстройки > Обзор, выбрать файл в каталоге \matlabrl2\toolbox\exlink и установить его. Теперь при каждом запуске Excel появится командное окно MATLAB, а панель управления Excel дополнится кнопками getmatrix, putmatrix, evalstring. Для закрытия MATLAB из Excel достаточно набрать =MLC1ose() в любой ячейке Excel. Для открытия после выполнения этой команды нужно либо щелкнуть мышью на одной из кнопок getmatrix, putmatrix, evalstring, либо набрать в Excel Сервис > Макрос >Выполнить mat! abi ni t. Выделив мышью диапазон ячеек Excel, вы можете щелкнуть на getmatrix и набрать имя переменной MATLAB. Матрица появится в Excel. Заполнив числами диапазон ячеек Excel, вы можете выделить этот диапазон, щелкнуть на putmatrix и ввести имя переменной MATLAB. Работа, таким образом, интуитивно понятна. В отличие от MATLAB Excel Link не чувствителен к регистру: I и i, J и j равноценны.

Вызывать демонстрационные примеры пакетов расширения.

Большинство разработчиков с трудом представляет, как его синтаксис, так и возможности. Всё дело в том, что язык напрямую связан с популярным программным продуктом, стоимость которого может достигать потрясающих воображение значений. Итак, главный вопрос: так ли хорош непосредственно язык Matlab? И может ли он быть полезен именно вам.

Использование

Начнём не со стандартного экскурса в историю и обсуждения плюсов и минусов языка, а с программной среды MATLAB/Simulink - единственного места, где герой этого текста может быть полезен. Просто представьте себе графический редактор, в котором вы сможете реализовать любую свою задумку, не имея за плечами нескольких лет опыта и соответствующего образования. И создав один раз схему взаимодействия инструментов, получить качественный скрипт для многократного использования.

MATLAB - именно такой редактор в мире данных. Область его применения безгранично широка: IoT, финансы, медицина, космос, автоматика, робототехника, беспроводные системы и многое-многое другое. В общем почти неограниченные возможности по сбору и визуализации данных, а также прогнозированию, но только если есть возможность купить соответствующий пакет.

Что касается цены, то в верхней границы почти нет, а вот нижняя находится в район 99$. Чтобы урвать столь мощный продукт за относительно небольшие деньги, вам необходимо быть студентом ВУЗа. И конечно же вы получите довольно ограниченный продукт.

Особенности языка

Язык MATLAB - инструмент, обеспечивающий взаимодействие оператора (часто даже не программиста) со всеми доступными возможностями анализа, сбора и представления данных. У него есть очевидные плюсы и минусы, свойственные языку живущему в замкнутой экосистеме.

Недостатки:

    Медленный и перегруженный операторами, командами, функциями язык, основной целью которого является улучшение визуального восприятия.

    Узконаправленный. Нет никакой больше программной платформы, где бы MATLAB был полезен.

    Дороговизна ПО. Если вы не студент - либо готовьтесь опустошить карманы или перейти границу закона. И даже если студент - цена приличная.

    Невысокий спрос. Несмотря на большой интерес к MATLAB практически во всех сферах, фактически и легально его используют лишь немногие.

Достоинства:

    Язык легок для изучения, обладает простым и понятным синтаксисом.

    Огромные возможности. Но это скорее преимущество всего продукта в целом.

    Частые обновления, как правило заметные положительные преобразования происходят не реже пары раз в год.

    Программная среда позволяет преобразовывать его в “быстрый” код на С, С++.

Целевая аудитория

Разумеется, MATLAB нужен далеко не всем. Несмотря на широчайшую область применения, трудно представить, что рядовому разработчику приложений может понадобиться знание этого языка. MATLAB крайне полезен в областях, требующих особой надёжности при обработке данных, например, в системах автопилота в автомобилях или бортовых электронных системах самолёта.

То есть если вы не очень программист, но так или иначе ваша профессия связана с необходимостью программной обработки данных, то продукт MATLAB/Simulink с соответствующим языком способны сильно упростить ваши каждодневные задачи.

Литература

Завершаем обзор языка как всегда списком учебной литературы. Само-собой среди них вы не отыщите книг исключительно по языку, но от этого восприятие языка будет только проще:

А у вас есть опыт работы с MATLAB? И какой?

Для тех, кто хочет стать программистом - .

Лучшие статьи по теме