|
M1+M2+M3+M4+M5+M6+M7+M8+M9+M10=M (0)
M1(1+r1)=K (1)
M2(1+r2)=K (2)
……
M10(1+r10)=M+K (10)
(这是01年大专组全国数学建模题目:基金使用计划)
我编写的程序如下:
r1=0.01800;
r2=0.01944;
r3=0.0216;
r5=0.02304;
c=[-(1+r1),-(1+2*r2),-(1+3*r3),-(1+3*r3)*(1+r1),-(1+5*r5),-(1+5*r5)*(1+r1),-(1+5*r5)*(1+2*r2),-(1+5*r5)*(1+3*r3),-(1+5*r5)*(1+3*r3)*(1+r1),-(1+5*r5)*(1+5*r5)];
a=[1,zeros(1,9);0,1,zeros(1,8);0 0 1 zeros(1,7);zeros(1,3) 1 zeros(1,6);zeros(1,4) 1 zeros(1,5);zeros(1,5) 1 zeros(1,4);zeros(1,6) 1 zeros(1,3);zeros(1,7) 1 0 0;zeros(1,8) 1 0;zeros(1,9) 1; %使得M1 、M2、M3......M10都大于零
1 -1 zeros(1,8);1 0 -1 zeros(1,7);1 zeros(1,2) -1 zeros(1,6);1 zeros(1,3) -1 zeros(1,5);1 zeros(1,4) -1 zeros(1,4);1 zeros(1,5) -1 zeros(1,3);1 zeros(1,6) -1 zeros(1,2);1 zeros(1,7) -1 0; %使得(1)~(10)式的K相等
-1 zeros(1,9); %使得K大于零
zeros(1,9) -(1+5*r5)*(1+5*r5); %使得M10大于5000
ones(1,10);-1*ones(1,10)]; %使得(0)式的M值为5000
b=[5000*ones(1,10) zeros(1,8) -1 -5000 5000 -5000];
vlb=[zeros(1,10)];
vub=[];
[x,lam]=lp(c,a,b,vlb,vub)
请问我的程序或者我的解题过程错在哪。
谢谢指导!
|
|