2 jgdpmptjagm jgdpmptjagm 于 2016.09.18 20:59 提问

y=ln(x+3),x0=1,求方程的根,用牛顿法。我的答案总乱码啊,为什么

#include
#include
int main( )
{

int M=1000,k;

double x0,x1=1,eps=0.000001;
k=0;
for(;;) {

x0=x1;
k++;

printf("%.6f\n",x1);

x1=x0-log(x0+3)*(x0+3);
if(k>=M||fabs(x1-x0)<=eps)
break;
}

if(fabs(x1-x0)<=eps)
printf("%.6f\n",x1); }

3个回答

caozhy
caozhy   Ds   Rxr 2016.09.18 23:53
qq_27587417
qq_27587417   2016.09.19 08:43

额,你这个没有对对数的定义域做出限定吧,在进行对数计算前加上一句if(x0>-3),试试看

hijack00
hijack00   Rxr 2016.09.19 12:47

printf("%.6f\n",x1);
改为
printf("%.6lf\n",x1);
x1是double型变量。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!