资源预览内容
第1页 / 共50页
第2页 / 共50页
第3页 / 共50页
第4页 / 共50页
第5页 / 共50页
第6页 / 共50页
第7页 / 共50页
第8页 / 共50页
第9页 / 共50页
第10页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
书中 Matlab 源程序第 1 章 绪论【例1-1】有一名学生,期末有5门功课要考试,可用的复习时间有18小时。假定这五门课程分别是数学、英语、计算机基础、画法几何和专业概论。如果不复习直接参加考试,这五门功课预期的考试成绩分别为65分、60分、70分、60分和65分。复习以1小时为一单元,每增加1小时复习时间,各门功课考试成绩就有可能提高,每复习1小时各门功课考试成绩提高的分数分别为3分、4分、5分、4分和6分。问如何安排各门功课的复习时间可使平均成绩不低于80分,并且数学和英语成绩分别不低于70分和75分。解:设分配在数学、英语、计算机基础、画法几何和专业概论这五门功课的复习时间分别为 ,则可列出如下的目标函数和限制条件为:12345,xx12345()fxx1812345(3460)/xx17本例具体程序如下:%li_1_1f=1 1 1 1 1;A=1 1 1 1 1; -3 -4 -5 -4 -6; -3 0 0 0 0;0 -4 0 0 0; 3 0 0 0 0; 0 4 0 0 0; 0 0 5 0 0; 0 0 0 4 0; 0 0 0 0 6;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.25002【例1-2】某工厂要生产两种规格的电冰箱,分别用和表示。生产电冰箱需要两种原材料A和B,另外需设备C。生产两种电冰箱所需原材料、设备台时、资源供给量及两种产品可获得的利润如表1-1所示。问工厂应分别生产、型电冰箱多台,才能使工厂获利最多?表 1.1 资源需求与限制资源 资源限制设备 1 1 1200 台时原料 A 2 1 1800 千克原料 B 0 1 1000 千克单位产品获利 220 元 250 元 求最大收益产品用原料限制 800 千克解:设生产、两种产品的数量分别为 。则可获得的最大收益为12,x2 max() 0 5,fR12 2 1.80 , stxMatlab 求解程序如下:%li_1_2clc;close all;f=-220 250;A=1 1;2 1;1 0;0 1;b=1200;1800;800;1000;xl=0 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;3plot(x1,x21,x1,x22,0:1:1000,1000,800,0:1:1500,x1,x23,r)axis(0,1400,0,2000)xlabel(x1);ylabel(x2);hold onz=200*xm1+250*xm2;C,h=contour(xm1,xm2,z);text_handle = clabel(C,h);set(text_handle,BackgroundColor,1 1 .6,Edgecolor,.7 .7 .7);hold off【例 1-3】绘制下面函数的曲线。 )ln(si2)(xxy解:应用 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,g, MarkerSize,10)xlabel(0.1leq Theta leq 2pi)ylabel(2sin(Theta)+ln(Theta);title(Plot of 2sin(Theta)+ln(Theta)text(pi/4,sin(-pi/4),leftarrow 2sin(Theta)+ln(Theta),HorizontalAlignment,left)legend(-)grid on【例 1-4】用图形表示如下优化模型,并求解。124)(min31xf 06)5()(. 221xts解:该绘制目标函数曲面、约束函数曲线及求解程序如下:(1)绘制目标函数曲面的程序%li_1_4_1function li_1_4_1()clc;clear all;close all;n=20;4x1=linspace(0,2,n);x2=linspace(0,6,n);xm1,xm2=meshgrid(x1,x2);for i=1:nfor j=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_2function li_1_4_2()clc;clear all;close all;x0=1,1;x,fval,exitflag,output=fmincon(fun_obj,x0, , , , , , ,fun_cons)n=20;x1=linspace(0,6,n);x2=linspace(0,10,n);xm1,xm2=meshgrid(x1,x2);for i=1:nfor j=1:nxx=xm1(i,j),xm2(i,j); zm(i,j)=fun_obj(xx);endendfigure(1)f1=inline(sqrt(25-x.2),x);f2=inline(sqrt(16-(x-5).2)+5,x);y1=feval(f1,x1);y2=feval(f2,x1);y3=sqrt(4*x1.3)-12-fval+0.01)5plot(x1,y1,x1,y2);hold onplot(x1(1:8),y3(1:8),-r)hold onc,h=contour(xm1,xm2,zm,20);clabel(c,h);xlabel(x1);ylabel(x2);function f=fun_obj(x)f=4*x(1)3-x(2)2-12;function c,ceq=fun_cons(x)c=x(1)2+x(2)2-10*x(1)-10*x(2)+34-x(1)-x(2);ceq=x(1)2+x(2)2-25;6第 2 章 优化设计的数学基础【例 2-11】 用图解法分析下面面优化问题的凸性,并求其最小值。(2-28)2112132min().40()fxstg解:根据所给目标函数和约束函数函数,编制如下程序:function kt_test1_plot1clc;clear all;close all;x=linspace(0,2.5,30);xm,zm1=meshgrid(x,0,6);y=4-x.2;ym=meshgrid(y,0,20);mesh(xm,ym,zm1);hold onr=2;t=linspace(0,2*pi,45);x=r*cos(t)+3;y=r*sin(t);xm,ym=meshgrid(x,y);zm2=(xm-3).2+ym.2;mesh(xm,ym,zm2);hold onxx=linspace(-1,6,30);yy=linspace(-2,5,30);xxm,zzm=meshgrid(0*xx,0,6);yym=meshgrid(yy,-10,0);mesh(xxm,yym,zzm);hold onyym,zzm=meshgrid(0*yy,0,6);xxm=meshgrid(xx,-10,0);mesh(xxm,yym,zzm);axis(-1,6,-3,5,-2,12)7xlabel(x);ylabel(y);zlabel(z);hold offfigure(2)x=linspace(0,6,30);y=linspace(0,5,30);xm,ym=meshgrid(x,y);zm3=(xm-3).2+ym.2;y1=4-x.2;plot(x,y1,k);hold onc,h=contour(xm,ym,zm3,10);text=clabel(c);hold offxlabel(x);ylabel(y);axis(0 6 0 5 );【例 2-12】分析式(2-29)和式( 2-30)所示非线性有约束最小值问题。(2-29)221112min()(0)1.fxstg(2-30 )212112in()(0).fxstg解:首先绘制目标函数和约束函数曲面和曲线。以式(2-29)为例,绘制函数曲面和曲线的程序如下:function kt_test1_plot2clc;thita=linspace(0,2*pi,50);r=1;x=r*cos(thita);y=r*sin(thita);xm,zm1=meshgrid(x,-5,10);ym=meshgrid(y,0,20);figure(1);8mesh(xm,ym,zm1);hold onxm,ym=meshgrid(linspace(-2,2,30),linspace(-2,2,30);zm2=(-(xm-1).2-(ym-2).2+10);mesh(xm,ym,zm2);hold onaxis(-2,2,-2,2,-15,12)xlabel(x);ylabel(y);zlabel(z);hold offfigure(2)x=linspace(-1,1,30);y1=sqrt(1-x.2);y2=-sqrt(1-x.2);plot(x,y1,k,x,y2,-r);hold onc,h=contour(xm,ym,zm2,20);text=clabel(c);hold onyy=-2:0.1:2plot(zeros(length(yy),yy,-);hold onplot(yy,zeros(length(yy),-)hold offxlabel(x);ylabel(y);axis(-2 2 -2 2 );9第 3 章 线性规划【例 3-1】用单纯形法求解下面的线性规划问题。 0,352.)(max211xtsf解:(1)先用MATLAB线性规划函数求解,其计算程序如下:%ch31_li1clc;close all;f=-2 1 -2;A=1 1 2;1 3 -1;b=5 3;xl=0 0 0;x,fval=linprog(f,A,b, , ,xl)3.3 单纯形法的 Matlab 程序及实例程序清单如下:function x,fmax=linear_pro_max(cf,cb,A,b,indexb1)n=length(cf);max_sigma=1;m=length(cb);indexb=indexb1;theta=zeros(size(m,1);while max_sigma0for j
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号