用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
采纳数:7264 获赞数:17007

向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')
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式