Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Раздел 2 - Работа с матрицами в Scilab(230114)

.pdf
Скачиваний:
62
Добавлен:
28.03.2015
Размер:
411.24 Кб
Скачать

А.В.Сорокин

Среда вычислений Scilab: Первые шаги

3

8

 

Вычисление произведения элементов строк

-->p=prod(a,2)

 

p =

 

 

2

 

 

12

 

 

Функция sort

используется для упорядочения элементов матрицы и вектора :

Упорядочение по возрастанию элементов вектора

--> b=[2 1 3] --> s=sort(b) s =

1 2 3

Упорядочение по возрастанию элементов столбцов матрицы

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

-->s=sort(a,1) s=

[0 2 2; 1 4 3; 3 5 5]

Упорядочение по возрастанию элементов строк матрицы

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

-->s=sort(a,2) s=

[1 2 5; 1 3 4; 1 2 6]

Функция max используется для поиска максимального элемента матрицы и вектора :

Поиск максимального элемента вектора

--> b=[1 2 3] --> m=max(b)

m=

3

Поиск максимальных элементов столбцов матрицы

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

-->m=max(a,’c’) m =

3 4

Функция min используется для поиска минимального элемента матрицы и вектора :

Поиск минимального элемента вектора

--> b=[1 2 3] --> m=min(b)

34

А.В.Сорокин

Среда вычислений Scilab: Первые шаги

m=

1

Поиск минимальных элементов столбцов матрицы

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

-->m=min(a,'r') m =

1 2

Функция trace используется для вычисления следа матрицы.

a11

a1n

 

n

Если a

 

 

 

 

 

 

 

 

, то

trace(a)= aii

 

 

 

 

 

 

i=1

a

a

 

 

 

n1

 

nn

 

 

--> a=[1 2; 3 4] -->trace(a)

ans = 5

Функция norm используется для вычисления норм векторов и матриц

a11

a1m

 

 

 

n n

Если A

 

 

 

 

 

 

 

 

, то norm(a, p)= p aijp

 

 

 

 

 

 

i 1 i 1

a

a

 

 

 

n1

 

nm

 

 

Рассмотрим использование функции нормы для матриц:

norm( A) - это наибольшее сингулярное число матрицы A и его можно вычислить как max(svd(A)) , где svd – функция поиска сингулярных чисел матрицы A .

norm(A, 2) norm( A)

norm(A,1)=max(sum(abs(A),1), т.е. максимальное значение из сумм модулей элементов столбцов матрицы A :

 

 

n

 

 

 

n

 

 

norm(a,1)=max

ai1,

,

aim .

 

i 1

 

 

i 1

 

norm(A, inf )=max(sum(abs(A),2),

 

 

 

 

 

 

 

 

 

m

 

 

m

 

 

norm(a,inf )=max

a1 j ,

,

anj

 

 

 

j 1

 

 

j 1

 

norm(A,'fro') sqrt(sum(diag( A'* A))) - норма Фробениуса

 

Функция нормы для векторов:

 

 

 

 

 

 

 

norm(v, p) sum(abs(v). ^ p)) ^ (1/ p)

 

 

 

 

 

 

n

norm(v, p)= p | vi |p

i 1

35

А.В.Сорокин

Среда вычислений Scilab: Первые шаги

norm(v) norm(v, 2)

n

norm(v, 2)= vi 2

i 1

norm(v, inf )=max(abs(v))=max(|v1|,…,|vn|)

36

А.В.Сорокин

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Среда вычислений Scilab: Первые шаги

 

2.7.Практическое задание

2.7.1 Обозначения в лабораторной работе:

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tr A след матрицы A ,

tr A aii

 

 

 

 

 

 

 

 

 

 

 

i 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

det A определитель матрицы A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n n

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

2 aij2 ,

 

b

 

2

bi2 ,

 

 

 

b

 

 

 

1 max(

 

b1

 

,

 

b2

 

, ,

 

bn

 

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 1 j 1

 

i 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

0

 

 

 

 

 

 

E 0

1

0

0

- единичная матрица.

0

0

1

0

 

 

 

 

 

 

0

0

0

1

 

Пусть D - матрица размера 4х4

 

 

 

 

 

d

d

 

 

 

11

12

D

d21

d22

d

31

d

32

 

 

 

 

 

d42

 

d41

d

d

 

13

14

 

d23

d24

d33

d34

 

d43

 

 

d44

Влючить режим сохранения работы в сеансе в дневнике (команда) diary

a11

a12

a13

 

b1

 

 

1. Для матрицы A a

a

a

 

 

и вектор-столбца b b

 

, заданных согласно

21

22

 

23

 

 

2

 

 

a

a

a

 

b

 

 

31

32

33

 

 

3

 

 

варианту:

Решить систему Ax b методом Крамера. Проверить правильность вычисления решения, решив ее другими способами:

x A \ b

x inv(A)*b

x A ^ ( 1)*b

2.Построить блочную матрицу:

 

A AT

b

 

b

 

 

 

 

 

 

 

1

 

det A

D

 

 

 

 

 

 

 

 

 

 

 

bT b

tr( A) bT

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

det A

и вычислить ее ранг rank D .

37

А.В.Сорокин

 

 

 

 

 

Среда вычислений Scilab: Первые шаги

2.7.2 Пример выполнения задания

 

2

1

4

 

 

5

 

 

 

 

 

 

 

 

Пусть

A

1

3 6

,

b

2 .

 

 

3

2

2

 

 

9

 

 

 

 

 

 

 

 

Включение дневника

--> diary(’lab12.txt’)

Ввод матрицы и вектор столбца

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

2.1. 4.

1.3. -6.

3. -2. 2.

--> b=[5 6 -3]'

b =

5.

6. -3.

Вычисление определителя

--> dA=det(A)

dA =

-76

Решение СЛАУ методом Крамера

--> x1=det([b A(:,2:3)])/dA x1 =

0.4737

--> x2=det([A(:,1) b A(:,3)])/dA x2 =

2.5789

--> x3=det([A(:,1:2) b ])/dA x3 =

0.3684

--> x=[x1 x2 x3]'

38

А.В.Сорокин

Среда вычислений Scilab: Первые шаги

x =

0.4737

2.5789

0.3684

Проверка найденного решения СЛАУ

--> A*x-b

ans =

0

0

0

Решение СЛАУ другими способами

--> x=A\b

x =

0.4737

2.5789

0.3684

--> x=inv(A)*b

x =

0.4737

2.5789

0.3684

--> x=A^(-1)*b

x =

0.4737

2.5789

0.3684

Вычисление матрицы D

--> D=[(A+A')/det(A) b*max(abs(b)); trace(A)*b' b'*b/det(A)]

D =

-0.0526 -0.0263 -0.0921 30.0000 -0.0263 -0.0789 0.1053 36.0000 -0.0921 0.1053 -0.0526 -18.0000 35.0000 42.0000 -21.0000 -0.9211

Вычисление ранга матрицы D

--> rd=rank(D)

rd =

4

39

А.В.Сорокин

Среда вычислений Scilab: Первые шаги

Выключение дневника

 

--> diary(0)

 

Содержимое дневника lab12.txt

ans =

1.

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

A=

2. 1. 4.

1.3. - 6.

3.- 2. 2.

-->b=[5 6 -3]'

b=

5.

6.

-3.

-->dA=det(A) dA =

- 76.

-->x1=det([b A(:,2:3)])/dA

x1 =

0.4737

-->x2=det([A(:,1) b A(:,3)])/dA

x2 =

2.5789

-->x3=det([A(:,1:2) b ])/dA x3 =

0.3684 -->x=[x1 x2 x3]'

x=

0.4737

2.5789

0.3684

-->A*x-b ans =

0.

-2.D-15

0.

-->x=A\b x =

40

А.В.Сорокин

Среда вычислений Scilab: Первые шаги

0.4737

2.5789

0.3684

-->x=inv(A)*b

x=

0.4737

2.5789

0.3684

-->x=A^(-1)*b

x=

0.4737

2.5789

0.3684

-->D=[(A+A')/det(A) b*max(abs(b)); trace(A)*b' b'*b/det(A)] D =

-

0.0526

-

0.0263

- 0.0921

30.

-

0.0263

-

0.0789

0.1053

36.

-0.0921 0.1053 - 0.0526 - 18.

35. 42. - 21. - 0.9211

-->rd=rank(D) rd =

4.

-->diary(0)

41

А.В.Сорокин

Среда вычислений Scilab: Первые шаги

2.7.3 Варианты заданий

Вариант №1

 

 

3

2 1

 

 

 

5

 

 

 

A AT

 

b

 

 

 

 

 

 

 

1. A

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

,

b

6

, 2.

D

 

 

 

 

b

 

 

 

2

 

 

b

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

5 0

 

 

3

 

 

 

 

 

 

T

 

T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

b b

 

 

 

 

 

Вариант №2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

3

1

 

 

 

8

 

 

 

A

 

A

 

 

 

2 AT

 

b

 

 

 

 

 

 

 

 

8 5

 

 

b

 

 

, D

 

 

 

 

 

 

 

 

 

 

 

A

3

,

16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

T

 

 

 

 

 

 

 

 

3

3

2

 

 

 

8

 

 

 

 

det A b

b b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант №3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

2

 

3

 

 

15

 

 

 

 

 

 

 

 

 

 

3

 

 

 

1b

1b

1b

 

 

1. A

 

3

 

 

, b

 

 

 

 

2. d

 

bi

 

 

 

 

 

5

2

15

,

 

 

i 1

 

 

 

 

1

2

3

 

 

 

 

10

11

 

5

 

 

36

 

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант №4

 

2 1

0

 

 

5

 

 

bT

 

 

 

 

 

b

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

A

1 0

3

,

 

b 16

,

2.

D

 

T

 

1

 

1

 

 

 

 

1

T

 

 

0 5

1

 

 

10

 

 

A

 

 

b

 

b

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

3

 

 

Вариант №5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

2

 

 

 

6

 

 

 

 

 

 

b

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

2., 2. D

 

 

 

 

 

1.

A 2

3

7

,

 

b 16

,

 

T

 

 

1

 

T

 

 

 

 

 

5

2

1

 

 

16

 

 

 

 

(b

 

b)

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант №6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

8

1

 

 

2

 

 

(bT b)E A b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

A

3

2

6

,

b 7

, 2. D

 

 

 

 

T

 

 

 

 

 

 

 

 

 

 

 

2

1

1

 

 

5

 

 

 

 

b

 

 

 

det A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант №7

42

А.В.Сорокин Среда вычислений Scilab: Первые шаги

 

2

3

1

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b det A

b b

T

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. D

n n

 

 

 

1.

A

1

4

2

,

b

1

,

aij

bT

 

 

 

1

4

0

 

 

5

 

 

j 1 i 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант №8

 

1

1

2

 

 

1

b tr A

AT

 

 

 

 

 

 

 

1.

A 2

1

2

,

b 4

, 2. D T

 

T

 

4

1

4

 

 

2

b A b

b

 

 

 

 

 

 

 

 

 

 

 

Вариант №9

 

3

2

1

 

 

5

 

 

A AT

 

 

b

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

A 2

1

,

b

6

, 2.

D

 

b

 

 

 

2

 

 

b

 

1

 

 

 

 

 

 

 

 

 

 

 

 

1

5

0

 

 

3

 

 

 

T

 

 

T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

b b

 

Вариант №10

 

4

3

1

 

 

8

 

 

A

 

A

 

2 AT

b

 

1.

 

8

5

 

 

 

 

 

2.

 

 

A

3

,

b 16

,

D

 

 

 

 

T

T

 

 

 

3

3

2

 

 

8

 

 

 

det A b

b b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант №11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

2 3

 

15

 

 

 

3

 

 

 

1b

1b

 

1b

 

 

 

 

 

 

3

 

 

 

 

 

 

2. d

bi

 

 

 

 

1.

A

5

 

2

, b 15

,

i 1

 

 

 

1

 

 

 

 

2

 

3

 

 

 

10

11

5

 

36

 

 

b

 

 

 

 

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант №12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 1

0

 

 

 

5

 

 

bT

 

 

 

 

 

 

b

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

A

1 0

3

 

,

b 16

, 2.

D

T

 

 

1

 

1

 

 

 

 

1

T

 

 

 

 

0 5

1

 

 

10

 

 

A

 

 

 

b

 

b

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

3

 

 

 

 

Вариант №13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

2

 

 

6

 

 

 

 

 

b

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

A 2 3

7

,

b 16

, 2.

D

 

T

 

1

 

T

 

 

 

 

 

 

 

 

 

 

 

 

5 2

1

 

16

 

 

(b

 

b)

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

43