Файл: Гемст В.К. Процедуры АЛГОЛ-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 r’i ., 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' so’do'
' вес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.,
' booleai’ bd.,
*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’’procedure’det.,
’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>"2xm’bo" *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’THEn” gOTO’ :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