
- •Основы работы в matlab. Векторы и матрицы.
- •Введение
- •Среда matlab
- •1.1. Основный окна Matlab и выполнение элементарных вычислений
- •1.2. Редактирование и отладка м-файлов
- •Переменные в matlab
- •3. Массивы в matlab
- •4. Задачи линейной алгебры (векторы и матрицы)
- •1. Функции операций над векторами:
- •Функции определения матриц и операций над ними:
- •Функции, реализующие численные алгоритмы решения задач линейной алгебры:
- •Решение некоторых задач линейной алгебры
- •4. Решение некоторых задач алгебры матриц
- •5. Решение систем линейных уравнений
- •6. Собственные значения и собственные векторы
- •7. Норма и число обусловленности матрицы
- •8. Задания для самостоятельного решения
Переменные в matlab
В любой области MATLAB можно определить переменные, а затем использовать в выражениях.
Любая переменная до использования в формулах и выражениях должна быть определена. Для определения переменной необходимо набрать ее имя, символ «=» и значение переменной. Здесь знак равенства – это оператор присваивания, действие которого не отличается от других языков программирования.
Имя переменной не должно совпадать с именами встроенных процедур, функций и встроенных переменных системы может содержать до 19 символов. Система различает большие и малые буквы в именах переменных. То есть ABC, abc, Abc, aBc – это имена разных переменных.
Выражение в правой части оператора присваивания может быть числом, арифметическим выражением, строкой символов или символьным выражением. Отметим, что если речь идет о символьной или строковой переменной, то выражение в правой части оператора присваивания следует брать в одинарные кавычки.
Несколько примеров присвоения значений переменным приведено в листинге 1. Обратите внимание, что если символ «;» в конце выражения отсутствует, то в качестве результата выводится имя переменной и ее значение. Наличие символа «; » передает управление следующей командной строке. Это позволяет использовать имена переменных для записи промежуточных результатов в память компьютера.
Листинг 1.
>> а=2.3
а =
2.3000
» b=-34.7
b =
-34.7000
» х-1;у=2;
» z=(х+у)-а/Ь
z =
3.0663
>>%------------------------------------------------
>>%Сообщение об ошибке - переменная с не определена
» с+3/2
??? Undefined function or variable 'с'.
>>%------------------------------------------------
»%Определение символьной переменной
» с='а'
c=
а
»%Определение строковой переменной
» h='мама мыла раму'
h =
мама мыла раму
Вы обратили внимание, что если команда не содержит знака присваивания, то по умолчанию вычисленное значение присваивается специальной системной переметим ans. Причем полученное значение можно использовать в последующих вычислениях, но важно помнить, что значение ans изменяется после каждого вызова команды без оператора присваивания.
Листинг 2.
» 25.7-3.14
ans =
22.5600
» %3начение системной переменной равно 22.5600
» 2*ans
ans =
45.1200
» %3начение системной переменной равно 45.1200
» х=аns^0.3
х =
3.1355
» %3начение системной переменной не изменилось и равно 45.1200
» ans
45.1200
Кроме переменной ans в MATLAB существуют и другие системные переменные:
ans - результат последней операции без знака присваивания;
i, j - мнимая единица (
);
pi - число п (3.141592653589793);
inf - машинный символ бесконечности (∞);
NaN - неопределенный результат (0/0, ∞/∞, 1∞ и т.п.);
realmin - наименьшее число с плавающей точкой (2.2251е - 308);
realmax - наибольшее число с плавающей точкой (1.7977е + 308).
Все перечисленные переменные можно использовать в математических выражениях.
3. Массивы в matlab
Для работы со множеством данных оказывается удобным использовать массивы.
Например, можно создать массив для хранения числовых или символьных данных. В этом случае вместо создания переменной для хранения каждого данного достаточно создать один массив, где каждому элементу будет присвоен порядковый номер. Таким образом, массив - множественный тип данных, состоящий из фиксированного числа элементов. Как и любой другой переменной, массиву должно быть присвоено имя.
Переменную, представляющую собой просто список данных, называют одномерным массивом или вектором. Для доступа к данным, хранящимся в определенном элементе массива, необходимо указать имя массива и порядковый номер этого элемента, называемый индексом.
Если возникает необходимость хранения данных в виде таблиц, в формате строк и столбцов, то необходимо использовать двумерные массивы (матрицы). Для доступа к данным, хранящимся в таком массиве, необходимо указать имя массива и два индекса: первый должен соответствовать номеру строки, а второй номеру столбца, в которых хранится необходимый элемент.
Значение нижней границы индексации в МАТLАВ равно единице. Индексы могут быть только целыми положительными числами или нулем.
Самый простой способ задать одномерный массив в МАТLАВ имеет вид:
[nаmе]=
где nаmе - имя переменной, в которую будет записан сформированный массив, ХN - значение первого элемента массива, Хk - значение последнего его элемента, dx- шаг, с помощью которого формируется следующий элемент массива, то есть значение второго элемента составит Xn+dx, третьего Xn+dx+dx и так далее до Xk.
Если параметр dx в конструкции отсутствует:
[nаmе]=
это означает, что по умолчанию он принимает значение, равное единице, то есть каждый следующий элемент массива равен значению предыдущего плюс один.
Примеры создания массивов приведены в листинге 3. Обратите внимание, что переменную, заданную как массив, можно использовать в арифметических выражениях и в качестве аргумента математических функций. Результатом работы таких операторов являются массивы.
Листинг 3.
>>Xn=-3.5;dX=1.5;Xk=4.5;
>> X=Xn:dx:Xk
X=-3.5000 -2.0000 -0.5000 1.0000 2.5000 4.0000
>> Y=sin(X/2)
Y= -0.9840 -0.8415 -0.2474 0.4794 0.9490 0.9093
>> A=0:5
A=
0 1 2 3 4 5
ans=
0 1 2 3 4 5
>> ans/2+pi
ans=
3.1416 3.6416 4.1416 4.6416 5.1416 5.6416
Еще один способ задания векторов и матриц в МАТLАВ - это их поэлементный ввод.
Так, для определения вектор-строки следует ввести имя массива, а затем, после знака присваивания, в квадратных скобках через пробел или запятую перечислить элементы массива (листинг 4).
Листинг 4.
>> V=[1 2 3 4 5]
V=
1 2 3 4 5
>> W=[1.1,2.3,-0.1,5.88]
W=
1.1000 2.3000 -0.1000 5.8800
Элементы вектора-столбца вводятся через точку с запятой.
Листинг 5.
>> X=[1;2;3]
X=
1
2
3
Обратиться к элементу вектора можно, указав имя массива и порядковый номер элемента в круглых скобках.
Листинг 6.
>> W=[1.1,2.3,-0.1,5.88]
>> W=W(1)+2*(3)
ans=
0.9000
Ввод элементов матрицы также осуществляется в квадратных скобках, при этом элементы строки отделяются друг от друга пробелом или запятой, а сами строки разделяются между собой точкой с запятой. Обратиться к элементу матрицы можно, указав после имени матрицы в круглых скобках через запятую номер строки и столбца, на пересечении которых расположен элемент. Примеры задания матриц и обращение к их элементам показаны в листинге 7.
Листинг 7.
>> A=[1 2 3;4 5 6;7 8 9]
A=
2 3
4 5 6
7 8 9
>> A(1,2)^A(2,2)/A(3,3)
ans=
3.5556