📄 黄金分割法.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 + -