bessj.txt

来自「VB常用数值算法集 内含有解线性代数方程组」· 文本 代码 · 共 47 行

TXT
47
字号
Function BESSJ(N, X)
    IACC = 40
    BIGNO = 10000000000#
    BIGNI = 0.0000000001
    If N < 2 Then
        Form1.Print "bad argument N in BASSJ"
        Exit Function
    End If
    AX = Abs(X)
    If AX = 0 Then
        BESSJ = 0#
    ElseIf AX > CSng(N) Then
        TOX = 2# / AX
        BJM = BESSJ0(AX)
        BJ = BESSJ1(AX)
        For J = 1 To N - 1
            BJP = J * TOX * BJ - BJM
            BJM = BJ
            BJ = BJP
        Next J
        BESSJ = BJ
    Else
        TOX = 2# / AX
        M = 2 * Int(((N + Int(Sqr(IACC * N)))) / 2)
        BESJ = 0#
        JSUM = 0
        Sum = 0#
        BJP = 0#
        BJ = 1#
        For J = M To 1 Step -1
            BJM = J * TOX * BJ - BJP
            BJP = BJ
            BJ = BJM
            If Abs(BJ) > BIGNO Then
                BJ = BJ * BIGNI
                BJP = BJP * BIGNI
                BESJ = BESJ * BIGNI
                Sum = Sum * BIGNI
            End If
            If JSUM <> 0 Then Sum = Sum + BJ
            JSUM = 1 - JSUM
            If J = N Then BESJ = BJP
        Next J
        Sum = 2# * Sum - BJ
        BESSJ = BESJ / Sum
    End If
End Function

⌨️ 快捷键说明

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