golden.f90
来自「FORTRANvisualfortran常用数值算法集及源码」· F90 代码 · 共 41 行
F90
41 行
FUNCTION golden(ax,bx,cx,f,tol,xmin)
REAL golden,ax,bx,cx,tol,xmin,f,R,C
EXTERNAL f
PARAMETER (R=.61803399,C=1.-R)
REAL f1,f2,x0,x1,x2,x3
x0=ax
x3=cx
if(abs(cx-bx)>abs(bx-ax)) then
x1=bx
x2=bx+C*(cx-bx)
else
x2=bx
x1=bx-C*(bx-ax)
endif
f1=f(x1)
f2=f(x2)
do
if(abs(x3-x0)<=tol*(abs(x1)+abs(x2))) exit
if(f2<f1) then
x0=x1
x1=x2
x2=R*x1+C*x3
f1=f2
f2=f(x2)
else
x3=x2
x2=x1
x1=R*x2+C*x0
f2=f1
f1=f(x1)
endif
end do
if(f1<f2) then
golden=f1
xmin=x1
else
golden=f2
xmin=x2
endif
END FUNCTION golden
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?