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毫秒