标题:牛顿迭代法求得的值代入方程不为0,哪里错了?
只看楼主
Qiwan
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:48
专家分:28
注 册:2011-5-15
结帖率:100%
已结贴  问题点数:20 回复次数:2 
牛顿迭代法求得的值代入方程不为0,哪里错了?
#include<stdio.h>
#include<math.h>
void main()
{double f(double x);
 double f1(double x);
 double eps,x0,x1=1;
 printf("请输入要求的精度:");
 scanf("%lf",&eps);
 do
 {x0=x1;
  x1=x0-f(x0)/f1(x0);
 }while(fabs(x1-x0>eps));
 printf("所求的根为:%lf\n",x1);
 
}
double f(double x)
{double y;
 y=x*x+2*x+1;
 return y;}
double f1(double x)
{double y;
 y=2*x+2;
 return y;}
搜索更多相关主题的帖子: double include return 
2012-12-26 16:51
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
得分:20 
你那个fabs(x1-x0)〉eps   你写错了

有心者,千方百计;无心者,千难万难。
2012-12-26 18:34
Qiwan
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:48
专家分:28
注 册:2011-5-15
得分:0 
回复 2楼 w527705090
我晕,,犯了这么个错误,谢谢你呀,,还有一个问题,如果原方程改成x*x-2*x+1,再求根时用x1和x0输出的结果相差太大了,一个是x0输出1,x1输出-1.#IND00这是怎么回事呀?求解
2012-12-26 23:47



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




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

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