hjfg.cpp

来自「优化设计一维搜索方法的黄金分割法」· C++ 代码 · 共 52 行

CPP
52
字号
#include<iostream.h>
#include<math.h>
float x, x1, x2, f1, f2, y;
float a , b, c;
float F( float a)
{
 float aa;
 aa=3*a*a*a-4*a+2;
 return aa;
} 
void Init()
{
  x1=a+0.382*(b-a);
  x2=a+0.618*(b-a);
  f1=F(x1);
  f2=F(x2);
}
void RigntRemove()
{
     b=x2;
     x2=x1;  
	 f2=f1;
	 x1=a+0.382*(b-a);
	 f1=F(x1);
}
void LeftRemove()
{
    a=x1;
	x1=x2;   
	f1=f2;
    x2=a+0.618*(b-a);
	f2=F(x2);
}
void main()
{
  cin>>a>>b>>c;
  Init();
 do
  {
   if(f1<f2)
   {
      RigntRemove();
   }
   else
   {
      LeftRemove();
   }
  }while( fabs(a-b)>=c );
  x=0.5*(a+b);
  y=F(x);
  cout<<"x="<<x<<endl<<"y="<<y<<endl;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?