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

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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矩阵的逆矩阵,这个开销是很大的。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 项目活动图 – 举例说明

    项目活动图 – 举例说明关键路径:从开始到结束的所有路径中,时间最长的一条为关键路径。(特点:在关键路径上,所有任务的松弛时间都为0);松弛时间:第一种方法:最晚开始时间-最早开始时间;第二种方法:关键路径的总时间-包含该任务的任务路径花的时间;(前提条件:必须不影响该任务以后的任务路径)举例:关键路径:A-B-D-G-I-K-L=22由前向后推可得出…

    2022年5月13日
    50
  • 网络分析工具——WireShark的使用(超详细)[通俗易懂]

    网络分析工具——WireShark的使用(超详细)[通俗易懂]网络分析工具——WireShark的使用简介WireShark软件安装Wireshark开始抓包示例WireShark抓包界面WireShark主要分为这几个界面TCP包的具体内容Wireshark过滤器设置wireshark过滤器表达式的规则Wireshark抓包分析TCP三次握手Wireshark分析常用操作简介WireShark是非常流行的网络封包分析工具,可以截取各种网络数据包,并显示数据包详细信息。常用于开发测试过程中各种问题定位。本文主要内容包括:1、Wireshark软件下载和安装以

    2022年6月21日
    33
  • 饿了么大数据平台建设

    饿了么大数据平台建设随着接入的需求方越来越多样化,对大数据的数据使用、数据存储与计算的需求也越来越多样化,同时业务飞速发展,集群的规模也急速扩大。如何在这样的场景下通过大数据平台,稳定支撑住业务的发展是一个不小的挑战。本文分享主要平台工具链,技术、选型及架构设计上的一点经验。

    2022年6月11日
    33
  • 数据结构:八大数据结构分类

    数据结构分类数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示:每一种数据结构都有着独特的数据存储方式,下面为大家介绍它们的结构和优缺点。1、数组数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始…

    2022年4月6日
    63
  • servlet异步请求

    servlet异步请求1、什么是servlet异步请求Servlet3.0之前,一个普通Servlet的主要工作流程大致如下:(1)、Servlet接收到请求之后,可能需要对请求携带的数据进行一些预处理;(2)、调用业务接口的某些方法,以完成业务处理;(3)、根据处理的结果提交响应,Servlet线程结束。其中第二步处理业务逻辑时候很可以碰到比较耗时的任务,此时servlet主线程会阻塞等待完成业务处理,对于并发比较大的请求可能会产生性能瓶颈,则servlet3.0之后再此处做了调整,引入了…

    2022年7月27日
    5
  • Django(20)ORM模型迁移命令

    Django(20)ORM模型迁移命令迁移命令makemigrations:将模型生成迁移脚本。模型所在的app,必须放在settings.py中的INSTALLED_APPS中。这个命令有以下几个常用选项:app_label:后面可

    2022年7月30日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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