用MATLAB作非线性规划求最小值时,如何限定最终目标函数值大于0

作非线性优化求最小值,小于0的解是不需要的,如何限定fun的值大于0。函数程序略。以下为优化内容x0=[102*pi/180;25*pi/180;40*pi/180;55... 作非线性优化求最小值,小于0的解是不需要的,如何限定fun的值大于0。
函数程序略。以下为优化内容
x0=[102*pi/180;25*pi/180;40*pi/180;55*pi/180];
A=[-1 1 0 0;-1 0 0 1;0 1 0 -1];b=[0;0;0];
Aeq=[];beq=[];
VLB=[(90*pi/180);
(20*pi/180);
(40*pi/180);
(50*pi/180)];

VUB=[(110*pi/180);
(55*pi/180);
(40*pi/180);
(60*pi/180)];

[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,VLB,VUB)
展开
 我来答
lhmhz
高粉答主

2018-02-24 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16989

向TA提问 私信TA
展开全部

假定你的最小值问题是:

min f=x1+x2+x3+x4

则,根据你的代码,可以得到

x1=1.5708 x2=0.34907 x3=0.69813 x4=0.87266 最小值f=3.4907

function f =fun(x)  %目标函数

f=x(1)+x(2)+x(3)+x(4);

end

追问
如何限定f的值?比如说f必须大于4该添加什么命令?
追答
这要增加一个约束函数,如
function [c,ceq]=con(x)
%约束函数
c(1)=[4-x(1)];
c(2)=[4-x(2)];
c(3)=[4-x(3)];
c(4)=[4-x(4)];
ceq=[];
end
放在:
[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,VLB,VUB,'con')
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式