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

📄 黄金分割法.c

📁 机械优化设计
💻 C
字号:
#include"stdio.h"
#include <math.h>

float fa(float x)
{ int a,b,c;
  float y;
  scanf("a=%d,b=%d,c=%d",&a,&b,&c);
  y=a*x*x+b*x+c;
  return y;
  }

main()
{ float x1,x2,x3,x,f1,f2,f3,f,a,a1,a2,b,h,k,j;
  k=0.000035;
  x1=1;
  h=1;
  x2=x1+h;
  f1=fa(x1);
  f2=fa(x2);
       while(f1<f2)
       {x=x1;x1=x2;x2=x;
       f=f1;f1=f2;f2=f;
       h=-h;}
       x3=x2+h;
       f3=fa(x3);
      while(f3<f2)
      {x1=x2;x2=x3;x3=x2+h;
      f1=f2;f2=f3;}
      if(h<0)
      {a=x3;b=x1;}
  else {a=x1;b=x3;}
   printf("a=%f,b=%f\n",a,b);
       a1=b-0.618*(b-a);
       f1=fa(a1);
       a2=a+0.618*(b-a);
       f2=fa(a2);
  if(f1>=f2) {a=a1;a1=a2;f1=f2;a2=a+0.618*(b-a);f2=(a2);}
  else {b=a2;a2=a1;f2=f1;a1=b-0.618*(b-a);f1=fa(a1);}
      while((b-a)<k)
      j=(a+b)/2;
   printf("j=%f\n",j);
   }

⌨️ 快捷键说明

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