[讨论]浮点数的高阶为什么出错?
应用Newton法求f(x)=x^41-x^3+1=0在x0=-1附近的实根。要求满足精度|x(k+1)-x(k)|<0.001.
编译报错,希望大家指点一下,为什么会出错?
编程如下:
#include <stdio.h>
void main(void)
{
float xa,xb,m;
int i;
printf("\nx0=");
scanf("%f",&xa);
for(i=1;;i++){
xb=(40*xa^41-2*xa^3-1);
xb/=(41*xa^40-3*xa^2);
m=xb-xa;
printf("\nx%d=%f",i,xb);
printf("x(k+1)-x(k)=%f",m);
if(m<0.001||m>-01001)
break;
xa=xb;
}
printf("*********");
getch();
}