Файл: Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум].pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.07.2024

Просмотров: 122

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

"mEGER*I,M,S>, *ARRAY"B,P,Q(/0:M-i/)i,

"PROCEDURE "HORNER(P,Q,N,X)RESULTs(PP,00).f "VALUE *n ,x ., - "r e a l 'x .p p .q q .,

"INTEGER *N., 'a r r a y *p ,q :, "b e g i n "

"int e g e ri ., PP :-QQs-0.,

"FOR"! :“0’£TEP "i*UNTIL "tl-i"DO*

"beg in"

PPx«PPXX+P(/I/).,

QQ:» QQXX+Q( / 1/ )

"END*!.,

PP:-PPXX+P(/U/) "END’BORi.ER. ,

Р(/0/):-ЛА;«А(/0/)., XO:-PP:»d., S:«SIGN(A(/0/)).,

*FOR"is«i'STEP*1"UNTIL’n 'xX)"’IF'SXA(/I/) "LT’OiTHEN "begin"

"IF "PP“0"ThEN"PP:=I.,

"If *XO'lT"a BS(A(/I/)) "THEM "XO:-ABS(A(/I/)) "END"I.,

XO:» 'IF "PP-O’THEN'O'ELSE "l+EXP(LN(ABS (XO/AA))/PP) .,

"FOR"Iг»О'STEP "i'UNTIL 'N“i*DO"B(/I/):»(N“I)IA(/I/),

*FOR'H:«i"STFP"l'UNTIL VDO'ITERx '


'beg in'

HORNER(A,B,N,XO,PF,QQ)i ,

Xi:»XO-PP/QQ.,

'IF 'ABG(Xl-XO) 'GT'EPSXABS (XI) 'THEN* 'BEGIN'

XOs-Xl.,

‘GOTo'ma

'e h d 'ifa b s., Z(/M/)!»Xi., PP:-B(/0/):-B(/0/)“Aa ;, Q(/0/):»PP.,

'i f m 'lt V i m f 'BEGIN*

'FOR'I:»i'STEP’I'ONTIb'N-l'DO* 'BEGIN'

PP:-P(/I/) :-XiXP(/I“l/)+A(/I/).»

PP:-B(/I/):-B(/|I/)-PP;,

Q(/I/) :"XlXQ(/I~l/)+PP *EUB*i.f" ; HORMER(PfQ,M-l,XltPP,QQ)i, XO:«Xi-PP/QQ.,

'e n h ifh

'En d m

!

EHD’MEWTOHMAEJUjY;,

 

BEGIN’

 

'REAb'EPfi.,

 

191

-02-

'INTEGER'(,.DELTA.,

'ARRAY*Z,A(/0:2/).,

Ns-3.,

EPS :»8,0601'.,

A(/0/):-1.0.,

A(/2/) 1—186.0.,

'EOR'DELTAi—40’sTEP*5’until' sodo'

' весin'

A(/1/):“0.24SDELTA-0.2.,

NEWTOHMAEHLY (A,N,EPS ,Z)i,

0 U T № ( 3 , ’(E*),DELTA,Z)

'END'

'EUD'BLOCK

'END'PROGRAM*.,

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

+0000000 +00 +I939I72 +02 -959I72I +01

соответствует иокоиоиу.

2,7.8. Интерполяция по формуле Лагранжа Произвести интерполирование по формуле Лагрьлха (функции

X -10

1 -1254

-6

--> 1fyчО

-2

+2

+6

+10

-26

2

158

826

яри следующих значениях х = -I,

О,

I

с М = 3.

Точное решение у * х3 - 2 ч г

+

3-х - 4.

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

 

 

 

192

А


-Oi-

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

BEGIH’

*PBOCEi)URE* uAGBAHGE (IriO,DEP ,N,M,BD,X ,Y,DIFF ) ., ’VAuUE’ H.M.BJ.X.,

*I/JT'EGEft*i‘J,M., •ftEAu’X.Y.,

' booleaibd.,

*ARBAY*IiiD,DEP,DIFF.,

*BEGI'(*

IUTEGEK’ j.Ki. *UEAb*TEBM,BUM.,

1?*ВЭ*ТНЕ.Г

BEGI-I*

*FOli’ K O ’ СТЕР* i’ U.'iTIl/M * DO* ’FOR* J s^O'STEP* l'UtlTIi.*M •oo*J)I?p(/;:,j/):-I:-ia(/:wc/)-i!{i)(/-W/)

* FOii*:<■О*СТЕР* 1’ IPlTIi/M ’ 00*

'BEGIl’

TERMIю1#0, f

•POK'J :“ 0'СТЕР* l'U !Т1ь *М'Э0'ТЕВМ:° ' i f ' k-j them*term* El,,' F*ТЕкМУ.(Х-1|П>(/ 1+,1/П ) / .Ш’Р (/i£, J/) ,,

:;um:=;;u:!+teamxdep(/'!+k/)

* E:1D*, ,

V :<=Г*J;:

'E IB’ bAGKA.iGE.,

193

те втblock j

'BEGIM*

’INTEGER*H,M.,

IKPUT(1,U,M)*,

’BEGIN* '

’BEAL’X,Y.,

’ARRAY*I,','D,DEP(/0:N+М/),DIFF(/О:M,О:М/):

i n p u t u .ind.dep).,'

’FOli’X:— i.0,0.0,1.0’DO’

'begin

LAGRANGE(IND,PEP,:l,M, 'ТВОЕ*,X,y,i)IFF)

OUTPUT(3,’(F.’),X,Y)

'end

• 'END'

'ЕЛВ’ТЕнТВЛСК

’END’PitOGRAMM.,

Исходные данные

+2.

 

+3.

-10,0.

-6 , 0.

- 2, 0.

+2 , 0 .

+6 , 0 .

+10,0 .

-1234,0. -410,0. -26,0.

+2 , 0.

+158,0. .

+820,0.

Результаты вычислений (определяется у =/(х) )

X

Машинное решение

Точное значение

-I

-10,00000

-10

0

-4,000000

-4

+1

-2,000000

-2

совпадают

с точными.

 

2,7.9. Интерполяция по методу наименьших квадратов

По методу наименьших квадратов определить выражение, отра­

жающее следующую последовательность чисел1

 

 

X

0

Г

2

3

4

5

6

7

У

2

7

14

23

34

47

62

79

если М =

2 (I)

6.

 

 

 

 

 

 

Точное

решение

у = 2 +

4-х + х^.

 

 

 

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

 

 

 

 

 

 

-

01-

 

 

 

 

 

 

 

т и с л я т о р

мэи-з

 

 

 

 

begin'

’ РЯОСЕООНЕ’ РС(М, Н,G , PET) . ,

’VAbUE'M .N.,

’ImTEGEH’m .N.,

’ PROCEDURE*G.,

heal’’proceduredet.,

’BEGIN’

hU u P‘,% ^ ,4 . ,

’ I'ffm E ft’I . J . K . R . ,

195


’ARRAY’PP(/0:2XM/) ,А,В(/1:М.+1/) ,АА(/1:М+1,IsM+i/) ,ААА(/

isM+2/).,

"FOR*Р:»0*STEP'1*UMTIЬ*2ХМ’00" "BEGIM*

PP(/R/)z»0.0.,

*IF*R"ЬЁ'M*THF/1*В(/R+1/):=0.0.,

"F'U>".f

’FOR* Iz-l'STEP* l*UUTIb' ,4"X"

*BEGI:;’

ItiPUT(l,X,Y).,

P:“1.0., "

Q:»Y.,

"F0R*R:“0"GTEP" i'U!ITil>"2xmbo" *BEGI.-r

PP(/R/):«FF(/k/)+P.,

‘IFVLE’m 'THEГ в(/к+1/) :«B(/S+i/)+Q.,

P:=PXX.,

0:*■QXX

*EMD" .

*E;U)‘.,

’FOR*;':«*i’RTFP*1’U !TIi/M+l'l)0*’FOR"J:®1"STEP"i*UMTIL*M+

l’x* aaa

;=a a (/;c,j/) :»p p (/k>j-2/)

o u t p u t s ,"a"),m ).,

OUTPUTS,’(Е’),.)Е?'(АА,М+1))., .

"FOR*I:»i*GTF,P'l*t),,'TIL'M+i"DO*AAA(/I,M+2/) z^BC/I/)

G(AAA,A,M+1).,

' \

'F0li*I:=0'P?EP"1*U,!?Iь’M’JO’

196

*BEGl;lr

OUTPUTS,'(I*),I),,

output(a,'(e *5,A(/i+i/>)

’ЕЛО*

'EMD'PC,,

’REAL"PROCElHJRE’DET(A,N)i,

'VALUE*A,!U,

*INTEGER* M.,

'ARRAY'A.,

*BEGIii'

'REAL' T ,i) , MAX.,

*integer’i,j,it.,

'FOR*К:•<1'STEP*1*0UTIL*H*DO*

'BEGINv

MAX:»0.,

'FOR*X:»K*STEP'i*UHTIU’li'1>0’

'BEGIN* '

T:-A(/I,K/).,

’IF'ABS(T)'GT'ABS(MAX)'THEN*

'begin'

;.

MAX :»T.,

 

js-i

 

'е

'eid'i.,

 

’IF'MAX-O’THER*

 

-02-

’BEGIN*

D:-o.,

'goto*fin

*END*i,

*IF’>/it*ThEN*

begin*

Ds»-0.,

*F0RTlj»KrsTEP:i*4M’rn.*MriC*

’BEGIN*"

T:»A(/J,I/).,

A(/J,I/}:»A(/1C,I/):,

A(/IC,I/):»T

*ENU*

.

’END*.,

 

*FOR*I:“K+i*STEP’1*UUTIL*(i*DO*

’BEGIN* T:-A(/I,K/)/MAX.,

‘FOR*J:»:v+i*sTEP*l*UHTIb’;rno*A(/I,J/) :-A(/I,J/) TXA(/K„T/)

*EHO*I;, 1>:«DXA(/[{,K/)

'Erll)rK. , FIN:DET:*D

'Е.ЧО’ПТ.,'

*PR0CE1HJRE’GAU8S(A,Y,U)., ‘VAbOE’p.,


INTEGER'!;.,

 

 

ARRAY' A,Y.,

 

 

BEGIM*

 

 

’ ttEAb’TEMP;,

 

 

*INTEGER* I

,

,

’FOR*K:eil’STEP'l'URTIU’U*DO’'IF*А(/К,Н/)»/0!ТН*'.Ч’’GOTOj,t

(101.,

STOP(7).,

NOi:’IF'№*N*THEN’’GOTO*!W2.,

'rOR*M:=:i,STEP,l’UllTIb*U+i'DO’

’BEGIN*

 

TEMP:*■A(/N,4/)i,

 

A(/N,'M/):-A(/K,M/).,

 

A(/K,M/):°TEMP

 

emd’., -

,

it02!*FOR*J^O+i’STEP’-lfU’lTIIj'n’DO*A(/M,J/) :»A(/N,J/)/A

’ FOR’ I it-K+i’STEP* 1*U!|TIl/U' BO ’ ’FOR*1:-[(♦!TgTEPTi’ONTII*’

U+l*DOrA (/I,J/) :BA(/I ,j'/)-A(/I ,М/)ХА(/Н,Л/)^,

’IF’ i:“ /U’THEngOTO’ :IOO./

for’ I seU* step *-i’ u n tie*l’ DO’

BEGI !’

Y(/I/):- A(/I,U+l /)/A (/I ,I/)i,

’FOR’ KV" I-l’sTEP’ -i’UHTXE* l’ DO*A(/K,U+i/) !»A(/K ,U+i/ )- A(/K,I/;XY(/I/)

199

*ENO*I

• 'ENU'OAUSgi,

TESTBbOCK:

'BEGIH*

t m t e g e r m ;,

'FOR*Ml»2‘STEPVtmiL.VDO*PC(M,8,GAUSS,DET)

'ЕМО'ТЕЗТВЬОСК

e u d p r o g r a h m .,

Исходные данные (в программе предусмотрено пятикратное обращение к массиву исходных данных):

+0 , 0 .

+2 , 0.

+1,0.

+7,0.

+2, 0.

+14,0.

+3,0.

+23,0.

+4,0.

+34,0.

+5,0.

+47,0.

+ 6,0,

+62,0.

+7,0.

+79,0.

/Результаты вычислений получены на узкой печати и помеще ны в таблице.

200