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个回答

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问