📄 shootf.txt
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -