frprmn.txt
来自「用VB实现的函数的极致和最优化 包括黄金分割搜索法、不用导数的布伦特法 用导」· 文本 代码 · 共 37 行
TXT
37 行
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 + =
减小字号Ctrl + -
显示快捷键?