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

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

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

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

Массив исходных данных:

+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.,

realx .,

 

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

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