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

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

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

F := - 2 .0 U X m .,

Xbi-o.o.,

YOs-i.O,,

'FOk 'Ks-I'STEP'i ’D.'ITIL’SO’DO*

beg i,Г

HK2(XO,YO,O.OB,F,Xi,Yl);,

OUTPUT(3,’(I’),K).t

ОиТРиТ(3,*(Е*5,Х1,У1).,

XO:=Xl.,

YO:-Yi

’EMU*'

’EMO'TE вТЬьОСК

'ENO'PUOGRAMM.,

Результаты вычислений

 

X

Метод Тунге-Кутта

 

Точное

решение

 

I

2

 

 

 

 

3

 

0,0

+1000

000

1-01

 

+1,0000

0000

 

0,1

+9900

787

+00

!

+0,9900

9900

 

0,2

+9614 735

+00

:

+0,9615

3845

 

0,3

+9173

165

+00

;

+0,9174

3119

 

0,4

+8619

191 +00

;

+0,8620 6896

 

0,5

+7998

407

+00

 

+0,8000

0000

 

0,6

+7351

515 +00

 

+0,7352

9411

 

0,7

+6710

339 +00

 

+0,6711

4093

.

0,8

+6096

942

+00

 

+0,6097

5609

 

0,9

+5524 707 +00

'

+0,5524 8618

 

1,0

+5000 265 +00

 

+0,5000

0000

15Г

2.5.3. Метод Рунга-Куна третьего порядка •'Решить'дифференциальное уравнение первого порядка

а у

 

=

У(0) = I

01 х

1,0 и

,

в

С,05

при х = 0,0 (0,1)

п

Точное решение

уравнения

у

=

1/(1 + х2),

Решение. Исходная программа:

- 01-

ТРАНСЛЯТОР МЭИ-8

* BEGIN*

•РНОСЕШЗЙЕ'ЫСЗ(XO,YO,H,F)REi3UbT:(Xl,Yl)., 'VAbUE*XG,YO,H.f

'HEAo’XO.YO.H.Xl.Yi., "кЕАЬ* 'PHOCEUURE’ P ., 'BEolN*

*REAu*Ki,K2,K3.,

X1:«*X0+H.,

KiS"? (XO,YO).,

K2:-?(X0+H/2.0,Y0+HXKl/2.0).,

КЗ :*>E (XO+H .Y0-HXK1+2.0XHX1C2). ,

YlV“Y.0+HX(';Cl+4.0XtC2+K3)/6;0

'ЕНО'йКЗ.,

TESTBbOCK:

* BEJIH*

*Inte ger*e .,

’REAu*XO,YO,Xl,Yl.,

*HEAu**PROCEOURE*F(X,Y).,

152

'VALUE *X,Y,,

'real *x ,y ,,

F:— 2.0XXXYXY.,

X 0:»0.0.,

VOi-l.O.,

'i’bu'!U-l’S7EP*l'Bfl?IL’20'D0* *BEGI'Г

RiC3(X0,Y0,0.0S,f)RESULT: (XI,Yl)i, 0UTPUT(3,' (I "), K)., 0UTP0T(3,V(B*)tXifY i).t , XO:-Xi.,

У0:*Л#1 ’Еда*

'E.IO’TELTBuOCIC

'e m u piiogramm.,

Результаты вычислении.

X

Метод

Рунге-Кутта

Точное

решение

I

 

 

2

 

 

3

0,0

+1,0000

000

+1,0000

0000

0,1

т9901

030 +00

+0,9900 9900

0,2

+9615

460 +00

+0,9615

3845

0,3

+9174

410 +00

+0,9174

3119

0,4

+8620

797

+00

+0,8620

6896

0,5

+8000

104

+00

+0,8000

ООСО

0,6

+7353

032

+00

+0,7352

9411

0,7

+6711

481

+00

+0,6711

4093

0,8

+6097613+00

+0,6097

5609

0,9

+5524

895

+00

+0,5524

8618

1,0

+5000 017

+00

+0,5000

ОООи

153

2.5,4,

Метод Рунге-Куттз четвертого

порядка

 

 

(стандартная формула)

 

Решить дифференциальное уравнение первого порядка

 

= -гху2 ,

у(0)

= I

Of

х

 

k =* 0,05.

 

при X = 0,0 (ОД)

1,0 и

 

Точное решение

уравнения

у = 1/(1 + х2).

 

Решение, Исходная программа:

 

-01-

ТРАПСЛЯТОР МЭИ-S

•SEGI.-1*

*Р,сОСЕJilrvS*kll4(X0,Y0,K,F)RF.SULiT:(XI,У1) ,,

*VAuUE*XOfYO,K.,

'i<^’r.o,yo,K,xi,Yi.,.

'USA-Д *PP.CCFOGP.E

’arc:

. .1,-.2 , • ,

Xi:**XO+K.,

;:i:-KSF(r.o,vo).,

:-:2:»hXP(X0+h/2.0,Y0+ui/2,0).,

iiSi-hXP (Х0*Ь/2.О,УО+:’2/2.0)., ;.4:»P;XF(Xi,Y0+:;s).,

y i:■=y o +(:;i 4+2.ox(;<2+::s))/8.о

E-lb1нКЧ.

TECTROOC;::

*begT ;*

*1 iTEGEii*,

'.■.EA.u*X0,Y0<Xi,Yl,,

154

"HEAD" ‘PiiOCEJUHE*F (X,Y).,

'VAbUE'X.Y.,

'ftEAi/X.Y.,

F:— S.OXXXYXY.,

X0:-0.0.,

YOs-l.O.,

*TOK* K:“l’STFP ’i’UX'TIu’яо’DO*

’BEGIN*

HK4(XO,YO ,Ci.06,F)HESUbT :(Xl,Yl).,

output (г,’( Г м ) . ,

0UTPUT(S,4O.*l,Yl).t

XO:-Xi.,

YOt-Yi

END

’EUJ'TEHTBbOCK

’END’PkOGRAMM.,

Результаты вычислении

X

Метод Рунге-Кутта

Точное решение

0,0

+1000

000

+01

+1,0000

0000

0,1

+9900

990

+00

+0,9900

9900

0,2

+9615

384

+00

+0,9615

3845

0,3

+9174

311

+00

+0,9174

3119

0,4

+8620 689

+00

+0,8620

6896

0,5

+7999

999

+00

+0,8000

0000

0,6

+7352

940

+00

+0,7352

9411 .

0,7

+6711

409

+00

+0,6711

4093

0,8

+6097

561

+00

+0,6097

5609

0,9

+5524

862

+00

+0,5524

8618

1,0

+5000

000

+00

+0,5000

0000

155

Hz.5,5. "етод Р.унге-Култа .четвертого порядкд

£ & § *1^.Ма,ТИЧОС КИМ К *Ш6116 НИ 01* Гс^ ИКИ?в Г РИ Р О *

зания Ремиг» ли.|.к«ревциальное уравярние /гервого порядка

О' у

?

у(0) = I '

---- ~

- -2ху*.

ах

при х = 0,0 (0,1 ; 1,0, h • 0,05, maxtoi* 0,001. mini о/ - Iо"3.

Точное решение уравнения у - 1/(1 + *2). Резонна» '.'сходная программа т

-01-

■ГРАНСДЯТОГ- НЭР-Я

'BEG1:;'

*т и f Kcctvuяг *ал1 ip г(?,х,v,кс-,уо,х■чп ,ка хтои гмш ом,и,с

,П0ИТ).,

’vAuUE ’ХО,УС,ХМлХ,УДХТС«,И1.ЧТО».тН,С,BOUT,,

’KEA./f

Y ,XC,Y0,XM*X,M#.5Tt ,М1;«Ом,h. ,

I "il t'GEtS

С» ,

ВОС^ЕХЧ'ИСС'.-,,

B r s i- r

пЕАа л »., :l JИ. . ,

*I«EG£,.'rf,4..

а Р Р Й !’ ¥ Г {/ С ;С /) , ,

’.<ЕАи • ,p«ri-^at.i«£’*M*s':os(x i , у ц д ) .,

'VA^OE’X l . Y l . G . ,

’Ш ,м ’Х1,У1,е.,

’ BFGIH*

tvFAu x *«Су v f

156

'INTEGER'S., IKC:«0;0.f

’FOR’ S:«1'STEP* 1’UNTIb '4*00 '

"begin*

R s“ 'IF ’s» 4 ’тн-en i else '0 .6.,

X x“Xl+( 'IP *f>l ’THEM'o 'EIjSE’rxg) .,

Y:»Yi*( '1Г 'S-l 'THEN '0 *Ei,SE*RXK) . , •

K:»GXF.,

INC j"I,4C+KX( ’ IP *S"i ’0R'S»4"THEN'*i,’EJjSE'2)

end’ .,

RKSTEPs-Yl+INC/6.0 'END *RKSTEP,,

'FOR * M 1,M+i'WHILE'XQ ’bT 'XMAX-CXH 'AND'DIEF ’ ЬТ'МАХТОЬТ»

0'

’BEGIN*

i p i m then

b eg in

YP(/0/)s-Y0.,' J

XQ:»XO

*END"fi„.'* " ip d ip ? 'c,7 'МГТОЬ’ТНЕЯ'К s“H/2,0*EbiSE ’ ’BEGIN’

XQ:»XQ*CXH,,

YP(/0/):-YP(/C/},,

'I? ’DIFF ’;<T iTGu’TiiEN’« J'S.OXii.,

’IF 'KEY(4) *ТЙЕК*0UTP07{3, *(Я ’ ) ,X<SД Р (/0/ )) ’END*.,

*POft*В?»O’fiTF.p*1*Иrffl:/0~i'00 *1fJ?(/ У ♦4/ ) :* .ШТКР(XCWi

157

ЛГч АВС(УР( / С/)-RKSTEP(XQ+ ( С-2)ХН,УР (/С-2/ ), 2ХН)) /

' 15.0

*ЕЧ!)\, N:=E;;TISa(XKAX-XQ)/H.,

,v^lP3:=YP(/N/)+(XMAX-XQ-MXB)X(YP(/H+l/)~YP(/N/))/H 'END'RK11P3.,

TEST3L0CK: 'BEGIN* •'

'INTEGER*K,C,,

'REAu 'X0,Y0,X,Y,XMAX,MAXTOR,m i n t o l .h ., 'BOOJ»4N'BOUT.,

XOt-O.O.,

У05-1.0.,

’FOR'К:»! 'STEP* 1'UNTIL *10*1)0'

b e g i n '

YO:» RK11P3 (-2.0ХХХУГУ,X,У ,X0,Y0,KX0. 1,0 .001,Ю-5,0.1, 2 ,''FALSE').,

X0:»0.1XK.,

- 02-

0UTPUT(3,'(l’ ),K )., 0UTPUT(3,’ (E’ ),X0,Y,Y0)

'END*

'eno'testblock

'ENO'PROGRAMM.,

Результаты вычислений

X

Метод Рунге-Кутта+')

Точное решение

0,0

+1000

000

+01

+1,0000

0000

о д

+9900

989

+00

+0,9900

9900

0,2

+9615

381

+00

+0,9615

3845

0,3

+9174

305

+00

+0,9174

3119

0,4

+8620

681

+00

+0,8620 6896

0,5

+7999

992

+00

+0,8000

0000

0,6

+7352

935

+0C

+0,7352

9411

0,7

+6711

406

+00

■+0,6711

4093

0,8

+6097

561

+00

+0,6097

5609

0,9

+5524

865

+00

+0,5524

8618

1,0

+5000

006 +00

+0,5000 0000

+Приводятся данные фактического параметра уо. фактичес­ кий параметр у является глобальной переменной.

2.5.6, Метод Рунге-Кутта пятого порядка (формула Кутта-Марсона)

Решить дифференциальное уравнение первого порядка

 

~

= _2ху^,

у(0) - I

 

й

х

 

 

 

при х = 0,0

(0,1)

1,0

и

k = 0,05.

Точное решение

уравнения

у - 1/(1 + х^).

Решение.

Исходная

программа:

 

 

 

- 01-

 

 

 

 

ТРАКСЛЯТОР мэи-з

’BEGI4''

 

 

 

 

 

*РаОСЕХ.З*к.'-5(Х0,Y0,H,Р)KEGUbT: (XI,9,Y1).,

‘VA^CE’XO.YO.H.,

159

'h e a l*’p r o c e d u r eг .,

’ BEGIN* 'йЕАЬ*К1,К2,КЗ,КЧ,Кб;, Xi s^XO+li,,

Kii” ?(X0,YO)/3,O.,

K2s"F(X0+H/8.0,YO+HXK1)/B;0;,

u35"?(X0+H/3»0,Y0+HXKl/2.0+HXK2/2i0}/3,0 .,

K4i“ " (X0+H/2.0,Y0+3.0XhXKl/8; 0+9; 0XHXK3/8.0//3.0 ,,

K6 ;=? (XO+H,YO+3.0ХНХК1/2.0-2.0ХЫКЗ/2.0+6.ОХНХКЧ)/3.0

YlJ=Y0+HX(Kl+4.0XK4+K5),'2.0.,

E:»liX(Ki>-9.0Xra/2.0+4;6XK4-K6/2.0)/6.0

емо'к ^.,

TESTBbOCK!

BEGIN*

*INTEGER* 4 ., *REAli’XO,YO,Xi,Yl,E., *REAb* ’PftOCEOORE’F (X,Y)., *VAiiOE*X,Y.,

*UEAii*X,Y., Pi— 2.0XXXYXY;, Xb:»0.0., YOj»i.O«*

*FOR‘ Ki-l*STEP*l*trnTIb‘ SO*DO*

BEG11^ RK6(X0,Y0,O.06,FtXl,E,Yi)., 0UTP0T(3,* (I*),!().,

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