现在有这么一组表达式
目标函数:min x^2+y^2+z^2
约束函数是 3+ 1/3x^2-1/2y^2<0
5-1/5y^2-1/7z^2<0
问题是怎么让x,y,z在matlab 中自动转化成 fmincon 函数的标准形式 x(1), x(2), x(3).
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
关于fmincon函数表达式的问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- joel_1993 2021-11-17 22:35关注
你好同学,这道题目可以写成这样的格式
f = @(x) x(1)^2 + x(2)^2 + x(3)^2; % x(1),x(2),x(3)分别代表x,y和z x0 = [1,2,1]; % 初值(初始值取得好不好决定fmincon是否能找到一个解) x = fmincon(f,x0,[],[],[],[],[],[],@mycon) function [c, ceq]=mycon(x) c = [ 3+1/3*x(1)^2-1/2*x(2)^2; % 非线性约束都写成c(x)<0格式 5-1/5*x(2)^2-1/7*x(3)^2 ]; ceq = []; end
如有帮助,还望题主给个宝贵的采纳支持一下答主答题哟,谢谢啦
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报