- •Некоторые сведения о пакете Matlab.
- •Данные в ml
- •Матрицы
- •Операции в ml
- •Логические операции:
- •Приоритет операций в ml:
- •Тригонометрические функции.
- •Особые матрицы
- •Операции с векторами и матрицами.
- •Выполнение операций над матрицами.
- •Специальные функции для матриц.
- •Действия с элементами матрицы
- •Анализ данных (для постолбцовой обработке матриц)
- •Действия с полиномами (многочленами)
- •Графика в ml
- •Диаграммы и гистограммы.
- •Круговые диаграммы.
- •Программирование в ml
- •Операторы языка
- •Операторы ввода/вывода
- •Операторы цикла и условные операторы.
- •Операторы цикла.
- •Оператор цикла с параметром:
- •Оператор цикла с предусловием:
- •Условный оператор.
- •Оператор переключения (выбора).
- •Функция eval
- •Функция menu.
- •Файлы функции
- •Вычисление интеграла.
- •Нахождение нулей функции.
- •Решение систем дифференциальных уравнений.
Операции с векторами и матрицами.
В ML операции с векторами и матрицами подразделяются на два типа: поэлементные операции и векторные операции, которые соответствуют правилам векторного исчисления в математике.
Помимо преобразования векторов с помощью математических функций, в ML можно выполнять поэлементные преобразования векторов с помощью арифметических операторов. Следует помнить, что операции поэлементного преобразования возможны только над векторами одного размера и типа. Оператор поэлементного умножения это совокупность знаков точка и звездочка, записанных без пробела (.*).
<<A=[2 5 7];
<<B=[1 2 3]];
<<C=A.*B
C=
2 10 21
Оператор поэлементного деления и возведения в степень записываются соответственно, как ‘’./’’ ‘’.^’’.
Векторное исчисление предусматривает следующие операции над векторами: сложение и вычитание векторов одного типа, транспонирование векторов, умножение вектора на вектор (при условии, что они одного размера и один из них является вектор - столбцом, а другой – вектор – строкой или наоборот), а также скалярное и векторное произведение векторов.
Если первый вектор – строка, а второй столбец, то результат умножения – число.
<<A=[1 2 3];
<<B=[1;2;3]:
<<A*B
ans=
44
Если первый вектор – столбец, а второй строка, то результат умножения – квадратная матрица.
<<B*A
ans=
2 6 10
4 12 20
6 18 30
Для транспонирования векторов применяется апостроф.
<<A=[1 2 3];
<<B=A’
B=
1
2
3
Выполнение операций над матрицами.
-
Транспонирование матрицы. Операция обозначается символом ‘(апостроф).
>> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> B=A'
B =
1 4 7
2 5 8
3 6 9
-
Сложение и вычитание матриц.
Размерность матриц должна быть одинаковой. При выполнении этих операций производится поэлементное сложение и вычитание.
>> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> B=[1 4 7;2 5 8;3 6 0]
B =
1 4 7
2 5 8
3 6 0
>> C=A+B
C =
2 6 10
6 10 14
10 14 9
>> D=A-B
D =
0 -2 -4
2 0 -2
4 2 9
-
Умножение матриц.
A(n, m) * B(m, k) → C(n, k)
При умножении должно выполняться условие: число столбцов матрицы A равно числу строк матрицы B.
Элементы результирующей матрицы вычисляются по правилу: элементы строки матрицы A построчно умножаются на элементы столбца матрицы B, затем складываются.
>> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> B=[1 4 7;2 5 8;3 6 0]
B =
1 4 7
2 5 8
3 6 0
>> C=A*B
C =
14 32 23
32 77 68
50 122 113
Создать 2 матрицы.
1-у единичную, 2-ю А=[1 2 3; 4 5 6; 7 8 9]
>> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
>> B=A*eye(3)
B =
1 2 3
4 5 6
7 8 9
>> C=A.*eye(3)
C =
1 0 0
0 5 0
0 0 9
Умножим элементы матрицы А на 2.
В результате получим матрицу, в которой каждый элемент получается умножением элемента исходной матрицы на это число.
>> A=[1 2 3;4 5 6;7 8 9];
>>C = A * 2
C =
2 4 6
8 10 12
14 16 18
Если надо, чтобы действия производились поэлементно, то ставится точка перед знаком операции.
Пусть заданы 2 матрицы C и D одинакового размера.
>> C=[1 2 3;4 5 6;7 8 9];
>> D=[2 3 4; 1 2 3; 4 5 6];
>> Y=C.*D
Y =
2 6 12
4 10 18
28 40 54
-
Деление(правое и левое)
В ML имеется две разновидности операции деления матриц – правое деление (/) и левое деление (\)
2/3 в ML трактуется как обычная дробь 2/3.
2\3 соответствует дроби 3/2. Так происходит с числами. С векторами и матрицами происходит иначе.
Пусть A — матрица, а Х — вектор.
А * Х = В и Х * А = В — разные уравнения.
Для решения уравнения Х * А = В- используется обычное деление
Х = А / В = (В *А-1)
Для решения уравнения А * Х = В - используется обратное деление
Х = А \ В = (А-1 * В)
Решение системы линейных уравнений
2x1 + 3x2 = 11
3x1 – 4x2 = 8
A — матричные коэффициенты в левой части.
B — вектор правых частей.
>> A=[2 3;3 -4];
>> B=[11 8 ];
>> C=A\B'
C =
4.0000
1.0000
Проверка
>> A*C
ans =
11.0000
8.0000