牛顿法和牛顿迭代法一样吗_牛顿迭代法流程图

牛顿法和牛顿迭代法一样吗_牛顿迭代法流程图牛顿法,大致的思想是用泰勒公式的前几项来代替原来的函数,然后对函数进行求解和优化。"牛顿法"和"应用于最优化的牛顿法"稍微有些差别。牛顿法牛顿法用来

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

牛顿法,大致的思想是用泰勒公式的前几项来代替原来的函数,然后对函数进行求解和优化。牛顿法应用于最优化的牛顿法稍微有些差别。

牛顿法

牛顿法用来迭代的求解一个方程的解,原理如下:
对于一个函数f(x),它的泰勒级数展开式是这样的

\[f(x) = f(x_0) + f'(x_0)(x-x_0) + \frac{1}{2} f”(x_0)(x-x_0)^2 + …+\frac{1}{n!}f^{n}(x_0)(x-x_0)^n \]

当使用牛顿法来求一个方程解的时候,它使用泰勒级数前两项来代替这个函数,即用\(\phi(x)代替f(x)\),其中:

\[\phi(x) = f(x_0) + f'(x_0)(x-x_0) \]

\(\phi(x) = 0\),则 \(x = x_0 – \frac{f(x_0)}{ f'(x_0)}\)
所以,牛顿法的迭代公式是\(x_{n+1} = x_n – \frac{f(x_n)}{ f'(x_n)}\)

牛顿法求解n的平方根

求解n的平方根,其实是求方程\(x^2 -n = 0\)的解
利用上面的公式可以得到:\(x_{i+1} = x_i – \frac{x_i^2 – n}{2 x_i} = (x_i + \frac{n}{x_i} ) /2\)
编程的时候核心的代码是:x = (x + n/x)/2

应用于最优化的牛顿法

应用于最优化的牛顿法是以迭代的方式来求解一个函数的最优解,常用的优化方法还有梯度下降法。
取泰勒展开式的二次项,即用\(\phi(x)\)来代替\(f(x)\)

\[\phi(x) = f(x_0) + f'(x_0)(x-x_0) + \frac{1}{2} f”(x_0)(x-x_0)^2 \]

最优点的选择是\(\phi'(x)=0\)的点,对上式求导

\[\phi'(x) =f'(x_0) + f”(x_0)(x-x_0) \]

\(\phi'(x) = 0\),则\(x = x_0 – \frac{f'(x_0)}{f”(x_0)}\)
所以,最优化的牛顿迭代公式是

\[x_{n+1} = x_n – \frac{f'(x_n)}{f”(x_n)} \]

高维下的牛顿优化方法

在高维下

\[\phi(x) = f(x_0) + \nabla f(x_0)^T (x-x_0) + \frac{1}{2} (x-x_0)^T \nabla^2 f(x_0)(x-x_0) \]

\(\nabla \phi(x)\),并令它等于0,则公式变为了

\[\nabla f(x_0) + \nabla^2 f(x_0)(x-x_0) =0 \]

\[x = x_0 – {\nabla ^2 f(x_0) }^{-1} \nabla f(x_0) \]

所以,迭代公式变为

\[x_{n+1} = x_{n} – {\nabla ^2 f(x_n) }^{-1} \nabla f(x_n) \]

其中:
\(x_{n+1} ,x_n\)都是N*1维的矢量。
\(\nabla^2 f(x_n)\)是Hessien矩阵,\({\nabla ^2 f(x_n) }^{-1}\)是Hessien矩阵的逆矩阵,它们都是是N*N维的。
\(\nabla f(x_n)\)\(f(x)\)的导数,是N*1维的。

和梯度下降法相比,在使用牛顿迭代法进行优化的时候,需要求Hessien矩阵的逆矩阵,这个开销是很大的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168015.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • @ResponseBody注解的作用

    @ResponseBody注解的作用 1、  @ResponseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区(响应体中),通常用来返回JSON数据或者是XML。  数据,需要注意的呢,在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,它的效果等同于通过response对象输出指定格式的数据。    这里…

  • 《老友记》典故集解 Season 1-10

    《老友记》典故集解 Season 1-10第一季第一集Mr.PotatoHead瑞秋和众人谈到了她逃婚的原因,她说这是因为她突然发现她的未婚夫巴里医生长得活像“薯头先生(Mr.PotatoHead)”,这是在美国家喻户晓的卡通人物。如果大家看过《玩具总动员(ToyStory)》,就会在里面发现他和他的夫人“薯头太太(Mrs.PotatoHead)”叽叽歪歪,经常批评这、批评那的形象。尽管“薯头先生”很…

  • 返回跳转指定页面的JS代码_java页面跳转的代码

    返回跳转指定页面的JS代码_java页面跳转的代码JS跳转页面参考代码第一种:window.location.href=”login.jsp?backurl=”+window.location.href;第二种:alert(“返回”);window.history.back(-1);第

  • python把局部变量赋值给全局变量_局部变量不赋初值

    python把局部变量赋值给全局变量_局部变量不赋初值理解的都没问题。但我想聊聊出现这种情况的原因。在讲原因之前,需要先知道python中变量的搜索顺序,这个顺序是LGB(不考虑闭包情况)即local本地,global全局,builtin内建。比如:a=1deftest():a=3print(a)test()函数内声明了局部变量a,在打印中使用,在本地环境中命中,因此使用的是3。也许你会问这个知识点我早就知道了,这和本问题有什么关…

    2022年10月24日
  • win10更改计算机时间格式,Win10电脑锁屏的时钟格式怎么更改[通俗易懂]

    win10更改计算机时间格式,Win10电脑锁屏的时钟格式怎么更改[通俗易懂]Win10电脑锁屏的时钟格式怎么更改腾讯视频/爱奇艺/优酷/外卖充值4折起我们在使用Win10电脑的锁定屏幕后,默认显示的是12小时的时钟格式。想要将12小时格式设置为24小时格式,该怎么操作呢?今天就跟大家介绍一下Win10电脑锁屏的时钟格式怎么更改的具体操作步骤。1.首先打开电脑上的“控制面板”,进入页面后,找到“更改日期,时间或数字格式”选项。2.如图,在弹出的窗口中,如果想要设置为2…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号