, , , , – . , . . , , , , . a b : 1/h*(y0+4y1+2y2+4y3+…+4yn-1+yn). y 0 n, n – , , y-, . h, : (b-a)/(n-1).
, . , – . , . , , , , .
, . , , , b.
, ( ), f:= , . . . :
function f(x:real):real;
begin
f:=25*ln(x)+sin(10); { }
end;
. :
function simpsonmetod(a,b:real;n:integer):real;
:
var
s:real; { ( ) }
h:real; { }
my:integer; { }
mno:integer; { }
, , :
begin
h:=(b-a)/(n-1); { . , }
s:= f(b)+ f(a); { }
mno:=4; { - 1/h*(y0+4y1… 4 , 2, }
:
for my:=1 to n-2 do begin
s:=s+mno*f(a+h*); { , 4*yn 2* yn }
if (mno=4) then mno:=2 else mno:=4;{ - 4, 2 }
end;
simpsonmetod:=s*h/3; { h/3 }
end.
– . , , .
Begin
n:=3; { n }
q:=simpsonmetod(a,b,n); { , a b, , }
repeat
q2:=q; { }
n:=n+2;
q:=simpsonmetod(a,b,n); { }
until (abs(q-q2)<0.001);{ , , }
– . , ! .