打卡1

问题描述:编写用牛顿迭代法求方程根的函数。方程为ax^3+bx^2+cx+d=0,系数a,b,c,d由主函数输入。求x1附近的一个实根。求出根后由主函数输出。

牛顿迭代法的公式是:x=x0-f(x0)/f’(x0),设迭代到|x-x0|<=10^-5时结束。

流程图:

 

伪代码:

input a,b,c,d

x0<-1.1

for void

x<-x0-(a*x0*x0*x+b*x0*x0+c*x0+d)/(3*a*x0*x0+2*b*x0+c)

if fabs(x-x0)<=1e-5

break

else x0<-x

output x

代码:

#include <iostream>

#include <math.h>

using namespace std;

int main()

{

float x0=1.1,x,a,b,c,d;

int i;

cin>>a>>b>>c>>d;

for(i=0;;i++)

{

x=x0-(a*x0*x0*x0+b*x0*x0+c*x0+d)/(3*a*x0*x0+2*b*x0+c);

if(fabs(x-x0)<=1e-5)

break;

else

x0=x;

}

cout<<x<<endl;

return 0;

}

 

posted @ 2023-04-24 19:24  umiQa  阅读(15)  评论(0编辑  收藏  举报