牛顿迭代法求解步骤

  • 一. 问题导入
  • 二. 算法原理
    • C++代码实践
  • 三. 扩展——求函数的极值点

一. 问题导入

已知lnx+x^2 =0 在(0,1)范围内有解,用数值方法求解, 精度0.0001

二. 算法原理

首先,f(x) 的值近似于其泰勒展开式:

如果只考虑前两项,我们就能得到一个近似等式:
f(x)=f(x0)+f′(x0)(x−x0)f(x) = f(x_{0}) + f^{'}(x_{0})(x - x_{0}) f(x)=f(x0​)+f′(x0​)(x−x0​)
代入f(x) = 0,则有:
f(x0)+f′(x0)(x−x0)=0f(x_{0}) + f^{'}(x_{0})(x - x_{0}) = 0 f(x0​)+f′(x0​)(x−x0​)=0
x=x0−f(x0)f′(x0)x = x_{0} - \frac{f(x_{0})}{f^{'}(x_{0})} x=x0​−f′(x0​)f(x0​)​
故在求函数零点时,有如下迭代公式:
xi+1=xi−f(xi)f′(xi+1)x_{i+1} = x_{i} - \frac{f(x_{i})}{f^{'}(x_{i+1})} xi+1​=xi​−f′(xi+1​)f(xi​)​

C++代码实践

#include <iostream>
#include <vector>
#include <math.h>
using namespace std;// 已知lnx+x^2 =0 在(0,1)范围内有解,用数值方法求解, 精度0.0001
// 1
// fx = lnx + x^2
// fx’ = (1 / x) + 2 * x
// x(n+1) = x(n) - f(x)/ f(x)'double newton_Solve(double x) {double x0 = x;double x1 = x0 - (log(x0) + pow(x0, 2)) / ((1 / x0) + 2 * x0);int max_iter = 1000;int iter = 0;while (iter < max_iter && abs(x0 - x1) > 1e-4) {x0 = x1;x1 = x0 - (log(x0) + pow(x0, 2)) / ((1 / x0) + 2 * x0);iter += 1;}return x1;
}int main() {double val = newton_Solve(0.5);cout << val;return 0;}

三. 扩展——求函数的极值点

代入f’(x) = 0,则有:
f′(x0)+f′′(x0)(x−x0)=0f^{'}(x_{0}) + f^{''}(x_{0})(x - x_{0}) = 0 f′(x0​)+f′′(x0​)(x−x0​)=0
x=x0−f′(x0)f′′(x0)x = x_{0} - \frac{f^{'}(x_{0})}{f^{''}(x_{0})} x=x0​−f′′(x0​)f′(x0​)​
故求函数的极值点时,我们有以下的迭代公式:
xi+1=xi−f′(xi)f′′(xi)x_{i+1} = x_{i} - \frac{f^{'}(x_{i})}{f^{''}(x_{i})} xi+1​=xi​−f′′(xi​)f′(xi​)​

数值优化——牛顿迭代法求解函数零点相关推荐

  1. mysql 立方根函数_Java实现牛顿迭代法求解平方根、立方根

    一.简介 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法. ...

  2. c语言牛顿迭代法求解非线性方程组,利用牛顿迭代法求解非线性方程组

    最近一个哥们,是用牛顿迭代法求解一个四变量方程组的最优解问题,从网上找了代码去改进,但是总会有点不如意的地方,迭代的次数过多,但是却没有提高精度,真是 最近一个哥们,是用牛顿迭代法求解一个四变量方程组 ...

  3. 非线性方程组牛顿迭代法matlab,matlab实现牛顿迭代法求解非线性方程组

    <matlab实现牛顿迭代法求解非线性方程组>由会员分享,可在线阅读,更多相关<matlab实现牛顿迭代法求解非线性方程组(5页珍藏版)>请在人人文库网上搜索. 1.matla ...

  4. python牛顿法解非线性方程组_matlab实现牛顿迭代法求解非线性方程组.pdf

    matlab实现牛顿迭代法求解非线性方程组.pdf matlab 实现牛顿迭代法求解非线性方程组实现牛顿迭代法求解非线性方程组 已知非线性方程组如下 3*x1-cosx2*x3-1/20 x12-81 ...

  5. 3.牛顿迭代法求解方程的根

    牛顿迭代法求解方程的根 引题:用牛顿迭代法求下列方程在值等于x附近的根: 2 x 3 − 4 x 2 + 3 x − 6 = 0 2x^3-4x^2+3x-6=0 2x3−4x2+3x−6=0 输入: ...

  6. matlab牛顿法解非线性方程组,matlab实现牛顿迭代法求解非线性方程组.pdf

    资源描述 matlab 实现牛顿迭代法求解非线性方程组实现牛顿迭代法求解非线性方程组 已知非线性方程组如下 3*x1-cos(x2*x3)-1/2=0 x1^2-81*(x2+0.1)^2+sin(x ...

  7. 斐波那契(Fibonacci)迭代法求解函数极值(附代码)

    目录 Fibonacci数列: 迭代公式: 算法步骤: 例题 C++代码: Fibonacci数列又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例 ...

  8. MATLAB编程求解函数零点

    MATLAB 中有很多函数可以帮助你求解函数零点.其中常用的有 fsolve 函数. 使用方法如下: symsx f = x^2 - 3; x0 = 1; x = fsolve(f, x0) 上面的代 ...

  9. 分别用二分法和牛顿迭代法求解方程x3 – 3x – 1 = 0在x = 2附近的实根

    编写程序,分别用二分法和牛顿迭代法求解方程x3 – 3x – 1 = 0在x = 2附近的实根,要求计算精确到小数点后七位数字为止,并将求出的近似结果与理论值2cos20 相比较,二分法的初始迭代区间 ...

  10. 二分法和简单迭代法的优缺点_二分法和牛顿迭代法求解方程的比较.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp高等教育&nbsp>&nbsp理学 二分法和牛顿迭代法求解方程的比较.doc5页 本文档一共 ...

最新文章

  1. 【LeetCode】无重复字符的最长子串【滑动窗口法】
  2. UNUSED参数,这个宏,很秀
  3. 信息奥赛一本通(1100:金币)
  4. canvas绘制精细走动时钟
  5. 转hdmi_即插即用轻松双屏,毕亚兹 VGA转HDMI转换器评测
  6. 计算机一级笔试2012,2012计算机一级笔试模拟试卷及答案
  7. 如何建立大数据营销体系
  8. 【洛谷 P3384】树链剖分【详解树链剖分】
  9. 【转载】一些重要的java知识点:JVM内存模型和结构
  10. 基于Java的企业新闻管理系统的设计与实现
  11. 记录一次Spring提供的定时任务
  12. Drupal9.1.8通过phpStudy安装后除首页其他页面均404处理
  13. dp:股票系列I II III IV 含冷冻期 含手续费
  14. 云计算服务器和vps,云服务器和vps差别
  15. 键盘输入字符串 数字转换为 * 英文字母大写转小写 小写转大写
  16. 使用js删除表格中的一行的一个小练习
  17. oracle中exp中query,exp中query参数使用
  18. 十进制的转换与任意进制的互转
  19. 分享一款非常好用的Fatkun图片批量下载工具
  20. javascript-js实现多线程

热门文章

  1. EMQ X开源版使用
  2. 免费的客户订单及商品管理系统
  3. vs2005 安装sp1补丁问题汇总及安装解决方案,希望有大家有帮助
  4. linux飞信机器人,在Nagios使用飞信机器人发送警报
  5. oracle11g dos卸载,Oracle 11G 完全卸载
  6. Struts2教程之一基本使用
  7. 《photoshopCS4中文版完全自学手册》视频教程
  8. Setup Factory 卸载时出现Invalid Start mode :archive filename 无法卸载问题
  9. MATLAB 数学应用 微分方程 常微分方程 选择ODE求解器
  10. ASP发送邮件的代码