C程序设计案例(牛顿迭代法求高次方程的根)
牛顿迭代法求方程的根
1. 牛顿迭代法的几何解释
- 注解: 设 rrr是f(x)=0f(x)=0f(x)=0 的根,选取 x0x_0x0 作为 rrr 的初始近似值,过点 (x0,f(x0))(x_0,f(x_0))(x0,f(x0)) 做曲线 y=f(x)y=f(x)y=f(x) 的切线 LLL , L:y=f(x0)+f′(x0)(x−x0)L:y=f(x_0)+f'(x_0)(x-x_0)L:y=f(x0)+f′(x0)(x−x0) ,则 LLL 与 xxx 轴交点的横坐标 x1=x0−f(x0)f′(x0)x_1=x_0-\frac{f(x_0)}{f'(x_0)}x1=x0−f′(x0)f(x0) ,称 x1x_1x1为 rrr 的一次近似值。过点 (x1,f(x1))(x_1,f(x_1))(x1,f(x1))做曲线 y=f(x)y=f(x)y=f(x) 的切线,并求该切线与xxx轴交点的横坐标 x2=x1−f(x1)f′(x1)x_2=x_1-\frac{f(x_1)}{f'(x_1)}x2=x1−f′(x1)f(x1) ,称 x2x_2x2 为rrr的二次近似值。重复以上过程,得 rrr 的近似值序列,其中,xxxn+1=xn−f(xn)f′(xn)=x_n-\frac{f(x_n)}{f'(x_n)}=xn−f′(xn)f(xn) 称为 rrr 的 n+1n+1n+1 次近似值,上式称为牛顿迭代公式。
以下是部分图片(本人选自百度图片),帮助理解:
2. 案例
题目:用牛顿迭代法求根。方程为 ax3+bx2+cx+d=0ax^3+bx^2+cx+d=0ax3+bx2+cx+d=0 ,系数 a,b,c,da,b,c,da,b,c,d 的值依次为 1,2,3,4,由主函数输入。求 xxx 在 1 附近的一个实根。求出根后由主函数输出。
3. 案例分析
牛顿迭代公式为: xxxn+1=xn−f(xn)f′(xn)=x_n-\frac{f(x_n)}{f'(x_n)}=xn−f′(xn)f(xn)
其中,x0x_0x0是上一次求出的近似根,在开始是根据题设 x0=1x_0=1x0=1(题目希望求x在1附近的一个实根,因此第一次的近似值可以设定为1)。f(x)=x3+2x2+3x+4f(x)=x^3+2x^2+3x+4f(x)=x3+2x2+3x+4。f′(x)f'(x)f′(x)是f(x)f(x)f(x)的导数,所以f′(x)=3x2+6x+3f'(x)=3x^2+6x+3f′(x)=3x2+6x+3
第一次迭代,x=1−f(1)f′(1)x=1-\frac{f(1)}{f'(1)}x=1−f′(1)f(1) ;第二次迭代 。。。依次类推;
一直迭代到∣x−x0∣<=10|x-x_0|<=10∣x−x0∣<=10-3时结束。
4.代码实现
#include <stdio.h>
#include <math.h>float solution(float a,float b,float c,float d);int main()
{float a,b,c,d;printf("请输入系数a,b,c,d: ");scanf("%f%f%f%f",&a,&b,&c,&d);printf("x=%10.7f\n",solution(a,b,c,d));return 0;
}float solution(float a, float b, float c,float d)
{float x = 1;float 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-3);return x;
}
参考文章
- https://blog.csdn.net/yyzsir/article/details/78712887
- https://blog.csdn.net/qq_41928880/article/details/80023335
- https://blog.csdn.net/qq_31029351/article/details/53311285
C程序设计案例(牛顿迭代法求高次方程的根)相关推荐
- 用牛顿迭代法求方程的根
用牛顿迭代法求方程的根(C语言) 题目要求:牛顿迭代法是一种重要的基本的求方程根的方法.现有方程为axˆ3+bxˆ2+cx+d=0,系数a,b,c,d的值一次为1,2,3,4,由主函数输入.求x在1附 ...
- 【Python】Python用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。提示:牛顿迭代法求非线性方程的根的迭代公式为x`(n+1)`=x`n`-f(x)/f'(x) 。
用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根.提示:牛顿迭代法求非线性方程的根的迭代公式为x(n+1)=xn-f(x)/f'(x) . 算法源码 def f(x): ##原函数ret ...
- 牛顿迭代法求方程的根
牛顿迭代法(牛顿-拉弗森方法) 五次及以上多项式方程没有根式解(就是没有像二次方程那样的万能公式),这个是被伽罗瓦用群论做出的最著名的结论.没有根式解不意味着方程解不出来,数学家也提供了很多方法,牛顿 ...
- 用牛顿迭代法求方程的根matlab,牛顿迭代法求方程根的MATLAB程序
function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit) %% %牛顿迭代法(切线法)求解方程f_name = ...
- 1087 习题5-14 牛顿迭代法求方程的根
题目描述 用牛顿迭代法求下面方程在输入初值点附近的根: 2x3-4x2+3x-6=0 要求前后两次求出的x的差的绝对值小于10-6 牛顿迭代法公式如下: 将给定给定方程写成f(x)=0的形式,在给定初 ...
- java牛顿法求方程根_C程序习题-用牛顿迭代法求方程的根[6.12]
用牛顿迭代法求下面方程在1.5附近的根.2X3– 4X2+3X- 6 = 0 看到这个题目,我便开始百度,看什么是牛顿迭代法.看了上面的解释,我还是一头雾水.无从下手.不知所云.看着上面写的推到公式, ...
- 【清橙A1094】【牛顿迭代法】牛顿迭代法求方程的根
问题描述 给定三次函数f(x)=ax3+bx2+cx+d的4个系数a,b,c,d,以及一个数z,请用牛顿迭代法求出函数f(x)=0在z附近的根,并给出迭代所需要次数. 牛顿迭代法的原理如下(参考下图) ...
- 用牛顿迭代法求方程的根matlab,牛顿迭代法求方程解 程序如下
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit) %% % ...
- Matlab牛顿迭代法求方程的根(GUI)
牛顿迭代法的具体内容不赘述 它的核心算法是: k = 1; x = x0; x0 = x + e*2; % 为了让初启动时满足循环条件 while (abs(x-x0))>e && ...
- python迭代法求解方程_第一部分:趣味算法入门;第六题牛顿迭代法求一元三次方程的根...
100个不同类型的python语言趣味编程题 在求解的过程中培养编程兴趣,拓展编程思维,提高编程能力. 第一部分:趣味算法入门:第六题SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键 ...
最新文章
- Mac解决中文matplotlib乱码问题
- 负载均衡集群介绍、LVS介绍、LVS调度算法、 LVS NAT模式搭建
- 小米3 开发人员选项
- 双11还能创造什么新技术?
- 设计模式学习之单例模式
- python3 面向对象、类、继承、组合、派生、接口、子类重用父类方法
- VC++学习方法及书籍推荐(转)
- Revit中导入的CAD标高不统一处理及“标高管理”
- 量子计算(六):量子计算软件介绍
- 苹果应用商店审核_苹果应用商店AppStore审核规则指南
- Java简繁体汉字转化
- 信息熵——与一枚硬币的故事
- 指标波动的原因很头疼?不妨试试“问诊”法!
- 网易互联网雷火互娱22届校招及社招内推
- 接口测试,后端接口还没开发完,如何测?解决看这一篇就够了......
- 【调剂】苏州科技大学电子与信息工程学院2021年硕士研究生招生第二批调剂信息公告...
- 台式电脑显示无法自动修复此计算机,windows无法自动修复此计算机怎么解决
- 微信小程序框架(一)-全面详解(学习总结---从入门到深化)
- css实现圆角div
- 全面讲解分布式数据库架构设计特点
热门文章
- ASP.NET MVC 重点教程一周年版 第三回 Controller与View
- .Net 下的Wondows窗体常用项目
- 【SpringBoot_ANNOTATIONS】生命周期 04 BeanPostProcessor 后置处理器
- 函数 php_PHP丨PHP基础知识之PHP基础入门——函数「理论篇」
- Android实现计算器布局(表格布局)
- 微信浪漫告白小程序java_厉害了,微信小程序可以这样表白,还怕他(她)拒绝你?...
- 数据库得事务控制详解,什么是事务回滚详解,通俗易懂
- ios html清除缓存图片,iOS 清理文件缓存(示例代码)
- 提高网页效率的14条准则
- Configuration Manager 2012 R2系统需求