
- •Введение
- •Основы программирования в среде пакета matlab Типы данных
- •Имена переменных и функций
- •Операция присваивания
- •Генерация обычных векторов и матриц
- •Операции над данными Стандартные функции Matlab
- •Манипуляции с матрицами
- •Операторы языка Matlab
- •Основные логические функции
- •Оператор выбора
- •Формирование собственных m-файлов пользователя
- •Глобальные переменные
- •Графические средства пакета matlab
- •Двухмерная графика
- •Трехмерная графика
Введение
Инженерам, научно-техническим сотрудникам и проектировщикам электротехнических специальностей часто приходится решать сложные математические задачи. Например:
при расчете установившихся режимов в разветвленных электрических цепях необходимо решать системы линейных уравнений – с действительными (если в цепях присутствуют только активные сопротивления) или комплексными (если присутствуют конденсаторы и катушки индуктивности) коэффициентами;
при расчете переходных процессов необходимо решать системы дифференциальных уравнений;
при анализе работы схем с нелинейными элементами их статические или динамические характеристики необходимо аппроксимировать или интерполировать;
часто необходимо определить гармонический состав периодических сигналов (например, при полигармоническом питании);
при исследовании и оптимизации систем ЭП приходится решать алгебраические и трансцендентные уравнения, системы нелинейных уравнений, выполнять минимизацию функционалов.
Большинство этих задач на практике решаются не аналитическими, а так называемыми численными методами, реализация которых на алгоритмических языках высокого уровня требует от пользователя высокой квалификации, глубокого понимания сути метода на стадиях алгоритмизации, программирования и отладки.
Кроме того, возможно гораздо проще решать такие задачи при помощи современных специализированных математических пакетов. К наиболее распространенным пакетам относятся:
Eureka фирмы Borland;
MathCAD фирмы MathSoft;
Matlab фирмы MathWorks;
Derive фирмы Soft Warehous Inc.
Кроме этих, существуют и другие пакеты, например, Assystent, Formula 1, MathGraph, Mathematika, Gauss, Point Five, Reduce, Phaser и др.
Eureka – предназначен для решения линейных и нелинейных уравнений и систем уравнений, определения экстремумов функций одной или нескольких переменных, решения задач линейного и нелинейного программирования, построения графиков функций.
Недостатки: отсутствие векторных и матричных операций, циклической операции, возможностей для решения дифференциальных уравнений, графика весьма элементарна.
MathCAD – кроме вышеперечисленных задач, позволяет реализовать векторные и матричные операции, вычисление интегралов и производных функций, аппроксимацию табличных функций. Графика значительно лучше. Совместим с пакетами AutoCAD, PCAD, TurboCAD…
Отличительная особенность: входной язык максимально приближен к естественному математическому языку, используемому в статьях, книгах, отчетах. Прекрасное средство для выполнения расчетных и курсовых работ и проектов, особенно, когда тексты и формулы перемежаются с результатами расчетов.
Недостатки: недостаточно развитый используемый алгоритмический язык, ограничены возможности расширения, несколько ограниченные возможности графики.
Derive, Mathematika, Reduce, Maple, Theorist – пакеты, специализирующиеся на выполнении математических операций в символьном виде.
Matlab (от слов Matrix Laboratory) – разработка фирмы MathWorks (США, Нейтик, штат Массачусетс). I версия была написана на Фортране (Cleve Moler) в начале 60-х годов. До 3-ей версии пакет работал под ОС MS DOS, начиная с 4-ой – под Windows). Версии под Windows написаны на С (авторы: интерпретатор – Steve Bangert, графика – Steve Kleiman, большинство функций – John Little и Cleve Molel). Может конвертировать файлы, написанные на Фортране и С.
По возможностям не уступает MathCAD, но имеет более развитый встроенный язык программирования, более совершенные графические средства, практически неограниченную возможность расширения, множество приложений (инструментов – ToolBox) для решения математических задач в самых различных областях.
Возможности Matlab:
выполнение самых различных операций с векторами и матрицами, с алгебраическими полиномами, с аналитическими и табличными функциями;
решение задач линейной алгебры, решение нелинейных алгебраических, трансцендентных, дифференциальных уравнений;
решение задач оптимизации;
интегрирование, аппроксимация, интерполяция;
аппарат для обработки сигналов;
анализ и синтез систем управления, идентификация объектов, математическое моделирование;
решения специальных задач в области нейронных сетей, фаззи-логики и т.п.;
отличный графический аппарат (2-х, 3-хмерная графика, анимация, просмотр фотографий и рисунков);
средства создания диалоговых интерфейсов: меню, кнопок и т.п.
Matlab содержит также Extended Symbolic Mathematics Toolbox (начиная с версии 5.0), реализующий интерфейс с системой символьной аналитической обработки данных Maple.
Для специалистов в области ЭП наибольший интерес представляют задачи в области синтеза линейных и нелинейных САУ в частотной и временной областях, спектральный и частотный анализ, структурное моделирование, идентификация объектов, оптимизация, фаззи-логика, нейронные сети, лаборатория реального времени и т.д.
Система Matlab используется более, чем в 70 ведущих университетов мира, в т.ч. в Стэнфордском, Калифорнийском (США), Кэмбриджском (Англия), Киото (Япония), Эйндховенском техническом университете (Нидерланды), в Массачусетском, Калифорнийском, Хельсинском технологических институтах, в научно-исследовательских центрах НАСА, а также в таких крупных компаниях, как Aerospace Corp., Boeing Aerospace, General Dynamics Corp., IBM, Lockheed, Siemens AG и др.
Структура Matlab-каталога. Суть работы в режиме командного интерпретатора.
Matlab-каталог содержит:
главный командный подкаталог BIN,содержащий файлы запуска программного пакета (matlab.exe), встроенного блокнота-отладчика (medit.exe), значки файлов (mat, m, mdl) и стандартные динамические библиотеки (файлы *.dll);
подкаталог SIMULINK приложения для структурного математического моделирования;
подкаталог TOOLBOX различных приложений (инструментов) для решения математических задач (формируется в соответствии с данными, указанными при инсталляции).
Каждый из подкаталогов TOOLBOX/* в основном содержит файлы *.m, называемые m-функциями, и один m-файл комментариев (Contents.m), в котором кратко (в одну строку) описано назначение функций, составляющих данную директорию. Расширенные справочные данные об m-функциях находятся в самих файлах *.m. Описание стандартных функций Matlab находится в файлах TOOLBOX/MATLAB/*.m.
Каждая m-функция начинается с заголовка
function …
после которого обычно следуют несколько строк комментария (% – символ комментария, весь текст справа от него игнорируется компилятором). Весь такой комментарий может быть выведен в командном окне с помощью команды вида
help fn
(fn – имя m-файла). Например, на запрос
help sin
в командное окно будет выведена следующая информация:
SIN Sine.
SIN(X) is the sine of the elements of X.
Overloaded methods
help sym/sin.m
Последние строки могут указывать на наличие перегруженных (overloaded) функций (в данном случае указано, что имеется также функция sin в библиотеке символьных вычислений), информация о которых может быть выведена с помощью указанной команды. Если функция является стандартной (встроенной), то ее исходный текст не доступен пользователю в соответствующем m-файле, и комментарий заканчивается словами
Built-in function
Если же функция является внешней, то следом за комментарием в m-файле имеется исходный текст функции – последовательность операторов языка Matlab, реализующих требуемый алгоритм.
Возможность создания собственных m-файлов пользователя позволяет расширять возможности Matlab за счет создания новых функций (в том числе и перегруженных). Принципиально внешние функции могут быть отредактированы либо совсем удалены, однако этого по понятным причинам не следует делать относительно функций, входящих в стандартный пакет Matlab. Если что-то в какой-либо стандартной внешней функции не устраивает пользователя, он должен сохранить ее копию в другом m-файле и откорректировать ее по своему усмотрению.
Результатом работы функции может быть одна переменная (будь то скаляр, вектор, массив или массив массивов в самом различном сочетании данных).
При запуске Matlab открывается командное окно (Matlab Command Window) с приглашением:
To get started, type one of these: helpwin, helpdesk, or demo.
For product information, type tour or visit www.mathworks.com.
»
Символ "»" обозначает командную строку (ожидание ввода системой команды пользователя).
Matlab может работать в режиме командного интерпретатора (в режиме очень мощного суперкалькулятора), то есть, в интерактивном (диалоговом) режиме, – при вводе инструкции в одной командной строке и последующем нажатии клавиши [Enter] сразу же происходит транслирование и выполнение введенной команды.
Инструкция может представлять собой выражение, либо вызов существующего m-файла или m-функции, либо оператор, организуемый в соответствии с правилами языка Matlab, а также их совокупность. Операторы, расположенные в одной командной строке, отделяются друг от друга символами "," или ";". Если инструкция не помещается в одной строке, ее можно продолжить на следующей, используя оператор переноса "…" (три или более точек подряд без пробелов).
Некоторое количество введенных команд запоминается в буфере, из которого их можно вызвать поочередно в обратном порядке клавишей "". Клавиша "" выполняет обратную функцию.
После выполнения введенной команды интерпретатор готов к приему следующей команды, на экране при этом должен быть выведен символ командной строки "»".
В процессе работы в режиме командного интерпретатора возможно управлять отображением на экране оператором выполняемой функции с помощью команды echo:
для программных файлов:
echo on – включает режим отображения текста исполняемого файла;
echo off – выключает режим отображения;
echo – чередование;
для функций:
echo имя_функции on – включает режим отображения для указанной функции;
echo имя_функции off – выключает режим отображения;
echo имя_функции – чередование;
echo on all – включает режим отображения для всех функций;
echo off all – выключает режим отображения для всех функций.
Информация о состоянии режима вызывается с помощью команды
get(0,'echo')
Для постраничного вывода информации на экран используются команды:
more on – включение режима постраничного вывода;
more off – выключение режима;
more (n) – возможно указать размер страницы (по умолчанию n = 23).
При включенном режиме постраничного вывода используются клавиши:
[Enter] – переход к следующей строке;
[ ] – переход к следующей странице;
[q] – выход из просмотра.
Командное окно Matlab при необходимости может быть очищено путем вызова команды clc.
Использование помощи.
1. С помощью меню Help – Help Window (значок "?" на панели инструментов) – описание всех стандартных функций.
2. Из командной строки с помощью команды help:
help
– выводит список основных директорий с краткими пояснениями;
help help
– выводит основные правила пользования командой help;
help dir
(dir – имя каталога) – выводит тематически сформированный список функций данной директории с краткими пояснениями, сформированными из первых строк комментариев соответствующих m-файлов, например,
help ops
help elfun
help control
help fun
(fun – имя функции) – выводит подробное пояснение назначения функции, смысла ее параметров и формата вызова, сформированное из начального комментария соответствующего m-файла, например,
help zeros
help step
help sin
3. Из командной строки с помощью команды lookfor:
lookfor text
(text – искомый текст) – ищет указанный текст в первых строках комментариев всех m-файлов во всех доступных каталогах, и выводит имена этих файлов на экран с пояснениями в одну строку, например,
lookfor XY
lookfor interp
Управление доступом к каталогу.
Перед началом работы пользователь должен сформировать каталог (любым из способов Windows), как правило, внутри директории WORK, и установить доступ к нему. Это наиболее просто выполняется следующим образом.
С помощью кнопки “Path Browser” (как правило, третья кнопка справа на панели инструментов) активируется окно Path Browser, в котором содержатся сведения о текущем каталоге (Current Directory), доступных каталогах (Path) и файлах, содержащихся в выбранном доступном каталоге (Files in general).
Добавление доступного каталога выполняется с помощью кнопки “Add to path” (вторая кнопка слева на панели инструментов). В предлагаемом диалоговом окне следует ввести полный путь к каталогу (Directory to add) и способа доступа (Add to front или Add to back). Разница в способах доступа заключается в том, что в случае совпадения имен и форматов вызова функций, находящихся в разных доступных каталогах, предпочтение будет отдано той, чей каталог указан раньше (выше) в поле Path. Пользователям рекомендуется использовать уникальные названия для создаваемых m-файлов и m-функций (например, Ivanov_lab01.m), и при установке доступа к каталогу желательно использовать спецификацию Add to back.
При завершении работы с Path Browser следует сохранить сделанные изменения (с помощью меню File – Save Path или просто ответив утвердительно на вопрос в появившемся перед закрытием диалоговом окне).