求一个用MATLAB算法的线性规划

来源:百度知道 编辑:UC知道 时间:2024/06/28 12:58:26
目标函数为minf(x)=-0.00787w(1)-0.01036w(2)-0.014w(3)-0.1155w(4)-0.096w(5)+0.273w(2)^2+0.941w(3)^2+42.47w(4)^2+42.27w(5)^2+0.99w(2)w(3)-2.38w(2)w(4)-2.7w(2)w(5)-6.24w(3)w(4)-6.886w(3)w(5)+83.68w(4)w(5)
条件为:w(1)+w(2)+w(3)+w(4)+w(5)=1
w(1),w(2),w(3),w(4),w(5)范围在闭区间的0到1之间
烦请各位大侠帮忙用MATLAB编程计算下,我编程序老出错,谢谢了!

用fmincon吧

function hh
A=[];B=[];
Aeq=[1 1 1 1 1];Beq=1;
LB=[0 0 0 0 0];UB=[1 1 1 1 1];
%X0=Aeq*0.5;
options=optimset;
options.TolCon=10e-25;
X0=[ 0.9884 0.0000 0.0097 0.0019 0.0000];
format short g
[X,Fval,exitflag] = fmincon(@myfun,X0,A,B,Aeq,Beq,LB,UB,[],options)
function f=myfun(w)
f=-0.00787*w(1)-0.01036*w(2)-0.014*w(3)-0.1155*w(4)-0.096*w(5)+0.273*w(2)^2+0.941*w(3)^2+42.47*w(4)^2+42.27*w(5)^2+0.99*w(2)*w(3)-2.38*w(2)*w(4)-2.7*w(2)*w(5)-6.24*w(3)*w(4)-6.886*w(3)*w(5)+83.68*w(4)*w(5)

结果:
X =

0.98822 2.5759e-021 0.0097917 0.0019859 3.9167e-020

Fval =

-0.0080074

exitflag =

5

试试用lingo吧,或者下MATLAB规划的工具用箱试试。MATLAB不好做0-1规划。

这是网上下的 非线性的优化函数constr
function [x,OPTIONS,lambda,HESS]=constr(FUN,x,OPTIONS,VLB,VUB,GRADFUN,varargin)
%约束优化,非线性规划
%求解 min f(x)
% s.t. G(x)<=0