- •А.К. Ефремов интегрированная
- •Рекомендовано редсоветом мгту им. Н.Э. Баумана
- •Isbn 5-7038-2301-3 мгту им. Н.Э. Баумана, 2003
- •1. Интерфейс системЫ matlab
- •1.1. Программная группа matlab
- •1.2. Командное окно matlab
- •1.2.1. Главное меню
- •1.2.2. Панель инструментов
- •1.3. Настройка параметров рабочего пространства
- •1.4. Справочная система matlab
- •2. Работа в режиме прямых вычислений
- •3. Базовые объекты системы matlab
- •3.1. Способы формирования матриц и векторов
- •3.2. Матричные операции и функции
- •3.3. Решение линейных уравнений
- •3.4. Вычисление корней полиномов
- •3.5. Обработка данных
- •4. Графические средства системы matlab
- •4.1. Графические объекты на плоскости
- •4.1.1. Функция plot
- •4.1.2. Функции fplot и ezplot
- •4.1.3. Другие графические функции
- •4.1.5. Обработка данных
- •4.2. Построение трехмерных поверхностей и тел
- •4.2.1. Основные графические функции
- •4.2.2. Дополнительные возможности
- •5. Основы программирования в среде matlab
- •5.1. Общие положения
- •5.2. Примеры простых программ
- •Xlabel('sin(X)') % Надпись по оси х
- •Xlabel('X') % Надпись по оси абсцисс
- •5.3. Программа с использованием внешней функции
- •5.4. Дополнительные программы
- •5.4.1. Дифференцирование функций
- •Xlabel('Число элементов массивов')
- •Xlabel('Число элементов массивов')
- •5.4.2. Функции eval, feval
- •Xlabel(‘t’), ylabel(‘y, dy/dt’)
- •Xlabel(‘y’), ylabel(‘dy/dt’)
- •6. Символьные вычисления
- •6.1. Определение символьной переменной
- •6.2. Основные функции
- •6.3. Математический анализ
- •6.3.1. Функция limit – предел функции одной переменной
- •6.3.2. Функция diff – дифференцирование функции одной переменной
- •6.3.3. Функция int – интегрирование функции одной переменной
- •6.3.4. Функция symsum – суммирование членов рядов
- •6.3.5. Функция taylor – разложение функции в ряд Тэйлора
- •6.4. Символьное решение уравнений
- •6.4.1. Решение отдельных уравнений
- •6.4.2. Решение систем уравнений
- •6.4.3. Решение дифференциальных уравнений
- •7. Пакет моделирования динамических систем simulink
- •7.1. Рабочая среда Simulink
- •7.2. Представление динамической системы в виде структурной схемы
- •7.3. Основные приемы работы в среде Simulink
- •7.4. Модель с ветвлением соединений
- •7. 5. Интегрирование дифференциального уравнения
- •Список литературы
- •Оглавление
- •Приложение
- •Разделы справочной системы
- •Программирования и отладки программ
- •Графические средства matlab
- •Символьные вычисления (symbolic math toolbox)
Приложение
В Приложении к учебно-методическому пособию приводятся только минимально необходимое студентам описание встроенных функций и внешних расширений MATLAB. В отдельном разделе содержится описание графических возможностей системы. Приведено содержание одного из специальных пакетов – Symbolic Math Toolbox (символьные вычисления).
Разделы справочной системы
matlab |
каталог системы MATLAB |
\general |
команды общего назначения |
\ops |
операторы и специальные символы |
\lang |
конструкции языка программирования и отладки программ |
\elmat |
простейшие матрицы и матричные операции |
\elfun |
элементарные математические функции |
\specfun |
специальные функции |
\matfun |
матричные функции – линейная алгебра |
\datafun |
анализ данных и преобразования Фурье |
\polyfun |
полиномиальные и интерполирующие функции |
\funfun |
сложные функции и решатели обыкновенных дифференциальных уравнений |
\sparfun |
разреженные матрицы |
\graph2d |
двухмерная графика |
\graph3d |
трехмерная графика |
\specgraph |
специальные графические средства |
\graphics |
дескрипторная графика |
\uitools |
средства создания графического пользовательского интерфейса |
\strfun |
строковые (символьные) функции |
\iofun |
Функции ввода-вывода |
\timefun |
установка текущего времени и даты |
\datatypes |
типы и структура данных |
\winfun |
файлы интерфейса операционной системы Windows |
\demos |
Примеры и демонстрационные программы |
simulink\simulink |
SIMULINK : функции анализа и создания моделей |
simulink\blocks |
библиотека блоков |
simulink\simdemos |
демонстрационные программы и примеры |
simulink\dee |
Редактор дифференциальных уравнений |
matlab\general - команды общего назначения
Справочные команды |
|
help |
справка в командной строке |
helpwin |
справка в отдельном окне |
helpdesk |
документация и диагностика в гипертекстовом формате |
demo |
демонстрационные программы |
ver |
версии системы MATLAB, пакета SimuLink и специальных пакетов |
whatsnew |
доступ к файлам Readme |
readme |
новые возможности MATLAB 5.x |
Управление рабочим пространством |
|
who |
список текущих переменных |
whos |
перечень текущих переменных в формате long |
clear |
удаление переменных и функций из памяти |
pack |
дефрагментация памяти |
load |
считывание данных из mat-файла |
save |
сохранение текущих переменных в mat-файле |
quit |
завершение сеанса работы в MATLAB |
Управление командами и функциями |
|
what |
список файлов в текущем каталоге |
type |
листинг m-файла |
edit |
редактировать текст m-файла |
lookfor |
поиск ключевого фрагмента во всех m-файлах |
which |
местоположение функций и файлов |
pcode |
создание Р-файла псевдокода |
inmem |
просмотр функций в рабочей памяти |
mex |
компиляция mex-функции |
Управление путями доступа |
|
path |
определить/назначить путь доступа |
addpath |
добавить каталог к пути доступа |
rmpath |
удалить каталог из пути доступа |
editpath |
отредактировать путь доступа |
Управление командным окном |
|
echo |
вывод команд script-файлов |
more |
постраничный вывод данных |
diary |
протокол рабочего сеанса |
format |
формат вывода данных |
clc |
очистка командного окна |
home |
переместить курсор в начало командной строки |
pause |
прервать выполнение |
Команды операционной системы |
|
cd |
изменить текущий каталог |
copyfile |
копировать файл |
pwd |
путь доступа к текущему каталогу |
dir |
содержание текущего каталога |
delete |
удалить файл |
getenv |
значение переменной окружения |
! |
выполнить команду операционной системы (см. punct) |
dos |
выполнить команду DOS |
unix |
выполнить команду ОС UNIX |
vms |
выполнить команду DCL OC VMS |
web |
вызвать Web-серверу |
computer |
определить тип используемого компьютера |
Отладка m-файлов |
|
debug |
список команд отладки |
dbstop |
задать контрольную точку |
dbclear |
удалить контрольную точку |
dbcont |
продолжить вычисления |
dbdown |
стек m-функций сверху вниз |
dbstack |
стек вызываемых функций |
dbstatus |
список контрольных точек |
dbstep |
выполнить команды отладки |
dbtype |
листинг m-файла с номерами строк |
dbup |
стек m-функций свнизу вверх |
dbquit |
завершить отладку |
Профилирование m-файлов |
|
profile |
профиль изменения m-файла во времени |
matlab\ops - операторы и специальные символы
+ |
Плюс. X + Y сложение матриц X and Y. X и Y должны быть одинакового размера, либо одна из матриц – скаляр (матрица 1х1). Скаляр можно прибавлять к любому объекту |
|
- |
Минус. X - Y – вычитание матрицы X из Y. X и Y должны быть одинакового размера, либо одна из матриц – скаляр. Скаляр можно вычитать из любого объекта |
|
* |
Символ умножения. X*Y - произведение матриц X и Y. На скаляр (матрица 1х1) можно умножать любую матрицу. В общем случае число столбцов Х должно быть равно числу строк Y |
|
.* |
Умножение массивов. X.*Y обозначает поэлементное умножение. X и Y должны иметь одинаковый размер (либо одна из них - скаляр) |
|
^ |
Возведение в степень. Z = X^y - X в степени y, если y - скаляр, a X - квадратная матрица. Если y > 1, возведение в степень производится многократным умножением. Выражение Z = X^Y, где X и Y - матрицы, ошибочно |
|
.^ |
Возведение массива в степень. Z = X.^Y означает поэлементное возведение в матричную степень. X и Y должны иметь одинаковые размеры (либо одна из них - скаляр) |
|
\ |
Обратная косая черта (левое деление, “обратный слэш”). A\B – матричное деление A на B, что примерно соответствует INV(A)*B , однако вычисляется иначе. Если А - матрица n x n, а В - вектор-столбец с n элементами или матрица с несколькими подобными столбцами, то X = A\B - решение уравнения A*X = B (ищется с помощью гауссового метода исключения). |
|
/ |
Правое деление (прямой “слэш”). B/A - матричное деление В на А, что примерно соответствует B*INV(A) , однако вычисляется иначе. Более строго B/A = (A'\B')'. См. \. |
|
./ |
Деление массива. B./A – поэлементное деление. A and B должны быть одинакового размера (либо одна из матриц - скаляр). |
|
kron – символ тензорного произведения (Кронекера). kron(X,Y) – тензорное произведение X и Y; это – большая матрица, получающаяся в результате всех возможных перемножений элементов X и Y. |
||
: |
Двоеточие. Используется для обозначения индексов, в цикле for и в некоторых других случаях. j:k – то же, что [j, j+1, ..., k] j:k – пусто, если j > k. j:d:k - то же, что [j, j+d, ..., j+m*d], где m = fix((k-j)/d) (fix – операция округления до ближайшего целого в сторону нуля). j:d:k - пусто, если d > 0 и j > k или если d < 0 и j < k. Двоеточие используют для исключения строк, столбцов или элементов векторов и матриц. A(:) - все элементы A как один столбец. A(:,j) - j-й столбец A A(j:k) = A(j),A(j+1),...,A(k) A(:,j:k) = A(:,j),A(:,j+1),...,A(:,k) и т.д. Использование двоеточия в цикле: for i = 1:n, for j = 1:n, A(i,j) = 1/(i+j-1); end end |
|
( ) |
Скобки – используют для указания приоритетных арифметических действий и аргументов функций. В скобки заключают индексы элементов векторов и матриц, причем в более общей форме, чем это обычно принято. Если X и V – векторы, то X(V) = [X(V(1)), X(V(2)), ..., X(V(n))]. Элементы V округляются до ближайших целых чисел и используются как индексы. Ошибка вычислений возникает в тех случаях, когда значение индекса меньше единицы или больше размера Х. Примеры: X(3) - третий элемент X. X([1 2 3]) - первые три элемента X. X(n:-1:1) располагает элементы в обратном порядке. |
|
[ ] |
Квадратные скобки - используют при формировании векторов и матриц. [6.9 9.64 sqrt(-1)] - вектор с тремя элементами, отделенными друг от друга пробелами; можно также использовать запятые: [6.9, 9.64, sqrt(-1)]. [1+i 2-i 3] содержит три элемента, а [1 +i 2 -i 3] - пять. [11 12 13; 21 22 23] - матрица 2х3 (точка с запятой отделяет первую строку). С помощью скобок [ ] можно объединять векторы и матрицы. [A B; ] допустимо, если число строк А равно числу строк В, а число столбцов А плюс число столбцов В равно числу столбцов С. A = [ ] создает пустую матрицу A. |
|
. |
Десятичная точка. 325/100, 3.25 и .325e1 – одинаковые числа |
|
. |
Операции с массивами. Поэлементные операции реализуются с помощью символов .* , .^ , ./ , .\ или .'. Например, C = A ./ B - матрица, элементы котjрой равны c(i,j) = a(i,j)/b(i,j). |
|
.. |
Надкаталог |
|
... |
Символ продолжения. В конце продолжаемой строки ставится не менее трех точек |
|
, |
Запятая. Используется для отделения индексов матриц и аргументов функций, а также для отделения операторов |
|
; |
Точка с запятой. Используется в квадратных скобках для обозначения строк матриц, а также для подавления вывода результата на экран. |
|
% |
Символ комментария. Текст после символа игнорируется интерпретатором, но выводится справочной системой (HELP). |
|
! |
Восклицательный знак. После этого символа можно набирать команду операционной системы |
|
' |
Символ транспонирования. X' - комплексно сопряженное транспонирование матрицы X; X.' не является таковым. |
|
' |
Кавычка. 'any text' - вектор, элементы которого - коды ASCII для соответствующих символов. Текстовая кавычка отмечается '', например 'Don''t forget.' |
|
= |
Символ присваивания. B = A - элементы В становятся равными соответствующим элементам А. |
|
<, <=, >, >=, ==, ~= - операторы отношений. A < B - поэлементное сравнение A и B; возвращается матрица того же размера, элементы которой равны либо единице (если соотношение выполняется), либо нулю (если нет). А и В должны быть одинакового размера (либо одна из матриц - скаляр). |
||
& |
Логическое И (AND). A & B - матрица, элементы которой равны единице, если соответствующие элементы А и В положительны, и нулю, если хотя бы один из сравниваемых элементов равен нулю. А и В должны быть одинакового размера (либо одна из матриц - скаляр). |
|
| |
Логическое ИЛИ (OR). A | B - матрица, элементы которой равны единице (если А или В содержит ненулевой элемент), либо нулю (если оба элемента равны нулю). А и В должны быть одинакового размера. |
|
~ |
Логическое дополнение НЕ (NOT). ~A - матрица, элементы которой равны единице (если А имеет нулевые элементы) или нулю (если А содержит ненулевые элементы). |
|
XOR Исключительное ИЛИ. XOR(A,B) =1, если элементы А или В (но не одновременно) не равны нулю. |
||
Логические операторы |
||
exist |
Проверяет, определены ли переменные или функции (задаются как строки): exist(‘A’) = 0, если ‘A’ не существует; 1 – если ‘А’ - одна из используемых переменных; 2 - если ‘A’ - имя m-файла; 3 - если ‘A’ - имя mex-файла; 4 - если ‘A’ - функция SIMULINK; 5 – если ‘A’ - встроенная функция MATLAB. Например, exist(‘exist’)=5. |
|
any |
Истина (т.е. any=1), если истинным (ненулевым) является хотя бы один элемент вектора |
|
all =1 |
Если не равны нулю все элементы вектора |
|
find |
Найти индексы ненулевых элементов |
|
isnan =1 |
Если результат неопределенный (NaN) |
|
isinf = 1 |
Если значения элементов бесконечно велики |
|
finite = 1 |
Если элементы имеют конечные значения |
|
isempty = 1 |
Если матрица пустая |
|
issparse = 1 |
Если матрица разрежена |
|
isstr = 1 |
Если строка текстовая |
|
isglobal = 1 |
Если переменная является глобальной |
matlab\lang - конструкции языка