36852

Численные методы решения задач линейной алгебры

Лабораторная работа

Математика и математический анализ

Численные методы решения задач линейной алгебры specM вычисляет собственные значения и собственные векторы квадратной матрицы M. specM Собственные числа матрицы ns = 1. Х собственные векторы соответствующие собственным значениям из матрицы Y. Использование функции inv Пример вычисления обратной матрицы.

Русский

2013-09-23

44.5 KB

6 чел.

Лабораторная работа 4а.

Численные методы решения задач линейной алгебры

spec(M) - вычисляет собственные значения и собственные векторы  квадратной матрицы M.

Листинг 3.34. Использование функции spec

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

M =

3. - 2.

- 4. 1.

-->spec(M) //Собственные числа матрицы

ans =

- 1.

5.

//Х - собственные векторы,

-->соответствующие собственным значениям из матрицы Y.

-->[X,Y]=spec(M)

Y =

! - 1. 0 !

! 0 5. !

X =

! 0.4472136 - 0.7071068 !

! 0.8944272 0.7071068 !

inv(A) - вычисляет матрицу, обратную к A;

Листинг 3.35. Использование функции inv

-->//Пример вычисления обратной матрицы.

-->A=[1 2 3 5;0 1 3 2;4 2 1 1;2 3 0 1];

-->inv(A)

ans =

! 0.0285714 - 0.1428571 0.3428571 - 0.2 !

! - 0.1428571 0.2142857 - 0.2142857 0.5 !

! - 0.2 0.5 0.1 - 0.1 !

! 0.3714286 - 0.3571429 - 0.0428571 - 0.1 !

-->//При умножении обратной матрицы на исходную,

-->//получилась матрица, близкая к единичной.

-->inv(A)*A

ans =

1. - 1.110D-16 0. 0.

0. 1. - 5.551D-17 5.551D-17

0. 0. 1. 1.388D-17

0. 0. 6.939D-17 1.

-->//При попытке обратить вырожденную матрицу

-->//(определитель равен или близок к нулю)

-->//пользователь получит сообщение об ошибке.

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

-->inv(B)

!--error 19

Problem is singular

pinv(A[,tol]) - вычисляет псевдообратную матрицу для матрицы A с точностью tol (необязательный параметр);

Листинг 3.36. Использование функции pinv

-->pinv(A)

ans =

0.0285714 - 0.1428571 0.3428571 - 0.2

- 0.1428571 0.2142857 - 0.2142857 0.5

- 0.2 0.5 0.1 - 0.1

0.3714286 - 0.3571429 - 0.0428571 - 0.1

linsolve(A,b) - решает систему линейных алгебраических уравнений вида

.

Листинг 3.37. Пример использования функции linsolve

-->//Решение системы линейных уравнений

-->//{x1+2x2-7=0; x1+x2-6=0}.

-->//Свободные коэффициенты вводятся как вектор-столбец

-->//и с учетом знаков.

-->A=[1 2;1 1];b=[-7;-6];

-->x=linsolve(A,b)

x =

5.

1.

-->//Результатом операции A*x+b является вектор, достаточно

-->//близкий к нулю, это значит, что система решена верно.

-->A*x+b

ans =

1.0D-14 *

- 0.6217249

0.0888178

-->//Решение системы {x1+x2-1=0; x1+x2-3=0}

-->A=[1 1;1 1]; b=[-1;-3];

-->//Система не имеет решений:

-->linsolve(A,b)

WARNING:Conflicting linear constraints!

ans =

[]

-->//Решение системы {3x1-x2-1=0; 6x1-2x2-2=0}.

-->//В случае, когда система имеет бесконечное

-->//множество решений, SCILAB выдаст одно из них.

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

-->b=[-1;-2];

-->x=linsolve(A,b)

x =

0.3

- 0.1

-->//Проверка неверна

-->A*x+b

ans =

1.0D-15 *

- 0.1110223

- 0.2220446

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

Листинг 3.38. Пример использования функции rref

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

A =

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

lu(М) - выполняет треугольное разложение матрицы M;

M = C · L · U, где L и U - соответственно нижняя и верхняя треугольные матрицы, все четыре матрицы квадратные и одного порядка. Такие вычисления называют LU-разложением.

Листинг 3.39. Использование функции lu

-->A=[2 -1 5;3 2 -5;1 1 -2]

A =

2. - 1. 5.

3. 2. - 5.

1. 1. - 2.

-->[L,U]=lu(A)

U =

3. 2. - 5.

0. - 2.3333333 8.3333333 !

0. 0. 0.8571429 !

L =

0.6666667 1. 0.

1. 0. 0.

0.3333333 - 0.1428571 1.

-->LU=L*U

LU =

2. - 1. 5.

3. 2. - 5.

1. 1. - 2.

qr(М) - выполняет разложение матрицы М на ортогональную и верхнюю треугольную матрицы;

M = Q · R, где Q - ортогональная матрица, а R - верхняя треугольная матрица. Этот

процесс называют QR-разложением.

Листинг 3.40. Использование функции qr

-->[Q,R]=qr(A)

R =

- 3.7416574 - 1.3363062 1.8708287

0. - 2.0528726 7.0632734

0. 0. 0.7811335

Q =

- 0.5345225 0.8350668 0.1301889

- 0.8017837 - 0.4523279 - 0.3905667

0.2672612 - 0.3131501 0.9113224

-->Q*R

ans =

2. - 1. 5.

3. 2. - 5.

1. 1. - 2.

svd(М) - выполняет сингулярное разложение размером n×m; результатом работы функции может быть либо сингулярное разложение, либо вектор, содержащий сингулярные значения матрицы.

M = U · S · VT, где U и V-ортогональные матрицы размером m × m и n × n соответственно, а S-диагональная матрица, на диагонали которой расположены сингулярные числа матрицы M

Листинг 3.41. Использование функции svd

-->[U,S,V]=svd(A)

V =

- 0.1725618 0.9641403 - 0.2016333

- 0.3059444 0.1421160 0.9413825

0.9362801 0.2241352 0.2704496

S =

7.8003308 0. 0.

0. 3.6207331 0.

0. 0. 0.2124427

U =

0.5951314 0.8028320 0.0357682

- 0.7449652 0.5678344 - 0.3501300

- 0.3014060 0.1817273 0.9360180

-->U*S*V’

ans =

2. - 1. 5.

3. 2. - 5.

1. 1. - 2.

-->s=svd(A)

s =

7.8003308

3.6207331

0.2124427

kernel(М[,tol[,fl]]) - определение ядра матрицы М, параметры tol и fl являются необязательными. Первый задает точность вычислений, второйиспользуемый при вычислении алгоритм и принимает значения ’qr’ или ’svd’.

Ядро матрицы - это множество векторов X. Поиск ядра матрицы сводится к решению однородной системы линейных уравнений AX = 0. Если при вызове функции X=kernel(A) матрица X окажется непустой, то действительно AX = 0.

Листинг 3.42. Использование функции kernel

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

A =

4. 1. - 3. - 1.

2. 3. 1. - 5.

1. - 2. - 2. 3.

-->X=kernel(A)

X =

0.3464102

0.5773503

0.4618802

0.5773503


 

А также другие работы, которые могут Вас заинтересовать

56354. Творчество Ибсена 18.96 KB
  дна из важнейших проблем, поставленных в творчестве Ибсена - проблема противоречия между нравственностью и человеколюбием. На самом деле это одно из самых важнейших противоречий христианства, а также вообще той морали, которая была свойственна европейскому обществу в 19 веке, да и сейчас
56355. Технологія приготування гарячих напоїв. Правила техніки безпеки в побуті 49.5 KB
  Мета: Розширити знання й навички приготування гарячих напоїв; розвивати художній естетичний смак під час оформлення готових страв, сервіруванню столу; виховувати свідоме виконання правил техніки безпеки на кухні.
56358. Техника безопасности на уроках физкультуры 227.5 KB
  Техника безопасности на уроках физической культуры Основы техники безопасности на уроках физической культуры Профилактика травматизма как основное направление техники безопасности на уроках физической культуры Младший школьный возраст и меры профилактики травматизма на уроках физической культуры.
56359. Правила безопасности на уроках физической культуры 100 KB
  Она должна включать две части упражнений: общеподготовительную медленный бег 23 мин комплекс общеразвивающих упражнений 68 мин и специальноподготовительную беговые и прыжковые упражнения ускорения. Выполняя упражнения при разминке необходимо...
56360. Техника безопасности на уроках технологии 25 KB
  Строгое выполнение правил техники безопасности служит надежной гарантией предупреждения несчастных случаев. С первых занятий необходимо знакомить учащихся с правилами техники безопасности и требовать неукоснительного их выполнения.
56361. Техника безопасности на уроках труда 37.5 KB
  Учеников необходимо на первых же занятиях знакомить с этими правилами постоянно напоминать о них требовать безусловного выполнения. Ученик хорошо усваивает правила работы и сознательно применяет их только в том случае когда эти правила хорошо ему понятны.
56362. Правила техніки безпеки під час виконання фізичних вправ 91 KB
  Метою фізичного виховання є формування особистості спрямоване на забезпечення необхідного рівня розвитку життєво важливих рухових навичок і фізичних якостей; загальнолюдських цінностей: здоровя фізичного соціального та психічного благополуччя...