用二分法求代数多项式的根(C语言),最好输入时要输入多项式的项数和每项前的系数,也可以是固定多项式

如题所述

#include<stdio.h>
double f(double x)
{return x*x*x*x+4*x*x*x+x*x-25*x-2;
}
double calc(double (*p)(double)) //进去一个函数指针得到此函数的根
{double a=1000000000,b=1000000000;
while(1)
{
a-=100;
if((*p)(a)<0)break;
}
while(1)
{b-=100;
if((*p)(b)>0)break;}
for(int ix=0;ix!=100;++ix){
if((*p)((a+b)/2)>0){b=(a+b)/2;
}
else
if((*p)((a+b)/2)<0){a=(a+b)/2;
}
else return (a+b)/2;
}
return a+b/2;
}
int main(int argc,char *argv[])
{
fprintf(stdout,"%d",calc(f));
getchar();
return 0;}
我只提供个思路,那个地方自己写。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-08
好难的。。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网