Программный пакет matlab. Обмен данными между MatLab и Excel

10.05.2019

Это окно является основным в 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

по дисциплине "Теория принятия решений"

Наименование дисциплины

наименование темы

Тема: Исследование методов одномерной оптимизации

Цель работы:

Изучение методов одномерной оптимизации и способов их алгоритмической реализации в среде многофункциональной интегрированной системы автоматизации математических и научно-технических расчетов MATLAB 7.1;

Сравнительная оценка по объему вычислительных затрат методов: прямого сканирования, дихотомии, «золотого сечения» и метода Фибоначчи.

Литература:

1. Аоки М. Введение в методы оптимизации. М.: Наука, 1977. 444 с.

2. Батищев Д.И. Методы оптимального проектирования. М.: «Радио и связь», 1984. 248 с.

3. Бодров В.И., Лазарева Т.Я., Мартемьянов Ю.Ф. Математические методы принятия решений: Учеб. пособие. Тамбов: Изд-во Тамб. гос. тех. ун-та, 2004. 124 с.

4. Полак Э. Численные методы оптимизации. М.: Мир, 1997. 376 с.

5. Химмельблау Д. Прикладное нелинейное программирование. М.: Мир, 1975. 534 с.

6. Юдин Д.Б. Вычислительные методы теории принятия решений. М.: Наука, 1989. 316 с.

7. Кетков Ю. Л., Кетков А. Ю., Шульц М. М. MATLAB 7: программирование, численные методы. - СПб.: БХВ-Петербург, 2005. - 752 с

По проведению занятия

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

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

Основные методы моделирования соответствующих процессов;

Выполнять выбор и оценку влияния основных параметров на результат моделирования;

Анализировать и обобщать полученные результаты.

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

Занятие преследует цель показать связь теоретического материала с практикой и научить студентов применять теорию к решению практических задач.

Лабораторные работы построены таким образом, что они не предполагают знание студентами MATLAB. Каждая лабораторная работа начинается с краткого описания MATLAB, где студенту даются краткие сведения, необходимые для выполнения данной работы.

Подготовка к занятию

Накануне занятия студенты должны:

Ознакомится с руководством по данному лабораторному занятию;

Повторить лекционный материал и изучить предлагаемую литературу по данной теме;

Изучить порядок выполнения работы;

Подготовиться к ответу на контрольные вопросы.

Порядок проведения занятия

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

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

Отчетность по занятию

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

Краткая характеристика MATLAB

Система MATLAB (Matrix Laboratory) состоит из большого количества специальных программ, позволяющих решать широкий спектр математических и технических задач из разных областей науки. Главный ее элемент – это ядро системы MATLAB. В дополнение к нему система содержит около 80-ти различных комплектов команд (т.н. "Toolboxes"), соответствующие различным разделам математики, математической физики, проектирования, связи, экономики и т.д. В данной работе используются базовые средства программирования MATLAB: М-файлы – функции, встроенные функции, операторы, команды и т.п.

Рис.1. Рабочий стол системы

На рис.1 представлен рабочий стол системы. Строка меню (File, Edit, и т.д.) во многом схожа с аналогичной строкой редактора Microsoft Word. Расположенный ниже ряд иконок также выполняют те же операции, что и в редакторе Word (за исключением 3-х последних). Рабочий стол системы состоит их нескольких окон, состав которых можно менять с помощью команд меню Desktop. На рис.1 в верхнем окне слева приводится содержимое рабочего пространства Workspace , куда помещены описания всех констант и функций, введенных пользователем в процессе работы. В нижнем окне Command History приводится последовательность выполненных команд. Размеры окон регулируются перетаскиванием границы с помощью мыши. Главное окно рабочего стола – Command Window (командное окно). В командном окне после знака ">>" набирается командная строка, которая выполняется после нажатия клавиши "Enter ".

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

Формат числа задается меню File (рис.1) в разделе Preferences с помощью функции Numeric Format. Наиболее часто используемыми из 12-ти возможных являются форматы Short и Long – краткая и длинная форматы чисел.

Одними изосновных понятий MATLAB являются переменные и утверждения .

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

>>переменная=выражение

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

Основные арифметические операторы приведены в табл.1.1. При выполнении вычислений в командном окне после нажатия клавиши "Enter " результат присваивается параметру "ans ", если соответствующему выражению не присвоено имя, или его имени - в противном случае (имена переменных, констант и функций должны начинаться с буквы (буквы латинские), могут содержать цифры и символ подчеркивания). Для блокировки вывода результата вычислений некоторого выражения после него надо установить знак; (точка с запятой).

Таблица 1.1

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

>> x=log(1+5*((log10(100))^2-0.2*pi)/sqrt(1+2.71828^3))

После введения утверждения, т.е. нажатия клавиши Enter, ниже сразу выдается результат. Если результат нужно заблокировать, т.е. не надо выдавать на экран дисплея, то в конце утверждения нужно поставить знак « ; » (точку с запятой). Предыдущее выражение можно представить и в иной форме:

>> a=(log10(100))^2;

>> b=sqrt(1+2.71828^3);

>> x=log(1+5*(a-0.2*pi)/b)

MATLAB имеет несколько встроенных переменных: pi, eps, inf, i и j. Переменная pi обозначает число , eps =2 -52 =2.2204*10 -16 – погрешность для операций над числами с плавающей точкой, inf - бесконечность (), i и j – мнимую единицу (i = j = ).

Когда аргумент слева не указан, результат выражения присваивается общей переменной ans.

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

Таблица 1.2

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

Входной язык MATLAB насчитывает всего 9 операторов, использующих 14 служебных слов. Соответствующие синтаксические конструкции приведены в табл. 1.3.

Таблица 1.3

Формат оператора Пояснение
var = expr Оператор присваивания. Вычисляет значения выражения expr и заносит результаты вычислений в переменную var
ifусловие_1 операторы_1 end Условный оператор. Если справедливо условие_1, то выполняется группа операторы_1, если справедливо условие_2, то выполняется группа операторы_2, ... Если все указанные условия оказываются ложными, то выполняются операторы, расположенные между else и end
switchexpr casevail операторы_1 caseval2 операторы_2 . . . . . . . . . [ othervise операторы] end Переключатель по значению выражения expr. Если оно совпадает с величиной vail , то выполняется группа операторы_1, если оно совпадает с величиной val2, то выполняется группа операторы_2, ... Если значение expr не совпадает ни с одной из перечисленных величин, то выполняются операторы, расположенные между othervise и end
forvar=el:e3 операторы end Цикл типа арифметической прогрессии, в котором переменная var при каждом повторении тела цикла изменяется от начального значения el с шагом е2 до конечного значения еЗ
whileусловие операторы end Цикл с предусловием, повторяющийся до тех пор, пока истинно указанное условие
try операторы_1 catch операторы 2 end Попытка выполнить группу операторы_1. При условии, что в результате их выполнения возникает исключительная ситуация, управление передается группе операторы_2 (обработка сбойных ситуаций). Если ошибка не возникла, то группа операторы_2 не выполняется
break Досрочный выход из управляющих конструкций типа for , while, switch, try - catch
function f1 function f2 (x1,х2, . . .) function y=f3(xl,x2,...) function =f4(xl,x2,. . .) Заголовок функции (xl, х2, ... - входные параметры; y, yl, у2, ... -выходные параметры)
return Досрочный выход из тела функции

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

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

Язык MATLAB не содержит оператора goto . В связи с этим в текстах m-файлов отсутствуют метки операторов. Для идентификации строк, в которых возникают аварийные ситуации, используются внутренние номера, присваиваемые системой автоматически.

Пакет MatLab был создан компанией Math Works более десяти лет назад. Работа сотен ученых и программистов направлена на постоянное расширение его возможностей и совершенствование заложенных алгоритмов. В настоящее время MatLab является мощным и универсальным средством решения задач, возникающих в различных областях человеческой деятельности.
Рабочая среда MatLab 6.x,MatLab 7 имеет удобный интерфейс для доступа ко многим вспомогательным элементам MatLab.
При запуске MatLab 6.x на экране появляется рабочая среда, изображенная на рис. 1.

Рис. 1. Рабочая среда пакета MatLab 6.x

Данный урок изучает основы работы (введение) в matlab.

Рабочая среда содержит следующие элементы:

Меню;
- панель инструментов с кнопками и раскрывающимся списком;
- окно с вкладками Launch Pad и Workspace, из которого можно получить простой доступ к различным модулям ТооlBох и к содержимому рабочей среды;
- окно с вкладками Command History и Current Directory, предназначенное для просмотра и повторного вызова ранее введенных команд, а также для установки текущего каталога;
- командное окно Command Window с командной строкой, в которой находится мигающий курсор;
- строку состояния.

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

Замечание 1

Если в рабочей среде MatLab 6.x отсутствуют некоторые описанные окна, то следует в меню View выбрать соответствующие пункты: Command Window, Command History, Current Directory, Workspace, Launch Pad.

2.1. Арифметические вычисления

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

2.1.1. Простейшие вычисления

Наберите в командной строке 1+2 и нажмите . В результате в командном окне MatLab отображается следующее:

» 1+2
ans =
3
» |

Что сделала программа MatLab? Сначала она вычислила сумму 1+2, затем записала результат в специальную переменную ans и вывела ее значение, равное 3, в командное окно. Ниже ответа расположена командная строка с мигающим курсором, обозначающая, что MatLab готова к дальнейшим вычислениям. Можно набирать в командной строке новые выражения и находить их значения.

Если требуется продолжить работу с предыдущим выражением, например, вычислить (1+2)/4.5, то проще всего воспользоваться уже имеющимся результатом, который хранится в переменной ans. Наберите в командной строке ans/4.5 (при вводе десятичных дробей используется точка) и нажмите , получается:

» ans/4.5
ans =
0.6667
» |

Замечание 2

Вид, в котором выводится результаты вычислений, зависит от формата вывода, установленного в MatLab. Далее объяснено, как задать основные форматы вывода.

2.1.2. Форматы вывода результата вычислений

Требуемый формат вывода результата определяется пользователем из меню MatLab. Выберите в меню File пункт Preferences. На экране появится диалоговое окно Preferences. Для установки формата вывода следует убедиться, что в списке левой панели выбран пункт Command Window . Задание формата производится из раскрывающегося списка Numeric format панели Text display.
Разберем пока только наиболее часто используемые форматы. Выберите short в раскрывающемся списке Numeric format в MatLab 6.x. Закройте диалоговое окно, нажав кнопку ОК. Сейчас установлен короткий формат с плавающей точкой short для вывода результатов вычислений, при котором на экране отображаются только четыре цифры после десятичной точки. Наберите в командной строке 100/3 и нажмите .
Результат выводится в формате short:

» 100/3
ans =
33.3333

Этот формат вывода сохранится для всех последующих вычислений, если только не будет установлен другой формат. Заметьте, что в MatLab возможна ситуация, когда при отображении слишком большого или малого числа результат не укладывается в формат short. Вычислите 100000/3, результат выводится в экспоненциальной форме:

» 100000/3
ans =
З.ЗЗЗЗе+004

То же самое произойдет и при нахождении 1/3000:

» 1/3000
ans =
З.ЗЗЗЗе-004

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

В предыдущем примере пакет MatLab вывел результат вычислений в экспоненциальной форме. Запись 3.3333е-004 обозначает 3.3333*10-4 или 0.00033333. Аналогично можно набирать числа в выражениях. Например, проще набрать 10е9 или l.0e10, чем 1000000000, а результат будет тот же самый. Пробел между цифрами и символом е при вводе не допускается, т.к. это приведет к сообщению об ошибке:

» 10 е9
??? 10 е9

Если требуется получить результат вычислений более точно, то следует выбрать в раскрывающемся списке long . Результат будет отображаться в длинном формате с плавающей точкой long с четырнадцатью цифрами после десятичной точки. Форматы short e и long e предназначены для вывода результата в экспоненциальной форме с четырьмя и пятнадцатью цифрами после десятичной точки соответственно. Информацию о форматах можно получить, набрав в командной строке команду help с аргументом format:

В командном окне появляется описание каждого из форматов.

Задавать формат вывода можно непосредственно из командной строки при помощи команды format. Например, для установки длинного с плавающей точкой формата вывода результатов вычислений следует ввести команду format long e в командной строке:

» format long e
» 1.25/3.11
ans =
4.019292604501608е-001

Обратите внимание, что команда help format выводит на экран название форматов прописными буквами. Однако команда, которую надо ввести, состоит из строчных букв. К этой особенности встроенной справки help надо привыкнуть. MatLab различает прописные и строчные буквы. Попытка набора команды прописными буквами приведет к ошибке:

» FORMAT LONG E
??? FORMAT LONG.
Missing operator, comma, or semi-colon.

Для более удобного восприятия результата MatLab выводит результат вычислений через строку после вычисляемого выражения. Однако иногда бывает удобно разместить больше строк на экране, для чего следует выбрать переключатель compact (File, Numeric display) из раскрывающегося списка. Добавление пустых строк обеспечивается выбором loose из раскрывающегося списка Numeric display .

Замечание 3

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

2.2. Использование элементарных функций

Предположим, что требуется вычислить значение следующего выражения:

Введите в командной строке это выражение в соответствии с правилами MatLab и нажмите :

» ехр(-2.5)*lоg(11.3)^0.3-sqrt((sin(2.45*pi)+cos(3.78*pi)}/tan(3.3))

Ответ выводится в командное окно:

ans =
-3.2105

При вводе выражения использованы встроенные функции MatLab для вычисления экспоненты, натурального логарифма, квадратного корня и тригонометрических функций. Какие встроенные элементарные функции можно использовать и как их вызывать? Наберите в командной строке команду help eifun, при этом в командное окно выводится список всех встроенных элементарных функций с их кратким описанием. Аргументы функций заключаются в круглые скобки, имена функций набираются строчными буквами. Для ввода числа л достаточно набрать pi в командной строке.

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

Возведение в степень ^;
- умножение и деление *, /;
- сложение и вычитание +, -.

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

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

1. Нажмите клавишу <­>, при этом в командной строке появится введенное ранее выражение.
2. Внесите в него необходимые изменения, заменив знак минус на плюс и квадратный корень на возведение в квадрат (для перемещения по строке с выражением служат клавиши , , , ).
3. Вычислите измененное выражение, нажав .

Получается

»ехр(-2.5)*log(11.3)^0.3+((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))^2
ans =
121.2446

Если необходимо получить более точный результат, то следует выполнить команду format long e, затем нажимать клавишу <­> до тех пор, пока в командной строке не появится требуемое выражения, и вычислить его, нажав .

» format long e
» exp(-2.5)*log(11.3)^0.3+((sin.(2.45*pi)+cos(3.78*pi))/tan(3.3))^2
ans =
1.212446016556763e+002

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

» format short
» ans
ans =
121.2446

В рабочей среде MatLab 6.x для вызова ранее введенных команд имеется удобное средство - окно Command History с историей команд. История команд содержит время и дату каждого сеанса работы с MatLab 6.x. Для активизации окна Command History необходимо выбрать вкладку с одноименным названием. Текущая команда в окне изображена на синем фоне. Если щелкнуть на какой-либо команде в окне левой кнопкой мыши, то данная команда становится текущей. Для ее выполнения в MatLab надо применить двойной щелчок мыши или выбрать строку с командой при помощи клавиш , и нажать клавишу . Лишнюю команду можно убрать из окна. Для этого ее надо сделать текущей и удалить при помощи клавиши . Можно выделить несколько идущих подряд команд при помощи комбинации клавиш +, + и выполнить их при помощи или удалить клавишей . Выделение последовательно идущих команд можно производить левой кнопкой мыши с одновременным удерживанием клавиши . Если команды не идут одна за другой, то для их выделения следует использовать левую кнопку мыши с удерживанием клавиши .

При щелчке правой кнопкой мыши по области окна Command History появляется всплывающее меню. Выбор пункта Сору приводит к копированию команды в буфер Windows. При помощи Evaluate Selection можно выполнить отмеченную группу команд. Для удаления текущей команды предназначен пункт Delete Selection. Д ля удаления всех команд до текущей - Delete to Selection, для удаления всех команд - Delete Entire History.

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

» 1/0
Warning: Divide by zero.
ans =
Inf

При делении нуля на нуль получается NaN (не число) и также выдается предупреждение:

» 0/0
Warning: Divide by zero.
ans =
NaN

При вычислении, например sqrt(-1), никакой ошибки или предупреждения не возникает. MatLab автоматически переходит в область комплексных чисел:

»sqrt(-1.0)
ans =
0 + l.0000i

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

Сейчас возможности системы значительно превосходят возможности первоначальной версии матричной лаборатории Matrix Laboratory. Нынешний MATLAB, детище фирмы The MathWorks, Inc., – это высокоэффективный язык инженерных и научных вычислений. Он поддерживает математические вычисления, визуализацию научной графики и программирование с использованием легко осваиваемого операционного окружения. Наиболее известные области применения системы MATLAB:

Математика и вычисления;

Разработка алгоритмов;

Вычислительный эксперимент, имитационное моделирование, макетирование;

Анализ данных, исследование и визуализация результатов;

Научная и инженерная графика;

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

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

Версия MATLAB 6.1 - это предпоследнее достижение разработчиков (последнее - MATLAB 6.5).

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

Операционная среда системы MATLAB 6.1. Операционная среда системы MATLAB 6.1 - это множество интерфейсов, которые поддерживают связь этой системы с внешним миром через диалог с пользователем через командную строку, редактор М-файлов, взаимодействие с внешними системами Microsoft Word, Excel и др.

После запуска программы MATLAB на дисплее компьютера появляется её главное окно, содержащее меню , инструментальную линейку с кнопками и клиентскую часть окна со знаком приглашения . Это окно принято называть командным окном системы MATLAB (рис. 1).

Меню Файл (рис. 2) объединяет обычные функции: Правка отвечает за изменение содержания Окна команд (отмена, повтор, вырезать, копировать, вставить, выбрать всё, удалить и др.) и за очистку некоторых окон MATLAB; меню Вид – за оформление Рабочего стола; меню Web – запускает Web-страницы из Internet; меню Окно – работает с редактором/отладчиком М-файлов (закрывает все М-файлы, делает текущим один из них); меню Помощь – работает со справочной документацией и демонстрациями.


Особого рассмотрения заслуживает опция Предпочтения ... (выбор характеристик), которая при выборе открывает окно, включающее слева дерево объектов (рис. 3), а справа их возможные характеристики.

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

В клиентской части командного окна MATLAB после знака приглашения можно вводить различные числа, имена переменных и знаки операций, что в совокупности составляет некоторые выражения. Нажатие клавиши Enter заставляет систему MATLAB вычислить выражение или, если оно не вычисляется, повторить его. Хотя знак «;» в конце строки гасит вывод результата (эхо-вывод).

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

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

Команды - окно, содержащее по порядку введённые ранее команды в Окне команд («история команд»).

Рабочая область – это область памяти MATLAB, в которой размещены переменные системы. Содержимое этой области можно просмотреть из командной строки с помощью команд who (выводит только имена переменных) и whos (выводит информацию о размерах массивов и типе переменной) или в отдельном окне под тем же названием. В нём можно выполнить следующие операции: загрузить файл данных, сохранить Рабочую область как (команды позволяют открыть и сохранить содержимое рабочей области в двоичном MAT-файле), удалить выбранные переменные; открыть выбранные переменные (где можно изменить их значение). Кроме этого в меню Правка можно очистить как Окно команд и Историю команд, так и Рабочую область (или выполнить команду в Окне команд: clear ).

Для сохранения и запуска Рабочей области можно использовать команды load и save.

Пример.

Saving to: matlab.mat

>> save my.mat

>> load my.mat

>> save my2

>> load my2

Текущий каталог – окно, являющееся своеобразным «проводником» по каталогам MATLAB.

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

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

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

GUIDE – графический интерфейс пользователя, в котором происходит создание законченных приложений.

Интерактивный сеанс работы. М-файлы . Интерактивный режим – это пользовательский режим ввода с клавиатуры команд и выражений, в результате выполнения которых получаются необходимые числовые результаты, которые можно легко и быстро визуализировать встроенными графическими средствами пакета MATLAB. Но использование этого режима для создания и сохранения конкретной программы невозможно. Поэтому создатели MATLAB кроме Окна команд, в котором реализован интерактивный режим, выделили специальные файлы, содержащие коды языка MATLAB, и назвали M-файлами (*.m). Для создания M-файла используется текстовый редактор (редактор/отладчик М-файлов).

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

Раскройте меню File основного окна MatLab и в пункте New выберите подпункт M-file. Новый файл открывается в окне редактора M -файлов (рис. 10). Запишем в файл программу вычисления среднего арифметического пере-

менных a и b, затем сохраним с именем fun1.m. Сравните способы решения задачи, представленные в таблице.

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

    Наборы инструментов пакета Matlab

    Структура и рабочие окна пакета Matlab

    Работа в командном режиме

    Основные элементы языка программирования Matlab

1. Основные возможности пакета Matlab

MATLAB (сокращение от англ. «Matrix Laboratory») - пакет прикладных программ для решения задач технических вычислений и одноименный язык программирования, используемый в этом пакете. MATLAB используют более 1 000 000 инженерных и научных работников, он работает на большинстве современных операционных систем, включая Linux, Mac OS, Solaris (начиная с версии R2010b поддержка Solaris прекращена) и Microsoft Windows.

История. MATLAB как язык программирования был разработан Кливом Моулером (англ. Cleve Moler) в конце 1970-х годов когда он был деканом факультета компьютерных наук в Университете Нью-Мексико. Целью разработки служила задача дать студентам факультета возможность использования программных библиотек Linpack и EISPACK без необходимости изучения Фортрана. Вскоре новый язык распространился среди других университетов и был с большим интересом встречен учеными, работающими в области прикладной математики. До сих пор в Интернете можно найти версию 1982 года, написанную на Фортране, распространяемую с открытым исходным кодом. Инженер Джон Литтл (англ. John N. (Jack) Little) познакомился с этим языком во время визита Клива Моулера в Стэндфордский университет в 1983 году. Поняв, что новый язык обладает большим коммерческим потенциалом, он объединился с Кливом Моулером и Стивом Бангертом (англ. Steve Bangert). Совместными усилиями они переписали MATLAB на C и основали в 1984 компанию The MathWorks для дальнейшего развития. Эти переписанные на С библиотеки долгое время были известны под именем JACKPAC. Первоначально MATLAB предназначался для проектирования систем управления (основная специальность Джона Литтла), но быстро завоевал популярность во многих других научных и инженерных областях. Он также широко использовался и в образовании, в частности, для преподавания линейной алгебры и численных методов.

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

Программы, написанные на MATLAB, бывают двух типов - функции и скрипты .

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

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

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

Основной особенностью языка MATLAB являются его широкие возможности по работе с матрицами, которые создатели языка выразили в лозунге «думай векторно» (англ. Think vectorized ).

Применение MATLAB.

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

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

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

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

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

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

    Разреженные матрицы - специальный класс данных пакета MATLAB, использующийся в специализированных приложениях.

    Целочисленная арифметика - выполнение операций целочисленной арифметики в среде MATLAB.

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

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

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

Независимые приложения . Программы MATLAB, как консольные, так и с графическим интерфейсом пользователя, могут быть собраны с помощью компоненты MATLAB Compiler в независимые от MATLAB исполняемые приложения или динамические библиотеки, для запуска которых на других компьютерах, однако, требуется установка свободно распространяемой среды MATLAB Compiler Runtime (MCR).

Внешние интерфейсы. Пакет MATLAB включает различные интерфейсы для получения доступа к внешним подпрограммам, написанным на других языках программирования, данным, клиентам и серверам, общающимся через технологии Component Object Model или Dynamic Data Exchange, а также периферийным устройствам, которые взаимодействуют напрямую с MATLAB. Многие из этих возможностей известны под названием MATLAB API.

COM. Пакет MATLAB предоставляет доступ к функциям, позволяющим создавать, манипулировать и удалять COM-объекты (как клиенты, так и серверы). Поддерживается также технология ActiveX. Все COM-объекты принадлежат к специальному COM-классу пакета MATLAB. Все программы, имеющие функции контроллера автоматизации (англ.Automation controller ) могут иметь доступ к MATLAB как к серверу автоматизации (англ.Automation server ).

.NET. Пакет MATLAB в Microsoft Windows предоставляет доступ к программной платформе.NET Framework. Имеется возможность загружать.NET сборки (Assemblies) и работать с объектами.NET классов из среды MATLAB. В версии MATLAB 7.11 (R2010b) поддерживается.NET Framework версий 2.0, 3.0, 3.5 и 4.0.

DDE. Пакет MATLAB содержит функции, которые позволяют ему получать доступ к другим приложениям среды Windows, равно как и этим приложениям получать доступ к данным MATLAB, посредством технологии динамического обмена данными (DDE). Каждое приложение, которое может быть DDE-сервером, имеет свое уникальное идентификационное имя. Для MATLAB это имя -Matlab .

Веб-сервисы. В MATLAB существует возможность вызывать методы веб-сервисов. Специальная функция создает класс, основываясь на методах API веб-сервиса.

MATLAB взаимодействует с клиентом веб-сервиса с помощью принятия от него посылок, их обработки и посылок ответа. Поддерживаются следующие технологии: Simple Object Access Protocol (SOAP) и Web Services Description Language (WSDL).

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

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

DLL. Интерфейс MATLAB, относящийся к общим DLL позволяет вызывать функции, находящиеся в обычных динамически подключаемых библиотеках, прямо из MATLAB. Эти функции должны иметь C-интерфейс.

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

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

Совместимые с MATLAB на уровне языка программирования :

Близкие по функциональности :

    APLи его потомки: напримерJ

    Python, при использовании пакета программPython(x,y), а также с такими библиотеками какNumPy,SciPyиmatplotlibреализует сходные возможности.

    IDL(англ.Interactive Data Language , интерактивный язык описания данных), когда-то был коммерческим конкурентом MATLAB, сейчас остается серьезным конкурентом во многих прикладных областях, хотя его доля на рынке программных продуктов для численного анализа резко упала.

    Fortress, язык программирования, созданный Sun Microsystems, является наследником Фортрана, но с ним не совместим.

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

2. Наборы инструментов пакета Matlab

В Matlab важная роль отводится специализированным группам программ, называемых toolboxes . Toolboxes - это всесторонняя коллекция функций (m-файлов), написанных на языке MATLAB для решения определенного класса задач. Компания Mathworks поставляет наборы инструментов, которые используются во многих областях, включая следующие:

    Цифровая обработка сигналов, изображений и данных : DSP Toolbox , Image Processing Toolbox , Wavelet Toolbox , Communication Toolbox , Filter Design Toolbox - наборы функций, позволяющих решать широкий спектр задач обработки сигналов, изображений, проектирования цифровых фильтров и систем связи.

    Системы управления : Control Systems Toolbox , µ-Analysis and Synthesis Toolbox , Robust Control Toolbox , System Identification Toolbox , LMI Control Toolbox , Model Predictive Control Toolbox , Model-Based Calibration Toolbox - наборы функций, облегчающих анализ и синтез динамических систем, проектирование, моделирование и идентификацию систем управления, включая современные алгоритмы управления, такие как робастное управление, H∞-управление, ЛМН-синтез,µ-синтези другие.

    Финансовый анализ : GARCH Toolbox , Fixed-Income Toolbox , Financial Time Series Toolbox , Financial Derivatives Toolbox , Financial Toolbox , Datafeed Toolbox - наборы функций, позволяющие быстро и эффективно собирать, обрабатывать и передавать различную финансовую информацию.

    Анализ и синтез географических карт, включая трехмерные : Mapping Toolbox .

    Сбор и анализ экспериментальных данных : Data Acquisition Toolbox , Image Acquisition Toolbox , Instrument Control Toolbox , Link for Code Composer Studio - наборы функций, позволяющих сохранять и обрабатывать данные, полученные в ходе экспериментов, в том числе в реальном времени. Поддерживается широкий спектр научного и инженерного измерительного оборудования.

    Визуализация и представление данных : Virtual Reality Toolbox - позволяет создавать интерактивные миры и визуализировать научную информацию с помощью технологий виртуальной реальности и языка VRML.

    Средства разработки : MATLAB Builder for COM , MATLAB Builder for Excel , MATLAB Builder for NET , MATLAB Compiler , Filter Design HDL Coder - наборы функций, позволяющих создавать независимые приложения из среды MATLAB.

    Взаимодействие с внешними программными продуктами : MATLAB Report Generator , Excel Link , Database Toolbox , MATLAB Web Server , Link for ModelSim - наборы функций, позволяющие сохранять данные таким образом, чтобы другие программы могли с ними работать.

    Базы данных : Database Toolbox - инструменты работы с базами данных.

    Научные и математические пакеты : Bioinformatics Toolbox , Curve Fitting Toolbox , Fixed-Point Toolbox , Fuzzy Logic Toolbox , Genetic Algorithm and Direct Search Toolbox , OPC Toolbox , Optimization Toolbox , Partial Differential Equation Toolbox , Spline Toolbox , Statistic Toolbox , RF Toolbox - наборы специализированных математических функций, позволяющие решать широкий спектр научных и инженерных задач, включая разработку генетических алгоритмов, решения задач в частных производных, целочисленные проблемы, оптимизацию систем и другие.

    Нейронные сети : Neural Network Toolbox - инструменты для синтеза и анализа нейронных сетей.

    Нечеткая логика : Fuzzy Logic Toolbox - инструменты для построения и анализа нечетких множеств.

    Символьные вычисления : Symbolic Math Toolbox - инструменты для символьных вычислений с возможностью взаимодействия с символьным процессором программы Maple.

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

Похожие статьи