![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
一个简单的matlab问题,fmincon优化,谢谢
例如求以下这个函数f=(x(1)-2).^2+(x(2)-3).^2+26的极小值,如果对自变量加上约束条件:3<=x(1)<=6,4<=x(2)<=7,那如何用fmin...
例如求以下这个函数f=(x(1)-2).^2+(x(2)-3).^2+26的极小值,如果对自变量加上约束条件:3<=x(1)<=6, 4<=x(2)<=7, 那如何用fmincon或其他命令求出极小值点和极小值?谢谢!
展开
1个回答
展开全部
因为 f 是一个凸函数,函数的极小值发生在 f 对 x(1) 和 x(2) 的偏导为 0 的地方,或者在约束条件的边界上。本题的主函数的点为 x(1)=2, x(2)=3, 在约束条件以外,所以,最小值发生在离这个点最近的约束条件边界上,即 x(1)=3, x(2)=4,其对应的最小值为 28。
用Matlab的fmincon的话,
X=fmincon(inline(' (x(1)-2)^2 + (x(2)-3)^2 +26 '), [1; 1], [], [], [], [], [3; 4 ], [6;7])
得
X =
3
4
用Matlab的fmincon的话,
X=fmincon(inline(' (x(1)-2)^2 + (x(2)-3)^2 +26 '), [1; 1], [], [], [], [], [3; 4 ], [6;7])
得
X =
3
4
更多追问追答
追问
可是为什么我把方程改成了f=-((x(1)-2).^2+(x(2)-3).^2+26),结果还是不变呢?
追答
不会啊~~
[X,fval]=fmincon(inline(' -( (x(1)-2)^2 + (x(2)-3)^2 +26 ) '), [1; 1], [], [], [], [], [3; 4 ], [6;7])
的话,
X =
6
7
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询