📄 search0618.c
字号:
#include "math.h"
#include "stdio.h"
#include"conio.h"
#define epslion 0.00001
#define beta 0.618
double fun(float t)
{ float f;
f=t*t+1;
return (f);
}
double ls0618(float a,float b)
{
float t2,t1,fai1,fai2,result;
int time=50;
t2=a+beta*(b-a);
fai2=fun(t2);
t1=a+b-t2;
fai1=fun(t1);
do
{
if(fabs(t1-t2)<epslion)
break;
if(fai1<=fai2)
{
b=t2;
t2=t1;
fai2=fai1;
t1=a+b-t2;
fai1=fai2;
continue;
};
a=t1;
t1=t2;
fai1=fai2;
t2=a+beta*(b-a);
fai2=fun(t2);
printf("t1=%g t2=%g t1-t2=%g fai1=%g fai2=%g time=%d\n",t1,t2,fabs(t1-t2),fai1,fai2,50-time);
getch();
}while(time--!=0);
result=(t1+t2)/2.0;
return (result);
}
main()
{
float result,la=-7.7,lb=1.9;
result=ls0618(la,lb);
printf("\nla=%f lb=%f result=%g the value=%g \n",la,lb,fun(result),result);
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -