
- •2.2.7. Использование функций.
- •2.2.7.1. Вывод справки по функциям.
- •2.2.8. Сообщения об ошибках и их исправление
- •2.2.9. Ввод векторов и матриц.
- •2.2.9.1.Обращение к элементам вектора.
- •2.2.9.2. Обращение к элементам матриц.
- •2.2.9.3.Размер и размерность массива.
- •2.2.10. Матричные операции над векторами и матрицами.
- •2.2.10.1. Векторное и скалярное произведения векторов.
- •2.2.10.2.Вычисление определителя и обратной матрицы.
- •2.2.10.3. Возведение матрицы в степень.
- •2.2.10.4. Еще некоторые действия над матрицами.
2.2.10.1. Векторное и скалярное произведения векторов.
Умножение двух векторов определено в математике только для векторов одинакового размера и лишь тогда, когда один из векторов сомножителей является строкой, а второй – столбцом. Иначе говоря, если векторы Х и У являются строками, то математический смысл имеют только две формы умножения этих векторов: U=X*Y' и V=X'*Y. Причем в первом случае результатом будет скалярное произведение векторов Х и У (число), а во втором – квадратная матрица. Пример:
>> x=[1 2 3]; y=[4 5 6];
>> v=x*y'
v =
32
>> v=x'*y
v =
4 5 6
8 10 12
12 15 18
Векторное произведение. Для трехкомпонентных векторов в MATLAB существует функция cross, которая позволяет найти векторное произведение двух векторов. Пример:
>> x =[1 2 3]; y =[4 5 6];
>> cross(x,y)
ans =
-3 6 -3 . Это вектор, перпендикулярный исходным векторам.
Скалярное произведение двух векторов возвращает функция dot :
>> s=dot(x,y)
s =
32
ПРИМЕЧАНИЕ: скалярное произведение также можно найти с помощью функции sum и знака поэлементного умножения векторов:
>>sum(x.*y)
ans=
32
Функция sum определяет для матриц суммы столбцов, а для векторов – сумму всех элементов. Скалярное произведение равно произведению длин векторов на КОСИНУС угла между ними.
Длины векторов можно вычислить следующим образом:
len1 = sqrt(sum(x.*x)) ;
len2 = sqrt(sum(y.*y)). Здесь len1 = 3.7417 ; len2 = 8.7750 .
Угол между векторами определяется на основе вычисления скалярного произведения:
>>phi = acos(sum(x.*y) / (len1*len2))
phi=
1.1422
2.2.10.2.Вычисление определителя и обратной матрицы.
Функция det(B) – вычисляет определитель│B│ квадратной матрицы B.
>> d=det(B)
d =
-6
Функция обращения матрицы – inv(B) – вычисляет матрицу, обратную заданной матрице B. Исходная матрица B должна быть квадратной, и ее определитель не должен быть равен нулю. Пусть B = .
Пример:
>> B1=inv(B)
B1 =
-0.6667 0.3333 -1.1667
0.3333 0.3333 0.3333
-0.3333 -0.3333 0.1667
Матрица, обратная матрице В, обозначается В-1 и удовлетворяет соотношениям (В-1)-1 = B, ВВ-1 = В-1В = E, где E – единичная матрица того же порядка n, что и B.
Проверка правильности результата выполнения операции обращения матрицы B:
>> disp(inv(B1))
-1.0000 -2.0000 -3.0000
1.0000 3.0000 1.0000
0 2.0000 2.0000
В результате получена матрицу B, т.е. соотношение (В-1)-1 = B выполняется.
>> disp(B*B1)
1.0000 0 0
-0.0000 1.0000 -0.0000
0 0 1.0000
>> disp(B1*B)
1.0000 0 0
0 1.0000 0
0 -0.0000 1.0000
В результате получена единичная матрица Е, т.е. соотношения ВВ-1 = В-1В = E также выполняются.
2.2.10.3. Возведение матрицы в степень.
Примеры возведения квадратной матрицы в степень
>> disp(B^2)
-1 -10 -5
2 9 2
2 10 6
>> disp(B^-1)
-0.6667 0.3333 -1.1667
0.3333 0.3333 0.3333
-0.3333 -0.3333 0.1667
При возведении матрицы в целую положительную степень происходит матричное умножение матрицы на саму себя столько раз, каков показатель степени, в отличие от поэлементного возведения матрицы в степень при помощи оператора .^. Для отрицательных степеней вычисляется степень обратной матрицы.
Возможно использование дробных степеней. Пример извлечения из матрицы B кубического корня D=.
>> D=B^(1/3)
D =
0.5355 + 0.7217i -0.3647 - 0.0000i -0.7244 + 0.7217i
0.2356 - 0.2165i 1.4422 0.2356 - 0.2165i
-0.0355 + 0.1443i 0.3647 1.2244 + 0.1443i
Проверка полученного результата возведением в куб:
>> D^3
ans =
-1.0000 + 0.0000i -2.0000 - 0.0000i -3.0000 + 0.0000i
1.0000 - 0.0000i 3.0000 - 0.0000i 1.0000 - 0.0000i
0.0000 + 0.0000i 2.0000 + 0.0000i 2.0000 - 0.0000i
>> real(ans)
ans =
-1.0000 -2.0000 -3.0000
1.0000 3.0000 1.0000
0.0000 2.0000 2.0000
Соотношение D3 = B выполняется, т.е. кубический корень D= найден верно.