Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МП-16_Шувалов_Александр_Лаб2.docx
Скачиваний:
5
Добавлен:
11.11.2019
Размер:
28.07 Кб
Скачать

Упражнение 4. Вычисление определителей III порядка

Создать квадратную матрицу размером 3х3.

Вычислить определитель матрицы B

1)по правилу Саррюса, обращаясь через индексы к элементам массива

2)разложить по первой строке, обращаясь через индексы к элементам массива

3)сделать проверку, обращаясь к стандартной функции det()

Решение

1)Зададим матрицу В:

>>syms a1 b1 c1 a2 b2 c2 a3 b3 c3

>> B=[a1 b1 c1;a2 b2 c2;a3 b3 c3]

B =

[ a1, b1, c1]

[ a2, b2, c2]

[ a3, b3, c3]

Вычислим определитель по правилу Саррюса, обращаясь через индексы к элементам массива.

>>detB=B(1,1)*B(2,2)*B(3,3)+B(2,1)*B(2,3)*B(1,3)+B(3,1)*B(1,2)*B(2,3)-B(1,3)*B(2,2)*B(3,1)-B(2,3)*B(3,2)*B(1,1)-B(3,3)*B(1,2)*B(2,1)

detB =

a1*b2*c3 - a1*b3*c2 - a2*b1*c3 + a3*b1*c2 - a3*b2*c1 + a2*c1*c2

Проверим:

>>detB=det(B)

detB =

a1*b2*c3 - a1*b3*c2 - a2*b1*c3 + a2*b3*c1 + a3*b1*c2 - a3*b2*c1

2)Вычислим определитель, разложив его по первой строке, обращаясь через индексы к элементам массива:

>>detB=B(1,1)*(B(2,2)*B(3,3)-B(2,3)*B(3,2))-B(1,2)*(B(2,1)*B(3,3)-B(1,3)*B(3,2))+B(1,3)*(B(2,1)*B(2,3)-B(1,3)*B(2,2))

detB =

a1*(b2*c3 - b3*c2) - b1*(a2*c3 - b3*c1) + c1*(a2*c2 - b2*c1)

Проверим:

>>detB=det(B)

detB =

a1*b2*c3 - a1*b3*c2 - a2*b1*c3 + a2*b3*c1 + a3*b1*c2 - a3*b2*c1

Примечание: Если раскрыть скобки в 1ом выражении, то слагаемые встанут на те же места, что и во втором. Отсюда следует, что команда detB=det(A) вычисляет определитель, раскладывая его по первой строке.

Упражнение 5. Вычислить определители третьего порядка

Вычислить определители третьего порядка, при необходимости вводя символьные переменные, а также прибегая к упрощениям.

1) по правилу Саррюса, обращаясь к индексам элементов массива

2)разложением по первой строке, обращаясь к индексам элементов массива

3) Сделать проверку с помощью стандартной функции det()

, 2. , 3. , 4. .

Решение

1)Вычисляю определители по правилу Саррюса:

Зададим матрицы А,В,С,D:

>>symsabcx

>> A=[1 2 3;4 5 6;7 8 1]

A =

1 2 3

4 5 6

7 8 1

>> B=[3 4 -5; 8 7 -2; 2 -1 8]

B =

3 4 -5

8 7 -2

2 -1 8

>> C=[a+x x x;xb+x x; x xc+x]

C =

[ a + x, x, x]

[ x, b + x, x]

[ x, x, c + x]

>> D=[sin(a) cos(a) 1;sin(b) cos(b) 1;sin(c) cos(c) 1]

D =

[ sin(a), cos(a), 1]

[ sin(b), cos(b), 1]

[ sin(c), cos(c), 1]

1.Нахожу определитель для 1ой матрицы:

>>detA=A(1,1)*A(2,2)*A(3,3)+A(2,1)*A(3,2)*A(1,3)+A(3,1)*A(1,2)*A(2,3)-A(1,3)*A(2,2)*A(3,1)-A(2,3)*A(3,2)*A(1,1)-A(3,3)*A(1,2)*A(2,1)

detA =

24

Проверим:

>>detA=det(A)

detA =

24.0000

2.Нахожу определитель для 2ой матрицы:

>>detB=B(1,1)*B(2,2)*B(3,3)+B(2,1)*B(3,2)*B(1,3)+B(3,1)*B(1,2)*B(2,3)-B(1,3)*B(2,2)*B(3,1)-B(2,3)*B(3,2)*B(1,1)-B(3,3)*B(1,2)*B(2,1)

detB =

0

Проверим:

>>detB=det(B)

detB =

0

3.Нахожу определитель для 3ой матрицы:

>>detC=C(1,1)*C(2,2)*C(3,3)+C(2,1)*C(3,2)*C(1,3)+C(3,1)*C(1,2)*C(2,3)-C(1,3)*C(2,2)*C(3,1)-C(2,3)*C(3,2)*C(1,1)-C(3,3)*C(1,2)*C(2,1)

detC =

2*x^3 - x^2*(b + x) - x^2*(c + x) - x^2*(a + x) + (a + x)*(b + x)*(c + x)

Проверим:

>>detC=det(C)

detC =

a*b*c + a*b*x + a*c*x + b*c*x

4.Нахожу определитель для 4ой матрицы:

>>detD=D(1,1)*D(2,2)*D(3,3)+D(2,1)*D(3,2)*D(1,3)+D(3,1)*D(1,2)*D(2,3)-D(1,3)*D(2,2)*D(3,1)-D(2,3)*D(3,2)*D(1,1)-D(3,3)*D(1,2)*D(2,1)

detD =

cos(b)*sin(a) - cos(a)*sin(b) + cos(a)*sin(c) - cos(c)*sin(a) - cos(b)*sin(c) + cos(c)*sin(b)

Проверим:

>>detD=det(D)

detD =

cos(b)*sin(a) - cos(a)*sin(b) + cos(a)*sin(c) - cos(c)*sin(a) - cos(b)*sin(c) + cos(c)*sin(b)

2)Вычисляю определители, разлагая по первой строке, обращаясь к индексам элементов массива:

1.Нахожу определитель для 1ой матрицы:

>>detA=A(1,1)*(A(2,2)*A(3,3)-A(2,3)*A(3,2))-A(1,2)*(A(2,1)*A(3,3)-A(3,1)*A(2,3))+A(1,3)*(A(2,1)*A(3,2)-A(3,1)*A(2,2))

detA =

24

Проверим:

>>detA=det(A)

detA =

24.0000

2.Нахожу определитель для 2ой матрицы:

>>detB=B(1,1)*(B(2,2)*B(3,3)-B(2,3)*B(3,2))-B(1,2)*(B(2,1)*B(3,3)-B(3,1)*B(2,3))+B(1,3)*(B(2,1)*B(3,2)-B(3,1)*B(2,2))

detB =

0

Проверим:

>>detB=det(B)

detB =

0

3.Нахожу определитель для 3ой матрицы:

>>detC=C(1,1)*(C(2,2)*C(3,3)-C(2,3)*C(3,2))-C(1,2)*(C(2,1)*C(3,3)-C(3,1)*C(2,3))+C(1,3)*(C(2,1)*C(3,2)-C(3,1)*C(2,2))

detC =

(a + x)*((b + x)*(c + x) - x^2) - x*(x*(b + x) - x^2) - x*(x*(c + x) - x^2)

Проверим:

>>detC=det(C)

detC =

a*b*c + a*b*x + a*c*x + b*c*x

4.Нахожу определитель для 4ой матрицы:

>>detD=D(1,1)*(D(2,2)*D(3,3)-D(2,3)*D(3,2))-D(1,2)*(D(2,1)*D(3,3)-D(3,1)*D(2,3))+D(1,3)*(D(2,1)*D(3,2)-D(3,1)*D(2,2))

detD =

sin(a)*(cos(b) - cos(c)) - cos(a)*(sin(b) - sin(c)) - cos(b)*sin(c) + cos(c)*sin(b)

Проверим:

>>detD=det(D)

detD =

cos(b)*sin(a) - cos(a)*sin(b) + cos(a)*sin(c) - cos(c)*sin(a) - cos(b)*sin(c) + cos(c)*sin(b)