MATLAB求解关于带有不等式约束的非线性方程组问题

2025-05-13 14:22:47
推荐回答(1个)
回答1:

你的非线性函数里面有大量线性的句子。这是错误的原因,修改到A,b,lb,ub里面去。

从目标函数来看,最好用遗传算法ga来求

c(1)=17-x(2)
c(4)=2-x(3);
c(6)=100-x(5);
c(7)=x(5)-150;
c(8)=130-x(6);
c(9)=x(6)-200;
c(10)=x(1)+0.5*x(6)+40-x(4);
以上7项,前6项放在lb、ub中,最后1项放到A、b中

作如下变动:
A=[1,0 0 -1 0 .5];
b=-40;
lb=[-2^10,17,2,-2^10,100,130];
ub=[inf,inf,inf,inf,150,200];
Aeq=[];
beq=[];
x0=[230;21;8;420;120;160];

解得:
x =
420.0000
150.0000
2.0000
525.0000
100.0000
130.0000

fval =
-6.6415e+08
exitflag =
4
exitflag=4查的:4 Computed search direction too small.不是很满意。

是不是你的目标函数或约束条件有问题,我求的的数值也不好,负数!