bessj.txt
来自「1.г函数、贝塔函数、阶乘及二项式系数 2.不完全г函数、误差函数 3.不完」· 文本 代码 · 共 51 行
TXT
51 行
Function BESSJ(N:Integer; X:Real):Real;
var
BJ,BJM,BJP,SUM,TOX,ANS:Real; J,JSUM,M:Integer;
const
IACC = 40; BIGNO = 1.0e10;
BIGNI = 1.0e-10;
begin
If N < 2 Then
ShowMessage('bad argument N in BASSJ');
TOX:=2 / X;
if x > 1.0*N then
begin
BJM:=BESSJ0(X);
BJ:=BESSJ1(X);
For J:=1 To N - 1 do
begin
BJP:=J * TOX * BJ - BJM;
BJM:=BJ;
BJ:=BJP;
end;
ANS:=BJ
end
Else
begin
M:=2 * ((N + Trunc(Sqrt(IACC * N))) div 2);
ANS:=0.0;
JSUM:=0;
Sum:=0;
BJP:=0;
BJ:=1;
For J:=M DownTo 1 do
begin
BJM:=J * TOX * BJ - BJP;
BJP:=BJ;
BJ:=BJM;
If Abs(BJ) > BIGNO Then
begin
BJ:=BJ * BIGNI;
BJP:=BJP * BIGNI;
ANS:=ANS * BIGNI;
Sum:=Sum * BIGNI;
end;
If JSUM <> 0 Then Sum:=Sum + BJ;
JSUM:=1 - JSUM;
If J=N Then ANS:=BJP;
end;
Sum:=2 * Sum - BJ;
ans:=ans / Sum
end;
BESSJ:=ans;
end;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?