Главная » Basic » ПРИМЕРЫ ОБРАБОТКИ МАТРИЦ

0

Приведенная ниже программа иллюстрирует некоторые из простых операторов МАТ, в  частности ввод, вывод и арифметические операции,

10 RЕМ ПРОСТОЙ ПРИМЕР РАБОТЫ С МАТРИЦАМИ

20 DIM А(4,4),В(3,3),С(3,3)

30 REM

40 MАТ INPUT В,С

50 PRINT "МАТРИЦА В"

60 MAT PRINT В

70 PRINT "МАТРИЦА С"

80 MAT PRINT С

90 REM

100 МАТ A=В+С

110 PRINT "МАТРИЦА А=В+С"

120 MAT PRINT A

130 REM

140 МАТ А=В-С

150 PRINT "МАТРИЦА А=В-С"

160 MAT PRINT A

170 END RUN

?9.10.11.12.13 ?14.15 ?16.17.18 МАТРИЦА В

1

2

3

4

5

6

7

8

9

МАТРИЦА

С

10

11

12

13

14

15

16

17

18

225

МАТРИЦА А=В+С

11

13

15

17

19

21

МАТРИЦА А=В-С

25

27

-9

-9

-9

-9

-9

-9

-9

-9

-9

END AT LINE 170

Может появиться тенденция считать матрицы похожими на обычные переменные, особенно при

выполнении над ними простых арифметических операций. Но в случае скалярных величин а и b, например, справедливо тождество (а-b)2=а2 -2аb+b2. Однако для матриц А и В в общем случае (А-В)2 не равно А2 2АВ+В2. В частном же случае В=I, где I единичная матрица, соотношение (А—I)2  =А22A+I справедливо, учитывая, что АI=IА=А и I2 =I. Приведенная ниже программа иллюстрирует это равенство для специфических матриц А:

10 REM ИЛЛЮСТРАЦИЯ МАНИПУЛЯЦИЙ С МАТРИЦАМИ

20 REM ВЫЧИСЛЯЕТСЯ (А-I)**2 И СРАВНИВАЕТСЯ

30 REM С А**2-2*А+I

40 DIM А(20,20),В(20,20),С(20,20)

50 REM ИСПОЛЬЗУЕТСЯ ПЕРЕОПРЕДЕЛЕНИЕ РАЗМЕРОВ (ЕСЛИ ДОСТУПНО)

60 REM ЧТЕНИЕ ИДЕТ ПО ИСХОДНОМУ РАЗМЕРУ МАТРИЦЫ

70 READ N

80 REM ОПЕРАЦИЯ ZER ПЕРЕУСТАНАВЛИВАЕТ РАЗМЕРЫ

90 MAT A=ZER(N,N)

100 REM ЧТЕНИЕ ИЗ ОПЕРАТОРОВ DATA С РАЗМЕРАМИ N*N

110 MAT READ A

120 REM СФОРМИРОВАТЬ В В ЕДИНИЧНУЮ МАТРИЦУ С ПЕРЕОПРЕДЕЛЕНИЕМ

125 REM РАЗМЕРОВ

130 MAT B=IDN(N,N)

140 REM СФОРМИРОВАТЬ С=(А-I), ВЗЯВ РАЗМЕРЫ ОТ А И В

150 МАТ С=А-В

160 REM ПОЛУЧИТЬ (А-I)**2

170 МАТ В=С*С

180 PRINT "МАТРИЦА (А-I)**2"

190 PRINT "—————"

200 MAT PRINT В;

210 PRINT

220 MAT B=IDN(N,N)

230 REM СФОРМИРОВАТЬ С=А*А (УНИЧТОЖИВ ПРЕЖНЕЕ СОДЕРЖИМОЕ)

240 МАТ С=А*А

250 КЕМ СФОРМИРОВАТЬ С=А**2+I

260 МАТ С=С+В

270 REM СФОРМИРОВАТЬ А=2*А

280 МАТ А=(2)*А

290 REM СФОРМИРОВАТЬ С=А*«2-2«А+I

300 МАТ С=С-А

310 PRINT "МАТРИЦА А**2-2*А+1"

320 PRINT "—————"

330 MAT PRINT С;

340 PRINT

350 DATA 4

360 DATA 1,3,7,3,1.4,1.5,5,2,6,1.3,4,9,1

370 END

RUN

МАТРИЦА <A-I>**2 47 35 65 22

23 34 60 19

30 35 71 30

49 39 70 38

МАТРИЦА А**2-2*А+I

47

35

65

22

23

34

60

19

30

35

71

30

49

39

70

38

END AT LINE  370

Если переопределение размеров матриц Вашей системой не производится, то положите  размеры массива равными (4,4), опустите строки 60, 70, 350 и измените строки 90 и 130, удалив из них список параметров (N,N).

Вы можете проверить, насколько общим является преобразование  выражения (А+В)2 в А2+2АВ+В2,

соответствующим образом модифицируя приведенную выше программу.

5.5.   ЛИНЕЙНЫЕ УРАВНЕНИЯ

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

Аx=b, т. е.

по методу исключения Гаусса с выбором ведущего элемента по столбцам. Хотя этот метод прост, но выбор ведущего элемента  по  столбцам  помогает  сдерживать рост  ошибок,  вызванный  потерей значащих  цифр,  что  делает  его  очень  полезным  универсальным  методом.  Кроме   того,  его применение позволяет без труда вычислить обратную матрицу для А и определитель матрицы А.

Если Вы имеете дело с особой системой линейных уравнений (например, системой с  большими размерами или плохо обусловленной, или с преобладающей диагональю, или с какими-либо иными особенностями), то обратитесь к литературе по численным методам, поскольку для решения систем линейных уравнений существует много различных приемов.

Источник: Уолш Б.    Программирование на Бейсике: Пер. с англ. М.: Радио и связь, 1988. 336 с: ил.

По теме:

  • Комментарии