问题:
用牛顿迭代法求根。方程为ax3+bx2+cx+d=0。系数a,b,c,d,的值为1,2,3,4且由主函数输入。求出根后由主函数输出。设方程为f(x)=0,则牛顿迭代公式为xn+1=xn−f(x)/f'(x),其中f'(x)是f(x)的导函数,迭代初值由键盘输入。
#include<iostream>
#include<cmath>
using namespace std;
double diedai(double x0,int a,int b,int c,int d)
{
double x;
double f,fd,h;
x=x0;
do
{
f=a*x*x*x+b*x*x+c*x+d;
fd=3*a*x*x+2*b*x*+c;
h=f/fd;
x=x-h;
}while(fabs(h)>1e-6);
return x;
}
int main()
{
int a,b,c,d;
double x0;
cout<<"输入迭代初值x0和系数a,b,c,d:";
cin>>x0>>a>>b>>c>>d;
cout<<diedai(x0,a,b,c,d);
}
对于此题更详细了解看