he...3x ndak tw bener apa gak, Cek Out.....
function fungsi(x,y:real):real;
begin
//result:=4*exp(0.8*x)-0.5*y;
result:=(500-4*y)/(300-2*x)
end;
//button berisi metode heun dengan n korektor
procedure TForm1.Button1Click(Sender: TObject);
var
x0,xt,n,i,k,nkorektor,bar:integer;
x,y,teta1,teta2,y0i,yi:array [1..100] of real;
h:real;
begin
stringgrid1.Refresh;
x0:=strtoint(edit1.text);
xt:=strtoint(edit2.text);
x[1]:=strtofloat(edit3.text);
y[1]:=strtofloat(edit4.text);
n:=strtoint(edit5.text);
nkorektor:=strtoint(edit6.Text);
h:=(xt-x0)/n;
bar:=0;
for i:=1 to n do
begin
teta1[i]:=fungsi(x[i],y[i]);
y0i[i]:=y[i]+( fungsi(x[i],y[i])*h );
x[i+1]:=x[i]+h;
teta2[i]:=fungsi(x[i+1],y0i[i]);
for k:=1 to nkorektor do
begin
bar:=bar+1;
y[i+1]:=y[i]+((teta1[i]+teta2[i])*h)/2;
stringgrid1.cells[5,bar]:=floattostr(teta2[i]);
stringgrid1.cells[6,bar]:=floattostr(y[i+1]);
teta2[i]:=fungsi(x[i+1],y[i+1]);
end;
bar:=bar+1;
//mengeluarkan pada stringgrid
stringgrid1.cells[0,bar-nkorektor]:=inttostr(i);
stringgrid1.cells[1,bar-nkorektor]:=floattostr(x[i]);
stringgrid1.cells[2,bar-nkorektor]:=floattostr(y[i]);
stringgrid1.Cells[3,bar-nkorektor]:=floattostr(teta1[i]);
stringgrid1.cells[4,bar-nkorektor]:=floattostr(y0i[i]);
label8.caption:='nilai h sebesar '+floattostr(h)+
' dan hasil integral sebesar = ' + floattostr(y[i+1]);
bar:=bar-1;
end;
stringgrid1.cells[0,bar+1]:=inttostr(n+1);
stringgrid1.cells[1,bar+1]:=floattostr(x[n]+h);
stringgrid1.cells[2,bar+1]:=floattostr(y[n+1]);
stringgrid1.RowCount:=bar+2;
end;
0 komentar:
Posting Komentar