已知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
//