0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python实现所有算法-基本牛顿法

云深之无迹 来源:云深之无迹 作者:云深之无迹 2022-07-13 10:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Python实现所有算法-二分法

Python实现所有算法-力系统是否静态平衡

Python实现所有算法-力系统是否静态平衡(补篇)

Python实现所有算法-高斯消除法

Python实现所有算法-牛顿-拉夫逊(拉弗森)方法

Python实现所有算法-雅可比方法(Jacobian)

Python实现所有算法-矩阵的LU分解

Python实现所有算法-牛顿前向插值

兄弟们!今天的简单,我直接给大家表演徒手求导。

求导是数学计算中的一个计算方法,它的定义就是,当自变量的增量趋于零时,因变量的增量与自变量的增量之商的极限。在一个函数存在导数时,称这个函数可导或者可微分。可导的函数一定连续。不连续的函数一定不可导。

这个图一定不可以错过

eae964b6-01ed-11ed-ba43-dac502259ad0.png

基本的做法是这样的

eb01c83a-01ed-11ed-ba43-dac502259ad0.png

对于一种数学的运算,我们总是给出满足的规则

其实哇,这些东西我写的没有意义,在座的各位都学过高等数学,数学分析,而且高中还学了两年。概念不是啥问题。

如果是为了科普,我推荐这本可爱的漫画书(是数学书啦~)

ecdeec14-01ed-11ed-ba43-dac502259ad0.png

给大家看一个简单的页面,是不是很有趣

ed211b98-01ed-11ed-ba43-dac502259ad0.png

对一首歌的趋势的曲线说明

书中的内容可能不深,但是这种寓教于乐的方式真的很好,至少这就是大众接受的数学。

其次我推荐这本书,你有没有想过微积分风风雨雨这么多年,诞生之初是什么样的?

ede08186-01ed-11ed-ba43-dac502259ad0.png

本书给你答案

这本书我可太喜欢了,点到为止,是我对本书的评价,是一本真的可以一本书读下去的数学书。

ee976220-01ed-11ed-ba43-dac502259ad0.png

随便截图一个,点明对我们的需求来说,这样就足够了

eed6048a-01ed-11ed-ba43-dac502259ad0.png

非常的简洁,很OK

ef0c93a6-01ed-11ed-ba43-dac502259ad0.png

还有一套是托马斯微积分,awesome的好书,1k5多的页数,让人直呼过瘾

ef4fd940-01ed-11ed-ba43-dac502259ad0.png

另外张景中院士的直来直去微积分真的很有特色,本书的特点是不使用极限和无穷小的概念,直截了当的给出函数的基本概念。

efd299ca-01ed-11ed-ba43-dac502259ad0.png

这段话是对书的最好诠释

f01596c6-01ed-11ed-ba43-dac502259ad0.png

真的这些书给人以舍不得读下去的感觉,因为读完就没有了

f040c576-01ed-11ed-ba43-dac502259ad0.png

如果上面的你觉得太简单了,微积分笔记这本书是对于数学分析方方面面的一个题集总结。

f06ab96c-01ed-11ed-ba43-dac502259ad0.png

有代表性的习题加上简短的定理总结,不可多得好书

f0a9558c-01ed-11ed-ba43-dac502259ad0.png

因为Latex的排版,在美观上面也是香的一比

f181207a-01ed-11ed-ba43-dac502259ad0.png

emmmm,如果你想在通俗和严谨之间得到一个平衡,我个人觉得经济学的教材是很好的。

f20b1e38-01ed-11ed-ba43-dac502259ad0.png

最后让我再推荐一下黄皮书,yyds!!!

f28536fa-01ed-11ed-ba43-dac502259ad0.png

同系列的还有这本,还有一本是线性代数就该这样学

f323b672-01ed-11ed-ba43-dac502259ad0.png

在最后让我隆重的安利一下,全美经典的教材,统计学原理讲的真的是NO.1

f388dac0-01ed-11ed-ba43-dac502259ad0.png

内容丰富嗷

f40f954c-01ed-11ed-ba43-dac502259ad0.png

内容也很好,推荐一读

按照我老师的说法,我的理论已经ok了,所以要拉我去做题,emmmm。

f475a044-01ed-11ed-ba43-dac502259ad0.png

这个我不用多说吧???

事实上,这次要讲的确实是求导,但是比哪个东西高级。

在微积分中,牛顿法是一种迭代方法,用于求可微函数F的根,它是方程F ( x ) = 0的解。因此,牛顿法可以应用于二次可微函数f的导数f ‘以求导数的根(f ’( x ) = 0的解),也称为f的临界点 。 这些解可能是最小值、最大值或鞍点。这与优化有关,优化旨在找到函数f的(全局)最小值。

优化的核心问题是函数的最小化。让我们首先考虑单变量函数的情况,即单个实变量的函数。

f49873e4-01ed-11ed-ba43-dac502259ad0.png

找最小

这是基本牛顿法:

f4cbb830-01ed-11ed-ba43-dac502259ad0.png

理论是这样的

f509436c-01ed-11ed-ba43-dac502259ad0.png

这是最终的更新公式

接下来再细讲,并不是所有的方程都有求根公式,或者求根公式很复杂,导致求解困难。利用牛顿法,可以迭代求解。

原理是利用泰勒公式,在x0处展开,且展开到一阶,即f(x) = f(x0)+(x-x0)f‘(x0)

求解方程f(x)=0,即f(x0)+(x-x0)*f’(x0)=0,求解x = x1=x0-f(x0)/f‘(x0),因为这是利用泰勒公式的一阶展开,f(x) = f(x0)+(x-x0)f’(x0)处并不是完全相等,而是近似相等,这里求得的x1并不能让f(x)=0,只能说f(x1)的值比f(x0)更接近f(x)=0,于是乎,迭代求解的想法就很自然了,可以进而推出x(n+1)=x(n)-f(x(n))/f‘(x(n)),通过迭代,这个式子必然在f(x*)=0的时候收敛。整个过程如下图:

f52873fe-01ed-11ed-ba43-dac502259ad0.png

这是求根

接下来是最优化,对一个目标函数f,求函数f的极大极小问题,可以转化为求解函数f的导数f’=0的问题,这样求可以把优化问题看成方程求解问题(f‘=0)。

剩下的问题就和第一部分提到的牛顿法求解很相似了。为了求解f’=0的根,把f(x)的泰勒展开,展开到2阶形式:

f53f24c8-01ed-11ed-ba43-dac502259ad0.png

当且小三角无限趋于0 的时候

f5602d1c-01ed-11ed-ba43-dac502259ad0.png

这个成立

f5796020-01ed-11ed-ba43-dac502259ad0.png

我们的最终迭代公式就出来了

f5939256-01ed-11ed-ba43-dac502259ad0.png

值得更新公式

牛顿法用于函数最优化求解”中对函数二阶泰勒公式展开求最优值的方法称为:Newton法,

牛顿法用于方程求解”中对函数一阶泰勒展开求零点的方法称为:Guass-Newton(高斯牛顿)法。

这次得比较难。。。就提前写好求导:

f5b28620-01ed-11ed-ba43-dac502259ad0.png

这个公式就是上面的更新公式

f5f26eac-01ed-11ed-ba43-dac502259ad0.png

我们提前把函数和求导的函数写好

f61a3bbc-01ed-11ed-ba43-dac502259ad0.png

原文标题:Python实现所有算法-牛顿优化法

文章出处:【微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4406

    浏览量

    66841
  • 牛顿
    +关注

    关注

    0

    文章

    6

    浏览量

    6467
  • python
    +关注

    关注

    57

    文章

    4858

    浏览量

    89588

原文标题:Python实现所有算法-牛顿优化法

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    用于单片机几种C语言算法

    为克服随机干扰引起的误差,硬件上可采用滤波技术,软件上可采用软件算法实现数字滤波。滤波算法往往是系统测控算法的一个重要组成部分,实时性很强。 采用数字滤波
    发表于 11-27 06:00

    SM4算法实现分享(一)算法原理

    ,Xi、Yi、rki为字,i=0,1,2,…,31。则本算法的加密实现为: 本算法的解密实现与加密实现结构是相同的,不同的只是提供的轮
    发表于 10-30 08:10

    复杂的软件算法硬件IP核的实现

    具体方法与步骤 通过 C 语言实现软件算法,并验证了算法的有效性以后,就可以进行算法的 HDL 转化工作了。通过使用 Altium Designer 的 CHC 编译器(C to H
    发表于 10-30 07:02

    AES加解密算法逻辑实现及其在蜂鸟E203SoC上的应用介绍

    算法中唯一的非线性模块,通常有两种实现方式:查找表和复合域降阶。查找表实现较为简单,由于
    发表于 10-29 07:29

    TCORDIC算法实现正余弦函数

    TCORDIC算法,由低延迟CORDIC算法和Taylor展开组成。Taylor展开计算作为CORDIC算法的补充,能够结合CORDIC算法和Taylor展开方式来计算浮点正余弦函数,
    发表于 10-29 06:30

    BLDC与PMSM电机控制算法的联系与区别

    脉动小、更加平稳顺滑,因此广泛应用于对控制性能要求高的场合,如工业伺服系统、电动汽车驱动等。 二、 核心控制算法解析​ 六步换相​​ l原理: 一种简单直接的控制方法。它将电机的电周期分为六个区间
    发表于 10-27 09:23

    Newton-Raphson算法实现浮点除法(七)

    牛顿迭代算法,一直逼近于f(x) = 0的点,则有xi+1 = xi (2 - xi b),这样我们能够用下述步骤实现a/b: 1)把b移位,使其满足0.5≤b<1; 2
    发表于 10-24 07:53

    三种SPWM波形生成算法的分析与实现

    摘要:变频技术作为现代电力电子的核心技术,集现代电子、信息和智能技术于一体。而SPW(正弦波脉宽调制)波的产生和控制则是变频技术的核心之一。本文对SPI波形生成的三种算法-对称规则采样、不对称规则
    发表于 07-31 13:34

    分光光度结合进化算法精确测定:金属氧化物薄膜厚度与光学常数

    薄膜厚度和复折射率的测定通常通过椭圆偏振术或分光光度实现。本研究采用Flexfilm大样品仓紫外可见近红外分光光度计精确测量薄膜的反射率(R)和透射率(T)光谱,为反演光学参数提供高精度实验数据
    的头像 发表于 07-21 18:17 489次阅读
    分光光度<b class='flag-5'>法</b>结合进化<b class='flag-5'>算法</b>精确测定:金属氧化物薄膜厚度与光学常数

    基于FPGA实现FOC算法之PWM模块设计

    哈喽,大家好,从今天开始正式带领大家从零到一,在FPGA平台上实现FOC算法,整个算法的框架如下图所示,如果大家对算法的原理不是特别清楚的话,可以先去百度上学习一下,本教程着重介绍
    的头像 发表于 07-17 15:21 3130次阅读
    基于FPGA<b class='flag-5'>实现</b>FOC<b class='flag-5'>算法</b>之PWM模块设计

    基于FPGA的压缩算法加速实现

    本设计中,计划实现对文件的压缩及解压,同时优化压缩中所涉及的信号处理和计算密集型功能,实现对其的加速处理。本设计的最终目标是证明在充分并行化的硬件体系结构 FPGA 上实现算法时,可
    的头像 发表于 07-10 11:09 2085次阅读
    基于FPGA的压缩<b class='flag-5'>算法</b>加速<b class='flag-5'>实现</b>

    python入门圣经-高清电子书(建议下载)

    此资料内容是一本针对所有层次的Python 读者而作的Python 入门电子书。 全书分两部分:第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumP
    发表于 04-10 16:53

    FOC 算法实现永磁同步电机调整指南

    本文档介绍了使用 FOC 算法实现永磁同步电机 (Permanent Magnet SynchronousMotor,PMSM)调整所需的步骤和设置,该算法如 AN1078《PMSM 电机的无传感器
    发表于 03-03 01:53

    PID控制算法的C语言实现:PID算法原理

    在工业应用中 PID 及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握 PID 算法的设计与实现过程,对于一般的研
    发表于 02-26 15:24

    使用Python实现xgboost教程

    使用Python实现XGBoost模型通常涉及以下几个步骤:数据准备、模型训练、模型评估和模型预测。以下是一个详细的教程,指导你如何在Python中使用XGBoost。 1. 安装XGBoost
    的头像 发表于 01-19 11:21 2223次阅读