如何做象征性的在matlab优化吗?

37视图(30天)
例如:
信谊a b c x;
y = x * x ^ 2 + b * + c;
草地=梯度(y, x);
解决(gra = = 0, x)
我得到了这个:
ans =
- b / (2 *)
但当问题比较复杂,或包括一些约束,我能做什么更容易吗?
有“SymbolicOptimization。m”功能,这样我可以这样做:
信谊a b c x;
y = x * x ^ 2 + b * + c;
SymbolicOptimization (y, x)
和它给答案(我希望):
> 0时,y全球最小x = - b / (2 *), y =…
当一个< 0时,全球最大x = - b / y (2 *), y =…
当= 0时,y范围(负无穷,正无穷)。
是的,我想要的是让计算机做优化分析基于优化理论。
那么怎么做呢?
2的评论
老虎赵
老虎赵 2020年7月12日
哦,狗屎,Mathematica@能做到。

登录置评。

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2020年7月12日
不,没有功能。
对于多项式,可以继续进行
dy = diff (y, x);
极值=解决(dy, x);
d2y = diff (dy);
d2y_at_extrema =潜艇(d2y x,极值);
一般来说,d2y_at_extrema将象征性的在你的系数,你需要检查每一个条件都是正面(显示最小值)或负面(显示最大值)或0(表明鞍点)。
你最终会有一个列表条件每个值可能是“全球”最小值或最大值。
当你超越度5(所以导数是4度,完全可以解决的)你将无法列出的可能性。
我怀疑,很难求出条件全球4阶多项式的最小值或最大值。
除能变得更加复杂。
非线性 有时 有封闭解(在某种意义上的“封闭形式万博 尤文图斯”)但不一般。
1评论
老虎赵
老虎赵 2020年7月20日
非常感谢,沃尔特,谢谢你!

登录置评。

更多的答案(0)

类别

找到更多的在符号数学工具箱帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的