Листинг 53.

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

А =

1 0 -3

0 1 2

2 0 -1

>> X=sqrtm(A)

1.5302 -0.0000 -1.4186

-0.3535 1.0000 0.9457

0.9457 -0.0000 0.5845

>> Х*Х %Проверка Х*Х-А

ans =

1.0000 -0.0000 -3.0000

-0.0000 1.0000 2.0000

2.0000 -0.0000 -1.0000

>> C=sqrt(А}%Извлечение квадратного корня из каждого элемента матрицы А

С =

1.0000 0 0 + 1.732i

0 1.0000 1.4142

1.4142 0 0 + l.OOOOi

>> С*С

ans =

1.0000 + 2.4495i 0 -1.7321 + 1.73211

2.0000 1.0000 1.4142 + 1.41421

1.4142 + 1.41421 0 -1.0000 + 2.4495i

■ expm(A) и logm(А)-взаимообратные матричные функции, первая вычис­ляет матричную экспоненту еА, а вторая выполняет логарифмирование по основанию е;

Листинг 54.

>> A=[10 0;-1 2 0;2 1 -1];

А =

1 0 0

-1 2 0

2 1 -1

>> В=ехрm(А)

В =

2.7183 0 0

-4.6708 7.3891 0

1.1852 2.3404 0.3679

>> logm(B)

ans =

1.0000 0.0000 -0.0000

-1.0000 2.0000 -0.0000

2.0000 1.0000 -1.0000

3.Функции, реализующие численные алгоритмы решения задач линейной алгебры:

det (А) - вычисляет определитель квадратной матрицы А;

 

Листинг 55.

>> А=[32;4 3];

>> det(А)%Определитель матрицы

ans =

 

■ trace (A)- вычисляет след матрицы А, то есть сумму элементов главной диагонали;

Листинг 56.

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

А =

1 2 3

4 -2 1

7 0 -1

>> trace(A}%След матрицы А

ans =

-2

>>sum(diag(A))%Сумма элементов главной диагонали, то же что и trace(A)

ans =

-2

>> sum(diag(A,-1)} %Сумма элементов первой диагонали (ниже главной)

ans =

>> sum(diag(A,2)) %Сумма элементов второй диагонали (выше главной)

ans =

>> trace(rot90{A)) %Сумма элементов побочной диагонали,

>> %получена как след матрицы А, развернутой на 90 градусов

ans =

■ norm(A [, р]) - возвращает различные виды норм матрицы А в зависи­мости от р; если аргумент р=1, 2, inf, fro не задан, то вычисляется вто­рая норма матрицы А;

 

Листинг 57.

 

 

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

>> norm (А,1)

ans =%Первая норма матрицы А

>> norm(A,2)%Вторая норма матрицы А

ans =

3.8042

» norm(A)%To же, что и norm(A,2)

ans =

3.8042

>> norm{A,inf)%Бесконечная норма матрицы А

ans =

>> norm(A,'fro')%Евклидова норма матрицы А

ans =

 

■ cond(A[,p]) - возвращает число обусловленности матрицы А, осно­ванное на норме р;

 

Листинг 58.

 

>> А=[5 7 6 5; 7 10 8 7;6 8 10 9;5 7 9 10];

>> cond(A)%Число обусловленности матрицы

ans =

2.9841е+003

>>cond(A,2)%Число обусловленности для второй нормы, аналогично cond(M)

ans =

2.9841е+003

 

■ rcond(A) - вычисляет величину, обратную значению числа обусловлен­ности матрицы А относительно первой нормы; если полученная величи­на близка к единице, то матрица хорошо обусловлена, если к приближа­ется к нулю, то обусловлена плохо;

 

Листинг 59.

А=[5 7 6 5; 7 10 8 7;6 8 10 9;5 7 9 10];

>> rcond(A)

ans =

2.2282е-004

 

■ inv(A) - возвращает матрицу, обратную А;

 

Листинг 60.

>>А=[2 1 -5 1;1 -3 0 -6;0 2 -1 2;1 4 -7 6];

>> Р=inv(А}%Матрица, обратная А

Р =

1.3333 -0.6667 0.3333 -1.0000

-0.0741 0.2593 1.1481 -0.1111

0.3704 -0.2963 0.2593 -0.4444

0.2593 -0.4074 -0.5185 -0.1111

>> А*Р %Проверка А*Р-Е

ans =

1.0000 -0.0000 -0.0000 0.0000

0 1.0000 0.0000 0.0000

0.0000 -0.0000 1.0000 -0.0000

0.0000 -0.0000 -0.0000 1.0000

■ eig (A) - возвращает вектор собственных значений матрицы А; вызов функции в формате [М, D] = eig (А) даст матрицу М, столбцы которой – собственные векторы матрицы А, и диагональную матрицу D, содержащую собственные значения матрицы А; функция eig (А, В), где А и В - квадратные матрицы, выдает вектор обобщенных собственных значений;