瑞文文摘
返回首页 | 手机用户请点此访问手机版
关键字:delphi自定义函数[过程] | 时间:2012/10/12

【delphi实现数学算法】有理函数插值

有理函数插值
procedure RATINT(XA, YA: array of real; N:integer; X:REAL; VAR Y, DY:real);
const
TINY=1E-25;
var
C,D:array[0..10] of real;
I,NS,M:integer;
HH,H,DD,DX,W,T:real;
begin
NS:=1;
HH:=Abs(X - XA[1]);
For I:=1 To N do
begin
H:=Abs(X - XA[I]);
If H = 0 Then
begin
Y:=YA[I];
DY:=0;
Exit;
end
Else If H < HH Then
begin
NS:=I;
HH:=H;
end;
C[I]:=YA[I];
D[I]:=YA[I] + TINY;
end;
Y:=YA[NS];
NS:=NS - 1;
For M:=1 To N - 1 do
begin
For I:=1 To N - M do
begin
W:=C[I + 1] - D[I];
H:=XA[I + M] - X;
T:=(XA[I] - X) * D[I] / H;
DD:=T - C[I + 1];
If DD = 0 Then
begin
ShowMessage('PAUSE');
Exit;
end;
DD:=W / DD;
D[I]:=C[I + 1] * DD;
C[I]:=T * DD;
end;
If 2 * NS < N - M Then
DY:=C[NS + 1]
Else
begin
DY:=D[NS];
NS:=NS - 1;
end;
Y:=Y + DY;
end;
end;




上一篇:【delphi实现数学算法】拉格朗日插值

下一篇:【delphi实现数学算法】三次样条插值

Copyright © 瑞文软件工作室 冀ICP备17033643号 联系我们