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

📄 unit2.pas

📁 最近开发的,比较使用,曲线拟合,谢谢下载 ,没问题
💻 PAS
字号:
unit Unit2;

interface
Function BESSI1(X:Real):real;
Function BESSK1(X:real):real;

implementation
Function BESSI1(X:Real):real;
const
    P1 = 0.5;            P2 = 0.87890594;
    P3 = 0.51498869;     P4 = 0.15084934;
    P5 = 0.02658733;     P6 = 0.00301532;
    P7 = 0.00032411;
    Q1 = 0.39894228 ;    Q2 = -0.03988024;
    Q3 = -0.00362018;    Q4 = 0.00163801;
    Q5 = -0.01031555;    Q6 = 0.02282967;
    Q7 = -0.02895312;    Q8 = 0.01787654;
    Q9 = -0.00420059;
var
    Y,AAA,AX,BBB:Real;
begin
    If Abs(X) < 3.75 Then
      begin
        Y:=Sqr(X / 3.75);
        AAA:=Y * (P4 + Y * (P5 + Y * (P6 + Y * P7)));
        BESSI1:=X * (P1 + Y * (P2 + Y * (P3 + AAA)));
      end
    Else
      begin
        AX:=Abs(X);
        Y:=3.75 / AX;
        AAA:=Exp(AX) / Sqrt(AX);
        BBB:=Y * (Q5 + Y * (Q6 + Y * (Q7 + Y * (Q8 + Y * Q9))));
        BESSI1:=AAA * (Q1 + Y * (Q2 + Y * (Q3 + Y * (Q4 + BBB))));
      end;
end;

Function BESSK1(X:real):real;
const
    P1 = 1;              P2 = 0.15443144;
    P3 = -0.67278579;    P4 = -0.18156897;
    P5 = -0.01919402;    P6 = -0.00110404;
    P7 = -0.00004686;
    Q1 = 1.25331414;     Q2 = 0.23498619;
    Q3 = -0.0365562;     Q4 = 0.01504268;
    Q5 = -0.00780353;    Q6 = 0.00325614;
    Q7 = -0.00068245;
var
    AAA,BBB,CCC,Y:REAL;
begin
    If X <= 2 Then
    begin
        Y:=X * X / 4;
        AAA:=Ln(X / 2) * BESSI1(X);
        CCC:=Y * (P5 + Y * (P6 + Y * P7));
        BBB:=P1 + Y * (P2 + Y * (P3 + Y * (P4 + CCC)));
        BESSK1:=AAA + (1 / X) * BBB;
    end
    Else
    begin
        Y:=(2 / X);
        BBB:=Y * (Q5 + Y * (Q6 + Y * Q7));
        AAA:=Q1 + Y * (Q2 + Y * (Q3 + Y * (Q4 + BBB)));
        BESSK1:=(Exp(-X) / Sqrt(X)) * AAA;
    end;
end;

end.

⌨️ 快捷键说明

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