Loading [MathJax]/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >牛顿法(Newton Method)求解f(x)=0

牛顿法(Newton Method)求解f(x)=0

原创
作者头像
黑豆梨
修改于 2018-06-16 03:04:43
修改于 2018-06-16 03:04:43
3.2K0
举报

今天继续探讨f(x)=0的解法,这次要介绍的是牛顿迭代法。

问题描述

已知f(x)=0,求使等式成立的x的值。

解法如下

求出f(x)的导函数

任取初值进行迭代

...

直到 (此处约等于的意思是两者的差值小于预设误差)

示例

求解

根据求导公式有

求解代码如下

代码语言:txt
AI代码解释
复制
#include <math.h>
#include <stdio.h>

double f(double x)
{
    return exp(-x)-x;
}

double f_d(double x)
{
    return -exp(-x)-1;
}

int main()
{
    double x = 0;
    while (f(x) > 1e-6) {
        x = x-f(x)/f_d(x);
    }
    printf("solution for function exp(-x)-x=0 is %lf\n", x);
    return 0;
}

求解结果如下:

牛顿迭代法求解结果
牛顿迭代法求解结果

原理

我也不懂了……详细的可以参考维基百科

https://en.wikipedia.org/wiki/Newton%27s_method

这里仅解释下浅显的理解,而且对收敛性也不做证明。

根据高等数学里面学到的泰勒展开

约掉二阶及二阶以上的小量(至于详细的证明需要参照维基百科了,因为这里任取的初值实际上不一定是小量,这里仅仅是做一个简单解释),得到

故而可以推出,当

此即为牛顿迭代法中得迭代公式。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
固定点迭代法(Fixed Point Iteration)求解f(x)=0
求解f(x)=0还是很有用的,具体应用此不做讨论。这里将使用一系列专题阐述求解f(x)=0的各种方法。此次先讨论固定点迭代法(Fixed Point Iteration)。
黑豆梨
2018/06/10
9.2K0
固定点迭代法(Fixed Point Iteration)求解f(x)=0
算法--迭代法
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
奋飛
2019/08/15
1K0
日拱一卒,伯克利教你牛顿法,而我只想逃课……
今天我们继续来看伯克利CS61A,我们来看作业5的最后一道附加题。这道题非常有意思,涉及很多知识,因此想要完整讲明白,需要很多篇幅,所以单独写了一篇。
TechFlow-承志
2022/09/21
4650
日拱一卒,伯克利教你牛顿法,而我只想逃课……
牛顿法
复习go语言基础的时候,看到一个算法题,求特定值的平方根(不使用特定库函数的前提下),常见的方法要么是二分法要么是牛顿法。
f1sh
2024/07/25
1530
大厂面试题:求根号2简单?高级算法你肯定不会
前两天逛github看到一道很简单的面试题——如何不用库函数快速求出\sqrt2的值,精确到小数点后10位! 第一反应这不很简单嘛,大学数据结构课讲二分查找的时候老师还用这个做过示例。但转念一想,能作为大厂的面试题,背后绝对没有那么简单,于是我google了下,结果找到了更巧妙的数学方法,甚至发现了一件奇闻趣事…… 一道简简单单的面试题,不仅能考察到候选人的编程能力,还能间接考察到候选人的数学素养,难怪很多大厂都会问这个。。。 回到正题,求\sqrt2究竟有多少种解法,我们由简入难一步步来看下我们是如何让计算机更快计算sqrt的。
xindoo
2021/01/22
1.8K0
大厂面试题:求根号2简单?高级算法你肯定不会
牛顿迭代法的可视化详解
来源:DeepHub IMBA本文约1800字,建议阅读10分钟本文利用可视化方法,为你直观地解析牛顿迭代法。 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。 以 Isaac Newton 和 Joseph Raphson 命名的 Newton-Raphson 方法在设计上是一种求根算法,这意味着它的目标是找到函数 f(x)=0 的值 x。在几何上可以将其视为 x
数据派THU
2022/03/04
6260
经典面试题:如何快速求解根号2?
回到正题,这个肯定不是想问你应该调用哪个函数,而是想问如何自己去实现一个这样的开方函数。
小K算法
2022/06/09
1.1K0
经典面试题:如何快速求解根号2?
【数值计算方法(黄明游)】常微分方程初值问题的数值积分法:欧拉方法(向前Euler)【理论到程序】
是一个关键参数,它决定了离散化的程度,选择合适的步长对于数值解的准确性和稳定性非常重要。
Qomolangma
2024/07/30
2110
【数值计算方法(黄明游)】常微分方程初值问题的数值积分法:欧拉方法(向前Euler)【理论到程序】
牛顿迭代法与二分法计算平方根
因为不是科班出身,所以即使编程一段时间也时常感觉自身基础知识非常不扎实,于是在最近开始补习算法和计算机理论的基础知识。
Originalee
2018/08/30
1.8K0
牛顿迭代法与二分法计算平方根
割线法(Secant Method)求解f(x)=0
x_3=x_2-f(x_2) \frac{x_2-x_1}{f(x_2)-f(x_1)}
黑豆梨
2018/07/19
2.1K0
割线法(Secant Method)求解f(x)=0
牛顿法和牛顿迭代法一样吗_牛顿迭代法流程图
牛顿法,大致的思想是用泰勒公式的前几项来代替原来的函数,然后对函数进行求解和优化。牛顿法和应用于最优化的牛顿法稍微有些差别。
全栈程序员站长
2022/09/20
7410
算法细节系列(3):梯度下降法,牛顿法,拟牛顿法
话不多说,直接进入主题。在我看来,不管是梯度下降法还是牛顿法,它们都可以归结为一个式子,即
用户1147447
2019/05/26
2.3K0
Levenberg-Marquardt算法浅谈
在讲Levenberg-Marquardt算法之前我想先谈下牛顿法和高斯牛顿法。
用户1148525
2019/05/26
5.6K0
牛顿迭代法求解平方根
迭代,是一种数值方法,具体指从一个初始值,一步步地通过迭代过程,逐步逼近真实值的方法。 与之相对的是直接法,也就是通过构建解析解,一步求出问题的方法。
用户1147754
2019/05/27
1.5K0
牛顿迭代法(Newton's Method)
牛顿迭代法(Newton's Method)                    简介 牛顿迭代法(简称牛顿法)由英国著名的数学家牛顿爵士最早提出。但是,这一方法在牛顿生前并未公开发表。 牛顿法的
Angel_Kitty
2018/04/08
2K0
牛顿迭代法(Newton's Method)
机器学习中牛顿法凸优化的通俗解释
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/red_stone1/article/details/80821760
红色石头
2019/05/25
8710
每日一问之初识牛顿迭代法(Newton's method)
今天在刷 LeetCode 的 sqrt(x) 这道题的时候,看到别人的解法中有使用牛顿迭代法。之前也看到这个方法很多次,但都没有去了解。今天正好就这个问题来稍微整理一下:
caoqi95
2019/03/28
1.5K0
每日一问之初识牛顿迭代法(Newton's method)
多项式整理
多项式求逆元,即已知多项式$A(x)$,我们需要找到一个多项式$A^{-1}(x)$
attack
2019/02/13
8980
多项式整理
GBDT与xgb区别,以及梯度下降法和牛顿法的数学推导
GBDT和xgb的目标函数是不同的,同时针对其目标函数中的误差函数 L(θ) 的拟合方式也有差异:
学到老
2019/01/25
1.2K0
[机器学习必知必会]牛顿法与拟牛顿法
同梯度下降法一样,牛顿法和拟牛顿法也是求解无约束最优化问题的常用方法。牛顿法本身属于迭代算法,每一步需要求解目标函数的海赛矩阵的逆矩阵,计算比较复杂。拟牛顿法通过正定矩阵近似海赛矩阵的逆矩阵或海赛矩阵,简化了这一计算过程。
TOMOCAT
2020/06/09
1.1K0
[机器学习必知必会]牛顿法与拟牛顿法
相关推荐
固定点迭代法(Fixed Point Iteration)求解f(x)=0
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文