迭代法求根,但是结果是0.739085,明显不对
/*********已知f(x) = cos(x) - x。 x的初值为3.14159/4,用牛顿法求解方程f(x)=0的近似值**//*********要求精确到10E-6************/
#include"stdio.h"
#include"math.h"
double f1(double x);//要求解的函数
double f2(double x);//要求解的函数的一阶导数函数
double newton(double x0,double e);//通用牛顿迭代子程序
int main()
{
double x0=3.14159/2;
double e=10E-6;
printf("x=%f\n",newton(x0,e));
getchar();
return 0;
}
double f2(double x)
{
return -sin(x)-1;
}
double f1(double x)
{
return cos(x)-x;
}
double newton(double x0,double e)
{
double x1;
do
{
x1=x0;
x0=x1-f1(x1)/f2(x1);
}
while(fabs(x0-x1)>e);
return x0;
}