请教高手解决一个 Matlab 非线性规划问题
各位大侠,我matlab一点不懂,帮我编程一下哈,最好是可以直接复制进软件直接运行的,谢谢了!!w51,w52,w53,w54是四个权重,四个权重和为1运行得好可以提高分...
各位大侠,我matlab一点不懂,帮我编程一下哈,最好是可以直接复制进软件直接运行的,谢谢了!! w51,w52,w53,w54是四个权重,四个权重和为1运行得好 可以提高分数噢
按照教程编了这个程序,但是不行,大神帮我看一下,这个程序哪出了问题。解总是X0。。。 展开
按照教程编了这个程序,但是不行,大神帮我看一下,这个程序哪出了问题。解总是X0。。。 展开
1个回答
展开全部
目前注意到以下几个问题:
1、非线性约束的ceq不对;
2、目标函数不对,fmincon用于最小化目标函数;
3、变量上下界不应对x(5)约束;
4、主函数能用中文命名吗?我很怀疑。
其实你应该直接把代码贴出来,这样的图片还需要重新输入,很别扭。
我编了程序,但代码放在办公室了,改时间给你。
1、非线性约束的ceq不对;
2、目标函数不对,fmincon用于最小化目标函数;
3、变量上下界不应对x(5)约束;
4、主函数能用中文命名吗?我很怀疑。
其实你应该直接把代码贴出来,这样的图片还需要重新输入,很别扭。
我编了程序,但代码放在办公室了,改时间给你。
更多追问追答
追问
大神 能否给我一下您的QQ。。。。便于直接沟通呢~~~~
追答
抱歉,我不挂QQ。
其实也没什么需要直接诶沟通的,我把代码发上来,你试试看,有问题可再追问。
参考代码(保存到一个文件运行即可):
function zd_max
objfun = @(x) -x(5);
x0 = [0.25 0.25 0.25 0.25 -10];
Ae = [ones(1,4) 0];
be = 1;
lb = [zeros(4,1); -inf];
ub = [ones(4,1); inf];
fmincon(objfun, x0, [], [], Ae, be, lb, ub, @ncon)
function [c, ceq] = ncon(x)
c = [ ...
x(5)*x(2) - x(1) + 2*x(2);
x(5)*x(2) + x(1) - 4*x(2);
x(5)*x(3) - x(1) + 2*x(3);
x(5)*x(3) + x(1) - 4*x(3);
x(5)*x(4) - x(1) + 4*x(4);
x(5)*x(4) + x(1) - 6*x(4);
x(5)*x(3) - x(2) + 2*x(3);
x(5)*x(3) + x(2) - 4*x(3);
x(5)*x(4) - x(2) + 2*x(4);
x(5)*x(4) + x(2) - 4*x(4);
];
ceq = [];
求得结果:
w51 - w54:
0.5191 0.2595 0.1298 0.0916
lambda = 0
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询