⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 黄金分割法.txt

📁 黄金分割法
💻 TXT
字号:
#define e 0.00000001
#define r 0.618
#include <math.h>
#include <iostream.h>
int p=1;
double f(double a)
{
 double y;
 y=pow(a,2)+2*a;
 return y;
}

void main()
{
 double ak;
 double a1,a2,y1,y2;
 double a=-3.0,b=5.0;
 a1=b-r*(b-a);
 a2=a+r*(b-a);
 y1=f(a1);
 y2=f(a2);
 while(fabs((b-a)/b)>=e)
 {
  if(y2<y1)
  {
   //cout<<"循环了"<<a1<<endl;
   a=a1;
   a1=a2;
   y1=y2;
   a2=a+r*(b-a);
   y2=f(a2);
  }
  else 
  {
   b=a2;
   a2=a1;
   y2=y1;
   a1=b-r*(b-a);
   y1=f(a1);
  }
  cout<<"循环了"<<p<<"次"<<endl;
  p++;
  //if(p>5)
  // break;
 }
 ak=(a+b)/2;
 cout<<"ak="<<ak<<endl;
 cout<<"f(ak)="<<f(ak)<<endl;
}

//从运行结果可以看出,其解与书上说的精确解已经一样了

⌨️ 快捷键说明

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