shootf.txt
来自「VB常用数值算法集1 VB常用数值算法集1」· 文本 代码 · 共 52 行
TXT
52 行
Sub SHOOTF(NVAR, V1(), V2(), DELV1(), DELV2(), N1, N2, X1, X2, XF, EPS, H1, HMIN, F(), DV1(), DV2())
Dim Y(20), F1(20), F2(20), DFDV(20, 20), INDX(20), XP(200), YP(10, 200)
Call LOAD1(X1, V1(), Y())
Call ODEINT(Y(), NVAR, X1, XF, EPS, H1, HMIN, NOK, NBAD, XP(), YP())
Call SCORE(XF, Y(), F1())
Call LOAD2(X2, V2(), Y())
Call ODEINT(Y(), NVAR, X2, XF, EPS, H1, HMIN, NOK, NBAD, XP(), YP())
Call SCORE(XF, Y(), F2())
J = 0
For IV = 1 To N2
J = J + 1
SAV = V1(IV)
V1(IV) = V1(IV) + DELV1(IV)
Call LOAD1(X1, V1(), Y())
Call ODEINT(Y(), NVAR, X1, XF, EPS, H1, HMIN, NOK, NBAD, XP(), YP())
Call SCORE(XF, Y(), F())
For I = 1 To NVAR
DFDV(I, J) = (F(I) - F1(I)) / DELV1(IV)
Next I
V1(IV) = SAV
Next IV
For IV = 1 To N1
J = J + 1
SAV = V2(IV)
V2(IV) = V2(IV) + DELV2(IV)
Call LOAD2(X2, V2(), Y())
Call ODEINT(Y(), NVAR, X2, XF, EPS, H1, HMIN, NOK, NBAD, XP(), YP())
Call SCORE(XF, Y(), F())
For I = 1 To NVAR
DFDV(I, J) = (F2(I) - F(I)) / DELV2(IV)
Next I
V2(IV) = SAV
Next IV
For I = 1 To NVAR
F(I) = F1(I) - F2(I)
F1(I) = -F(I)
Next I
Call LUDCMP(DFDV(), NVAR, INDX(), DET)
Call LUBKSB(DFDV(), NVAR, INDX(), F1())
J = 0
For IV = 1 To N2
J = J + 1
V1(IV) = V1(IV) + F1(J)
DV1(IV) = F1(J)
Next IV
For IV = 1 To N1
J = J + 1
V2(IV) = V2(IV) + F1(J)
DV2(IV) = F1(J)
Next IV
Erase INDX, DFDV, F2, F1, Y
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?