Современная компьютерная математика предлагает целый набор интегрированных программных систем и пакетов программ для автоматизации математических расчетов: Eureka, Gauss, TK Solver!, Derive, Mathcad, Mathematica, Maple V и др. Возникает вопрос: «А какое место занимает среди них система MATLAB?» MATLAB — одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. Это нашло отражение в названии системы — MATrix LABoratory — матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что эта ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления. Матрицы широко применяются в сложных математических расчетах, например при решении задач линейной алгебры и математического моделирования статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния динамических объектов и систем. Примером может служить расширение MATLAB — Simulink. Это существенно повышает интерес к системе MATLAB, вобравшей в себя лучшие достижения в области быстрого решения матричных задач. . Однако в настоящее время MATLAB далеко вышла за пределы специализированной матричной системы и стала одной из наиболее мощных универсальных интегрированных СКМ. Слово «интегрированная» указывает на то, что в этой системе объединены удобная оболочка, редактор выражений и текстовых комментариев, вычислитель и графический программный процессор. В новой версии используются такие мощные типы данных, как многомерные массивы, массивы ячеек, массивы структур, массивы Java и разреженные матрицы, что открывает возможности применения системы при создании и отладке новых алгоритмов матричных и основанных на них параллельных вычислений и крупных баз данных. В целом MATLAB — это уникальная коллекция реализаций современных численных методов компьютерной математики, созданных за последние три десятка лет. Она вобрала в себя и опыт, правила и методы математических вычислений, накопленные за тысячи лет развития математики. Это сочетается с мощными средствами графической визуализации и даже анимационной графики. Систему с прилагаемой к ней обширной документацией вполне можно рассматривать как фундаментальный многотомный электронный справочник по математическому обеспечению ЭВМ — от массовых персональных компьютеров до супер-ЭВМ. Увы, пока представленный полностью лишь на английском и частично на японском языках! Система MATLAB была разработана Молером (С. В. Moler) и с конца 70-х гг. широко использовалась на больших ЭВМ. В начале 80-х гг. Джон Литл (John Little) из фирмы MathWorks, Inc. разработал версии системы PC MATLAB для компьютеров класса IBM PC, VAX и Macintosh. В дальнейшем были созданы версии для рабочих станций Sun, компьютеров с операционной системой UNIX и многих других типов больших и малых ЭВМ. Сейчас свыше десятка популярных компьютерных платформ могут работать с системой MATLAB. К расширению системы были привлечены крупнейшие научные школы мира в области математики, программирования и естествознания. И вот теперь появилась новейшая версия этой системы — MATLAB 6. Одной из основных задач системы было предоставление пользователям мощного языка программирования, ориентированного на математические расчеты и способного превзойти возможности традиционных языков программирования, которые многие годы использовались для реализации численных методов. При этом особое внимание уделялось как повышению скорости вычислений, так и- адаптации системы к решению самых разнообразных задач пользователей. Возможности MATLAB весьма обширны, а по скорости выполнения задач система нередко превосходит своих конкурентов. Она применима для расчетов практически в любой области науки и техники. Например, очень широко используется при математическом моделировании механических устройств и систем, в частности в динамике, гидродинамике, аэродинамике, акустике, энергетике и т. д. Этому способствует не только расширенный набор матричных и иных операций и функций, но и наличие пакета расширения (toolbox) Simulink, специально предназначенного для решения задач блочного моделирования динамических систем и устройств, а также десятков других пакетов расширений. В обширном и постоянно пополняемом комплексе команд, функций и прикладных программ (пакетов расширения, пакетов инструментов, (toolbox)) [Пакет инструментов, пакет расширения, прикладная программа — почти синонимы при переводе термина toolbox, но пакет инструментов собственно MATLAB 6 рассматривается как один из toolbox всей системы, включающей MATLAB 6, Simulink и другие пакеты. Редакция старалась максимально сохранить авторский стиль, но следует помнить, что и под прикладной программой, и иод пакетом расширения автор имеет в виду toolbox в терминах MATLAB. — Примеч. ред. ] системы MATLAB содержатся специальные средства для электротехнических и радиотехнических расчетов (операции с комплексными числами, матрицами, векторами и полиномами, обработка данных, анализ сигналов и цифровая фильтрация), обработки изображений, реализации нейронных сетей, а также средства, относящиеся к другим новым направлениям науки и техники. Они иллюстрируются множеством практически полезных примеров. К разработкам расширений для системы MATLAB привлечены многие научные школы мира и руководящие ими крупные ученые и педагоги университетов. Важными достоинствами системы являются ее открытость и расширяемость. Большинство команд и функций системы реализованы в виде текстовых m-файлов (с расширением .m) и файлов на языке Си, причем все файлы доступны для модификации. Пользователю дана возможность создавать не только отдельные файлы, но и библиотеки файлов для реализации специфических задач. Поразительная легкость модификации системы и возможность ее адаптации к решению специфических задач науки и техники привели к созданию десятков пакетов прикладных программ (toolbox), намного расширивших сферы применения системы. Некоторые из них, например Notebook (интеграция с текстовым процессором Word и подготовка «живых» электронных книг), Symbolic Math и Extended Symbolic Math (символьные вычисления с применением ядра системы Maple V R5) и Simulink (моделирование динамических систем и устройств, заданных в виде системы блоков), настолько органично интегрировались с системой MATLAB, что стали ее составными частями. Аннотационное описание этих и ряда других пакетов дано в уроке 23. Более подробно, хотя в версиях для выпуска 11.
Возможности прежних версий MATLAB 4.x
Уже первые ориентированные на Microsoft Windows версии системы (MATLAB 4.x) обладали мощными средствами. В области математических вычислений:
матричные, векторные, логические операторы;
элементарные и специальные функции;
полиномиальная арифметика;
многомерные массивы;
массивы записей;
массивы ячеек.
В области реализации численных методов:
дифференциальные уравнения;
вычисление одномерных и двумерных квадратур;
поиск корней нелинейных алгебраических уравнений;
оптимизация функций нескольких переменных;
одномерная и многомерная интерполяция.
В области программирования:
свыше 500 встроенных математических функций;
ввод/вывод двоичных и текстовых файлов;
применение программ, написанных на Си и ФОРТРАН;
автоматическая перекодировка процедур MATLAB в тексты программ на языках Си и C++;
типовые управляющие структуры.
В области визуализации и графики:
возможность создания двумерных и трехмерных графиков;
осуществление визуального анализа данных.
Эти средства сочетались с открытой архитектурой систем, позволяющей изменять уже существующие функции и добавлять свои собственные. Входящая в состав MATLAB программа Simulink дает возможность имитировать реальные системы и устройства, задавая их моделями, составленными из функциональных блоков. Simulink имеет обширную и расширяемую пользователями библиотеку блоков и простые средства задания и изменения их параметров.
Возможности прежних версий MATLAB 4.x
Уже первые ориентированные на Microsoft Windows версии системы (MATLAB 4.x) обладали мощными средствами. В области математических вычислений:
матричные, векторные, логические операторы;
элементарные и специальные функции;
полиномиальная арифметика;
многомерные массивы;
массивы записей;
массивы ячеек.
В области реализации численных методов:
дифференциальные уравнения;
вычисление одномерных и двумерных квадратур;
поиск корней нелинейных алгебраических уравнений;
оптимизация функций нескольких переменных;
одномерная и многомерная интерполяция.
В области программирования:
свыше 500 встроенных математических функций;
ввод/вывод двоичных и текстовых файлов;
применение программ, написанных на Си и ФОРТРАН;
автоматическая перекодировка процедур MATLAB в тексты программ на языках Си и C++;
типовые управляющие структуры.
В области визуализации и графики:
возможность создания двумерных и трехмерных графиков;
осуществление визуального анализа данных.
Эти средства сочетались с открытой архитектурой систем, позволяющей изменять уже существующие функции и добавлять свои собственные. Входящая в состав MATLAB программа Simulink дает возможность имитировать реальные системы и устройства, задавая их моделями, составленными из функциональных блоков. Simulink имеет обширную и расширяемую пользователями библиотеку блоков и простые средства задания и изменения их параметров.
Возможности версий MATLAB 5.x
В версиях системы MATLAB 5.x введены новые мощные средства. Улучшенная среда программирования:
профилировщик m-файлов для оценки времени исполнения фрагментов программ;
редактор/отладчик m-файлов с удобным графическим интерфейсом;
объектно-ориентированное программирование, включая переназначение функций и операторов;
средства просмотра содержимого рабочей области и путей доступа;
конвертирование m-файлов функций в промежуточный р-код.
Графический интерфейс пользователя (GUI):
интерактивное средство построения графического интерфейса пользователя — GUI;
новый редактор свойств графических объектов — Handle Graphics Property Editor (редактор свойств дескрипторной графики);
панели списков, включая списки с множественным выбором;
форма диалоговых панелей и панелей сообщений;
многострочный режим редактирования текста;
запоминание последовательности графических элементов управления;
расширение параметров элементов управления;
свойство переносимости между платформами;
курсор, определяемый пользователем;
подготовка документов в формате HTML (языка разметки гипертекста Hypertext Mark Up Language) начиная с версии 5.3.
Новые типы данных:
многомерные массивы;
массивы структур (записей);
массивы ячеек данных разного типа;
массивы символов с 16-разрядной кодировкой;
массивы с 8-разрядной кодировкой элементов.
Средства программирования:
списки аргументов переменной длины;
переназначение функций и операторов;
применение локальных функций в m-файлах;
оператор-переключатель switch...case...end;
оператор wait for;
функции обработки битов.
Математические вычисления и анализ данных:
пять новых численных методов решения (solver) обыкновенных дифференциальных уравнений (ОДУ); ускоренное вычисление функций Бесселя;
вычисление собственных значений и сингулярных чисел для матриц разреженной структуры;
двумерные квадратурные формулы;
многомерная интерполяция;
триангуляция и вывод на терминал данных, определенных на неравномерной сетке;
анализ и обработка многомерных массивов;
функции обработки времени и даты.
Новые возможности обычной графики:
Z-буферизация для быстрой и точной трехмерной визуализации;
24-битовая поддержка RGB;
множественная подсветка поверхностей и полигонов;
перспективные изображения из произвольной точки;
новые модели подсветки;
векторизованные полигоны для больших трехмерных моделей;
поддержка данных, определенных на неравномерной сетке, включая триангуляционные и сеточные двух- и трехмерные поверхности;
дескрипторная графика для множественных объектов;
вывод на терминал, хранение и импорт 8-разрядных изображений;
дополнительные форматы графических объектов.
Презентационная графика и звук:
двойные х- и y-оси;
легенда — пояснение в виде отрезков линий со справочными надписями, размещаемое внутри графика или около него;
управление шрифтом текстовых объектов;
надстрочные, подстрочные и греческие символы;
трехмерные диаграммы, поля направлений, ленточные и стержневые графики;
увеличенное количество стилей для маркировки линий;
16-битный стереозвук.
Интерактивная документация:
возможность просмотра с помощью Netscape Navigator или Microsoft Internet Explorer;
полная справочная документация в форматах HTML и PDF; О возможность создания «живых» книг с помощью специального приложения Notebook.
Версия MATLAB 5.3.1 (выпуск 11.1) интегрирует в своем составе 42 программных продукта, среди которых основу составляют базовая система MATLAB и новая реализация пакета расширения Simulink 3.1. В систему введен ряд новых компонентов, включая следующие:
Data Analysis, Visualization and Application Development — анализ данных, их визуализация и применение;
Control Design —проектирование устройств управления;
DSP and Communications System Design — проектирование коммуникационных систем и систем цифровой обработки сигналов;
Financial Engineering — финансовые расчеты и др.
Из других возможностей версии MATLAB 5.3.1 наиболее значимыми являются следующие:
существенное обновление пакетов расширения (toolbox) системы MATLAB; О новые улучшенные версии Simulink 3.1 и Real-Time Workshop 3.0;
Real-Time Windows Target, позволяющая исполнять управляющие программы реального времени на том же компьютере или ноутбуке, где установлены MATLAB, Simulink и Real Time Workshop;
стандартный пакет расширения хРС для управления системами реального времени на управляющем компьютере (PC) без участия хост-компьютера с установленной системой MATLAB;
Data Acquisition Toolbox для обмена информацией с блоками сбора данных, подключаемыми к шине компьютера, в реальном масштабе времени;
новое меню View (Вид), позволяющее выводить или скрывать панель инструментов;
расширенные возможности работы с целочисленными данными;
улучшенное окно графики с панелью инструментов;
возможность вращения графиков в пространстве с помощью мыши в любом направлении простым включением режима вращения с помощью кнопки панели инструментов графического окна;
поддержка нового стандарта NTSC;
новый графический интерактивный редактор, облегчающий форматирование графиков;
обеспечение записи и считывания изображений в формате PNG (Portable Network Graphics) (Переносимая сетевая графика);
улучшенная визуализация трехмерных скалярных и векторных данных объемных поверхностей;
новые решатели дифференциальных уравнений и дифференциально-алгебраических уравнений;
улучшенный редактор и профилировщик m-файлов, содержащий генератор отчетов и поддерживающий HTML (язык разметки гипертекста)-формат записи файлов;
улучшенная печать, предусматривающая предварительный просмотр печатаемых страниц — команда Print Preview (предварительный просмотр области печати).
Возможности новейшей версии MATLAB 6
Новейшая версия системы MATLAB 6 не только имеет перечисленные выше возможности предшествующих версий, но и характеризуется целым рядом новых и важных возможностей:
доведенное до более чем 600 число встроенных функций и команд;
новый интерфейс с набором инструментов для управления средой, включающий в себя окно команд (Command Window), окно истории команд (Command History), браузер рабочей области (Workspace Browser) и редактор массивов (Array Editor);
новые инструменты, позволяющие при помощи мыши интерактивно редактировать и форматировать графики, оптимизировать их коды и затраты памяти на графические команды и атрибуты;
улучшенные алгоритмы на основе оптимизированной библиотеки LAPACK;
новая библиотека FFTW (быстрых преобразований Фурье) Массачусетского технологического института Кембриджского университета (США);
ускоренные методы интегральных преобразований;
новые, более мощные и точные, алгоритмы интегрирования дифференциальных уравнений и квадратур;
новые современные функции визуализации: вывод на экран двумерных изображений, поверхностей и объемных фигур в виде прозрачных объектов;
новая инструментальная панель Camera для управления перспективой и ускорение вывода графики с помощью OpenGL;
новый интерфейс для вызова Java-процедур и использования Java-объектов непосредственно из MATLAB;
новые, современные инструменты проектирования графического пользовательского интерфейса;
обработка (регрессия, интерполяция, аппроксимация и вычисление основных статистических параметров) графических данных прямо из окна графики;
новое приложение MATLAB для системы разработки Visual Studio, позволяющее автоматически, непосредственно из Microsoft Visual Studio, преобразовывать Си и Си++ коды в выполняемые MATLAB файлы (МЕХ-файлы);
интеграция с системами контроля версий кода, такими как Visual Source Safe;
новый интерфейс (последовательный порт) для обмена данными с внешним оборудованием из MATLAB;
новый пакет управления измерительными приборами (Instrument Control ToolBox) для обмена информацией с приборами, подключенными к Каналу общего пользования (GPIB, HP-IB, IEEE-488)[ Существует аналогичные международные МЭК (IEC) 625.1 и российские государственные стандарты. Несмотря на логическую и электрическую совместимость, международные и отечественные стандарты предполагают использование других разъемов. — Примеч. ред. или к шине VXI через адаптер VXI — GPIB (только в версиях для Windows и Sun Solaris) и последовательному интерфейсу RS-232, RS-422, RS-485 (также и для Linux-версии), в том числе в соответствии со стандартом VISA (Virtual Instruments Systems Application) (Применение виртуальных измерительных приборов);
существенно обновленные пакеты расширения, в частности новые версии пакета моделирования динамических систем Simulink 4 и Real Time Workshop 4;
интеграция с системами управления потребностями, например DOORS. Поставляемый с системой MATLAB 6.0 новый пакет расширения Simulink 4 также имеет ряд новинок. Они перечислены ниже по категориям.
Усовершенствование пользовательского интерфейса:
новый графический отладчик для интерактивного поиска и диагностики ошибок в модели;
усовершенствован навигатор моделей (Model Browser, Windows 95/98/Me/ 2000/NT4);
новый однооконный режим для открытия подсистем;
контекстное меню для блок-диаграмм (открывается щелчком правой кнопки мыши) как в Windows, так и в Unix версиях;
новый диалог Finder для поиска моделей и библиотек.
Simulink поступает к пользователям с более 100 встроенными блоками, в состав которых входят наиболее необходимые функции моделирования. Блоки сгруппированы в библиотеки в соответствии с их назначением: источники сигнала, приемники, дискретные, непрерывные, нелинейные, математика, функции и таблицы, сигналы и системы. В дополнение к обширному набору встроенных блоков Simulink имеет расширяемую библиотеку блоков благодаря функции создания пользовательских блоков и библиотек. Вы можете настраивать не только функциональность встроенных и пользовательских блоков, но также пользовательский интерфейс, используя значки и диалоги. Например, вы можете создать блоки для моделирования поведения специальных механических, электрических и программных компонентов, как, например, моторы, преобразователи, серво-клапаны, источники питания, энергетические установки, фильтры, шины, модемы,
приемники или другие динамические компоненты. Однажды созданные пользовательские блоки могут быть сохранены в библиотеке блоков для использования в будущем. Любые пользовательские блоки или библиотеки блоков могут быть легально распространены в рабочих группах, переданы поставщикам и заказчикам как с исходным кодом, так и без него. Новые и улучшенные возможности блоков:
наряду с существовавшей ранее поддержкой скалярных и векторных сигналов обеспечена поддержка матричных сигналов многими блоками Simu-link;
блоки Product, Multiplication, Gain и Math Function теперь поддерживают матричные операции на матричных сигналах;
Мих и Demux блоки теперь поддерживают мультиплексирование матричных сигналов;
новый блок Reshape изменяет размер матрицы своего входного сигнала;
блок Probe теперь по умолчанию выводит размер матрицы сигнала, подаваемого на вход;
новый блок Bitwise Logical Operator (логические операции по битам) накладывает маску, инвертирует или производит логические операции с отдельными битами целочисленного сигнала без знака;
четыре новых блока Look-Up Table (просмотра таблиц);
новый Polynomial блок выводит полиномиальную функцию от входного сигнала.
Расширенная поддержка для крупных приложений:
новые объекты данных Simulink позволяют создавать специфические для приложений типы данных MATLAB;
новый графический пользовательский интерфейс Simulink Explorer для наблюдения и редактирования объектов данных Simulink;
новое меню выбора блока конфигурируемой подсистемы;
поддержка защиты интеллектуальной собственности с помощью S-функ-ций, позволяющая не передавать исходный код S-функций (требуется Real-Time Workshop 4.0 (Лаборатория реального времени)) [S-функция — пользовательский программный модуль, который определяет поведение Simulink блока. Simulink содержит шаблоны для создания S-функций с помощью существующих или разработанных заново кодов на Си, Ada (в версии Simulink 4.0/Real Workshop 4.0, нужен отдельный блок Real Workshop Ada Coder), Fortran или MATLAB. Созданную S-функцию вы можете включить в вашу модель, используя соответствующий ей блок Simulink—будь то стандартный или пользовательский. S-функции уменьшают время, необходимое для моделирования крупномасштабных систем, позволяя оперативно вставлять существующие коды в модель. Это, например, особенно важно, если система MATLAB+Simulink+Real Workshop+Real Time Windows Target используется для управления сложными объектами в реальном масштабе времени. Simulink обеспечивает многопортовую и многоскоростную поддержку и разрешает различные интервалы дискретизации (только S-функции на Си и MATLAB). — Примеч. ред.];
поддержка S-функций, кодируемых на языке ADA (требуется новый отдельный пакет Real Time Workshop Ada Coder);
улучшенная интеграция со Stateflow — пакетом инструментов моделирования систем, управляемых событиями, значительно усовершенствованный Stateflow Coder для генерации кода;
run-time сервер MATLAB для запуска программ MATLAB, в том числе в р-кодах, без установленной системы MATLAB;
улучшенная версия хРС Embedded Target для записи генерируемого кода не только на переносимые носители, но и в постоянные запоминающие устройства, твердотельные диски и на жесткий диск управляющего компьютера. Наряду с хРС поддерживаются другие платформы встроенных управляющих систем, включая VxWorks/Tornado (причем как UNIX, так и Windows хостом с MATLAB), Real Time Windows Target; Lynx Embedded OSEK Target, стандартизированную в автомобилестроении, DOS Target на управляющем компьютере Intel386 и старше (последняя только со снятым с производства компилятором Watcom Си/Си++ с расширителем DOS4GW.exe для DOS и несовместима с приложениями Windows). Но возможность работы без хоста с системой MATLAB (Stand-Alone) имеется только в хРС;
поддержка хРС Target стандартной полевой шины промышленной автоматизации CAN, возможность синхронизации хРС сигналами, поступающими по этой шине;
web-сервер, встроенный в хРС Target, позволяющий осуществлять управление встроенными компьютерами и просмотр их состояния при помощи браузеров Интернета (Microsoft Explorer 4.0 и старше и Netscape Navigator 4.5 и старше).
Все это говорит о том, что двенадцатый выпуск системы (MATLAB 6.0 + Simu-link 4.0 + Stateflow 4.0 + ...) подвергся не косметической, а самой серьезной переработке, выдвигающей эту систему на абсолютно новый уровень развития и применения.