Pseudo Code:
var
x0,x1,x2,x3,x4,x5,x6 :real;
f0,f1,f2,f3,f4,f5,f6 :real;
d0,d1,d2,d3,d4,d5 :real;
dd0,dd1,dd2,dd3,dd4 :real;
ddd0,ddd1,ddd2,ddd3 :real;
dddd0,dddd1,dddd2 :real;
ddddd0,ddddd1 :real;
dddddd0 :real;
x,s,p6x :real;
begin
x0:=StrToFloat(edit1.Text);
x1:=StrToFloat(edit2.Text);
x2:=StrToFloat(edit3.Text);
x3:=StrToFloat(edit4.Text);
x4:=StrToFloat(edit5.Text);
x5:=StrToFloat(edit6.Text);
x6:=StrToFloat(edit7.Text);
f0:=StrToFloat(edit8.Text);
f1:=StrToFloat(edit9.Text);
f2:=StrToFloat(edit10.Text);
f3:=StrToFloat(edit11.Text);
f4:=StrToFloat(edit12.Text);
f5:=StrToFloat(edit13.Text);
f6:=StrToFloat(edit14.Text);
x:=StrToFloat(edit36.Text);
//Del f
d0:=f1-f0;
d1:=f2-f1;
d2:=f3-f2;
d3:=f4-f3;
d4:=f5-f4;
d5:=f6-f5;
edit15.Text:=(format('%8.4f',[d0]));
edit16.Text:=(format('%8.4f',[d1]));
edit17.Text:=(format('%8.4f',[d2]));
edit18.Text:=(format('%8.4f',[d3]));
edit19.Text:=(format('%8.4f',[d4]));
edit20.Text:=(format('%8.4f',[d5]));
//Del^2 f
dd0:=d1-d0;
dd1:=d2-d1;
dd2:=d3-d2;
dd3:=d4-d3;
dd4:=d5-d4;
edit21.Text:=(format('%8.4f',[dd0]));
edit22.Text:=(format('%8.4f',[dd1]));
edit23.Text:=(format('%8.4f',[dd2]));
edit24.Text:=(format('%8.4f',[dd3]));
edit25.Text:=(format('%8.4f',[dd4]));
//Del^3 f
ddd0:=dd1-dd0;
ddd1:=dd2-dd1;
ddd2:=dd3-dd2;
ddd3:=dd4-dd3;
edit26.Text:=(format('%8.4f',[ddd0]));
edit27.Text:=(format('%8.4f',[ddd1]));
edit28.Text:=(format('%8.4f',[ddd2]));
edit29.Text:=(format('%8.4f',[ddd3]));
//Del^4 f
dddd0:=ddd1-ddd0;
dddd1:=ddd2-ddd1;
dddd2:=ddd3-ddd2;
edit30.Text:=(format('%8.4f',[dddd0]));
edit31.Text:=(format('%8.4f',[dddd1]));
edit32.Text:=(format('%8.4f',[dddd2]));
//Del^5 f
ddddd0:=dddd1-dddd0;
ddddd1:=dddd2-dddd1;
edit33.Text:=(format('%8.4f',[ddddd0]));
edit34.Text:=(format('%8.4f',[ddddd1]));
//Del^6 f
dddddd0:=ddddd1-ddddd0;
edit35.Text:=(format('%8.4f',[dddddd0]));
//mencari S
s:=(x-x0)/(x1-x0);
edit37.Text:=(format('%8.4f',[s]));
//mencari p6x
p6x:=(f0)+(s/1)*d0+((s*(s-1))/2)*dd0+((s*(s-1)*(s-2))/6)*ddd0+((s*(s-1)*(s-2)*(s-3))/24)*dddd0+((s*(s-1)*(s-2)*(s-3)*(s-4))/120)*ddddd0+((s*(s-1)*(s-2)*(s-3)*(s-4)*(s-5))/720)*dddddd0;
edit38.Text:=(format('%8.4f',[p6x]));
end;
end.
1 comments:
mbak, ada gak program interpolasi newton gregory mundur? kalau ada, boleh minta mbak?