资源描述:
《书中matlab源程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、书中Matlab源程序第1章绪论【例1-1】有一名学生,期末有5门功课要考试,可用的复习时间有18小时。假定这五门课程分别是数学、英语、计算机基础、画法几何和专业概论。如果不复习直接参加考试,这五门功课预期的考试成绩分别为65分、60分、70分、60分和65分。复习以1小时为一单元,每增加1小时复习时间,各门功课考试成绩就有可能提高,每复习1小时各门功课考试成绩提高的分数分别为3分、4分、5分、4分和6分。问如何安排各门功课的复习时间可使平均成绩不低于80分,并且数学和英语成绩分别不低于70分和75分。解:设分配在数学、英语、计算机基础、画法几何和专业概论这五门功课
2、的复习时间分别为,则可列出如下的目标函数和限制条件为:本例具体程序如下:%li_1_1f=[11111];A=[11111;-3-4-5-4-6;-30000;0-4000;30000;04000;00500;00040;00006];b=[18;-80;-5;-15;35;40;30;40;35];lb=zeros(6,1)[x,fval]=linprog(f,A,b,[],[],lb)计算结果为:x=1.66673.75005.00000.00005.8333fval=16.250050【例1-2】某工厂要生产两种规格的电冰箱,分别用Ⅰ和Ⅱ表示。生产电冰箱需要两
3、种原材料A和B,另外需设备C。生产两种电冰箱所需原材料、设备台时、资源供给量及两种产品可获得的利润如表1-1所示。问工厂应分别生产Ⅰ、Ⅱ型电冰箱多台,才能使工厂获利最多?表1.1资源需求与限制资源ⅠⅡ资源限制设备111200台时原料A211800千克原料B011000千克单位产品获利220元250元求最大收益产品Ⅰ用原料限制800千克解:设生产Ⅰ、Ⅱ两种产品的数量分别为。则可获得的最大收益为Matlab求解程序如下:%li_1_2clc;closeall;f=-[220250];A=[11;21;10;01];b=[1200;1800;800;1000];xl=[0
4、0];[x,fval]=linprog(f,A,b,[],[],xl)x1=[0:1800];x2=[0:2000];[xm1,xm2]=meshgrid(x1,x2);x21=1200-x1;x22=1800-2*x1;x23=(-fval-220*x1)/250;50plot(x1,x21,x1,x22,[0:1:1000],1000,800,[0:1:1500],x1,x23,'r')axis([0,1400,0,2000])xlabel('x1');ylabel('x2');holdonz=200*xm1+250*xm2;[C,h]=contour(xm1,
5、xm2,z);text_handle=clabel(C,h);set(text_handle,'BackgroundColor',[11.6],'Edgecolor',[.7.7.7]);holdoff【例1-3】绘制下面函数的曲线。解:应用plot()函数绘制该函数曲线的程序如下:%li_1_3f=inline('2*sin(x)+log(x)','x')x=linspace(0.1,2*pi,15);y=feval(f,x);plot(x,y,'-rs','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor',
6、'g','MarkerSize',10)xlabel('0.1leqThetaleq2pi')ylabel('2sin(Theta)+ln(Theta)');title('Plotof2sin(Theta)+ln(Theta)')text(pi/4,sin(-pi/4),'leftarrow2sin(Theta)+ln(Theta)','HorizontalAlignment','left')legend('-')gridon【例1-4】用图形表示如下优化模型,并求解。解:该绘制目标函数曲面、约束函数曲线及求解程序如下:(1)绘制目标函数曲面的
7、程序%li_1_4_1functionli_1_4_1()clc;clearall;closeall;n=20;50x1=linspace(0,2,n);x2=linspace(0,6,n);[xm1,xm2]=meshgrid(x1,x2);fori=1:nforj=1:nxx=[xm1(i,j),xm2(i,j)];zm(i,j)=fun_obj(xx);endendfigure(1)meshc(xm1,xm2,zm)xlabel('x1');ylabel('x2');zlabel('zm')(2)绘制约束函数曲线及求解的程序%li_1_4_2functio