Листинг 61

>> А=[3 -2;-4 1]

>> eig(A)%Собственные значения матрицы А

ans =

-1

>> [M,D]=eig(A)

М = %Первый столбец - собственный вектор для 5,

второй - для -1

0.7071 0.4472

-0.7071 0.8944

D = %Собственные значения матрицы А

5 0

0 -1

>> %Проверка A*M=M*D

>> M*D

ans =

3.5355 -0.4472

-3.5355 -0.8944

>> А*М

ans =

3.5355 -0.4472

-3.5355 -0.8944

■ poly (A) - возвращает вектор-строку коэффициентов характеристическо­го полинома матрицы А;

Листинг 62.

>> А=[3 -2;-4 1];

>> poly(А)

ans =

1 -4 -5

■ linsolve(A, b) - возвращает решение системы линейных уравнений А* х= b, вызов в формате linsolve(A, b, options) позволяет задать метод решения уравнения; если задать функцию в виде [х, r]=linsolve(A,b), то она вернет х - решение системы и r - ранг матрицы А;

Листинг 63.

>> A=[1 2 3; -2 -4 -6]

A=

1 2 3

-2 -4 -6

>> b=[5;6]

b=

>>x=linsolve(A,b)%Решение системы Ах=b

>>%Предупреждение: ранг меньше размерности!

Warning: Rank deficient, rank = 1, tol = 4.4686e-015.

X=

-0.4667

>> A*x %Найденное решение не верно, т.к. Ах не равно b

ans=

-1.4000

2.8000

>> [x,r]=linsolve(A,b)

X= %Решение системы

-0.4667

r=%Ранг матрицы A

>>%------------------------------------------------

>> А=[2 -1 1,-3 2 -5;1 3 -21;

>> Ь=[0;1;4];

>> x=linsolve(A,b)%Решение линейной системы

х =

0.4643

1.6786

0.7500

>> А*х %Решение верно

ans =

0.0000

1.0000

4.0000

■ rref (А) - осуществляет приведение матрицы А к треугольной форме, ис­пользуя метод исключения Гаусса;

Листинг 64.

>> A=[3 -2 1 5;6 -4 2 7;9 -6 3 12]

А=

3 -2 1 5

6 -4 2 7

9 -6 3 12

>> rref(A)

ans =

1.0000 -0.6667 0.3333 0

0 0 0 1.0000

0 0 0 0

■ chol (A) - возвращает разложение по Холецкому для положительно оп­ределенной симметрической матрицы А;

Листинг 65.

>> А=[10 1 1;2 10 1;2 2 10];

>> chol(А)%Разложение по Холецкому

ans -

3.1623 0.3162 0.3162

0 3.1464 0.2860

0 0 3.1334

>> А-[1 2;1 1];%Матрица не симметрическая

>> chol(A)

??? Error using --> chol Matrix must be positive definite.

>>%Матрица содержит отрицательные элементы

>> Z=[3,1,-1,2;г-5,1,3,-4;;2,0,1,-1;1,-5, 3,-3];

>> chol(Z)

??? Error using ==> chol

Matrix must be positive definite.

■ lu(А) – выполняет LU-разложение, функция [L, U, P] =lu(A) возвращает три матрицы: L - нижняя треугольная, U - верхняя треугольная и Р - мат­рица перестановок, причем P*A=L*U; функции lu (А) без параметров воз­вращает одну матрицу, которая, в свою очередь, является комбинацией матриц L и U;

Листинг 66.

>> А= [З -2 1; 5 6 -4; 2 7 9];

>> [LU, P]=lu(A)

>> %Нижняя треугольная матрица

L =

1.0000 0 0

0.6000 1.0000 0

0.4000 -0.8214 1.0000

>> %Верхняя треугольная матрица

U =

5.0000 6.0000 -4.0000

0 -5.6000 3.4000

0 0 13.3929

>> %Матрица перестановок

Р =

0 1 0

1 0 0
0 0 1

>> %Проверка: L*U-P*A

>> L*U ans -

5.0000 6.0000 -4.0000

3.0000 -2.0000 1.0000

2.0000 7.0000 9.0000

>> Р*А

ans =

5 6 -4

3 -2 1

2 7 9

>> %Комбинация из матриц L и U

>> lu(A)

ans =

5.0000 6.0000 -4.0000

0.6000 -5.6000 3.4000

0.4000 -0.8214 13.3929

>> %Выделение матрицы L

>> triu(lu(A))

ans =

5.0000 б.0000 -4.0000

0 -5.6000 3.4000

0 0 13.3929

» %Формирование матрицы U

>> U=tril(lu(A),-l)+eye(3)

U =

1.0000 0 0

0.6000 1.0000 0

0.4000 -0.8214 1.0000

■ qr (А)-выполняет QR-разложение, команда [Q, R, P]=qr(A) возвраща­ет три матрицы: ортогональную Q, верхнюю треугольную R и матрицу пе­рестановок Р, причем A*P=Q*R;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: