witam
mam problem z napisaniem programu w pascalu ktory bedzie liczyc calke metoda simpsona
calka wyglada tak:
mam taki programik ale daje zły wynik , poprawny jest : 0.513
a dokładność ma być równa 10 do potegi -4
///////////////////////////////////////////////////////////////////////
program sim;
uses crt;
{var
pom:real;}
function F(x:real):real;
begin
F:=x/1+(sqrt(ln(x)));
end;
function simp (m:integer; a,b:real):real; { nie wiem po co zmienna m }
var
i:integer;
x,rk,s:real;
begin
rk:=(b-a)/m;
s:=0.0;
for i:=1 to m do
begin
x:=a+rk/2+(i-1)rk;
s:=s+4f(x);
end;
for i:=1 to m-1 do
begin
x:=a+irk;
s:=s+2f(x)
end;
simp:=(rk/6)*(f(a)+s+f(b))
end;
{--------------------------------------------------------------------}
begin
clrscr;
writeln;
textcolor(15);
writeln;
writeln('Dana jest calka w przedziale od 2 do 3');
writeln;
writeln('Rozwiazanie za pomoca metody Simpsona: ');
writeln(simp(5,2.0,3.0)7);
readkey;
end.
/////////////////////////////////////////////////////////////////
byłbym wdzieczny jak by ktoś poprawił błędy i napisał jakis króciutki komentarz
zebym to zrozumiał i wiedział na przyszłość
pozdro