函数:用牛顿迭代法求方程的根「终于解决」

(26) 2023-08-28 19:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说函数:用牛顿迭代法求方程的根「终于解决」,希望能够帮助你!!!。

要求

用牛顿迭代法求方程的根。方程为ax3+bx2+cx+d=0,系数由用户输入,求x在1附近的根。
,

代码

#include<math.h>
#define EPSILON 1E-6
/* * 函数f(x)=a*x**3+b*x**2+c*x+d */
double f(double a,double b,double c, double d, double x)
{ 
   
    double t;
    t=a*x*x*x+b*x*x+c*x+d;
    return t;
}
/* * 函数f(x)=a*x**3+b*x**2+c*x+d的导函数 */
double derivatives(double a,double b,double c, double d, double x)
{ 
   
    double t;
    t=3*a*x*x+2*b*x+c;
    return t;
}
/* * 在该函数中用迭代法求解方程在1附近的根,可以调用上面的f函数和f的导函数 */
double fun(double a,double b,double c,double d)
{ 
   
    double x1,x=1;
    do
    { 
   
        x1=x;
    x = x1 - f(a,b,c,d,x)/derivatives(a,b,c,d,x);
    }
    while(fabs(x1-x)>=1e-3);
    return x;
 } 


测试

测试输入
10 5 -11 -3.28351

输出
方程在1附近的根为0.97

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复