Файл: Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум].pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 27.07.2024
Просмотров: 115
Скачиваний: 2
TESTBbOCKs
'BEGIN*
*REAl/A,B.,
’integer*;*.,
’READ* 'PROCEDURE *F(X);,
’VAuUE'X.,
*REAu*X.,
P:-XXX2.,
lNPUT(t,A,8,N).,
OUTPUT(B,'(E’),SIMPSON(r ,A,B,N))
'end’testblock '
’END’PROGRAMM,,
Массив исходных данных:
+0 ,0 .
+3,0.
+100.
Результат вычислений +90000D0 +01 , равный +9,0 удовлетво ряет точное решение +9,0 с абсолютной точностью.2
2.;f,4, Формула Симпсона (второй вариант)
Вычислить определенный интеграл
г5
|
\ |
х {I |
t / ) d I |
|
J 2. |
|
|
при ер s = |
Ю -^ и П П |
я 20. |
, |
Решение. |
Исходная программа:. |
-С1-
ТРАНСЛЯТОР »ЭИ-3
’BEGIN ’
’PROCEDURE,’SIKPf®N(A,B,F.EPS,NN)RESULTj(I,INT)'i,
i |
127 |
'VAlUE'a .B.EP.'S.NN.,
’REAL’A.B.EPS.I.InT.,
’INTEGER’NN.,
’REAL’'PROCEDURE Y.,
'b e g i n ’
’REAR’D,?),GO,Gi,G2,GS,G4,AO,A1,A2., ’imt eger’m .n .,
’ARRAY’S'(/1:nn,14BO., INT:*I:-0,0,, M:-Ni-0,,
GO:«F(a ).,
G2l"F( (A+B)/2)
G4:-F{B).,
A0:-(B-A)X(G0+4XG2+G4)/2., AA:D:»2XIN., h:-(B-A)/H/D., Gi:«F(\+hX(4XM+l)).,
G8:»F (A+HX(4XM+3)).,
Alt“HX(G0+4XGl+G2).,
A2:-M(G2+4XG3+G4).,
’IF *ABS(i-AO/(A1»A2)) 'GT'EPS/D’ThEN’ ’BEGIN’
MJ-2XM.,
Ns-M+l.,
’IF ’N*GT*NN ‘THEN ’’GOTO ’FIN.,
AOl-Al.,
S(/N,i/):-A2.,
s(/N,2/)':-G3.,
S(/U,3/):»G4.,
G41-G2.,'
G2s»Gl.,
’g o t o ’aa
’e n d ’’e l s e \
’BEGIN*
1NT;»INT+(A1+A2)/3.,
M:»M+1.,
I:»A+MX(B-A)/D.,
BBs’lF ’H»2XDIV(H,2)’THEN’
‘be g i n’
M:»DIV(M,2).,
U:»N-1.,
’g o t o’bb
‘e n d ’.,
’if ’m»/i ’o r *n*7o ’t h e u ‘
’begin.’
AO:» P(/N,l/).,
GOS-G4.,
G2:-C(/N,2/).f
G4:»SC/N>3/5 •»
’GOTO‘AA
’ENO’
’END’.,
FIN:
•ЕПО’аМРВОЧ.,
129
testblock:
’b e g in ’
’KFAL’A,B,EPS,I,INT.,
’intfgfk' nh.,
’hFAu” PKOCE1)UKF’F(X)., ’value’*.,
-02-
' keal’x .,
F s»XX(i+XXX2).,
A:-2.0.,
Bs-5.0.,
EPsj-ю-е.,
Ml - 20.,
UIMPLON (A,B,F ,FPS, NN)RFSULT s(I,INT),, ouTPUT(3,’(E’),i,m)
’ehd’teutblock.
’enu’programm.,
Результат вычислений |
|
|
|
+4999999 |
+01 |
|
+1627499 |
+03 |
удовлетворяет точному |
решению +162,75 с погрешностью |
|
ePS |
- 162,75 - 162,7499 = 0,0001, |
|
т.е. фактически ер s |
= Ю " \ |
|
130
2Л . 5. Модифицированный метод Симпсона
В ы ч и с л и т ь определенный шгееграл
|
\ х (I + х2) ii х |
при ер S = 10-5 . |
2 |
Решение. Исходная программа:
|
- 01- |
|
ТРАНГЛЯТОР МЗИ-5 |
‘be g i n' |
; |
. ‘REAP’‘PROCEDURE’S1HPSCK(P,А ,В,EPS).,
*VAuUE*A,B,EPB.,
‘REAu’A.B.EPS.,
'REAь’‘PROCE CURE *F., ‘BEGIN’
’KEAu’ABsAkEA,EST,FA,PM,FB,DA.SX ,EST1,SUM,Fi., ‘iNTEGEk’bVu.,
‘ARRAY’DX,EP HP.XS.X3 ,F2,FS,F4,FMP ,FBP ,E2T2,E ST3(/l :30/)
,PVAb(/i:30,i:3/).,
‘INTEGEк*‘ARRAY‘RTkN(/1:30/).,
’SWITCH ’fiETUK4:-RlfR2,R3., |
|
START :1(V u!"0., |
|
OA :•B-A., |
- |
ABSAREA :»EST:»i.O., |
|
FA:*F(A)., |
|
FB:»F(B)., |
|
?M:*4.0XF ((A+B)/£.0)., |
|
RFCOR:bVU-UVi,+i., |
|
cX(/bVL/) :-l)A/B.O., |
|
131
SX:«OT(/LVL/)/6.0,,
Fl:-4.0XF(A*DX(/bVL/)/2.0).,
X2(/LVL/):-A+DX(/LVi,/),,
F2(/bVb/)s-F(X2(/LVb/)).t
X3(/bVb/) :-X2(/LVL/) +DX(/bVb/).,
Гг(/ЬУЬ/):-р(ХЗ(/ЬУь/))., EPPP(/LVL/) :«EPs .,
F4(/bVb/) S-4.0XF (X3(/LVL/)+DX(/LVb/)/2.0).,
FMP(/LVb/);-FM.,
FBP(/LVb/y:-FB., '
EETi:»(FA+Fl+F2(/LVb/))XSX,,
EoT2(/LVb/) :*(F£(/bVb/) +F3(/bVl./)+FM)XSX,,
EbT8(/bVb/) :»(F3(/LVL/)+F4(/lA'b/)+FB)XSX., .
EUM:<*E;,Ii+E;:T2(/bVb/)+EbT3(/i.Vb/).,
ABSAMA:-ABEAHEA-ABS(EST)4ABS(ESTi)+ABb(EST2(/bVL/))+AB
/(EST3(/LVL/)).,
’lP’((ABS(EST~SUM) "LB'ВЕЕР (/LVb/) iabsahea )*AND *(EST«/1. 0)) *0.K*(bVb "ge *30) ’t h e n *
’begin'*
UP :bVbs«l,Vb-i.,
PVAbf/bVu.ICTRfK/LVb/)/)
*еото*кЕтикн(/йтн(<(/т/)/)
’END’.,
m:f(/uVL/):.i„
OAs»DX (/LVL./).,
PM:-Fi.t |
x |
FB :«F2(/lVL/).,
EPS:-EPSP(/LVL/)/i.7., |
|
|
EST:-EST1., |
|
|
’GOTO'RECUR., |
|
|
Kl:RTkN(/bVb/):-2., |
■ |
|
Ms-UXC/LVL/)., |
|
|
FA:-F2(/LW)., |
|
|
FM:-FMP(/bVL/)., |
|
|
FB:-F3(/bVL/)., |
|
|
EPS:-EPSP(/bVL/)/1.7.f |
|
|
EST:-EST2(/LVL/)., |
|
|
A:-X2(/LVL/)., |
|
|
'GOTO’RECUR., |
|
|
R2!RTkU(/L,VL/):-3., |
|
|
OA:-DX(/LVu/)., |
|
|
FA:-F3(/bVb/)., |
|
|
- 02- |
|
|
FM:-F4(/LVL/)., |
. |
! |
FB:»FBP(/LVb/)., |
|
i |
|
■:/ |
|
EPb:*EP,..P(/bVL/)/1.7., |
; |
|
EET:-E;;T3(/LVL/).f |
|
; |
A:-X3(/LVb/)., |
|
! ■ |
'GOTO'RECUR., R3:.№U--mb(/LVb,i/)m'AL(/LVb,2/)+FVAE(/LVL,3/).,
' if "lvL 'gt -i 'them " goto 'u p .V '
bJMPSO.'C-PUM
e :id' uimpi;6;i.,
133
TESTBLOCK:
‘BEGIN*
’НВАЬ'А.В.ЕРЗ.,
’REAL” PROCEDURE’F(X).,
’VALUE’x.,
’r e a l 'x .,
f S"XX(i+XXX2).,
Aj-2.0.,
B:-6.0.,
EPSs-ю-б.,
OUTPUT(3,’(E"),SIMPSON(F,A,B,EPS))
’ENU’TESTBLOCK
’EfJD’PKOGRAMM.,
Результат вычислений +1627500 +03 удовлетворяет точному решению +162,75 с абсолютной точностью.
2,4,6. Квадратура Ромберга Вычислить определенный интеграл
О
при h * 128 и р = 16.
Решение, Исходная программа:
- 01-
ТРАНСЛЯТОР МЭИ-3
’BEGIN'
’РКОСЕ1ШЕ ’RGdBERGRULЕ'(N,Р ,Т,W).,
’VALUE’N.P.,
*INTEGEH’N,P.,
134
*reai/ 'array ’t ,w ., ’BEGIN*
‘IHTEGER'I.J.M.MI.MH.S., "REAL," ,c i .,
’REAL,"ARRAY *C(/0 ;(P-2)/2/)i, H:-(T(/4/)-T(/0/))/M.,
•f OR’Is«M“l"STEP’-1*0UTIL.*1"d o * 'BEGIN*
W(/I/) :-C(/I/j
T(/I/):-m+T(/0/)
’END*.,
M:-(P-2)/2.,
C(/0/):=1.0,,
S:-H4:-l.,
C(/M/):»0,,
*IF*M*Gi 'ьМ(1'0/ЫЧ(2)’ТНЕН'М:'-ЬМ(М)/ЬН(2)., "FOR *J:'i"step *1 "until *m ;’d o *
’b e g i n * |
.i |
МЧ:"ЧХНЧ., |
; |
Mir-MH-i., |
|
"FOR*I J ’STEP ’-1 'UNTIL *1*D0*C(/I/) 5»(M4JC(/I/)-C(/I
-l/))/Ml., |
: |
C(/0/):-C(/0/)X(M4/Ml) |
|
* Е ; Ш , |
-4 |
*F0r ’1;-0'STEP*1*UNTIl ’M ’D0’ ’be g i n"
135
CIt-C(/I/)XS.,
I- |
' 'FOB ’j 1вО*STEP’S"UNTIL *N *00 *W (/j/):»W (/j/) +CI.p |
S;-2XB
’En d ’.,
V-C/O/) s-W(/N/) t-0.5XVf(/0/).,
*1 OR’j:«0*STEP’l'UNTIL *4'D0’W(/J/){»W(/J/)XH ’END’ROMBERGRULE.,
’REAL” PROCEDOftE*F(X).,
’VALUE *X,K.,
’r e a l ’x .,
F:-XXX2.,
'BEGIN*
' INTEGER’ N..
INPUT(l.M).,
’BEGIN*
’r e a l ’a ,b ,i n t .,
' INTEGER'К,Р., ’ARRAY’T,W (/0:N /)., INPUT(i,P,A,B).,
1 ’FOR’K !“ 0*STFP'l'UNTIL' N’ 00*T(/K/) S“KX(B”A )/N .,
ROMBERGRUlE(N,P,T,W).,
INT:-0.0.p
*FOR*Ks»0 "STEP *1*UNTIL* N’DO*INT:»INT+W(/K/ )XF(T(/K/) +A ).,
00TPUT(8 f*(E*)fINT),t ’END*
’END'BLOCK
'END’PROGRAMM.,
136