книги из ГПНТБ / Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум]
.pdf+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 .,
’end’j
’e n d ’quad.,
'Procedure ’rombergrulec m,p ,t , w) ., 'v a lu e ’ n. p .,
’integer’ n .p .,
’reau” array’t ,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 r’j ., ’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