Файл: Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум].pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 27.07.2024
Просмотров: 114
Скачиваний: 2
Массив исходных данных:
+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
+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