目录
主要思想
Xk+1=Xk-F(Xk)/F'(Xk) (k=1,2,,,)
K | Xk | F(Xk) |
0 | 1 | ... |
1 | 2 | ... |
... | ... | ... |
迭代法求平方根问题
要求前后两次求出的x值(Xn和Xn+1的差小于pow(10,-5))满足以下关系:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
float a,x0,x1;
cin>>a;
x0=a/2;
x1=(x0+a/x0)/2;
do{
x0=x1;
x1=(x0+a/x0)/2;
}while(fabs(x0-x1)>=1e-5);
cout<<a<<"的平方根为:"<<x1<<endl;
return 0;
}
迭代法求方程的根的问题:
问题1
已知方程为ax3+bx2+cx+d=0 ; a,b,c,d的值依次为1,2,3,4,求出在1附近的一个实根。
#include <iostream>
#include<cmath>
using namespace std;
double solut(double a,double b,double c,double d){
double x=1,x0,f,f1;
do{
x0=x;
f=((a*x0+b)*x0+c)*x0+d;
f1=(3*a*x0+2*b)*x0+c;
x=x0-f/f1;
}while(fabs(x-x0)>=1e-5);
return x;
}
int main()
{
double a,b,c,d;
cin>>a>>b>>c>>d;
cout<<solut(a,b,c,d)<<endl;
return 0;
}