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

📄 search interzone.c

📁 最优化理论与方法中
💻 C
字号:
#include "stdio.h"
#include "math.h"
#include "conio.h"
#define print

float fun(float x)
{  float f;
   f=x*x+1;
   return (f);

}

float interzone(float t0,float h,float *a,float *b)
{
 int m=0;
 float fai0,fai1,fai2,t1,t2;
  fai0=fun(t0);
  t2=t0+h;
  fai2=fun(t2);
     #ifdef print
     printf("fai0=%f fai2=%f\n",fai0,fai2);
     getch();
     #endif
         if(fai2>=fai0)
            {
             t1=t2;
             fai1=fai2;
             h=-h;
             t2=t0+h;
             fai2=fun(t2);

            }
   while((++m)<100&&(fai2<fai0))
     {

           t1=t0;
           fai1=fai0;
           t0=t2;
           fai0=fai2;
           h=2*h;
           t2=t0+h;
           fai2=fun(t2);
       #ifdef print
   printf("t0=%.4f t1=%.4f t2=%.4f h=%.4f f0=%.4f  f1=%.4f f2=%.4f\n",t0,t1,t2,h,fai0,fai1,fai2);
         getch();
       #endif
     }
      if(t1<t2){*a=t1;*b=t2;};
      if(t1>=t2){*a=t2;*b=t1;};
      return (m);
}
void main()
{ float t0=1,h=0.01,result,la,lb;
  result=interzone(t0,h,&la,&lb);
  printf("\nthe interzone is %f to %f and the times %f",la,lb,result);
  printf("\n");
  getch();
}

⌨️ 快捷键说明

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