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

книги из ГПНТБ / Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум]

.pdf
Скачиваний:
10
Добавлен:
23.10.2023
Размер:
4.88 Mб
Скачать

 

2*2.4, Решение

системы линейных алгебраических

 

 

уравнений

методом крашений

 

Решить систему линейных алгебраических уравнений

х1

+

0,1?-х2- 0,25-хЗ

+ 0,54-х4

* 0,3

з;

0,4?-х1

+

х2+ 0,67*хЗ

- 0,32’Х4

= 0,5

4?

O.IbxI

+

0.35-Х2+ 0,1 •хЗ

+ 0.74-Х4

= 0,7

2}

0,55-х1

+

0,43-х2+ 0,36-х3

+ 0,1 •х4

* 0,9

1C.

Решение/ Исходная программа:

'

 

_

 

_01_

 

 

 

ТРАНСЛЯТОР МЭИ-8

'BEGIN’

’PROCEDURE’V(A,B,N,M),,

value

arraya .b .,

’INTEGER*N,M.,

’BEGIN’

integer ’i ,

’REAb'Rl,R2,R8,R4.,

for 'k i st ep i ' until * n-i *00’ ’fori k+i st ep i ontiu'

n d o

b e g i n

R8 :"SQRT (A(/K,K/)XX2+A(/I,K/)XI2)., ’IF ’RS”0"THEN’’GOTO’lii., R2:-A(/I,K/)/RS,,

R4:-A(/K,K/)/RS.,

’FOR’Ji-K’STEP’I‘UNTIL *N’1)0’ ’b e g i n

R8s-A(/I,J/)XR2.,

A(/I,J/):-A(/I,J/)XR4-A(/K,J/)XR2.,

41

a (/k ,j /):«R3+a (/k ,j /)x r 4

*EMD\,

'POR *J :•1 ’ STEP' 1 ’UNTIL ’M*DO*

begin'

R3:«B(/J,I/)IR2,, B(/j,l/):-B(/J,I/)XR4-B(/J,K/)XR2., B(/JtK/):-R8+B(/J,K/)XK4

’END’ .,

Ml:

end’ .,

’FOR*Jt-l’ STEP’ l ’UNTIL'M’DC ” FOR’ r:-M*STEP*-i'ONTlL?i’

O’

’BEGIN*

RR:-0., ’F0R’Ki-N*STEP'-i*Ur<m'l+i’D0’R2:“R2+B(/J,K/)XA(/I

К/).,

B(/J,I/)i»(B(/J,I/)-RP)/A(/l,I/) ’END*

’END'V.,

ТЕВТBLOCK: ’BEGIN’

integern.m.,

INPUT(1,N,M).,

begin'

’ARRAY *A(/i:N,i:N/),B(/l:M,l:N/)., INPUT(1,A,B),,

00ТР0Т(3,’ (Г),М,М).,

42

00TPUT(3,-(E*),A,B).,

V(A,B,N,M),,

0UTP0T(3,*(E*),B)

'e m u

*Ei№'ТЕВТBLOCK

e n d 'p r o g r a m m .,

Массив исходных данных:

+4.

+ 2 .

+IOOOOOO 01. +1700000 00. -2500000 00. +5400000 00. +4700000 00. +1000000 01. +6700000 00. -3200000 00. -II00000 00. +3500000 00.

+1000000 or.

+7400000 00.

+5500000 00.

+4300000 00,

+3600000 00. +IOOOCOO 01.

+3000000 00. +3000000 01. +5000000 00. +4000000 01. +7000000 00.

+2000000 01.

+9000000 00.

+1000000 02.

Результаты вычислений, полученные на узкой печати, как в первом случае правых частей

-7059397 +01 +1393651 +02 -8932510 +01 +5105671 +01

так и во втором случае правых чаете;'! -1870568 +02 +3134585 +02 -2340190 +02 +1523409 +02

соответствуют действительным с достаточной точностью.

2.2.5. Решение системы линейных алгебраически уравнений методом ортогонализации

Решить систему линейных алгебраических уравнений

4-х1 + 5-х2 - З-хЗ = -I,

7-х1 + 9-х2 - 4-х* = -I,

х1 + 2-х2 + 2-хЗ = -I

точным и приближенными методами. 'Решение. Исходная программа:

- 01-

ТРАНСЛЯТОР МЭИ-5

'BEGIN*

’ INTEGER'N,о.. ’B00LEAN'PI2, f 'ARRAY*A(/1:4,1:4/)., 'PROCEDURE'0R(A,N,PIS)., 'VALUE *N,PI2.,

'array' a.,

'integer'»..

44

’BOOLEAN'PIS.,

'BEGIN'

’INTFGER’I,J,K.,

'REAL’R.,

'BOOLEAN’S.,

'FOR 'j:<*1'STEP 'i'ONTIL'N'BO’A(/N+l,J/)j"0.,

A(/N+i, N+l/) :•!.,

'FOR'l :-i'STEP'i'UNTIL' И и ’DO’ 'BEGIN’

s:-Pie.,

P: 'FOR'K:»i’STEP"i "UNTIL'I ’DO*

'BEGIN'

Rs-O.,

*FOR'j :*l’STEP’i’UNTlL*N+i’DO*Rt»R+A(/I,J/)XA(/K, J/).,

’IF’К-1’THEN''GOTO’Q;,

*FOR ’J!"1 'STEP 'i'UNTIL’N+I’IK)'A(/I,J/)i“A(/I,J/)_

RXA(/K,J/).,

|

'e n d '.,

;

 

»

Q:'IF’s ’THEN’

l

’BEGIN’

^

 

/ '

S:»'FALSE'.,

. |

'GOTO'P

j

'END'., •

-

R:-'IF 'I’LE ’n ’THEN’lQRT(R) 'ELSE’-A(/N+i,N+l/)., .

'FOR’.’;-i’STFP'i'UNTIL'N+i'DO'A(/I,J/)^A(/I,J/)/R

'EuD*

45

'MD\,

INPUT(i,A).,

Ok(A,S, ’TRUE*).,

’POK'Li!"i* STEP 'i'UNTIL*3 ’DO 'OUTPUT(3, '(Е*),А(/Ч,Ь/)).,

0K(A,8, 'FALSE').,

*FOft*bl-l*STBP‘i ' O N m ’8*DO'OOTPOT(3,'(E'),A(/4,b/)) 'e n d '

Массив исходных данных; +4000000 01.

+5000000 01. -3000000 01. -1000000 01. +7000GDO 01. +9000000 01. -4000000 01. -1000000 01. +1000000 01. +2000000 01.

+2000000 01.

-IOOOOGO 01.

+0000000 00.

+OOOOOCO 00.

+0000000 00.

+1000000 01.

Результаты-вычислений, полученные на узкой печати, в случае "точного" решения

+1700000 +02 -1200000 г02 +3000000 +01

совпадают с точным решением и приближенное решение

+1699997 +02 -II99998 +02 +29999% +01

несколько отличается от точного решения.

46

2,2.6, Решение системы линейных алгебраическ уравнений с ленточной матрицей

Решить систему линейных алгебраических уравнений

Of х = Ь »

если

 

 

 

 

 

 

 

 

i

2

O ’

0

0

 

 

 

3

A

5

0

0

 

16

О «

0

7

8

9

0

б

П

 

0

0

2

6

3

щ

 

0 • 0 ; 0 . A

5

 

i S

 

 

 

 

 

__i

(Решение.

Ленточная

часть

матрицы

 

 

 

0

i

2

 

ltd

 

о =

 

3

A

5

 

* '5

 

7

8

9

 

im

 

 

 

2

6

3

 

* 3

 

 

a ; 3 , q

 

 

 

 

Г___t ..A

 

 

 

 

Исходная программа!

 

 

 

 

 

 

- 01-

 

 

 

 

 

 

 

ТРАНСЛЯТОР МЭИ-3I

 

’BEGIN’

 

 

 

 

 

!

 

’PROCEDURE *В/ SD30LVE(C#M,M)DATARESULT:(V) 1,

Ч'АЬОЕ’М * .

 

 

 

'j

 

’m E G E R ’M ; ,

 

 

 

 

abbayc ,v,,

 

 

 

 

 

•BEGIN’

 

 

 

 

 

 

 

’REAb’T.*

 

 

 

*

 

* m E G E B ’l,J,JM,bB,PIV,Bi,

bR:»Diy(M*i,2):f

*Р0В’В!"1 ’STEP *i*OHTH,’UB-l’BO’*EOB*I t»i *STEP Tl’OHTIbJL

B-B’DO’

,

 

■ !

A?

ВЕ$1Н’

*m ’jx>»2’STEP’i,UUTIL’M*0O’C(/R,J-l/):»C(/R,;r/);,

с(/й,м/) x-C(/N+i-R,H+i-I/) {-о

’END*;,

‘fOR*Iх»!.’STEP ‘i‘UNTIL *N”i*DO"

beg in*

PIVs-Ii,

f o r r х*i+i‘s t e p ’t’until *LR*DO ’’IP *ABS(C(/K,i/))?GT ABS(C(/PIV,l/))‘THEN’PIVx-R.,

‘If‘PIV«/I*THEn

’BEGIN’

T:-V(/I/)i, Vt/I/)x-V(/PIV/)i, v (/p i v /> *-t ;

*?OR’ix-l’STEP’i’UHTiL'M’DO' ’be g i n'*

T:-C(/I,J/);,

cf/i,j/)s-c(/pjv,j/):,

c(/piv,i/) x-T

e n d j

‘e n d ’;, v(/i/)i»v(/i/)/c(/i,i/);,

'POR’J t*e*STEP'*i*ONTIL*M *DO’C(/I,J/) :*>C(/I,J/)/C(/I

t/)i*

p 6r rx*I+i s t e p *i 'u n t i l l r d o

’BEGIN"*

Tl*C(/R,l/) ,,

V(/R/)fT(/R/)-TIV(/I/);,

*r0H*j:-2,sTE;p*i'’0i(TiL’M 'B 0 * c (/ B ,j-i/):-c (/a fa /)-

TXC(/I,J/).,

C(/R,M/):-0

'ЕНОХ,

*IP*LR»/N’THEN’LR:"LR+i

*e n b ' . ,

.

V(/K/)t-V(/N/)/C(/H,i/).,

JM:-2.,

'FOK"R:“!i-i'SiEP *-i’UNTIL’l’DO*

b e g i n

f o r j :•2s t e p i until j m dov (/R/) X-V(/R/)~C(/M/>

XV(/R-i+J/).*

'lF’jt+>/K’ThEN*JMx-JM+l

' e n d *

e n d ban dsolve.,

ТЕ LTBLOCK:

’BEGIN*

i n t e g e k 'n .m .,

INPUT(t,N,M)»f

b e g i n

’ARRAY’V(/l;N/),C(/ixN,i;M/).,

INPUT(1,V,C).,

BANDLOLVE(C,N,H,V ).,

- 02-

OUTPUT(S,’(E’),V)

’END*

'END’TELTBLOCK

’END'PROGRAM.,

49

Маосив исходных данных:

 

+5.

 

 

+ 3 .

 

 

+5,0.

 

 

+26,0.

 

 

+74 ,0. •

 

 

+45,0.

 

 

+41,0.

 

 

+0 ,0 .

 

 

+1 ,0.

 

 

+2 ,0 .

 

 

+3,0.

 

 

+4,0.

'

 

+5,0.

 

 

+7,0.

 

 

+8,0.

 

 

+9,0.

 

 

+ 2 ,0 . ”

 

 

+6 ,0 .

 

 

+3,0.

 

*

+4,0.

 

 

+5,0.

 

 

+0 ,0 .

 

Результаты вычислений, полученные на узкой печати, +9999999 +00

+2000000 +01

+3000000 +01

+3999999 +01

+5000000 +01

соответствуют действительным в пределах точности действия

ЭЦВМ.

у

■ , '

. \

50

Соседние файлы в папке книги из ГПНТБ