книги из ГПНТБ / Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум]
.pdf2Л . 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
Массив исходных данных:
+128.
+16.
+0000000 00.
+3000000 01.
Результат вычислений +8999999 +01, эквивалентный числу +8,999999, удовлетворяет точному решению +9,0 с погрешностью
,9,000000 IJL999999 _ 0,0000001 9,000000
или в процентах 0,00001.
2.4.7.Квадратура Грегори
Вычислить определенный интеграл
|
х (I -г х2) ol х |
при П = 24 и Г - |
J 2. |
О (I) 24. |
|
Решение. Исходная |
программа: |
- 01-
ТРАНШТОР МЭИ-3
'BEGIN*
'PROCEDURE 'GrEGORYRUL,E(N,R,T,W),, 'VAlUE'N.R.,
■ *INTEGEk *4,R,, 'йЕАЬ " ARRAY'T ,Л., 'BEGIN'
'INTEGER I,J., 'KEAb’H.CJ.,
'INTEGER "ARRAY* B(/0:M/)., ’REAL.’'ARRAY ’C(/0:U+i/)., B(/0/)s-l.,
137
с(/о/5:-1.о.,
C(/i/Js— О.Б.,
Hl-<T(/H/)-T(/0/))/M.t
V, (/О/) S-WC/H/) s-О.Б.,
’ FOR* 1 .'l-l’sTEP’ -l’UUTIlj’ l'DO*
'BEGIN*
v;(/i/):- i.0.,
Т (/1/):- Ш + Т (/0 /).,
В С/Х/):-О
*IF’ R’GT’ m’THEN’ R '
’f’Oft*J :-i*STEP’ 1’ t/rlTIu’ R’ DO"
’BEGIN*
CJ:»O.EXC(/j/),,
’FflK'ls-j'sTEP’-l’UaTIu’l'OO'BC/I/Js-BC/I/J-BC/I-l/)
"•9
’FOR* I :-E’STEP* l’U'iTILi’ ,) +£’DO* CJ :=CJ+C(/J+£-I/)/I,,
C(/J+i/):--Cj., |
‘ |
’FOR* I :-0"ВТЕР’ i’U.lTI L*:i"-)0’ V((/I/) :-Vt(/I/)-CJX(B(/U- |
I/)*B (/I/))
’E.IJ’ .,
’FOR'I :»0'STEP"l’U;lTIu’ !’00’ V, (/I/) :-Vi(/I/)XH
t'EN1) 'GREGORYRU ьЕ., |
' . |
" |
' ' |
TESTBuOCII : |
|
|
|
’BEGIN’ |
|
|
|
’I N T E |
G E R * . |
|
\ |
138
'R E A L 'A .B .m .,
' REAL' ' PROCEOURE 'f (X) .,
'VALUE'X.,
•real’x ., |
|
F:®XX(i+XXX2)., |
|
Ns* 24., |
|
A:» 2.0», |
|
Bj=5.0., |
|
*BEGI I' |
|
’ARRAY 'T,W(/OsH/).t |
|
K:-0., |
|
T (/0/) :**A., |
|
T(/l/)i=B ., |
|
REPEAT: I MT:«*0 .0 ., |
|
GfiEG0KYRULE(,4,!C,T,W)., |
|
'fOR’js-o’BTEP’i'uuTib’M'DO’m |
:»m +yi(/j/)xp(T(/j/) |
) .. |
■* |
duTPUT(3,'(i’ ),K ) .t |
|
0UTPUT(3,’ (E |
|
'Tf ’ k ’ l t ’n 'ThEH" goto 'repeat |
|
'E;<d ' |
|
’emi) ’t e :;tblock |
|
‘emu'pkogramm.. |
|
Результаты вычислений, полученные на узкой печати, + о +•1628320 +03
139
+I
+1627534 +03
+2
+1627499 +03
+. 3 +1627499 +03
+4
+1627499.+03
+5
+1627499 +03
+, 6
+1627499 +03
+7
+1627499 +03
+8
+1627499 +03
+9
+1627499'*03
+10
+1627499 +03
+II
+1627499 +03
+12
+1627499 +03.
+13
+1627499 +03
+14
+1627499 +03
+15
+1627499 +03
+16
+1627499 +03
+17
+1627499 +03
+18.
+1627499 +03