Общие сведения о программе MATLAB
Система MATLAB (сокращение от MATrix LABoratory – МАТричная ЛАБоратория) разработана фирмой MathWorks, Inc. и является интерактивной системой для выполнения инженерных и научных расчетов, ориентированной на работу с массивами данных. Основным объектом системы MATLAB является прямоугольный числовой массив, допускающий комплексные элементы и ввод матриц без явного указания их размеров. Демонстрация возможностей системы осуществляется командой demo.
После запуска программы MATLAB на экране появляется символ «п», правее которого располагается рабочее поле программы для ввода команды. Набранная команда вводится клавишой «Enter». Вводимые в процессе работы программы команды сохраняются в памяти и могут быть вызваны в рабочее поле клавишами: «стрелка вверх» – вызов предыдущей команды, «стрелка вниз» – вызов следующей команды. Помещенную в рабочее поле команду можно редактировать клавишами: «стрелка влево» – перемещение курсора на одну позицию влево, «стрелка вправо» –перемещение курсора на одну позицию вправо, «Delete» –удаление текущего символа, «Backspace» – удаление символа слева от курсора. Клавиши «Esc» и «Ins» соответственно отменяют текущую команду и переключают режимы – режим вставки и режим замены символа.
Программу для решения какой-либо задачи в среде MATLAB можно задать с помощью m-файла (файла вида *.m). Текст программы следует набрать с помощью какого-либо редактора и записать в директорию программы MATLAB. Например, команда !edit name.m позволяет встроенному редактору Norton Commander создавать и редактировать m-файл из самой системы MATLAB. Составленная программа начнет выполнятся при наборе на экране после символа "п" имени m-файла.
Справочная информация о функциях, командах и символах, применяемых в программе MATLAB может быть получена с помощью команды help. Например, help qr, help :, help [, help if и т.д. Командой diary *.* (где *.* – имя файла) можно сохранить все, что было на экране во время работы с программой. Выход из данного режима осуществляется командой diary off. Подробнее смотрите справку командой help diary.
Выход из программы осуществляется при помощи выполнения в командной строке директив «quit» или «exit».
I.1. Операторы
Задание вектора с элементами, отличающимися друг от друга на постоянное значение осуществляется командой x=1:0.1:10;
1. Циклы
Цикл for
for i=1:1:10,
тело цикла;
end;
Также возможно задание счетчика в виде x=0:0.1:1 или x=0:-0.1:-10.
Цикл while
while (условие = =, >, <, > =, < =),
тело цикла
end;
Возможны вложенные циклы
2. Условные операторы
Условный оператор if
if (условие ==,>,<,>=,<=),
тело оператора при выполнении условия
end;
Условный оператор elseif
elseif (условие=,>,<,>=,<=),
тело оператора при выполнении условия
else
тело оператора при невыполнении условия
end;
I.2. Работа с матрицами
1. Ввод матрицы.
Матрицу можно обозначить следующим образом A, B, AZ, a, X и т.д. (в качестве второго или последующих символов можно использовать цифры). Ввод матрицы осуществляется следующими способами:
A=[1 2 3; 4 5 6; 7 8 9]
или
A=[1 2 3;
4 5 6;
7 8 9].
Элементы матрицы находятся внутри скобок «[»и «]», а строки разделяются символом «;». Набрав b=[14 9 92], получим вектор-строку, а введя c=[14;9;92], сформируем вектор-столбец. Скалярную величину можно ввести равенством c=20.
Введенная матрица сохраняется в памяти до выхода из программы MATLAB или до переопределения матрицы. Для вывода матрицы на экран достаточно ввести символ, ее обозначающий. Удалить из памяти все величины, с которыми проводились вычисления можно командой «clear». Команда «clc» очищает рабочее поле команд. Матрицу размерности mxn можно рассматривать как двумерный массив A(m,n). Изменить значение любого элемента матрицы можно вводом соответствующего равенства. Например, введя A(2,3)=11, элемент приведенной выше матрицы A, стоящий во второй строке и третьем столбце, заменим на 11.
2. Операции над матрицами.
Пусть A и B – матрицы одинаковой размерности mxn, а с – скалярная величина. Тогда команды A+B, A-B и c*A приводят соответственно к вычислению матрицы mxn, которая является суммой, разностью матриц A и B или произведением числа c на A.
Если A – матрица mxn, B – матрица nxk, то команда R=A*B приводит к вычислению матрицы размерности mxk, полученная по правилу перемножения матриц, т.е. элемент R(i,j) матрицы R равен скалярному произведению i-ой строки матрицы A на j-ый столбец матрицы B.
Транспонированную матрицу к матрице A получают командой A'. Введя равенство B=A' можно получить матрицу B, транспонированную по отношению к A. Например, имея вектор-строку b=[1 2 3], можем найти квадрат его нормы командой r=b*b', а норму – командой sqrt(b*b'), где функция sqrt означает извлечение квадратного корня.
Возможны кроме того поэлементыне операции над матрицами одинаковой размерности – умножение «.*» и деление «./». Команда R=A.*B приводит к вычислению матрицы R, каждый элемент которой представляет собой произведение элементов матриц A и B с одинаковыми номерами. Аналогично вычисляется R=A./B, т.е. для каждого элемента матрицы R – r(i,j)=a(i,j)/b(i,j). Возведение в квадрат каждого элемента матрицы A выполняется командой «.^» – например поэлементное возведение в квадрат матрицы A выполняется командой R=A.^2.
Для работы с матрицами используется символ «:», имеющий следующий смысл: A(:,j) означает j-ий столбец матрицы A, а A(i,:) – i-ую строку этой матрицы. Например, команда A(1,:)=b разместит в 1-ой строке матрицы A вектор b (размерности строки матрицы A и вектора b должны быть равными).
В применении к индексам запись j:k означает множество [j,j+1,...,j+k] при j<k и пустое множество при j>k. Например, имея вектор b=[7 8 5 4 6 9 1], командой r=b(2:5) получим вектор r=[8 5 4 6].
Символы «[» и «]» применяются при формировании матрицы. Как это делается при вводе матрицы было описано выше. Однако их можно применять и для создания новой матрицы с помощью имеющихся. Пусть A – матрица размерности mxn1, B – матрица mxn2 и C – матрица m1x(n1+n2), тогда команда R=[A B;C] приведет к формированию матрицы R размерности (m+m1)x(n1+n2). Удалить i-ую строку матрицы можно командой A(i,:)=[ ]. После выполнения этой команды исходная матрица размерности mxn становится матрицей (m-1)xn. Команда A(:,j)=[ ] удаляет j-ий столбец и матрица размерности mxn становится матрицей mx(n-1).
3. Разложение матриц
LU-разложение матрицы A можно получить с помощью команды [L,U]=lu(A), где матрицы L и U являются результатом вычислений. Если процесс вычислений осуществляется с выбором ведущего элемента, то применение команды: [L,U,P]=lu(A) позволяет получить и матрицу перестановок P такую, что P*A=L*U.
QR-разложение матрицы A получается командой: [Q,R]=qr(A). Аналогично, команда [Q,R,E]=qr(A) выдает в E матрицу перестановок, при этом A*E=Q*R.
Форма Хессенберга матрицы A получается применением команды [P,H]=hess(A), при этом выполняется соотношение A=P*H*P'.
