?? bessj.txt
字號:
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 + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -