Главная -> Книги

(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) ( 18 ) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (18)

Пусть надо сложить неограниченное число матриц с числом строк 4 и столбцов 3. Удобно эту операцию представить в виде

bi bs ba bi bs 6б

bo bto 611

+ ... =

nir ng ni9

ttii mj /Пб

«1 «2 Шз

где индексы у элементов матриц заменены номерами регистров, в которые эти элементы заносятся (Р10 == РА, РП = РВ).

Программа 3.11. Сложение матриц размера 4X3. Ввод Оо н-йц = РОРП, bo-ir Ьц = РХ ... Результат тдШц зано« сится в регистры РОч-РП.

7 9 5 1 3 1

+ пв

С/П ИП7 +

С/П ИП9 +

С/П ИП5 +

С/П ИП1 +

С/П ИПЗ +

О С/П БП

П7 8

П9 4

П5 6

П1 2

ПЗ О

ИПА + ПА 1 00

С/П ИП8 +

С/П ИП4 +

С/П ИП6 +

С/П ИП2 +

С/П НПО + 1

П8 П4 П6 П2 ПО

С/П ИПВ

При использовании этой программы сначала в регистры РО 4 Ч- РП вводятся числа первой матрицы. Затем, после нажатия кла виши С/П, построчно вводятся значения элементов второй матрицы При этом программа всякий раз подсказывает номер числа матри цы. Например 7, 8 и 9, при вводе первой строки. Если матриц не сколько, то в той же последовательности вводятся значения элемен тов последующих матриц. Проверить программу можно, присвоив значениям элементов складываемых двух матриц номера регистров (получим их удвоение).

Часто возникает необходимость в умножении матриц. Произведением матрицы А размера m X « на матрицу В размера « X Р является матрица С = АВ размера тХР, элемент Сц которой, расположенный в ij клетке, равен сумме произведений элементов (-ой строки матрицы А иа соответствующие элементы /-го столбца матрицы В:

Таким образом, число столбцов матрицы А должно быть равно числу строк матрицы В.

Программа 3.12. Умножение матрицы А размера 3 X 4 на матрицу В размера 4X2. Ввод элементов матрицы В и вывод значений элементов матрицы С соответствуют указанным в формуле.



«и

12 a,i

= Р7

с„ = РЭ

С2 =

«22 «23

= Р4

б22 = Р5

C2I = Р6

С22 -

a$i азз

= Р1

= Р2

Сз, = РЗ

= РО

= РА

С32 =

ИПЗ ПЭ

ИПД •

Работу этой программы можно проверить па примере:

2 0 3 1 5 12 0 0 0 4 1

2 1 4 О

2-1+0-2 + 3-4+1.3 = 17 5.1 + 1-2 + 2-4-1-0-3 = 15

2 . 3 + О • 1 + 3 О 4-1 • 5 = 11 5-3+1-1+2.0--0-5=16

0.1 + 0-2 + 4.4+1-3 = 19 0-3 + 0.1+4-0+1-5 = 5

Введем элементы матрацы В. Нажав клавишу С/П, получим яа индикаторе цифру 1, указывающую на ввод первого элемента первой строки а,1 матрицы А. Вводим его, затем нажав клавишу С/П, получим цифру 2 - надо вводить ац. Введя, таким образом построчно все элементы матрицы А, получим на индикаторе цифру О, указывающую на конец вычислений. Из регистров 9. 6, 3, В, С и Д вызываем результат вычислений- числа 17, 15, 19, 11, 16 и б.

Иногда нужны обратные матрицы Л-, удовлетворяющие условию Л-Л- = 1. Правила обращения матрицы Л в обратную матрицу Л- описаны в [4-7]. На микрокалькуляторе легко провести обращение квадратных- матриц размера 2X2 и 3X3. Обращение матриц большего размера можно проводить, разбивая их на блоки меньшего размера.

Программа 3.13. Обращение матрицы размера 2X2. Ввод:

а„ = Р7 а21 = Р8 0,2 =Р4 а22 = Р5

Обращенная матрица заносится на место исходной. ИП4 ИП8 X П2 ИП7 П9 ИП5 X ИП2

П2 ИП5 XY ИП2 /-/ -БП 00

- П7 ИП9 ИП2 П5 ИП4 П4 ИПЗ ИП2 /-/ П8 С/П



Для контроля программы можно выполнить следующие вычисления:

7 8 4 5

1,6666666 -2,6666666 -1.3333333 2,3333333 Программа 3.14. Обращение матрицы размера 3X3. Ввод: а,, = Р7 fli2=P8 0,3 = Р9

fljl = Р4 022 = Р5 «23 = Р6

аз, = Р1 032 = Р2 033 = РЗ

Обращенная матрица заносится на место исходной,

3 ПО ИП4 ИП7 ч- ПД ИПД /-/

ИПД ИП8 X - ПА ИП6 ИПД ИП9 ПВ ИП1 ИП7 ~ ПД ИПД /-/ П6 ИП8 X - П4 ИПЗ ИПД ИП9 X ИП8 ИП7 - П1 ИП9 ИП7 -i- П2 ПЗ ИПА П7 ИПВ П8 ИПС П9 FLO Работу программы можно проверить на примере:

0,08333333 -0.08333333 О, 0,08333333 0,04166667 -О, -0,16666666 0,16666666 -О, Повторное обращение матрицы Л- даст матрицу шими операционными погрещностями.

4 8 0

8 8 8

2 0 1

ПС ИП5 X

ИП2 ИПД

- Пб

ИП7 Fl/л;

02 С/П

66666666 ,33333333 ,33333333

А с неболь-

3.3. Вычисление факториалов и комбинаторика

Программа 3.15. Вычисление факториала п1=1-2-3... -п с исключением заведомо известного значения О! = 1 при п = РХ ПО 1 НПО X FLO 02 С/П Пример. 10! = 3628800 вычисляется за 10 с. Программа 3.16. Вычисление факториала ft! для любых п, включая О, при п = РХ.

т ТхфО и 1 ИПО X FLO 04 С/П БП ,00 1 БП 08

Примеры. О! = 1, 1! = 1, 3! = 6, 10! = 3628800, 201 = = 2,432902-10« (время счета tcCn с).

Программа 3.17. Вычисление факториала ft! больших чисел (при п > 10 верны пять первых знаков результата) по уточненной формуле Стирлинга [1, 2]:

n! = «"V2exp[-«+-ЗО;)]- (3.1)

Ввод: п = РХ при максимальном п = 56.

П9 t ¥хУ 1 ИП9 3 О X Fl/л; -1 2 -4- ИП9 ИП9 - Fe- X 2

Ря X ипд X fV X С/П БП 00



(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) ( 18 ) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73)