首先问一个问题 y = ( x 1 − 3 ) 2 + ( x 2 + 4 ) 2 = 0 , x 1 , x 2 y = (x1-3)^2 + (x2+4)^2 = 0,x1 ,x2 y=(x1−3)2+(x2+4)2=0,x1,x2等于多少?

当然经历了优秀教育的你,可以立马说出答案: x 1 = 3 、 x 2 = − 4 x1 = 3、x2 = -4 x1=3、x2=−4

但是,还是需要自己动脑子呀。。。。

所以咱能偷懒的时候就尽可能的偷懒,于是乎有了一个大胆的想法:教我的电脑学多元函数求解~~

想法是好,但是怎么算呢?在线等。。。


精彩的部分来了,睁大眼睛哦~

首先从问题出发,因为是求 x 1 、 x 2 x1、x2 x1、x2的值

所以我们也可以看成是求 y y y的最小值问题

既然涉及到了最小值问题,自然分不开我们的老朋友:梯度下降法

使用梯度下降法的公式是: △ x = − l r ∗ y ′ △x = -lr * y' △x=−lr∗y′ (顺便了解一下梯度上升的公式: △ x = l r ∗ y ′ △x = lr * y' △x=lr∗y′)

通过公式,不难看出,我们可以转换问题的求解方向喽

只要把 y y y的导数的表达式弄出来,那么求解 y y y的最小值还不是信手捏来的,嘿嘿

好了,说到这我也饿了,节省时间,不多说,直接上代码


首先定义y这个函数

y = lambda x1, x2:(x1 - 3) **2 + (x2 + 4) **2

求y的导数(当然我们需要分开求导哦~)

    dy_dx1 = lambda x1,x2:2*(x1 -3)dy_dx2 = lambda x1,x2:2*(x2 + 4)

然后搞一搞梯度下降,求解 △ x 1 和 △ x 2 △x1 和 △x2 △x1和△x2的值

    dx1 = lambda x1,x2,lr: -lr * dy_dx1(x1,x2)  # 求x1最小值dx2 = lambda x1,x2,lr: -lr * dy_dx2(x1,x2)  # 求x2最小值

最后还是,迭代更新,就好啦

    x1,x2 = 1,1for _ in range(epoches):x1 += dx1(x1,x2,lr)x2 += dx2(x1,x2,lr)return x1,x2

运行一下,嘻嘻

x1,x2 =  (2.999999999999889, -3.999999999999889)

目前教会了电脑如何进行求多元函数,那么离求微积分还远么(✪ω✪)

超硬核!!!神技~使用梯度下降法解二元一次方程相关推荐

  1. mysql long类型_怒肝两个月MySQL源码,我总结出这篇2W字的MySQL协议详解(超硬核干货)!!...

    点击上方蓝色"冰河技术",关注并选择"设为星标" 持之以恒,贵在坚持,每天进步一点点! 作者个人研发的在高并发场景下,提供的简单.稳定.可扩展的延迟消息队列框架 ...

  2. 超硬核之傅里叶公式推导(上)

    超硬核之傅里叶公式推导 1.三角函数系与正交性 2.周期(2pi)函数的傅里叶展开(三角形式) 3.找到周期函数傅里叶展开的系数 结语 前言:再学习数学推导之前,popcorn建议读者感性的先去理解一 ...

  3. 十一长假我肝了这本超硬核PDF,现决定开源!!

    写在前面 在 [冰河技术] 微信公众号中的[互联网工程]专题,更新了不少文章,有些读者反馈说,在公众号中刷 历史文章不太方便,有时会忘记自己看到哪一篇了,当打开一篇文章时,似乎之前已经看过了,但就是不 ...

  4. 【Nginx】冰河又一本超硬核Nginx PDF教程免费开源!!

    写在前面 在 [冰河技术] 微信公众号中的[Nginx]专题,更新了不少文章,有些读者反馈说,在公众号中刷 历史文章不太方便,有时会忘记自己看到哪一篇了,当打开一篇文章时,似乎之前已经看过了, 但就是 ...

  5. 超硬核!兔兔阿里p7学长给的面试知识库

    一个阿里p7学长给的nosql面试知识库,绝对真实,学会了去面呀. 最近整理了一下超硬核系列的文章和面经系列的文章,可以持续关注下: 超硬核系列历史文章:(我保证每篇文章都有值得学习的地方,并且对小白 ...

  6. 超硬核!苏州同程旅游学长给我的全面的面试知识库

    超硬核!苏州同程旅游学长给我的全面的面试知识库 1.简介 新生和经验丰富的C#面试常见问题解答 2.什么是C#? 3.用示例说明C#中的注释类型 4.可以执行多个catch块吗? 5. public, ...

  7. 超硬核!花33小时来造台3D打印机吧~

    超硬核!花33小时来造台3D打印机 3D打印机在实际应用中还是有不少用武之地的,从零开始直接买材料回来自己组装可以有效地提高性价比,用最低的价钱打造一台性价比不错的机子.这里我就用大概两天的时间,成本 ...

  8. 超硬核!!!一篇文章搞定TCP、UDP、Socket、HTTP(详细网络编程内容+现实解释三次握手四次挥手+代码示例)【网络编程 1】

    TCP.UDP.Socket 一天面试的经验: 什么是网络编程 网络编程中两个主要的问题 网络协议是什么 为什么要对网络协议分层 计算机网络体系结构 1 TCP / UDP 1.1 什么是TCP/IP ...

  9. Python梯度下降法实现二元逻辑回归

    Python梯度下降法实现二元逻辑回归 二元逻辑回归假设函数 定义当函数值大于等于0.5时,结果为1,当函数值小于0.5时,结果为0.函数的值域是(0, 1). 二元逻辑回归的损失函数 上图为二元逻辑 ...

最新文章

  1. 数据结构学习笔记(一):链表(linked list)
  2. 软件定义闪存:加速闪存规模化应用
  3. vb 导出整数 科学计数法_可整数组的计数
  4. python 把多个list合并为一个并去重内容_110道Python面试题(上)
  5. python英文版怎么改成中文版_“PyQt的Qt Designer菜单是中文版的,怎么改成英文的“python的qt designer教程...
  6. [学习笔记] JavaScript 检测数组
  7. python几种设计模式_Python七大原则,24种设计模式
  8. 阿里云服务安装与卸载rabbitmq
  9. java雷霆战机项目收获_java实习项目_雷霆战机
  10. 5G承载网络架构和技术方案白皮书(部分摘录-1)
  11. 光耦电流传输比(CTR)的理解
  12. ATTCK v10版本战术介绍执行(下篇)
  13. css 文字中间 两边横线
  14. 使用librosa库实现100行代码制作音乐卡点视频
  15. 【JAVA程序设计】(C00046)javaweb图书借阅管理系统
  16. C语言程序设计:编写函数,求一组数中大于平均值的数的个数
  17. mysql8找不到bir_Mysql大小写敏感问题
  18. Matlab编程入门指南:简介、安装、学习路线和几十个编程案例分析。
  19. QQ2012 for Linux (2012-12-21 07:50:57)
  20. 1104 -- 打折

热门文章

  1. 代码实现小猪佩奇(最社会的代码)
  2. Concourse实战 - 监控GitHub release并自动构建镜像
  3. U8 数据库服务器和应用服务器 分离后出现 登陆系统管理 远程组件初始化 失败 解决方案!...
  4. 移动端 iPhoneX安全区域 小程序、H5页面适配
  5. 2019年深圳积分入户办理经验
  6. 在使用 VScode 进行代码格式化后,保存发现代码又变乱了,怎么办?vs去掉格式化
  7. vant tabbar底部导航的使用
  8. 如何选择合适的示波器
  9. js创建数组的简单方法
  10. day34~35_Hadoop介绍及集群安装