Algorithm 版 (精华区)

发信人: sino (蚱蜢舟), 信区: Algorithm
标  题: 双点弦截法的改进
发信站: 哈工大紫丁香 (2002年01月16日10:59:26 星期三), 站内信件

发信人: cutemic (CS99-::我是杂草), 信区: ACMICPC
标  题: 双点弦截法的改进
发信站: 逸仙时空 Yat-sen Channel (Tue Jan 15 20:56:50 2002), 站内信件

    赫赫,复习到很无聊,就帮书上改一改啦,这样就可以对任意连续函数求解了

 
************************************************************************

#include<stdio.h>
#ifndef fabs
#define fabs(x)  ((x)>0?double(x):double(-(x)))
#endif
double f(double x)
{
 return x*x+9*x-4*x*x*x*x+3; //咔咔,非单调函数,有3个极值点
}
double Xianjie(double f(double x),double a,double b,double e)
{
 double x1,x2,xm;
 double f1,f2,fm;
 x1 = (a<b)?(a):(b);
 x2 = (a<b)?(b):(a);
 f1 = f(x1);
 f2 = f(x2);
 if(f1*f2>0) return -12345;
 do
 {
  if (f1 == f2)
  {
   xm = (x1+x2)/2;
  }
  else
  {
   xm = x1 - f1*(x2-x1)/(f2-f1);
  }
  fm = f(xm);
  if(!fm) break;
  if(fm*f2<0)
  {
   x1 = xm; f1 = fm;
  }
  else
  {
   x2 = xm; f2 = fm;
  }
 }while(fabs(fm)>e);
 return xm;
}
void main()
{
 double x = Xianjie(f,0,100,1e-6);
 printf("f(%.5f)=%.5f\n",x,f(x));
}


--
千 但 此 月 人 别 何 不 照 低 转 何 起 高 又 我 今 不 把 明 
里 愿 事 有 有 时 事 应 无 绮 朱 似 舞 处 恐 欲 夕 知 酒 月 
共 人 古 阴 悲 圆 长 有 眠 户 阁 在 弄 不 琼 乘 是 天 问 几 
婵 长 难 晴 欢    向 恨          人 清 胜 楼 风 何 上 青 时 
娟 久 全 圆 离                   间 影 寒 玉 归 年 宫 天 有 
         缺 合                            宇 去    阙       

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: mtlab4.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.087毫秒