📄 frprmn.txt
字号:
Sub FRPRMN(P(), N, FTOL, ITER, FRET)
ITMAX = 200
EPS = 0.0000000001
Dim G(550), H(50), XI(50)
FP = FUNC2(P(), N)
Call DFUNC(P(), XI())
For J = 1 To N
G(J) = -XI(J)
H(J) = G(J)
XI(J) = H(J)
Next J
For ITS = 1 To ITMAX
ITER = ITS
Call LINMIN(P(), XI(), N, FRET)
If 2# * Abs(FRET - FP) <= FTOL * (Abs(FRET) + Abs(FP) + EPS) Then
Exit For
End If
FP = FUNC2(P(), N)
Call DFUNC(P(), XI())
GG = 0#
DGG = 0#
For J = 1 To N
GG = GG + G(J) ^ 2
DGG = DGG + XI(J) ^ 2
DGG = DGG + (XI(J) + G(J)) * XI(J)
Next J
If GG = 0# Then Exit For
GAM = DGG / GG
For J = 1 To N
G(J) = -XI(J)
H(J) = G(J) + GAM * H(J)
XI(J) = H(J)
Next J
Next ITS
If ITC > ITMAX Then Print " FRPR maximum iterations exceeded"
Erase XI, H, G
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -