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

📄 抛物线插值法.txt

📁 黄金分割法
💻 TXT
字号:
#include <math.h>
#include <iostream.h>
int p=1;
void main()
{
 double c1,c2;
 double a,y;
 double ap=0,a1=4.0,a2=4.5,a3=5;
 double y1,y2,y3;
 double e=0.00001,h=-1.0;//h为任意非0值
 double yp;
 y1=sin(a1);
 y2=sin(a2);
 y3=sin(a3);
 yp=sin(ap);
 while(fabs((y2-yp)/y2)>=e)
 {
  if((ap-a2)*h>0)
  {
   if(y2>=yp)
   {
    a1=a2;
    y1=y2;
    a2=ap;
    y2=yp;
   }
   else
   {
    a3=ap;
    y3=yp;
   }
  }
  else
  {
   if(y2>=yp)
   {
    a3=a2;
    y3=y2;
    a2=ap;
    y2=yp;
   }
   else
   {
    a1=ap;
    y1=yp;
   }
  }
  c1=(y3-y1)/(a3-a1);
  c2=((y2-y1)/(a2-a1)-c1)/(a2-a3);
  ap=0.5*(a1+a3-c1/c2);
  yp=sin(ap);
  cout<<"循环了"<<p<<"次"<<endl;
  p++;
 }
 if(y2<yp)
 {
  a=a2;
  y=y2;
 }
 else
 {
  a=ap;
  y=yp;
 }
 //y=sin(ap);
 cout<<"a="<<a<<endl;
 cout<<"y="<<y<<endl;
 
}

⌨️ 快捷键说明

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