В последнее время просматривается тенденция к сближению и интеграции различных пакетов. Например, последние выпуски пакетов Mathematica и Maple имеют хорошие возможности для визуального программирования; в Matlab включена библиотека аналитических преобразований Maple; Mathcad позволяет работать совместно с Matlab.[2]
MATLAB - это высокопроизводительный язык для технических расчетов. Он включает в себя вычисления, визуализацию и программирование в удобной среде, где задачи и решения выражаются в форме, близкой к математической. Типичное использование MATLAB - это:
· математические вычисления
· создание алгоритмов
· моделирование
· анализ данных, исследования и визуализация
· научная и инженерная графика
· разработка приложений, включая создание графического интерфейса
MATLAB - это интерактивная система, в которой основным элементом данных является массив. Это позволяет решать различные задачи, связанные с техническими вычислениями, особенно в которых используются матрицы и вектора, в несколько раз быстрее, чем при написании программ с использованием "скалярных" языков программирования, таких как Си или Фортран.
MATLAB развивался в течении нескольких лет, ориентируясь на различных пользователей. В университетской среде, он представлял собой стандартный инструмент для работы в различных областях математики, машиностроении и науки. В промышленности, MATLAB - это инструмент для высокопродуктивных исследований, разработок и анализа данных.
В MATLAB важная роль отводится специализированным группам программ, называемых toolboxes. Они очень важны для большинства пользователей MATLAB, так как позволяют изучать и применять специализированные методы. Toolboxes - это всесторонняя коллекция функций MATLAB (М-файлов), которые позволяют решать частные классы задач. Toolboxes применяются для обработки сигналов, систем контроля, нейронных сетей, нечеткой логики, вэйвлетов, моделирования и т.д.
Система MATLAB состоит из пяти основных частей.
Язык MATLAB. Это язык матриц и массивов высокого уровня с управлением потоками, функциями, структурами данных, вводом-выводом и особенностями объектно-ориентированного программирования.
Среда MATLAB. Это набор инструментов и приспособлений, с которыми работает пользователь или программист MATLAB. Она включает в себя средства для управления переменными в рабочем пространстве MATLAB, вводом и выводом данных, а также создания, контроля и отладки М-файлов и приложений MATLAB.
Управляемая графика. Это графическая система MATLAB, которая включает в себя команды высокого уровня для визуализации двух- и трехмерных данных, обработки изображений, анимации и иллюстрированной графики. Она также включает в себя команды низкого уровня, позволяющие полностью редактировать внешний вид графики, также как при создании Графического Пользовательского Интерфейса (GUI) для MATLAB приложений.
Библиотека математических функций. Это обширная коллекция вычислительных алгоритмов от элементарных функций, таких как сумма, синус, косинус, комплексная арифметика, до более сложных, таких как обращение матриц, нахождение собственных значений, функции Бесселя, быстрое преобразование Фурье.
Программный интерфейс. Это библиотека, которая позволяет писать программы на Си и Фортране, которые взаимодействуют с MATLAB. Она включает средства для вызова программ из MATLAB (динамическая связь), вызывая MATLAB как вычислительный инструмент и для чтения-записи МАТ-файлов.[3]
Simulink, сопутствующая MATLAB программа, - это интерактивная система для моделирования нелинейных динамических систем. Она представляет собой среду, управляемую мышью, которая позволяет моделировать процесс путем перетаскивания блоков диаграмм на экране и их манипуляцией. Simulink работает с линейными, нелинейными, непрерывными, дискретными, многомерными системами.
Blocksets - это дополнения к Simulink, которые обеспечивают библиотеки блоков для специализированных приложений, таких как связь, обработка сигналов, энергетические системы.
Real-Time Workshop - это программа, которая позволяет генерировать С код из блоков диаграмм и запускать их на выполнение на различных системах реального времени.
Пакет MATLAB представляет собой программное средство для выполнения математических расчетов на компьютере. Математика состоит из двух частей: Ядро(Kernel) и Оболочка (Front End). Ядро представляет собой программное обеспечение, непосредственно выполняющее расчеты, которое работает одинаково на всех типах компьютеров. Оболочка обеспечивает интерфейс между ядром и пользователем. В большинстве компьютерных систем используется интерфейс типа “Notebook”, который позволяет создавать документы, содержащие текст, графики, звуки и активные формулы или команды, обрабатываемые ядром. Такой документ можно читать на экране компьютера, редактируя и выполняя отдельные его части, сохранить на диске или распечатать на бумаге.
Основные элементы MATLAB:
· Численные расчеты.
o MATLAB может производить вычисления с любой точностью. Кроме того, MATLAB может производить расчеты с использованием большого числа специальных функций.
o Позволяет вычислять интегралы, численно решать алгебраические и дифференциальные уравнения и системы уравнения.
o Может обрабатывать численные данные, производя их статический анализ, а также производить Фурье-анализ, интерполяцию и аппроксимацию данных с помощью метода наименьших квадратов.
o Может работать не только с числами, но и с матрицами, обеспечивая выполнение всех операций линейной алгебры.
· Символьные вычисления.
o MATLAB позволяет производить манипулирование алгебраическими формулами, т.е. разлагать на множители, раскрывать скобки и производить упрощение полиномов и рациональных выражений. Также позволяет находить алгебраические решения полиномиальных уравнений и систем уравнений.
o Может вычислять интегралы и производные, решать дифференциальные уравнения в символьной форме.
o Может представлять функции в виде разложения в ряд, а также вычислять пределы.
· Графические средства.
o MATLAB может строить двумерные и трехмерные графики функций, заданных явно или в параметрической форме, а также контурные графики и графики плотности. Аналогично можно изображать и численные данные.
o В MATLAB существует много опций, позволяющие контролировать различные аспекты графиков. Например, для трехмерных графиков можно изменять цвет, тени, освещение и яркость поверхности и т.д.
o MATLAB включает графический язык, позволяющий изображать геометрические объекты, используя стандартные фигуры: многоугольники, окружности и их дуги и т.д., а также вставлять текст в любое место двумерного или трехмерного графического объекта.
· Программирование.
o Кроме встроенных функций, MATLAB позволяет определять дополнительные функции.
o MATLAB включает в себя такой мощный элемент, как правила преобразования, которые позволяют преобразовывать символьные выражения из одной формы в другую.
o MATLAB представляет собой язык программирования высокого уровня, на котором можно писать как малые, так и большие программы. Программы могут включать в себя обработку произвольных символьных данных [5].
o Таким образом система компьютерной алгебры MATLAB является программным средством для проведения фундаментальных и прикладных математических исследований широкого спектра проблем современного естествознания. В главе 4 решим конкретную задачу при помощи пакета MATLAB.
Современное объектно-ориентированное программирование основано на возможности введения новых типов данных и определения операций для них. В MATLAB классы пользователя User Classes наследуют родительский класс struct, т. е. все новые типы(классы) данных базируются на стуктурах.
Правила создания класса в MATLAB.
Рассмотрим последовательность создания класса в среде MATLAB на примере класса myclass.
· Класс – это папка-контейнер – каталог с именем …\@myclass.
· Для работы с классом myclass текущий каталог Current Directory должен быть открыт на папке, содержащей папку класс @myclass.
· Имя функции-конструктора класса должно совпадать с названием класса(функция myclass, описанная в M-файле myclass.m).
· Объект класса хранит свои данные в структуре, все поля которой являются скрытыми(private).
· Функции-методы класса реализуются в M-файлах. Функция-метод – это функция, один из аргументов которой – объект данного класса. Имя М-файла – действия, реализованной функцией.
· Скрытые частные(private) функции класса myclass размещаются в папеке …\@myclass\pribate, не имеют в качестве входного аргумента объект класса, используются как вспомогательные функции и не оперируют непосредственно с классом.
· Базовые методы классов MATLAB:
o сlass constructor: создание объекта класса;
o double, char: конверторы;
o display: вывод содержимого объекта в командное окно, если выражение не завершается разделителем точкой с запятой;
o set и get: доступ к свойствам объекта( функция get – чтение значения свойств, а функция set – запись новых значений);
o subsref: индексная ссылка( переопределение методов для операторов a(i), a{i}, a.field);