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

Умножение матриц.

 

 

 

 

 

 

C A B B A

Cnm Ank Bkm

 

 

 

 

 

 

Количество столбцов матрицыA

должно равняться количеству строк матрицы B

 

c

 

 

 

 

 

 

 

 

 

Элементij вычисляется как скалярное произведение i-й строки матрицы A

 

 

 

 

 

 

 

 

и j-го столбца матрицы

 

B

k

cij ail blj l 1

11

Вызываемая процедура

Sub MultM((NrowA%, NcolA%, NcolB%,A!(), B!(), C!()) Dim i%, j%, s!, l%

For i = 1 to NrowA For j = 1 to NcolB s = 0

For l = 1 to NcolA: s = s + A(i, l) * B(l, j): Next l C(i, j)=s

Next j

Next i End Sub

12

Обращение матрицы методом Гаусса-Жордана

1

Обратной матрицей называется такая квадратная матрица Ann , при умножении которой на исходную как справа так и слева

 

1

 

1

 

получается единичная матрица

A

A

A A

E

 

 

 

 

 

Обращение матрицы A

методом Гаусса-Жордана

заключается в построении расширенной матрицы A E

и преобразовании расширенной матрицы так, чтобы на месте исходной получилась единичная матрица, тогда на месте единичной получится обратная матрица:

 

 

 

 

 

 

En n

 

Ann1

 

 

 

 

 

 

13

Текстуальный алгоритм метода Гаусса-Жордана состоит из четырёх этапов.

1. Строим расширенную матрицу дописав к исходной квадратной матрице единичную матрицу того же размера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Cn ,2n An n

 

En n

, и задаём номер ведущей строки k=1.

 

 

 

 

 

 

 

ckk

 

2.

Все элементы k-й строки делим на элемент

 

 

 

ckj

ckj

,

j = k,k+1,k+2,…,2·n

т.е.

ckk =1.

 

 

ckk

 

 

 

 

 

 

 

3.

Преобразуем все i-е строки кроме k-й, i=1,2,3,…,n

i≠k так, чтобы элементы

cik=0. Для этого из каждого элемента i-й строки вычитаем соответствующий элемент k-й строки, умноженный на элемент cik , т.е.

cij cij ckj cik , j k, k 1, k 2,...,2 n

4.Проверяем условие k<n, если оно справедливо, то k=k+1 и выполняем алгоритм с пункта 2, иначе выводим полученную обратную матрицу, расположенную на месте единичной.

14

 

4.00

1.00

1.00

 

5.50

1.00

Пример. Найти обратную матрицу. A 2.00

 

 

 

 

 

2.00

1.00

4.00

 

4.00

1.00

1.00

 

 

 

1.00

0.00

0.00

 

 

 

5.50

1.00

 

 

 

0.00

1.00

0.00

C 2.00

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.00

1.00

4.00

 

 

 

0.00

0.00

1.00

k=1

Делим все элементы 1ой строки на c1,1(4.00)

 

1.00

0.25

0.25

 

 

 

0.25

0.00

0.00

 

 

 

2.00

5.50

1.00

 

 

 

0.00

1.00

0.00

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.00

1.00

4.00

 

 

 

0.00

0.00

1.00

 

1.00

0.25

0.25

 

 

 

0.25

0.00

0.00

 

 

 

 

0.00

5.00

0.50

 

 

 

0.50

1.00

0.00

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.00

0.50

3.50

 

 

 

0.50

0.00

1.00

i=2 – из 2ой стоки вычитаем 1ую умноженную на c21(2.00)

i=3 – из 3ей стоки вычитаем 1ую умноженную на c31(2.00)

k=2

Делим все элементы 2ой строки на c2,2(5.00)

15

1.00

0.25

0.25

 

 

0.25

 

0.00

0.00

 

 

 

0.00

1.00

0.10

 

 

0.10

 

0.20

0.00

 

 

 

 

 

 

 

 

 

 

 

0.00

0.50

3.50

 

 

0.50

 

0.00

1.00

1.00

0.00

0.23

 

 

 

 

0.28

0.05

0.00

 

 

 

0.00

1.00

0.10

 

 

0.10

 

0.20

0.00

 

 

 

 

 

 

 

 

 

 

 

0.00

0.00

3.45

 

 

 

0.45

 

0.10

1.00

1.00

0.00

0.23

 

 

 

 

0.28

0.05

0.00

 

 

 

 

0.00

1.00

0.10

 

 

0.10

 

0.20

0.00

 

 

 

 

 

 

 

 

 

 

 

0.00

0.00

1.00

 

 

 

0.13

 

0.03

0.29

1.00

0.00

0.00

 

 

 

0.30

 

0.04

 

0.07

 

 

0.00

1.00

0.00

 

 

 

0.09

 

0.20

 

0.03

 

 

 

 

 

 

 

 

 

 

 

0.00

0.00

1.00

 

 

 

0.13

 

0.03

 

0.29

i=1 – из 1ой стоки вычитаем 2ую умноженную на c12(0.25)

i=3 – из 3ей стоки вычитаем 2ую умноженную на c32(0.50)

k=3

Делим все элементы 3ей строки на c33(3.45)

i=1 – из 1ой стоки вычитаем 3ью умноженную на c13(0.23)

i=2 – из 2ой стоки вычитаем 3ью умноженную на c23(0.10)

 

1

 

0.30

0.04

 

0.07

 

 

 

0.09

0.20

 

0.03

 

 

A

 

 

 

 

 

 

 

 

 

 

16

 

 

0.13

0.03

 

0.29

 

 

 

 

 

Соседние файлы в папке Лекции по VBA