four1.txt

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

TXT
44
字号
Sub FOUR1(DATA(), NN, ISIGN)
    N = 2 * NN
    J = 1
    For I = 1 To N Step 2
        If J > I Then
            TEMPR = DATA(J)
            TEMPI = DATA(J + 1)
            DATA(J) = DATA(I)
            DATA(J + 1) = DATA(I + 1)
            DATA(I) = TEMPR
            DATA(I + 1) = TEMPI
        End If
        M = N / 2
        While M >= 2 And J > M
            J = J - M
            M = M / 2
        Wend
        J = J + M
    Next I
    MMAX = 2
    While N > MMAX
        ISTEP = 2 * MMAX
        THETA = 6.28318530717959 / (ISIGN * MMAX)
        WPR = -2# * Sin(0.5 * THETA) ^ 2
        WPI = Sin(THETA)
        WR = 1#
        WI = 0#
        For M = 1 To MMAX Step 2
            For I = M To N Step ISTEP
                J = I + MMAX
                TEMPR = CSng(WR) * DATA(J) - CSng(WI) * DATA(J + 1)
                TEMPI = CSng(WR) * DATA(J + 1) + CSng(WI) * DATA(J)
                DATA(J) = DATA(I) - TEMPR
                DATA(J + 1) = DATA(I + 1) - TEMPI
                DATA(I) = DATA(I) + TEMPR
                DATA(I + 1) = DATA(I + 1) + TEMPI
            Next I
            WTEMP = WR
            WR = WR * WPR - WI * WPI + WR
            WI = WI * WPR + WTEMP * WPI + WI
        Next M
        MMAX = ISTEP
    Wend
End Sub

⌨️ 快捷键说明

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