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

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

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

+19

+1627499 +03

+20

+1627500 +03

+21

+1627499 +03

+22

+1627497 +03

+23

+1627496 +03

близки к ожидаемый и показывают,

что при I < Г -с

22 дости­

гается предельная точность вычислений.

 

2,4,8,

 

Квадратурное интегрирование

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

интеграл

 

 

f6

П

,

 

 

j

х

d. х

 

 

а

 

 

3, N =128

для п = I; 2} 3; 4; 5,

О =

0,

0 = 3 при tn

и квадратуре Ромберга о р * 16, Решение. Исходная программа:

- 01 -

f

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

'BEGliJ

'PROCEiH)KE’QOAH(A,B'tM,M,P ,C,U,F)RESULT:(HUM) .,

'VABUE'A.B,,

kea^’a .b ,,

*1MTEGER'M,N,P., ;

array 'U,C,SUM.,

*REAi/ ‘procedure 'f .,

b e g i h

"r e a l 'h .t .r ,.

141

’ iMTEGEft'l.J.K.,

Н:-(в-А)/м.,

‘FOR step ’i ' u n t il p d o

’BEGIN*

5UM(/J/) :»o.f

R!"A-H.,

’FOr 'I i’STEP’l’UNTIL 'M’DO’BEGХм'

Rs-R+B.,

"FOR*K :“0 "STEP ’i ’UNTIL *M*DO’

b e g in

T;»R*U(/K/).f

3UM(/J/):-SUM(/J/)+C(/K/)XP (T,J)

en d k

end i .,

endj

e n d quad.,

'Procedure rombergrulec m,p ,t , w) ., 'v a lu e n. p .,

integern .p .,

reauarrayt ,v;.,

b e g in

’IMTEGER’I,J,M,M1,M4,S.,

real b ,.c i .,

’REAL” AfcRAY‘ C(/0:(P- 2)/2/).,

Hl- (*T(/N/)-T(/0/) ) / m: ,

V''(/0/):nW(/M/):»0.,

’rOR'ls-H-i'STEP'-l’UHTIb’l'DO*

beg in

W(/I/):-C(/I/):-0.,

T(/I/):-IXh+T(/o/.) ’END*.,

M:-(P-2)/2., c(/0 /):-1 .0 .,

Ss-M4s-1., c(/N/):-0 .,

’IF *M*GT *LiN(N)/LN(2) ’ThEN’M:,,bN{N)/UN(2) ,, ’FOR*J :»i ’STEP ’i’UNTIu m ’DO’

’BEGIN*

МЧ:»ЧХМЧ.,

’FOR’l:=J’STEP’-i’UNTIL/1’DO’C(/I/) :»(M4XC(/I/)«C(/I

C(/0/):-C(/0/)X(M4/Ml)

’END’.,

P

 

’FOR’ls-O’CTEP’l’ONTIL’M ’DO’

b e g i n

;

CI;-C(/I/)XS.,

 

'FOR'J O'STEP’S’UNTILi*n 'DO'W(/J/):=W(/J/)+CI,,

;.:»2xs

;

’END’.,

: ■

W(/0/):«=W(/N/):»0.5XW(/0/)., 4

'FOR*J :»0’STEP’1’UttTIь’m d o ’W(/J/)

143

-02-

'ENU’ROMBERGRULE.,

'REAL ''PROCEDURE’F(T,J)., 'VALUE'T,J.,

'rEAl ’T.,

'i n t e g e rj ., ’BE6IH*

F:-TXXJ 'ERD’f ., BLOCK: 'BEGIr '

REAii A,B.t

*iht eger'm ,p ,k .,

'ARRAY 'RUM(/1:6/),T,W(/0:126/)o , A:«0.0*,

B:-3.0.,

M:»S,,

P’s*6.,

'FOR *K:-0'STEP'l’UNTIb’126'DO*T(/K/):»KX(B-A)/i28/M ROMBERGRULE(128,16 ,T,W)., QUAD(A,B,M,128,P,W,T,F)KESULT:(SUM)., 0UTPUT(8,*(E'),SUM)

'ERD'BLOCK

'ERD*PHOGRAMM.t

Результаты вычислений:

 

Точное радение

Машинное решение

+4,5

+4,499999

+9,0

+8,999999

+20,25

+20,25000

+48,б

+48,59999

+121,5

+121,4999

Точность решений достаточна,

ибо ЭЦВМ "Минск-гЭ" в режи­

ме с плавающей запятой оперирует

только с семью значащими

цифрами чисел.

 

 

 

 

2,4,9, Дифференцирование

у = \/~х'

 

Произвести

дифференцирование

функции

при

х * I (I) 10

с внутренним шагом

h =0,1.

Одновременно оп­

ределить и точное решение дифференцирования в указанных точ­ ках х, если известно, что точное решение равно 1/2.\[х .

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

- 01-

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

*BEGI:i'

’PROCEDURE ’DIFFERE'JCECF ,Х,Н)RESORT:(ОУ)., ’VAUJE *Х,Н.,

кеаьх ,н,пу.,

*КЕАь" PROCEDURE *F.,

"begih '

’№EGER*K,b,M,f<,P., *KEAL *05Y.,

•ARKAy,y(/0:6/),31Y(/0i4/),D2Y(/0:3/),D3Y(/0:S/)r04!r(/0

si/).*

',F0R,K:-0'sTEP'l*0HTm’6*D0'Y(/K/)l-P(X+KXH)., "FOR*Ь:иО’STEP ’l*U:n'lu*4,D0*DlY(/b/j r»Y(/L+i/)-Y (/0/) ,, ’FOR *M:-0’sTEF VON'TIb Vi)0 *ОйУ(/М/) t-DlY(/h*l/)-i>iY(/M /).,

145

’FOR’Nl-O'STEP’l'amL V D 0 ’p3Y(/;</):»I>2Y(/H+i/)-D2Y(/N

‘F0R*P:-0,i*DO'D4Y(/P/):-D5Y(/P+l/)-D3Y(/P/).,

I>5Y:-D4Y(/i/)-D4Y(/0/).,

Л:»(Р1У(/О/)-02У(/0/)ХХ2/2+0ЭТ(/0/)ХХЗ/б-ОЧУ(/0/)ХХЧ/2 *1s

4+05Y/l20)/h.,

*IF ’KEY(2) ’ТНЕ.Ч '0UTFUT(3, ’СЕ’),Y,OiY,D2Y,D3Y,D4Y,D6Y,0Y

)

’ENj’OIFFEKENCE., *REAR ’'PROCEDURE *F(X)., ’REAl ’X.,

■Fs-oCRT(X)., *BEGIX"

*INTEGER 'K.,

’FOR *K:»1*STEP *1*UNTIL,*10 'JO*

. ’BEGI.Г

'rEALi’X, W . ,

DIFFERENCES,X.O.l.DY),, 0UTP0T(3, ’(E ’),1/(2XSQRT(X)),UY)

e n d

’END’

’END’.,

В

результате вычислений

получено

 

X

Точное решение .

Машинное решение

V

I

2

3

 

I

+0,5000 0000

+0.,ft860 .659

 

I

2

 

3

 

2

+0,3535

533

+0,3492

378

3

+0,2886

751

+0,2863

077

4

+0,2500

000

+0,2484

563

5

+0,2236

067

+0,2224

995

6

+0,2041

241

+0,2032

804

7

+0,1889

822

+0,1883

120

8

+0,1767

766

+0,1762

27?

9

+0,1666

666

+0,1662

063

10

+0,1581

138

+0,1577

205

2.5.

Дифференциальные уравнения и океаны

 

дифференциальных уравнений

2.5.1.

.Модифицированный метод Эйлера

Решить дифференциальное уравнение первого порядка

- - —

= - 2ху2 .

у(0) = I,

О/ х

1,0 и Ш

=0,001, h = 0,05.

при х = 0,0 (0,1)

Точное решение

уравнения

у = 1/(1 + х2) .

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

- 01

транслятор уэи-г

’BEG1U’

'PrOCFDCRE 'м£(Е ,Х,Y,XG,Y0 ,Х".АХ,Н,ТОь ,TER).,

'VALUE’XO,YO,XMAX,H,TOu.,

'KEAu' \Х ,Y,XO,YO,XMAX,H,TOl ,TFR.,

'BEGI;f

* InTFGfK*l4, Я,!IS.,

’REAL’FIRST.ВЕТТЕК.Оьй ,PRFV 10US .FORD ,0EUTA ,TMAX ,T.,

14?

Xs-XO.,

Y":»P11EV10US:«0LD:»Y0,,

FOLD;»i .,

h:i:-'(x m a x-x o )/h ., Hs»(XMAX-XO)/!W., 'FOR'.U-l’BTEP'i’miTIb’.NU’DO* *BEGI.l'

X:-X+h.,

FiH.JT:-Y :-PilSVIOOO+hXI'OuOXC'I?’K-i'TKEU* t^ELSE i2)., ’FOR*M :»i,tt+i*V.’HlLE*DELTA'GT’TOLEDO"

' *BEitI.Ir

BETTER:»Y.,

У :°0 jD+HX(?ObD+F)/2.0., DELTA :-A3S(Y-BETTER)

*E:!D*,,

previous :-Ol,d .,

0.jD:=Y.,

■FOLD:»?.,

T :=A BE(F1RtiT-Y).,

TMAX :»*I?*iT“l*tHR4*T’EbCE*"IF'T'GT’TMAX’ThEu'T’ELSE'

ТИАХ

EilD*.,

TEtt:»TMAX/5.0

"emd'me. ,

TESTBLOCK:

*BEGIM*

'INTEGER*K.f

148

 

 

’REAl/XO,YO,XMAXfTERfX,Y .,

, .

 

 

Y0:-1.0.,

 

 

 

'

1

 

 

X0:»0.0.,

 

 

 

 

 

 

 

XMAX:-0,1.,

 

 

 

 

 

 

 

’FOR’ lCs'l’STEP’i ’UflTIb'lO'nO’

 

 

 

 

b e q i m '

 

 

 

 

 

 

 

(.5(-2XXXYXY,X,Y,XO,YO, KXXMAX,0.06,0.001,TER) 1,

i

 

 

0UTPUT(3, '(E’ J.X .Y).,

 

'

 

 

YO:»Y.,

 

 

 

 

 

 

 

XO:»X

 

 

 

 

 

 

 

’EMU*

 

 

 

 

 

 

 

 

'E;u)’TEi;TBbOCK

 

 

 

 

 

'EIW’PROGRAMM,,

 

 

 

 

 

 

Результаты вычислений

 

 

 

 

 

X

Метод Эйлера

 

Точное

решение

 

 

I

 

2

 

 

 

3

 

 

0,0

+1000

000 +01

 

+1,0000

0000.

 

 

0,1

+9901 239 +00

!

+0,9900

9900

 

 

0,2

+9616

305 +00

;

+0,9615

3845

 

 

0,3

+9176

104 +00

;

+0,9174 3119

 

 

0,4

+8623

284

+00

 

+0,8620 6896

 

.

0,5

+8002

376

+00

 

+0,8000

0000

 

 

0,6

+7355

983 +00

 

+0,7352

9411

 

 

0,7

+6714

496 +00

;

+0,6711

4093

 

 

0,8

+6100 586 +00

!

+0,6097

5609

 

 

0,9

+5527

747

+00

 

+0,5524 8618

 

 

1,0

+5002

695 +00

 

+0,5000

0000

 

149

2.5.2.Катод Рунге-Кутта второго порядка

,Решить, дифференциальное уравнение первого порядка

- 5 - L „ . 2ху2, у(0) « I

О/ х

при х = 0,0 (0,1)

1,0 и

h а 0,05.

Точное решение

уравнения

у = 1/(1 + х2).

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

* 01-

Транслятор мэи-з

’8EQ2:)'

,Pk0CEO0fte<RKS(XO,VO,H,F)REijUl,T:(Xl,Yl).,

'УАШ*ХО,У0,К.,

*ШЬ*ХО,У0,Н,Х1,У1.,

•RBAi/*PROCEiXJRE’P.,

’Ш31К*

“REAL.'k 1,K2., , XlJ-XO+H.,

Itlj“fiXF(XO,YO).,

K2J--HXP(Х0+2ХИ/3.0.Y0+2XK1/3.0).,

Yl:=Y0+(Kl+3.0XH2)/4.0

*EHD*ftK2.,

TESTflbOCK:

‘BBOirt*

‘Ш Е в Е й ’К., *REAl/X0,Y0,Xl,Yi.,

*REAb* ’procedure *f (x ,y ). , ‘VAUJE'X.Y.,

*REAb*X,Y.,

150

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