数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 5762|回复: 0

请教一个matlab程序

[复制链接]
发表于 2006-7-23 19:12 | 显示全部楼层 |阅读模式
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)

请问我的程序或者我的解题过程错在哪。
谢谢指导!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-5-6 03:57 , Processed in 0.066406 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表