已知f(x)=cos(x)-x,x的初始值为3.14159/4;用牛顿法求方程f(x)=0的近似解,要求精度到10^-6,f(x)的牛顿法为
Xn+1=Xn-(cos(Xn)-Xn)/(sin(Xn)-1) 一直算不出解
# include <iostream.h>
# include <iomanip.h>
# include <math.h>
# include <conio.h>
int main()
{
double a,b;
b=3.14159 / 4;
a=b-(cos(b)-b)/(sin(b)-1);
while (fabs(b-a)>1e-6)
{
b=a;
a=b-(cos(b)-b)/(sin(b)-1);
}
cout << “方程的解为” <<setiosflags(ios::fixed)<<setprecision(10)<< b << endl;
return 0;
}
Xn+1=Xn-(cos(Xn)-Xn)/(sin(Xn)-1) 一直算不出解
# include <iostream.h>
# include <iomanip.h>
# include <math.h>
# include <conio.h>
int main()
{
double a,b;
b=3.14159 / 4;
a=b-(cos(b)-b)/(sin(b)-1);
while (fabs(b-a)>1e-6)
{
b=a;
a=b-(cos(b)-b)/(sin(b)-1);
}
cout << “方程的解为” <<setiosflags(ios::fixed)<<setprecision(10)<< b << endl;
return 0;
}
解决方案:15分
你这个牛顿公式有问题吧。 cos求导后是-sin.
解决方案:15分
//已知f(x)=cos(x)-x,x的初始值为3.14159/4;用牛顿法求方程f(x)=0的近似解,要求精度到10^-6,f(x)的牛顿法为 //Xn+1=Xn-(cos(Xn)-Xn)/(-sin(Xn)-1) #include <iostream.h> #include <iomanip.h> #include <math.h> #include <conio.h> int main() { double x1,x; x=3.14159 / 4; x1=x-(cos(x)-x)/(-sin(x)-1.0); while (fabs(x-x1)>1e-6) { x=x1; x1=x-(cos(x)-x)/(-sin(x)-1.0); } cout << "方程的解为" <<setiosflags(ios::fixed)<<setprecision(10)<< x << endl; return 0; } //方程的解为0.7390851781 //