?? 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 + -