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

📄 unit2.pas

📁 用于开发税务票据管理的软件
💻 PAS
字号:
unit Unit2;

interface
Function BESSY0(X:real):real;
Function BESSJ0(X:real):real;

implementation
Function BESSJ0(X:real):real;
var
   AAA,BBB,CCC,Y,AX,Z,DDD,EEE,XX:real;
const
  P1=1;                    P2=-0.001098628627;
  P3=0.2734510407e-4;      P4=-0.2073370639e-5;
  P5=2.093887211E-07;
  Q1=-0.1562499995e-1;     Q2=0.1430488765e-3;
  Q3=-0.6911147651e-5;     Q4=7.621095161E-07;
  Q5=-9.34945152E-08;
  R1=57568490574;          R2=-13362590354;
  R3=651619640.7;          R4=-11214424.18;
  R5=77392.33017;          R6=-184.9052456;
  S1=57568490411;          S2=1029532985;
  S3=9494680.718;          S4=59272.64853;
  S5=267.8532712;          S6=1;
begin
  If Abs(X) < 8 Then
    begin
      Y:=X * X;
      BBB:=Y* (R4+ Y* (R5+ Y* R6));
      AAA:=R1+ Y* (R2+ Y* (R3+ BBB));
      CCC:=Y* (S3+ Y* (S4+ Y* (S5+ Y* S6)));
      BESSJ0:= AAA / (S1+ Y* (S2+ CCC));
    end
  Else
    begin
      AX:=Abs(X);
      Z:=8/ AX;
      Y:=Z* Z;
      XX:= AX- 0.785398164;
      CCC:=Y* (P3+ Y* (P4+ Y* P5));
      AAA:=P1+ Y* (P2+ CCC);
      DDD:=Y* (Q3+ Y* (Q4+ Y* Q5));
      EEE:=Z* Sin(XX) * (Q1+ Y* (Q2+ DDD));
      BESSJ0:= Sqrt(0.636619772 / AX) * (Cos(XX) * AAA- EEE);
    End;
End;

Function BESSY0(X:real):real;
var
  AAA,BBB,Z,Y,XX,CCC:real;
const
    P1 = 1;                  P2 = -0.001098628627;
    P3 = 0.2734510407e-4;    P4 = -0.2073370639e-5;
    P5 = 2.093887211E-07;
    Q1 = -0.01562499995;     Q2 = 0.1430488765e-3;
    Q3 = -0.6911147651e-5;   Q4 = 7.621095161E-07;
    Q5 = -9.34945152E-08;
    R1 = -2.957821389E9;     R2 = 7.062834065E9;
    R3 = -512359803.6;       R4 = 10879881.29;
    R5 = -86327.92757;       R6 = 228.4622733;
    S1 = 40076544269;        S2 = 745249964.8;
    S3 = 7189466.438;        S4 = 47447.2647;
    S5 = 226.1030244;        S6 = 1;
begin
    If X < 8 Then
    begin
        Y:=X * X;
        AAA:=R1 + y * (R2 + y * (R3 + y * (R4 + y * (R5 + y * R6))));
        BBB:=S1 + y * (S2 + y * (S3 + y * (S4 + y * (S5 + y * S6))));
        BESSY0:=AAA / BBB + 0.636619772 * BESSJ0(X) * Ln(X);
    end
    Else
    begin
        Z:=8 / X;
        y:=Z * Z;
        XX:=X - 0.785398164;
        AAA:=Sqrt(0.636619772 / X);
        BBB:=P1 + y * (P2 + y * (P3 + y * (P4 + y * P5)));
        CCC:=Q1 + y * (Q2 + y * (Q3 + y * (Q4 + y * Q5)));
        BESSY0:=AAA * (Sin(XX) * BBB + Z * Cos(XX) * CCC);
    end;
end;

end.

⌨️ 快捷键说明

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