不等式约束条件下求极值1| 学习笔记

简介: 快速学习不等式约束条件下求极值1。

开发者学堂课程【机器学习算法 :不等式约束条件下求极值1】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/535/detail/7264


不等式约束条件下求极值1

 

内容介绍

一、补充数学知识

二、无约束条件求极值

三、等式约束条件求极值

 

一、补充数学知识

1.求极值常见的几种情况:

(1)没有任何约束条件

图片12.png

其中 x1、x2、x3、x4 取值范围不受任何限制求极值。是最常见最简单的方式

(2)约束条件为等式

图片13.png

需要满足  x1、x2、x3、x4相加和为1,在此条件下求极值

(3)约束条件为不等式

图片14.png

较为复杂的一种求极值的方式。这不仅要求四者和为1,同时还要求 x4≤C

我们所求的表达式均为凸函数,所谓的凸函数是函数图形上任意两个点的连线都在图形内。

举例以下图形:

图片15.png

六边形任意两点连线都在图形内,那么这个六边形就可以理解为凸函数。

右侧不规则图形,其中黑色线条两点连线在图形内,但红色线两点连线不全在图形内,所以此图形不为凸函数。

以下为典型图形例子:

图片16.png

第一个是抛物线可以来求极值,但第二个不可以求,有一部分在图形内,一部分在图形外。

 

二、无约束条件求极值

在没有约束条件的情况下求极值,通常都是对变量求导,导数等于0的点即为极值点(注意检查最大值和最小值)

求极值的目标函数为: f(x),则对该函数求x的偏导,并令其等于0,求解即可。

图片17.png

分别让 f(x)对 x1 求偏导,带入后得到 2x1=0,因为 x2、x3、x4 和 x1 没有关系,所以三项导数为0.同理 2x2=0、2x3=0、2x4=0,则可求出 x1=x2=x3=x4=0。因为 x 为非负,并且没有约束条件,则四者相加=0.

因为有多个分量,取 x1 和 x2,x1的平方则为 x1-0 的平方加 x2-0 的平方,中心点都在圆点(0,0),然后依次话等高线,最低点则为圆点,所以取 x1,x2 都为0是最小的

 

三、等式约束条件求极值

可以联立方程组代入消元,也可以使用拉格朗日乘子法,将约束条件加入到极值方程中来。

求极值的目标函数为:f(x),约束条件为:h(x)=0,h(x)=x1+x2+x3+x4-1=0,则得到新的目标函L(x,image.png)=f(x)+image.pngh(x)=0,对x和image.png求导数,同样在导数为0的地方为极值。

回到本例:

图片18.png

图片19.png

对 x1 求偏导就是2x1+image.png=0,依次类推。

还需要对image.png求偏导就是 h(x)约束

最后解得出结果即可。

图片20.png

通过图形来解决问题。四个分量,随便选择俩个分量,同样画等高线,若没有任何约束条件就画中间圆点,但有约束条件后,x1 和 x4 在一条直线上,一定和其中一条等高线相切,相切点就是我们需要求的极值点。约束条件的几度和目标函数的几度方向相反。等式约束条件求极值和原来没有约束条件求极值结果不一样,除非原来等式条件符合约束条件。

相关文章
|
前端开发 数据建模 芯片
DC-DC产品设计PCB注意事项
DC-DC电路Layout设计对性能影响大,不良布局可导致EMI干扰、地线噪声和电压降,影响效率。关键原则包括:缩短开关大电流回路,电感、输入电容靠近对应管脚,单点接地以隔离信号地和功率地。布局时,输入输出电容地应紧密连接,敏感信号远离SW管脚。遵循制造商规格书中的layout指南可确保更好的稳定性和效率。
359 7
|
安全 架构师 中间件
5个人如何1年交付了120+项目?分享我在阿里云做交付的工作手记
谨以此文,分享一些我加入阿里云后,我和我所在团队的成长经历。这里既有我个人如何从程序员成长为一个技术经理,也有我的团队如何把事情越做越大的过程和思考,希望能够帮到有需要的人。
5个人如何1年交付了120+项目?分享我在阿里云做交付的工作手记
|
机器学习/深度学习 人工智能 自然语言处理
栩栩如生,音色克隆,Bert-vits2文字转语音打造鬼畜视频实践(Python3.10)
诸公可知目前最牛逼的TTS免费开源项目是哪一个?没错,是Bert-vits2,没有之一。它是在本来已经极其强大的Vits项目中融入了Bert大模型,基本上解决了VITS的语气韵律问题,在效果非常出色的情况下训练的成本开销普通人也完全可以接受。
栩栩如生,音色克隆,Bert-vits2文字转语音打造鬼畜视频实践(Python3.10)
|
数据采集 存储 Java
如何让Python爬虫在遇到异常时继续运行
构建健壮Python爬虫涉及异常处理、代理IP和多线程。通过try/except捕获异常,保证程序在遇到问题时能继续运行。使用代理IP(如亿牛云)防止被目标网站封锁,多线程提升抓取效率。示例代码展示了如何配置代理,设置User-Agent,以及使用SQLite存储数据。通过`fetch_url`函数和`ThreadPoolExecutor`实现抓取与重试机制。
372 4
如何让Python爬虫在遇到异常时继续运行
|
机器学习/深度学习 人工智能 算法
【机器学习】深度神经网络(DNN):原理、应用与代码实践
【机器学习】深度神经网络(DNN):原理、应用与代码实践
3233 1
|
定位技术 Python
pyecharts从入门到精通-地图专题GEO-世界地图和中国城市地图
pyecharts从入门到精通-地图专题GEO-世界地图和中国城市地图
|
前端开发 算法 Java
java实现图片与base64转换
如果你是一个软件开发,不论前端后端工程师,图片的处理你是肯定要会的,关于图片的Base64编码,你可能有点陌生,但是这是一个软件工程师应该要掌握的知识点,现在很多网友把图片与base64转换都做成了小工具如:http://www.yzcopen.com/img/imgbase64今天我们就一起来看一下吧。
10220 109
|
机器学习/深度学习 算法 开发者
不等式约束条件下求极值2| 学习笔记
快速学习不等式约束条件下求极值2。
不等式约束条件下求极值2| 学习笔记
复现sci顶刊中的画中画(局部细节放大)
复现sci顶刊中的画中画(局部细节放大)
1743 0
|
并行计算 异构计算
如何将cuda上的变量转到cpu上面?
在这个示例中,我们首先将x张量对象创建在GPU上。然后,我们使用.cpu()方法将其移动到CPU上,并将其分配给一个新的变量x_cpu。现在,我们可以在CPU上使用x_cpu变量并打印它。 请注意,将张量移动到不同的设备(如从GPU到CPU)可能会涉及到数据的复制,因此需要确保不会频繁地在不同的设备之间移动数据以避免性能下降。
2076 0