📄 golden.cpp
字号:
double golden(double ax,double bx,double cx,double tol,double& xmin)
{
double x0,x1,x2,x3,f0,f1,f2,f3,r= 0.61803399;
double c = 0.38196601;
x0 = ax;
x3 = cx;
if (fabs(cx - bx) > fabs(bx - ax))
{
x1 = bx;
x2 = bx + c * (cx - bx);
}
else
{
x2 = bx;
x1 = bx - c * (bx - ax);
}
f1 = func(x1);
f2 = func(x2);
while (fabs(x3 - x0) > tol * (fabs(x1) + fabs(x2)))
{
if (f2 < f1)
{
x0 = x1;
x1 = x2;
x2 = r * x1 + c * x3;
f0 = f1;
f1 = f2;
f2 = func(x2);
}
else
{
x3 = x2;
x2 = x1;
x1 = r * x2 + c * x0;
f3 = f2;
f2 = f1;
f1 = func(x1);
}
}
if (f1 < f2)
{
xmin = x1;
return f1;
}
else
{
xmin = x2;
return f2;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -