超硬核!!!神技~使用梯度下降法解二元一次方程
首先问一个问题 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)
目前教会了电脑如何进行求多元函数,那么离求微积分还远么(✪ω✪)
超硬核!!!神技~使用梯度下降法解二元一次方程相关推荐
- mysql long类型_怒肝两个月MySQL源码,我总结出这篇2W字的MySQL协议详解(超硬核干货)!!...
点击上方蓝色"冰河技术",关注并选择"设为星标" 持之以恒,贵在坚持,每天进步一点点! 作者个人研发的在高并发场景下,提供的简单.稳定.可扩展的延迟消息队列框架 ...
- 超硬核之傅里叶公式推导(上)
超硬核之傅里叶公式推导 1.三角函数系与正交性 2.周期(2pi)函数的傅里叶展开(三角形式) 3.找到周期函数傅里叶展开的系数 结语 前言:再学习数学推导之前,popcorn建议读者感性的先去理解一 ...
- 十一长假我肝了这本超硬核PDF,现决定开源!!
写在前面 在 [冰河技术] 微信公众号中的[互联网工程]专题,更新了不少文章,有些读者反馈说,在公众号中刷 历史文章不太方便,有时会忘记自己看到哪一篇了,当打开一篇文章时,似乎之前已经看过了,但就是不 ...
- 【Nginx】冰河又一本超硬核Nginx PDF教程免费开源!!
写在前面 在 [冰河技术] 微信公众号中的[Nginx]专题,更新了不少文章,有些读者反馈说,在公众号中刷 历史文章不太方便,有时会忘记自己看到哪一篇了,当打开一篇文章时,似乎之前已经看过了, 但就是 ...
- 超硬核!兔兔阿里p7学长给的面试知识库
一个阿里p7学长给的nosql面试知识库,绝对真实,学会了去面呀. 最近整理了一下超硬核系列的文章和面经系列的文章,可以持续关注下: 超硬核系列历史文章:(我保证每篇文章都有值得学习的地方,并且对小白 ...
- 超硬核!苏州同程旅游学长给我的全面的面试知识库
超硬核!苏州同程旅游学长给我的全面的面试知识库 1.简介 新生和经验丰富的C#面试常见问题解答 2.什么是C#? 3.用示例说明C#中的注释类型 4.可以执行多个catch块吗? 5. public, ...
- 超硬核!花33小时来造台3D打印机吧~
超硬核!花33小时来造台3D打印机 3D打印机在实际应用中还是有不少用武之地的,从零开始直接买材料回来自己组装可以有效地提高性价比,用最低的价钱打造一台性价比不错的机子.这里我就用大概两天的时间,成本 ...
- 超硬核!!!一篇文章搞定TCP、UDP、Socket、HTTP(详细网络编程内容+现实解释三次握手四次挥手+代码示例)【网络编程 1】
TCP.UDP.Socket 一天面试的经验: 什么是网络编程 网络编程中两个主要的问题 网络协议是什么 为什么要对网络协议分层 计算机网络体系结构 1 TCP / UDP 1.1 什么是TCP/IP ...
- Python梯度下降法实现二元逻辑回归
Python梯度下降法实现二元逻辑回归 二元逻辑回归假设函数 定义当函数值大于等于0.5时,结果为1,当函数值小于0.5时,结果为0.函数的值域是(0, 1). 二元逻辑回归的损失函数 上图为二元逻辑 ...
最新文章
- 数据结构学习笔记(一):链表(linked list)
- 软件定义闪存:加速闪存规模化应用
- vb 导出整数 科学计数法_可整数组的计数
- python 把多个list合并为一个并去重内容_110道Python面试题(上)
- python英文版怎么改成中文版_“PyQt的Qt Designer菜单是中文版的,怎么改成英文的“python的qt designer教程...
- [学习笔记] JavaScript 检测数组
- python几种设计模式_Python七大原则,24种设计模式
- 阿里云服务安装与卸载rabbitmq
- java雷霆战机项目收获_java实习项目_雷霆战机
- 5G承载网络架构和技术方案白皮书(部分摘录-1)
- 光耦电流传输比(CTR)的理解
- ATTCK v10版本战术介绍执行(下篇)
- css 文字中间 两边横线
- 使用librosa库实现100行代码制作音乐卡点视频
- 【JAVA程序设计】(C00046)javaweb图书借阅管理系统
- C语言程序设计:编写函数,求一组数中大于平均值的数的个数
- mysql8找不到bir_Mysql大小写敏感问题
- Matlab编程入门指南:简介、安装、学习路线和几十个编程案例分析。
- QQ2012 for Linux (2012-12-21 07:50:57)
- 1104 -- 打折