Мета роботи: оволодіння навиками розв’язування задач з векторної та лінійної алгебри за допомогою СКМ MATLAB.
Хід роботи.
- Запустити електронний навчальний посібник.
- За допомогою навчального посібника виконати наступні приклади.
Приклад 2.1. Створити за допомогою спеціальних символів вектор-рядок і вектор-стовпець (для економії місця вектор-стовпець часто записується як рядок з символом Т, який позначає транспонування).
Розв’язування:
>> A=[4 5 6],B=[2;3;-2]
А =
4 5 6
B =
-2
Приклад 2.2. Створити за допомогою стандартних функцій вектор-стовпець і вектор-рядок .
Розв’язування:
>> A=vertcat (2,3,4),B=horzcat(2,4,7)
А =
B =
2 4 7
Приклад 2.3. Створити за допомогою спеціальних символів вектор та змінити значення координати а2 на -5.
Розв’язування:
>> A=[2 5 8],A(2)=-5
А =
2 5 8
А =
2 -5 8
Пример 2.4. Створити за допомогою спеціальних символів вектор та обчислити .
Розв’язування:
>> x=[1 2 3 4];
>> y=sind(x)
y =
0.8415 0.9093 0.1411 -0.7568
Приклад 2.5. Перевірити властивості суми векторів, використовуючи вектори , , .
Розв’язування:
>> A=[1 1 1];B=[1 2 3];
C=[2 5 8];
>> isequal (A+B,B+A),isequal ((A+B)+C,A+(B+C))
ans =
ans =
Приклад 2.6. Перевірити властивості множення вектора на число за допомогою векторів і та чисел , , .
Розв’язування:
>> A=[1 2 3];B=[6 5 4];L=5;L1=2;L2=3;
>> A*L+B*L,isequal((A+B)*L,ans)
ans =
35 35 35
ans =
>> (L1*L2)*A,isequal(ans,L1*(L2*A))
ans =
6 12 18
ans =
Приклад 2.7. Обчислити довжину вектора .
Розв’язування:
>> A=[2 5 8],sqrt(sum(A.*A))
A =
2 5 8
ans =
9.6437
Приклад 2.8. Обчислити одиничний вектор , що має однаковий напрям з вектором . Перевірити, чи є обчислений вектор одиничним.
Розв’язування:
>> a=[1 2 3];a0=a/sqrt(sum(a.*a))
a0 =
0.2673 0.5345 0.8018
>> sqrt(sum(a0.*a0))
ans =
Координати орта вектора дорівнюють (0.2673; 0.5345; 0.8018).
Приклад 2.9. Обчислити кути нахилу вектора до осей координат.
Розв’язування:
>> A=[2 5 -1],acos(A./sqrt(sum(A.*A)))*180./pi
A =
2 5 -1
ans =
68.5833 24.0948 100.5197
sum(cos(ans./180*pi).^2)
ans = 1
Кути нахилу вектора α = 68.58°, β = 24.09° і γ=100.52°. При обчисленні кутів нахилу використовувалися оператор поелементного ділення «./». При обчисленні суми квадратів напрямних косинусів використовувався оператор поелементного піднесення до степеня «.^». В результаті сума квадратів направляючих косинусів дорівнює одиниці.
Приклад 2.10. Обчислити роботу, що виконується при прикладанні сили в діякій точці, що рухається прямолінійно, переміщуючись із положення в положення .
Розв’язування:
>> A=[2 -3 5];B=[3 -2 -1];
>> АВ=B-A
АВ =
1 1 -6
>> F=[3 -2 -5];
>> [sum(F.*АВ),dot(F,АВ)]
ans =
31 31
Геометричний зміст скалярного добутку: якщо скалярний добуток дорівнює нулю, то два ненульові вектори ортогональні (перпендикулярні). Якщо скалярний добуток більший нуля, то кут між векторами гострий, якщо менший нуля – тупий.
Приклад 2.11. Обчислити скалярний добуток двох векторів і .
Розв’язування:
>> A=[1 4 7];B=[2 5 8];
[sum(A.*B),dot(A,B)]
ans =
78 78
Скалярний добуток двох векторів і , заданих в координатній формі, обчислюється за допомогою стандартної функції dot() абоза допомогою стандартної функції sum() і оператора поелементного множення «. *».
Приклад 2.12. Обчислити кут між векторами і .
Розв’язування:
>> A=[-1 2 3];B=[1 2 1];
phi=acos(dot(A,B)./(sqrt(sum(A.*A))*
sqrt(sum(B.*B))))
phi =
0.8571
phi=phi*180/pi
phi =
49.1066
Отже, кут між векторами і дорівнює 49.11° або 0.8571 радіан.
Приклад 2.13. Обчислити векторний добуток векторів і .
Розв’язування:
>> A=[-1 2 3];B=[1 2 1];C=cross(A,B)
C =
-4 4 -4
Приклад 2.14. Сила прикладена до точки . Знайти момент цієї сили відносно точки .
Розв’язування:
>>f=[1 -2 4];m=[1 2 3];a=[3 2 -1];
>> am=m-a
am =
-2 0 4
>> mom=cross(am,f)
mom =
8 12 4
Приклад 2.15. Знайти мішаний добуток векторів , і , де вектори і перемножуються векторно, а їх результат на вектор - скалярно.
Розв’язування:
>> A=[3 0 0];B=[3 5 0];C=[0 0 2];
ABC=sum(A.*cross(B,C))
ABC =
Приклад 2.16. У тетраедрі з вершинами в точках , , і обчислити площу тетраедра та трикутника АВС.
Розв’язування:
>> a=[1 1 1];b=[2 0 2];c=[2 2 2];d=[3 4 -3];
>> ab=b-a
ab =
1 -1 1
>> ac=c-a
ac =
1 1 1
>> ad=d-a
ad =
2 3 -4
>> abc=sum(ad.*cross(ab,ac))
abc =
-12
>> V=1/6*abs(abc)
V =
>> c=cross(ab,ac)
c =
-2 0 2
>> d=sqrt(sum(c.*c))
d =
2.8284e+000
>> format short
>> d/2
ans =
1.4142
Приклад 3.1. Створити матрицю А за допомогою спеціальних символів, а матрицю В – за допомогою стандартних функцій.
.
Розв’язування:
>> A=[2.8 2.8 28;1 1 1;1.5 1.5 1.5]
A =
2.8000 2.8000 28.0000
1.0000 1.0000 1.0000
1.5000 1.5000 1.5000
>> B=vertcat(horzcat(2.8,1,1.5),horzcat (2.8,1,1.5),...
horzcat(2.8,1,1.5))
B =
2.8000 1.0000 1.5000
2.8000 1.0000 1.5000
2.8000 1.0000 1.5000
Приклад 3.2. Створити матрицю А з прикладу 3.1 і змінити значення елементів, що розташовані на перетині першого рядка і другого стовпця, а також другого рядка і третього стовпця, на 3 і на 5 відповідно. До першого елемента звернутися за допомогою двох індексів, а до другого – за допомогою одного індексу.
Розв’язування:
>> A=[2.8 2.8 28;1 1 1;1.5 1.5 1.5];
>> А(1,2)=3;A(7)=5
А =
2.8000 3.0000 5.0000
1.0000 1.0000 1.0000
1.5000 1.5000 1.5000
Приклад 3.3. Перевірити на рівність наступні матриці:
.
Розв’язування:
>> A=[1 1;2 2];B=[1 1;2 2];C=[1 2;2 1];
>> isequal (A,B),isequal (А, З)
ans =
ans =
Приклад 3.4. Транспонувати матрицю .
Розв’язування:
>> A=[4 1;4 1]
А =
4 1
4 1
>> A'
ans =
4 4
1 1
>> transpose(A)
ans =
4 4
1 1
Приклад 3.5. Сформувати діагональну матрицю .
Розв’язування:
>> V=2:4
V =
2 3 4
>> D=diag(V)
D =
2 0 0
0 3 0
0 0 4
Приклад 3.6. Створити одиничну матрицю А (3 х 3), де a11=a22= a33 =1.
Розв’язування:
>> A=eye(3)
А =
1 0 0
0 1 0
0 0 1
Приклад 3.7. Виділити з матриці нижню і верхню трикутні матриці.
Розв’язування:
>> A=[1 4 7;2 5 8;3 6 9]
А =
1 4 7
2 5 8
3 6 9
>> N=tril(A), V=triu(A)
N =
1 0 0
2 5 0
3 6 9
V =
1 4 7
0 5 8
0 0 9
Приклад 3.8. Створити матрицю Х і піднести кожний її елемент до третього степеня.
Розв’язування:
>> X=[8 5 -3 12;-2 4 -7 1]
X =
8 5 -3 12
-2 4 -7 1
>> X.^3
ans =
512 125 -27 1728
-8 64 -343 1
Приклад 3.9. Виконати додавання матриць .
Розв’язування:
>> A=[3 4;4 3];B=[3 3;2 2];A+B
ans =
6 7
6 5
Приклад 3.10. Обчислити добуток матриці А на число 2.
Розв’язування:
>> A=[3 4;4 3];A*2
ans =
6 8
8 6
Приклад 3.11. Поміняти місцями 1-й і 3-й рядки в матриці .
Розв’язування:
>> A=[1 1 1 1;2 2 2 2;4 4 4 4]
А =
1 1 1 1
2 2 2 2
4 4 4 4
>> A=[А(3:);A(2:);A(1:)]
А =
4 4 4 4
2 2 2 2
1 1 1 1
Приклад 3.12. Помножити елементи другого рядка матриці А з попереднього приклада на число 2.
Розв’язування:
>> A=[1 1 1 1;2 2 2 2;4 4 4 4];
>> A=[А(1:);A(2:)*2;A(3:)]
А =
1 1 1 1
4 4 4 4
4 4 4 4
Приклад 3.13. Обчислити добуток матриць .
Розв’язування:
>> A=[3 4;5 6];B=[7 8;1 2];
>> A*B
ans =
25 32
41 52
>> B*A
ans =
61 76
13 16
Приклад 3.14. Виконати поелементне множення матриць А і В з прикладу 3.13.
>> A=[3 4;5 6];B=[7 8;1 2];
А.*B
ans =
21 32
5 12
>> times (A,B)
ans =
21 32
5 12
Приклад 3.15. Обчислити визначник матриці ,
мінор М12 та алгебраїчне доповнення А12.
Розв’язування:
>> A=[1 2 3; 3 2 1;1 2 1]
А =
1 2 3
3 2 1
1 2 1
>> det(A)
ans =
>> M12=det([А(2:3,1),A(2:3,3)])
M12 =
>> A12=(-1)^(1+2)*M12
A12 =
-2
Приклад 3.16. Перевірити властивості визначника.
Розв’язування:
>> A=[2 4;6 4];isequal (det(A),det(A'))
ans =
>> A=[2 4;6 4];isequal (det(A),
-det([А(:,2),A(:,1)]))
ans =
>> A=[2 4;6 4];isequal (4*det([2 1;6 1]),det(A))
ans =
>> A=[1,2,3;1,2,3;2,3,4];isequal (det(A),0)
ans =
>> A=[1,2,3;1,2,5;1,2,4];isequal (det(A),0)
ans =
>> A=[2 4;6 4];
>> isequal (det(A),det([А(:,1),A(:,2)+2*A(:,1)]))
ans =
>> A=[2 4 6;
0 4 2;0 0 1];isequal (det(A),8)
ans =
Приклад 3.17. Визначити, чи є матриця невиродженою.
Розв’язування:
>> A=[1 4 7;2 5 8;3 6 9]
А =
1 4 7
2 5 8
3 6 9
>> det(A)
ans =
Приклад 3.18. Обчислити обернену матрицю матриці .
Розв’язування:
>> A=[4 5;6 7]
А =
4 5
6 7
>> inv(A)
ans =
-3.5000 2.5000
3.0000 -2.0000
Приклад 3.19. Обчислити ранг матриці А з прикладу 3.17.
Розв’язування:
>> A=[1 4 7;2 5 8;3 6 9]; rank(A)
ans =
Приклад 3.20. Перевірити властивості рангу матриці, використовуючи матрицю А з прикладу 3.17.
Розв’язування:
>> A=[1 4 7;2 5 8;3 6 9]
А =
1 4 7
2 5 8
3 6 9
>> isequal(rank(A),rank(A'))
ans =
>> isequal(rank(A),rank([А(3:);A(2:);A(1:)]))
ans =
>> isequal(rank(A),rank([А(:,1),2*A(:,2),A(:,3)]))
ans =
>> isequal(rank(A),rank([А(:,1),A(:,1)+A(:,2),A(:,3)]))
ans =
Таким чином, всі розглянуті властивості для рангу матриці виконуються.
Приклад 3.21. Перевірити рівність матриць і , а також чи є вони еквівалентними.
Розв’язування:
>> A=[1 2 3;4 5 6;7 8 9],B=[3 2 1;6 5 4;9 8 7]
А =
1 2 3
4 5 6
7 8 9
B =
3 2 1
6 5 4
9 8 7
>> isequal(A,B)
ans =
>> isequal(rank(A),rank(B))
ans =
Отже, матриці А і В не рівні між собою, але є еквівалентними.
Приклад. 3.22. Дослідити на сумісність наступну систему рівнянь:
Розв’язування:
>> A=[1 3 2;2 -1 3;3 -5 4];B=[4 1 2]';
>> [rank(A),rank([А B])]
ans =
2 3
Оскільки ранг розширеної матриці не дорівнює рангу матриці коефіцієнтів системи лінійних рівнянь, то дана система несумісна, тобто не має розв’язку.
Приклад 3.23. Розв’язати за допомогою матричного методу систему лінійних рівнянь:
Розв’язування:
1. Обчислимо визначник матриці А:
2. Оскільки визначник матриці А не дорівнює нулю, то існує обернена матриця А ':
3. Обчислимо добуток оберненої матриці на вектор-стовпець вільних членів:
4. Отриманий результат і є вектор-стовпец X:
Для розв’язування системи лінійних рівнянь за матричним методом за допомогою MATLAB в командне вікно слід ввести наступну команду:
>> X=inv([5 4;1 1])*[15;5]
X =
-5
Приклад 3.24. Розв’язати систему лінійних рівнянь за допомогою формул Крамера
Розв’язування:
1. Обчислимо визначник системи А, і якщо він не дорівнює нулю, обчислимо визначники Ах1 і Ах2: , , .
2. Застосуємо формули Крамера для визначення значень х1 і х2: , .
3. Таким чином, розв’язком системи є х1 = -5, х2 = 10.
Виконаємо вказані операції за допомогою системи MATLAB:
>> A=[5 4;1 1];B=[15;5];d=det(A)
d =
>> [B А(:,2)],dx1=det(ans) % обчислення визначника dx1
ans =
15 4
5 1
dx1 =
-5
>> [А(:,1) B],dx2=det(ans) % обчислення визначника dx2
ans =
5 15
1 5
dx2 =
>> X=[dx1/d;dx2/d] % отримання розв’язку системи
X =
-5
Приклад 3.25. Розв’язати систему лінійних рівнянь з прикладу 3.25 з використанням оператора «\» в системі MATLAB:
>> A=[1 -2 2;2 -1 3;3 2 -1],B=[3;9;4]
А =
1 -2 2
2 -1 3
3 2 -1
B =
X=(A\B)'
X =
1.0000 2.0000 3.0000
Інструкція до виконання лабораторної роботи №3