标题:请教关于二分法解一元四次方程
只看楼主
jackyallen
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-12-20
 问题点数:0 回复次数:2 
请教关于二分法解一元四次方程
小弟是新手,用二分法写了在turbo c下面写了一个小程序,期间也参考了网上搜到的其他人写的代码。
run之后,a,b,c,d,e的值我输入1,2,3,4,-10,那其实这个四次方程的一个解就是x=1。
但程序给出的解是0.779250(正好是我给的二分区间的中值),我不知道问题出在哪里,请大虾指教。

#include <math.h>
double a,b,c,d,e;
double f(double x)/*given a,b,c,d,e, calculate the value of the expression:ax^4+bx^3+cx^2+dx+e*/
{
  double y;
  y=a*pow(x,4)+b*pow(x,3)+c*pow(x,2)+d*x+e;
  return y;
}
main()
{
double x1=0.2343,x2=1.3242,x12;/*define the intervel [x1,x2]*/
printf("input parameters of the equation:\n");
scanf("%lf,%lf,%lf,%lf,%lf",&a,&b,&c,&d,&e);
do
 {
  x12=(x1+x2)/2;
  if(f(x1)*f(x12)<0)
    x2=x12;
  else
    x1=x12;
 }
while (f(x12)>1e-10);
printf("the solution of this equation is:%lf\n",x12);
}
搜索更多相关主题的帖子: 二分法 double pow 大虾 
2007-12-20 15:36
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
得分:0 
while (fabs(f(x12))>1e-10);
这样就可以了!是要求绝对值在这范围!
2007-12-20 17:06
jackyallen
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-12-20
得分:0 
非常感謝您,搞定了。


原帖由 [bold][underline]無邪的睡脸[/underline][/bold] 于 2007-12-20 17:06 发表 [url=http://bbs.][/url]
while (fabs(f(x12))>1e-10);
这样就可以了!是要求绝对值在这范围!
2007-12-20 17:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-193522-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.188567 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved