
- •Iofun — функции ввода/вывода;
- •Общие принципы работы с пакетом Matlab
- •Браузер файловой структуры
- •View — вывод и скрытие панели инструментов;
- •Import data — открывает окно импорта файлов данных.
- •Сообщения об ошибках и исправление ошибок
- •Форматы чисел
- •Операции с рабочей областью и текстом сессии
- •1Oad( 'fname'....) — загрузка файла fname.Mat в форме функции.
- •Завершение вычислений и работы с системой
- •Столбцовые диаграммы
- •Контурные графики
- •Создание массивов данных для трехмерной графики
- •Построение графиков поверхностей
- •Tрехмерные контурные графики
- •Управление свойствами осей графиков
- •Вывод шкалы цветов
- •Формирование векторов и матриц
- •Создание матриц с заданными свойствами
- •Определитель и ранг матрицы
- •Применение оператора «:» в многомерных массивах
- •Апроксимация производных конечными разностями
- •Численное интегрирование
- •Inner — внутренняя переменная, изменяющаяся на закрытом интервале от inmin до inmax, a outer — внешняя переменная, изменяющаяся на закрытом интервале от outmin до outmax.
- •Решение обыкновенных дифференциальных уравнений
- •Преобразования Фурье
- •Функции одномерного прямого преобразования Фурье
MATLAB
MATLAB — одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. Это нашло отражение в названии системы — MATrix LABoratory — матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что эта ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления.
Матрицы широко применяются в сложных математических расчетах, например при решении задач линейной алгебры и математического моделирования статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния динамических объектов и систем. Примером может служить расширение MATLAB — Simulink. Это существенно повышает интерес к системе MATLAB, вобравшей в себя лучшие достижения в области быстрого решения матричных задач.
Однако в настоящее время MATLAB далеко вышла за пределы специализированной матричной системы и стала одной из наиболее мощных универсальных интегрированных систем компьютерной математики. Слово «интегрированная» указывает на то, что в этой системе объединены удобная оболочка, редактор выражений и текстовых комментариев, вычислитель и графический программный процессор.
В целом MATLAB — это уникальная коллекция реализаций современных численных методов компьютерной математики, созданных за последние три десятка лет. Она вобрала в себя опыт, правила и методы математических вычислений, накопленные за тысячи лет развития математики. Это сочетается с мощными средствами графической визуализации и даже анимационной графики. Систему с прилагаемой к ней обширной документацией вполне можно рассматривать как фундаментальный многотомный электронный справочник по математическому обеспечению ЭВМ — от массовых персональных компьютеров до супер-ЭВМ.
Система MATLAB была разработана Молером (С. В. Moler) и с конца 70-х гг. широко использовалась на больших ЭВМ.
В начале 80-х гг. Джон Литл (John Little) из фирмы MathWorks, Inc. разработал версии системы PC MATLAB для компьютеров класса IBM PC, VAX и Macintosh. В дальнейшем были созданы версии для рабочих станций Sun, компьютеров с операционной системой UNIX и многих других типов больших и малых ЭВМ. Сейчас свыше десятка популярных компьютерных платформ могут работать с системой MATLAB. К расширению системы были привлечены крупнейшие научные школы мира в области математики, программирования и естествознания.
Одной из основных задач системы было предоставление пользователям мощного языка программирования, ориентированного на математические расчеты и способного превзойти возможности традиционных языков программирования, которые многие годы использовались для реализации численных методов. При этом особое внимание уделялось как повышению скорости вычислений, так и адаптации системы к решению самых разнообразных задач пользователей.
Возможности MATLAB весьма обширны, а по скорости выполнения задач система нередко превосходит своих конкурентов. Она применима для расчетов практически в любой области науки и техники. Например, очень широко используется при математическом моделировании механических устройств и систем, в частности в динамике, гидродинамике, аэродинамике, акустике, энергетике и т. д. Этому способствует не только расширенный набор матричных и иных операций и функций, но и наличие пакета расширения (toolbox) Simulink, специально предназначенного для решения задач блочного моделирования динамических систем и устройств, а также десятков других пакетов расширений.
В обширном и постоянно пополняемом комплексе команд, функций и прикладных программ (пакетов расширения, пакетов инструментов, (toolbox)) системы MATLAB содержатся специальные средства для электротехнических и радиотехнических расчетов (операции с комплексными числами, матрицами, векторами и полиномами, обработка данных, анализ сигналов и цифровая фильтрация), обработки изображений, реализации нейронных сетей, а также средства, относящиеся к другим новым направлениям науки и техники. Они иллюстрируются множеством практически полезных примеров. К разработкам расширений для системы MATLAB привлечены многие научные школы мира и руководящие ими крупные ученые и педагоги университетов.
Важными достоинствами системы являются ее открытость и расширяемость. Большинство команд и функций системы реализованы в виде текстовых m-файлов (с расширением .m) и файлов на языке Си, причем все файлы доступны для модификации. Пользователю дана возможность создавать не только отдельные файлы, но и библиотеки файлов для реализации специфических задач. Поразительная легкость модификации системы и возможность ее адаптации к решению специфических задач науки и техники привели к созданию десятков пакетов прикладных программ (toolbox), намного расширивших сферы применения системы.
Возможности MATLAB 6
-
доведенное до более чем 600 число встроенных функций и команд;
-
новый интерфейс с набором инструментов для управления средой, включающий в себя окно команд (Command Window), окно истории команд (Command History), браузер рабочей области (Workspace Browser) и редактор массивов (Array Editor);
-
новые инструменты, позволяющие при помощи мыши интерактивно редактировать и форматировать графики, оптимизировать их коды и затраты памяти на графические команды и атрибуты;
-
улучшенные алгоритмы на основе оптимизированной библиотеки LAPACK;
-
новая библиотека FFTW (быстрых преобразований Фурье) Массачусетского технологического института Кембриджского университета (США);
-
ускоренные методы интегральных преобразований;
-
новые, более мощные и точные, алгоритмы интегрирования дифференциальных уравнений и квадратур;
-
новые современные функции визуализации: вывод на экран двумерных изображений, поверхностей и объемных фигур в виде прозрачных объектов;
-
новые, современные инструменты проектирования графического пользовательского интерфейса;
-
обработка (регрессия, интерполяция, аппроксимация и вычисление основных статистических параметров) графических данных прямо из окна графики;
-
новое приложение MATLAB для системы разработки Visual Studio, позволяющее автоматически, непосредственно из Microsoft Visual Studio, преобразовывать Си и Си++ коды в выполняемые MATLAB файлы (МЕХ-файлы);
-
новый интерфейс (последовательный порт) для обмена данными с внешним оборудованием из MATLAB;
-
новый пакет управления измерительными приборами (Instrument Control ToolBox) для обмена информацией с приборами, подключенными к Каналу общего пользования (GPIB, HP-IB, IEEE-488). Существует аналогичные международные МЭК (IEC) 625.1 и российские государственные стандарты.
-
существенно обновленные пакеты расширения, в частности новые версии пакета моделирования динамических систем Simulink 4 и Real Time Workshop 4;
-
и др.
-
Система MATLAB состоит из многих тысяч файлов, находящихся в множестве папок. Полезно иметь представление о содержании основных папок, поскольку это позволяет быстро оценить возможности системы — например, узнать, какие операторы, функции или графические команды входят в систему.
В MATLAB особое значение имеют файлы двух типов — с расширениями .mat и .m. Первые являются бинарными файлами, в которых могут храниться значения переменных. Вторые представляют собой текстовые файлы, содержащие внешние программы, определения команд и функций системы. Именно к ним относится большая часть команд и функций, в том числе задаваемых пользователем для решения своих специфических задач. Нередко встречаются и файлы с расширением .с (коды на языке Си), файлы с откомпилированными кодами MATLAB с расширением .mex и другие. Исполняемые файлы имеют расширение .exe.
Особое значение имеет папка MATLAB/TOOLBOX/MATLAB. В ней содержится набор стандартных m-файлов системы. Ниже перечислены основные подпапки с этими файлами (деление на категории условно, на самом деле все подпапки находятся в общей папке MATLAB/TOOLBOX/MATLAB).
Подпапка команд общего назначения:
-
General — команды общего назначения: работа со справкой, управление окном MATLAB, взаимодействие с операционной системой и т. д.
Подпапки операторов, конструкций языка и системных функций:
-
ops — операторы и специальные символы;
-
tang — конструкции языка программирования;
-
strfun — строковые функции;
-
Iofun — функции ввода/вывода;
-
timefun — функции времени и дат;
-
datatypes — типы и структуры данных.
Подпапки основных математических и матричных функций:
-
elmat — команды создания элементарных матриц и операций с ними;
-
elfun — элементарные математические функции;
-
specfun — специальные математические функции;
-
matfun — матричные функции линейной алгебры;
-
datafun — анализ данных и преобразования Фурье;
-
polyfun — полиномиальные функции и функции интерполяции;
-
funfun — функции функций и функции решения обыкновенных дифференциальных уравнений;
-
soarfun — функции разреженных матриц.
Подпайки команд графики:
-
graph2d — команды двумерной графики;
-
graph3d — команды трехмерной графики;
-
specgraph — команды специальной графики;
-
graphics — команды дескрипторной графики;
-
uitools — графика пользовательского интерфейса.
Полный состав файлов каждой подпапки (их список содержится в файле соntents.m) можно вывести на просмотр с помощью команды help имя, где имя — название соответствующей подпапки.
Общие принципы работы с пакетом Matlab
MatLab - интерпретатор, что означает последовательное выполнение вводимых операторов без предварительной компиляции. MatLab имеет собственную оболочку и язык для разработки и выполнения программ. Общий вид среды разработки показан на рис.
По умолчанию открыто три окна. Окно Command Window предназначено для ввода команд, в окне Workspace отображаются переменные, хранящиеся в памяти. Окно Command History протоколирует вводимые команды. Операторы MatLab могут вводиться в командном окне или из файлов с именами *.m (звездочка обозначает произвольное имя).
Например, если в директории е:\bvv\matlab имеется файл name.m c набором операторов Matlab, то для его выполнения необходимо выполнить следующие действия:
1. Ввести в командном окне Matlab команду path(path,'e:\bvv\matlab'); . Эта команда добавляет к пути поиска m-файлов путь e:\bvv\matlab.
2. После добавления пути к переменной path можно запускать программу, набрав в командном окне name (без .m).
При вводе команды name Matlab выполняет следующие действия.
1. Просматривает список переменных в памяти и, если в памяти хранится переменная с именем name, ее значение выводится на экран.
2. Если переменная с именем name не найдена, далее просматриваются все файлы в текущей директории. Текущая директория определена в окне Current Directory среды разработки. Сменить текущую директорию можно командой cd. Например, cd e:\bvv\matlab. Вывести текущую директорию на экран можно командой pwd. Если файл name.m найден, он запускается на выполнение.
3. Если в текущей директории файл name.m не обнаружен, тогда просматриваются все пути из переменной path и первый найденный файл name.m запускается на выполнение. Следует обратить особое внимание на имена создаваемых m-файлов. Дело в том, что в Matlab в директории %MATLAB\toolbox (%MATLAB - путь к директории, где инсталлирован Matlab) содержится очень большое количество файлов с именами *.m, а пути на все поддиректории директории toolbox содержатся в переменной path. Команда path(path,'e:\bvv\matlab') добавляет путь e:\bvv\matlab в конец переменной path, поэтому возникает опасность дублирования имен, а я уже отмечал, что Matlab запускает на исполнение первый найденный файл. Можно добавлять свой путь поиска в начало или в конец переменной path командой addpath. Например, чтобы добавить путь e:\bvv\matlab в начало переменной path нужно ввести команду addpath e:\bvv\matlab -begin, а команда addpath e:\bvv\matlab -end поставит этот путь в конец переменной path. Удалить путь из переменной path можно командой rmpath e:\bvv\matlab.
В любой момент можно получить справку о любой функции matlab с помощью команды help. Например, чтобы получить информацию о синтаксисе команды addpath, необходимо ввести команду help addpath. Получить список переменных, хранящихся в памяти, позволяет команда whos (или ее короткая форма who). Удалить переменную var из памяти можно командой clear var, а удалить все переменные из памяти clear all.
Средства контроля рабочей области и файловой системы Браузер рабочей области .Векторы и матрицы могут занимать большой объем памяти. Конечно, речь не идет о векторах или матрицах, содержащих несколько элементов или даже несколько десятков элементов. Хотя и в этом случае оценка их размеров полезна при разработке алгоритмов матричных вычислений и оценке их эффективности в части использования памяти. Как отмечалось, в левой части окна системы MATLAB 6.0 имеется окно специального браузера рабочей области — Workspace Browser. Он служит для просмотра ресурсов рабочей области памяти. Браузер дает наглядную визуализацию содержимого рабочей области. Окно браузера рабочей области выполняет и другие важные функции — позволяет просматривать существующие в памяти объекты, редактировать их содержимое и удалять объекты из памяти. Для вывода содержимого объекта достаточно выделить его имя с помощью мыши и щелкнуть на кнопке Open (Открыть). Объект можно открыть и двойным щелчком на его имени в списке. Окно редактирования матрицы дает удобный доступ для редактирования любого элемента матрицы по правилам, принятым при работе с электронными таблицами. Основное из них — быстрый доступ к любому элементу матрицы. Можно также менять тип значений элементов, выбирая его из списка, предоставляемого меню Numeric format (Формат чисел). В окне также выводятся данные о числе строк и столбцов матрицы.