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

📄 search0618.c

📁 最优化理论与方法中
💻 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 + -