⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit2.pas

📁 Numeric Programs
💻 PAS
字号:
unit Unit2;

interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
procedure POLINT(XA, YA:array of real; N:integer; X:real; var Y, DY:real);
procedure POLCOF(XA, YA:array of real; N:integer; var COF:array of real);

implementation
procedure POLINT(XA, YA:array of real; N:integer; X:real; var Y, DY:real);
var
    C,D:array[1..10] of real;
    DIF,DIFT,HO,HP,W,DEN,te:real;
    NS,I,M:integer;
begin
    NS:=1;
    DIF:=Abs(X - XA[1]);
    For I:=1 To N do
    begin
        DIFT:=Abs(X - XA[I]);
        If DIFT < DIF Then
        begin
            NS:=I;
            DIF:=DIFT;
        end;
        C[I]:=YA[I];
        D[I]:=YA[I];
    end;
    Y:=YA[NS];
    NS:=NS - 1;
    For M:=1 To N - 1 do
    begin
        For I:=1 To N - M do
        begin
            HO:=XA[I] - X;
            HP:=XA[I + M] - X;
            W:=C[I + 1] - D[I];
            DEN:=HO - HP;
            If DEN = 0 Then
            begin
                ShowMessage('PAUSE');
                Exit;
            end;
            DEN:=W / DEN;
            D[I]:=HP * DEN;
            C[I]:=HO * DEN;
        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;

procedure POLCOF(XA, YA:array of real; N:integer; var COF:array of real);
var
    X, Y:array[0..15] of real;
    I,J,K:integer;
    XMIN,DY:real;
begin
    For J:=1 To N do
    begin
        X[J]:=XA[J];
        Y[J]:=YA[J];
    end;
    For J:=1 To N do
    begin
        POLINT(X, Y, N + 1 - J, 0, COF[J], DY);
        XMIN:=1E+38;
        K:=0;
        For I:=1 To N + 1 - J do
        begin
            If Abs(X[I]) < XMIN Then
            begin
                XMIN:=Abs(X[I]);
                K:=I;
            end;
            If X[I] <> 0 Then Y[I]:=(Y[I] - COF[J]) / X[I];
        end;
        If K < N + 1 - J Then
        begin
            For I:=K + 1 To N + 1 - J do
            begin
                Y[I - 1]:=Y[I];
                X[I - 1]:=X[I];
            end;
        end;
    end;
end;
end.
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -