解方程(迭代)
牛顿迭代法
x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r的n+1次近似值,上式称为牛顿迭代公式

解方程
| Time Limit: 1000MS | Memory Limit: 65535KB |
| Submissions: 28 | Accepted: 13 |
Sample Input
3
0
1
2
Sample Output
0.0000000000
0.1850373752
1.0000000000
# include<iostream> # include<stdio.h> # include<cmath> using namespace std; int a; double x1,x2; double f(double x)//相当于f(x) { return sqrt(x)+pow(x,1.0/3)-a; } double Df(double x)//相当于f'(x) { return 1/(2*sqrt(x))+1.0/(3*pow(x,2.0/3)); } int main() { int nCase; cin>>nCase; while(nCase--) { cin>>a; x1=1; x2=0; if(a==0) { cout<<"0.0000000000"<<endl; continue; } while(fabs(x1-x2)>=0.00000000000001&&x1>=0&&x2>=0)//迭代 { x2=fabs(x1-f(x1)/Df(x1)); x1=fabs(x2-f(x2)/Df(x2)); } printf("%0.10lf\n",x1); } return 0; }
浙公网安备 33010602011771号