?? ep2_14.cpp
字號:
/* 2.14 用迭代法求方程x*x+10cosx=0的根,誤差限為10-5。迭代公式如下:
x'=(x*x-10*(x*sin(x+cos(x)))/(2*x-10*sin(x))
*/
#include<iostream>
#include<cmath>
using namespace std;
const double e=1e-5;
int main(){
double x0,x1;
int n=0;
cout<<"輸入初始近似值:"<<endl;
cin>>x1;
do{
x0=x1;
x1=(x0*x0-10*(x0*sin(x0)+cos(x0)))/(2*x0-10*sin(x0));
//x0是上次算出的結果,x1用作保存新算出的結果
n++;
} while ((fabs(x1-x0) >e)&&(n<=1e5));
if(n>1e5)
cout<<"超出迭代1e5次\n";
else cout<<"方程x*x+10*cos(x)=0的一個根為:"<<x1<<endl;
cout<<"方程誤差為:"<<x1*x1+10*cos(x1)<<endl;
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -