用牛顿迭代法求方程的根(C语言)

题目要求:牛顿迭代法是一种重要的基本的求方程根的方法。现有方程为axˆ3+bxˆ2+cx+d=0,系数a,b,c,d的值一次为1,2,3,4,由主函数输入。求x在1附近的一个实根。

思路:

  1. 首先,设fx=axˆ3+bxˆ2+cx+d,则可在坐标图上画出fx。此时fx与横坐标的交点即为方程的,现在来求这个解的值
  2. 当x0=1时,fx=ax0ˆ3+bx0ˆ2+cx0+d
  3. 在(x0,fx)上作fx的切线,切线的斜率f为fx求导,得f=3axˆ2+2bx+c,交横坐标于(x1,0)点
  4. 根据三角函数定理,有f=fx/(x0-x1),转换得x1=x0-fx/f
  5. 可以看到,x1比x0离方程的解更接近
  6. 此时在(x1,fx1)上进行上述同样的操作。可以看到,切线与横坐标的交点离方程的解越来越近
  7. 如此循环,可以设置当(x1-x0)的绝对值小于1e-5即停止循环,最后的x1即为方程的近似解,可以通过放大或缩小1e-5的值来获得更为粗略或者精确的解

如图所示:

以下是具体代码:

#include <stdio.h>
#include <math.h>
int main()
{double newton_method(int a, int b, int c, int d);int a,b,c,d;double root;printf("please enter a,b,c,d: ");scanf("%d %d %d %d",&a,&b,&c,&d);root=newton_method(a,b,c,d);printf("The root is: %f\n",root);return 0;
}double newton_method(int a, int b, int c, int d)
{double x1,x0,fx,f;x1=1.0;while(fabs(x1-x0)>=1e-5){x0=x1;fx=a*x0*x0*x0+b*x0*x0+c*x0+d;f=3*a*x0*x0+2*b*x0+c;x1=x0-fx/f; }return(x1);
}

用牛顿迭代法求方程的根相关推荐

  1. 牛顿迭代法求方程的根

    牛顿迭代法(牛顿-拉弗森方法) 五次及以上多项式方程没有根式解(就是没有像二次方程那样的万能公式),这个是被伽罗瓦用群论做出的最著名的结论.没有根式解不意味着方程解不出来,数学家也提供了很多方法,牛顿 ...

  2. 用牛顿迭代法求方程的根matlab,牛顿迭代法求方程根的MATLAB程序

    function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit) %% %牛顿迭代法(切线法)求解方程f_name = ...

  3. 用牛顿迭代法求方程的根matlab,牛顿迭代法求方程解 程序如下

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit) %% % ...

  4. 1087 习题5-14 牛顿迭代法求方程的根

    题目描述 用牛顿迭代法求下面方程在输入初值点附近的根: 2x3-4x2+3x-6=0 要求前后两次求出的x的差的绝对值小于10-6 牛顿迭代法公式如下: 将给定给定方程写成f(x)=0的形式,在给定初 ...

  5. java牛顿法求方程根_C程序习题-用牛顿迭代法求方程的根[6.12]

    用牛顿迭代法求下面方程在1.5附近的根.2X3– 4X2+3X- 6 = 0 看到这个题目,我便开始百度,看什么是牛顿迭代法.看了上面的解释,我还是一头雾水.无从下手.不知所云.看着上面写的推到公式, ...

  6. 【清橙A1094】【牛顿迭代法】牛顿迭代法求方程的根

    问题描述 给定三次函数f(x)=ax3+bx2+cx+d的4个系数a,b,c,d,以及一个数z,请用牛顿迭代法求出函数f(x)=0在z附近的根,并给出迭代所需要次数. 牛顿迭代法的原理如下(参考下图) ...

  7. Matlab牛顿迭代法求方程的根(GUI)

    牛顿迭代法的具体内容不赘述 它的核心算法是: k = 1; x = x0; x0 = x + e*2; % 为了让初启动时满足循环条件 while (abs(x-x0))>e && ...

  8. 100个python算法超详细讲解:牛顿迭代法求方程根

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

  9. Python趣味算法入门 - 牛顿迭代法求方程根

    问题描述 编写用牛顿迭代法求方程根的函数.方程为,系数a,b,c,d由主函数输入,求x在1附近的一个实根.求出根后,由主函数输出. 牛顿迭代法的公式:,设迭代到  时结束. 分析 在网上可以找到很多关 ...

最新文章

  1. 某程序员面试支付宝P7,面试已通过,却因为背调没过!再进阿里失败!阿里背调,到底调啥?...
  2. c++ log函数_认识这19种深度学习损失函数,才能说你了解深度学习!
  3. LeetCode 07. 整数反转
  4. 主元排序法c语言程序,C语言算法竞赛入门(二)---数组元素移动 、排序问题 、猴子选大王问题...
  5. LeetCode--85.最大矩形(单调栈)
  6. EJB3.0学习笔记--第一个EJB程序:
  7. 【OpenCV】直方图
  8. android 接口的调用方法参数类型转换,Android NDK开发之JNI基础
  9. 华为手机上的网上邻居怎么用_华为手机如何无线连接电脑
  10. linux下搭建redis集群
  11. SQL之CASE WHEN用法详解
  12. php 微信朋友圈 更新时间,微信朋友圈可见天数怎么设置
  13. [c语言]进值转换的详细代码实现(二进制,十进制,十六进制等)
  14. 第25届ccf-csp认证赛后
  15. HDU 4460 Friend Chains(map + spfa)
  16. unity 5 打包apk 手动升级android sdk 5.0 api 21
  17. mw150um 驱动程序win10_mw150um驱动下载-MERCURY水星MW150UM 150M无线USB网卡驱动2.0 官方最新版-东坡下载...
  18. 电脑上将PPT转换成PDF格式方法
  19. 今日头条飞聊下载,重名软件较多可别下错哦
  20. jquery版小型婚礼(可动态添加祝福语)

热门文章

  1. C++ ,C 筛法求素数
  2. 输入空间、输出空间、特征空间与假设空间
  3. dz论坛附件在服务器中的位置,discuz x3 如何将头像和帖内等附件分离到远程服务器?...
  4. 第五章-系统的频域分析
  5. HDU 5148 Cities (树形DP)*
  6. 中国LED芯片行业市场竞争状况分析及十si五发展趋势研究报告2021~2027年
  7. Ubuntu server关机命令
  8. Unity3D网络游戏实战——实践出真知:大乱斗游戏
  9. 我讨厌你公事公办的样子
  10. 怎么让input控件,填充满td