牛顿迭代法原理及C++实现
牛顿迭代法
牛顿迭代法的思想是将非线性函数(原方程)线性化(切线方程),以线性方程的解逐步逼近非线性方程的解。
算法步骤
步骤1:设x*是f(x)= 0 的根,选取x0作为x*初始近似值,并设f(x), f’(x)和f’’(x) 在x*附近连续。过点(x0,f(x0)) 做曲线y=f(x)的切线L,L的方程为y=f(x0)+f’(x0)(x-x0) ,这里其实是f(x)在x0处的一阶Taylor展开,求出L与x轴交点的横坐标x1= x0-f(x0)/f’(x0) ,称x1 为x0 的一次近似值。
步骤2:过点(x1,f(x1)) 做曲线 的切线,并求该切线与x轴交点的横坐标 x2= x1-f(x1)/f’(x1) ,称x2为x*的二次近似值。
步骤3:重复以上过程,得 x*的近似值序列xk+1= xk-f(xk)/f’(xk),其中xk+1,称为 的k+1次近似值,上式称为牛顿迭代公式。
步骤4:在迭代序列收敛的情况下,取满足精度的迭代值 xk作为方程的根x* 的近似值。
算法流程
例题
用牛顿迭代法求解方程x3-3x-1=0 在x0=2 附近的根,精确到小数点后第四位。
代码实现
#include "stdio.h"
#include "math.h"
main()
{float x0,x1=2;int i=0;printf("\nx%d=%7.6f",i,x1);i++;do{x0=x1;x1=x0-(x0*x0*x0-3*x0-1)/(3*x0*x0-3); //代码求导搞不定,只能手动求导了,囧~printf("\nx%d=%7.6f",i,x1);i++;}while(fabs(x1-x0)>=0.000001);printf("\nx=%5.5f",x1);
}
计算结果
牛顿迭代法原理及C++实现相关推荐
- 机器学习-牛顿迭代法原理和公式推导
机器学习的本质是建立优化模型,通过优化方法,不断迭代参数向量,找到使目标函数最优的参数向量,最终建立模型.但是在机器学习的参数优化过程中,很多函数是非常复杂的,不能直接求出.五次及以上多项式方程没有根 ...
- python牛顿法算立方根_牛顿迭代法求解立方根
//计算一个数字的立方根,不使用库函数 //详细描述: //接口说明 //原型: //public static double getCubeRoot(double input) //输入:doubl ...
- 二元牛顿迭代法matlab,2-8牛顿迭代法matlab
4 实验七 牛顿迭代法 [实验目的] 1.了解牛顿迭代法的基本概念. 2.了解牛顿迭代法的收敛性和收敛速度. 3.学习掌握MATLAB 软件有关的命令. [实验内容] 用牛顿迭代法求方程0123=-+ ...
- 用matlab写牛顿迭代法,牛顿迭代法的MATLAB实现
20 牛顿迭代法的MATLAB实现 云 磊 (襄樊学院,湖北 襄阳 441053) 摘要:牛顿迭代法是方程求根中的一种较快捷的迭代方法,但遇到较复杂的方程时计算量较大.文章采用了MATLAB编程来实现 ...
- 多元函数的极值牛顿迭代法
多元函数的极值&牛顿迭代法 多元函数的极值 牛顿迭代法 多元函数的极值 多元函数求极值的方法其他网页已经写了很多,在此不多叙述.在此不多赘述.简单给出结论: (1)一元函数求极值:对于一阶连续 ...
- 牛顿迭代法求平方根原理
牛顿迭代法可以求解n次方的根,但这里只讨论用它来求平方根. 牛顿迭代法求平方根过程 Java代码实现 /*** 求一个数的平方根* @param number* @return*/public sta ...
- 【算法】牛顿迭代法求平方根的原理和误差分析
前言 在<算法(第四版)>中的P23页,给出了经典的利用牛顿迭代法求平方根的算法,牛顿迭代法在数值计算中应用十分广泛,但是在看书中的代码时,我最困惑的是其中对收敛条件的判断,经过查阅资料和 ...
- 141. Sqrt(x)【牛顿迭代法求平方根 by java】
Description Implement int sqrt(int x). Compute and return the square root of x. Example sqrt(3) = 1 ...
- 梯度下降法,牛顿法,高斯-牛顿迭代法,附代码实现
---------------------梯度下降法------------------- 梯度的一般解释: f(x)在x0的梯度:就是f(x)变化最快的方向.梯度下降法是一个最优化算法,通常也称为最 ...
最新文章
- Linux内存技术分析(上)
- Redis缓存使用技巧和设计方案
- vue中的v-on事件监听机制
- TOMCAT websocket 多连接内存泄漏与jetty对比分析
- linux基于域的虚拟目录,RHELAS4.0 apache配置之我的小结(虚拟目录,虚拟主机)
- zabbix对网站web监控(配置模板)
- mysql 吧库下的表名都加_MySQL 数据库名、表名、字段名大小写敏感记录
- Android 系统(60)---JSON
- 算法与数据结构之判断是否为n的幂
- 剑指Offer:面试题31——连续子数组的最大和(java实现)
- anaconda 虚拟环境
- android怎么用apk,手机如何安装APK应用教程 小白操作安卓系统教程 (全文)
- 计算机U盘驱动程序安装不上问题解决方案
- 关于自编码器的核心点理解
- [坑]微信支付首次支付成功,第二次调用失败
- 阿里云发送短信功能(环境搭建篇)
- 【Linux】centos解压缩rar
- ArcBlock冒志鸿:区块链3.0时代最先应用于政府服务体系|筱静观察
- 很经典的十五句话,从别人的blog上看来的!
- ES6给对象部署Iterator
热门文章
- 番茄花园是否走上正途?
- ArcGIS:根据DEM数据提取区域水系
- 西门子mag6000接线_S7-1200与西门子电磁流量计SITRANS F M MAG 6000 DP通讯
- 外接显示屏 HDMI线连到台式或者笔记本后,没有声音了!
- rk3128 android7.1 hdmi音频调试
- 2022年涨价潮来了?芯片,晶圆.......1月1日正式调涨!
- 现在工作所具备的计算机操作,信息科科长职位竞争上岗讲演稿(网友投稿)
- vulnhub靶机DC1
- 计算机毕业设计Java作业批改管理系统(源码+系统+mysql数据库+lw文档)
- 编辑数学公式绘制曲线