Matlab与数学建模0.ppt_第1页
Matlab与数学建模0.ppt_第2页
Matlab与数学建模0.ppt_第3页
Matlab与数学建模0.ppt_第4页
Matlab与数学建模0.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Matlab入门,MATLAB提供了两种 运行方式:命令行方式和M文件方式,1、变量与函数,变量的命名规则: (1)、变量名必须是不含空格的单个词; (2)、变量名区分大小写; (3)、变量名最多不超过19个字符; (4)、变量名必须是以字母打头,之后可以是任意字母、 下划线、或数字,不允许是用标点符号.,特殊变量表,数学运算符号表,常用基本函数,例1 求y=sinx在x=/5时的值,y=sin(pi/5),y =,0.5878,函数M文件,函数M文件是文件名后缀为m的文件,,function开始,格式为: function 因变量名=函数名(自变量名),函数M文件的文件名必须与函数名完全一致,在m文件编辑窗口录入下列两行:,function yy=f2(x) yy=sqrt(x-20).2+1002)+sqrt(x-120).2+1202);,x=20:120; y=f2(x); plot(x,y),输入命令指令,1.建立M文件:fun.m,function f=fun(x) f=100*(x(2)-x(1)2)2+(1-x(1)2,2.在MATLAB命令窗口键入命令:,结果 f =100,x=1 2 fun(x),2.数组与矩阵,简单数组的输入方法, x=1 2 3 4 5 8 7 18 y=1:7 z=3:2:9 v=y z u=linspace(2,9,11),数组元素的访问,为了访问数组元素(分量),可对数组元素进行编址:,(1)、访问一个元素:数组元素可以用下标访问,如x(i)表示数组x的第i个元素., x=1 2 3 4 5 8 7 18 x(4),(2).访问一块元素:访问矩阵的某些元素或子块., x=1,2,3,4,5,6,7,8,9,10 y=x(2:2:11) z=x(10:-3:1),X(a:b:c)表示访问数组x的从a个元素开始,以步长为b到第c个元素(但不超过c),(3)、直接使用元素编址序号.x(a b c d)表示提取数组x的第a、b、c、d个元素构成一个新的数组x(a) x(b) x(c) x(d).,m=(5 8 2 7),数组的方向,b=1,2,3,4 d=1 2 3 4 c=1;2;3;4 e=c,说明:以空格或逗号分隔的元素指定的是不同列的元素,而以分号分隔的元素指定了不同行的元素.,数组的运算,(1)、标量-数组运算,数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算.,设:a=a1 a2 an, c 是标量,则 a+c=a1+c,a2+c,an+c a*c=a1*c,a2*c,an*c a./c=a1/c,a2/c,an/c a.c=c/a1,c/a2,c/an a.c=a1c,a2c,anc c.a=ca1,ca2,can,例 编写m文件biaoliangshuzu.m如下: a=1 2 3 4; c=2; a1=a+c a2=a*c a3=a./c a4=a.c a5=a.c a6=c.a,(2)、数组-数组运算,当两个数组有相同的维数时,加、减、乘、除、幂运算可按元素对元素的方式进行,维数不同的不能进行运算。,设:a=a1,a2,an, b=b1,b2,bn,则,a+b=a1+b1,a2+b2,an+bn a.*b=a1*b1,a2*b2,an*bn a./b=a1/b1,a2/b2,an/bn a.b=b1/a1,b2/a2,bn/an a.b=a1b1,a2b2,anbn,编写m文件shuzushuzu.m a=2 2 2 2; b=3 3 3 3; c1=a+b c2=a.*b c3=a./b c4=a.b c5=a.b,矩阵,1、矩阵的建立,a=1 2 3 4;5 6 7 8;9 10 11 12,编写m文件juzhensc.m如下: a= b=zeros(2,3) c=ones(2,3) d=eye(2,3) e=eye(3,3),矩阵中元素的操作,(1)、矩阵A的第r行:A(r,:) (2)、矩阵A的第r列:A(:,r) (3)、依次提取矩阵A的每一列,将A拉伸为一个列向量:A(:) (4)、取矩阵A的第i1i2行、第j1j2列构成新矩阵:A(i1:i2,j1:j2) (5)、删除A的第i1i2行,构成新矩阵:A(i1:i2,:)= (6)、删除A的第j1j2列,构成新矩阵:A(:,j1:j2)= (7)、将矩阵A和B拼接成新矩阵:A B;A;B,编写m文件juzhencz.m a=1 2 3;4 5 6;7 8 9 a1=a(2,:) a2=a(:,2) a3=a(:) a4=a(1:2,2:3) a5=a;a5(1:2,:)= a6=a;a6(:,1)= a7=a a2 a8=a;a1,矩阵的运算,线性代数中所定义的矩阵运算命令如下:,编写m文件juzhenyusuan.m a=1 2 3;4 5 6 b=1 2;1 2;1 2 c2=a*b c=2 7 3;3 9 4;1 5 3 c3=det(c) c4=inv(c) v,d=eig(c),3、MATLAB程序设计,控制流,MATLAB提供三种决策或控制流结构:for循环,while循环和if-else-end结构.,1、for循环,允许一组命令以固定的和预定的次数重复,for循环的一般形式为:,for x=array commands end,在for和end语句之间的命令串commands按数组(array)中的每一列执行一次. 在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n),编写m文件forxunhuan.m如下: for n=1:10 x(n)=sin(n*pi/10) end x,2、while循环,与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值,while (expression) commands end,只要在表达式(expression)里的所有元素为真,就执行while和end语句之间的命令串commands.,例2、设银行年利率为11.25%,将10000元存入银行,问多长时间会连本带利翻一番?,编写m文件whilexunhuan.m如下: money=10000; years=0; while money20000 years=years+1; money=money*(1+11.25/100); end years money,3、if-else-end结构,(1)、有一个选择的一般形式:,if (espression) commands end,例3、设,先建立以下m文件fun1.m定义函数f(x),再在MATLAB命令窗口输入fun1(2)、fun1(-1)即可.,fun1.m如下: function f=fun1(x) if x1 f=x2+1 end if x=1 f=2*x end,(2)、有两个选择的一般形式是:,if (expression) commands1 else commands2 end,(3)、有三个或更多选择的一般形式是:,if (expression1) commands1 else if (expression2) commands2 else if else commands end . end end,例4、设,先建立以下m文件fun2.m定义函数f(x),再在MATLAB命令窗口输入fun2(2),fun2(0.5),fun2(-1)即可.,function f=fun2(x) if x1 f=x2+1 else if x=0 f=x3 else f=2*x end end,MATLAB作图,Matlab作图是通过描点、连线来实现的,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的坐标(即横坐标和纵坐标),然后将该点集的坐标传给Matlab函数画图.,plot(X,Y,S) plot(X,Y) plot(X, Y1,S1,X,Y2,S2,X,Yn,Sn),X,Y是向量,分别表示点集的横坐标和纵坐标,命令plot(X,Y,S)描绘该点集所表示的曲线,其线形(线的形状)由S确定如下:,1.曲线图,命令plot(X,Y)画实线,其参数X、Y与plot(X,Y,S)中的相同.,命令plot(X, Y1,S1,X,Y2,S2,X,Yn,Sn)将多条线画在一起.,例1、(1)在区间0,2画sinx; (2)在0, 2用红线画sinx,用绿圈画cosx.,解 输入命令:,x=linspace(0, 2*pi,30); y=sin(x); plot(x,y),(2) x=linspace(0, 2*pi,30); y=sin(x); z=cos(x); plot(x,y,r,x,z,co),2、符号函数(显函数、隐函数和参数方程)画图,符号函数画图可以通过函数“ezplot”或“fplot”来实现.,ezplot的调用格式:,ezplot(f,a,b) 表示在axb绘制显函数f=f(x)的函数图,ezplot(f,xmin,xmax,ymin,ymax) 表示在区间xmin,xmax,ymin,ymax绘制隐函数f(x,y)=0,ezplot(x,y,tmin,tmax) 表示在区间tmin,tmax绘制参数方程x=x(t),y=y(t)的函数图.,fplot(fun,lims)表示绘制字符串fun指定的函数在 lims=xmin,xmax的图形.fun必须是m文件的函数名或是独立 变量为x的字符串,此字符串被送入函数eval.函数fun(x)必须对向量中的每个元素x返一行向量.,fplot函数不能参数方程和隐函数图形,但在一个图上可以画多个图形.,例2、在0, 上画y=sinx的图形.,解 输入命令: ezplot(sin(x),0,pi),解 输入命令: ezplot(cos(t).3,sin(t).3,0,2*pi),解 输入命令: ezplot(exp(x)+sin(x*y),-2,0.5,0,2),解 先建m文件myfun1.m: function Y=myfun1(x) Y=exp(2*x)+sin(3*x.2) 再输入命令: fplot(myfun1,-1,2),例6、在-2,2范围内绘制函数tanh的图形.,解 fplot(tanh,-2,2),例7、将x、y的取值范围都限制在-2, 2,画函数tanx, sinx,cosx的图形.,解 fplot(tan(x),sin(x),cos(x),2*pi*-1 1 -1 1),3、对数坐标图,例8、用方形标记创建一个简单的loglog图.,解 输入命令: x=logspace(-1,2); loglog(x,exp(x),-s) grid on,例9、创建一个简单的半对数坐标图.,解 输入命令: x=0:0.1:10; semilogy(x,10.x),三维图形(空间曲线和曲面),三维曲线,例1、在区间0,10画出参数曲线x=sint,y=cost,z=t. 并分别标注.,解 输入命令: t=0:pi/50:10*pi; plot3(sin(t),cos(t),t),例2、画多条曲线,观察函数Z=(X+Y)2.,解 输入命令: x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); 变成矩阵(配套组合) Z=(X+Y).2; plot3(X,Y,Z),2、空间曲线,例3、画函数Z=(X+Y)2的图形.,解 输入命令: x=-3:0.1:3; y=1:0.1:5: X,Y=meshgrid(x,y); Z=(X+Y).2; surf(X,Y,Z),例4、将曲面peaks平滑.,解 输入命令: X,Y,Z=peaks(30) surf(X,Y,Z) shading flat,例5、画出曲面Z=(X+Y)2的网格图.,解 输入命令: x=-3:0.1:3; y=1:0.1:5: X,Y=meshgrid(x,y); Z=(X+Y).2; mesh(X, Y,Z),例6、绘peaks的网格图.,解 输入命令: X,Y=meshgrid(-3:0.125:3); Z=praks(X,Y); meshz(X,Y,Z),处理图形,例1、在区间0,2*pi画sinx的图形,加格栅,并加注图例自变量X、函数Y、示意图.,解 输入命令: x=linspace(0,2*pi,30); y=sin(x); plot(x,y) grid on xlabel(自变量X); ylabel(函数Y); title(示意图),例2、在0,2*pi画sinx,cosx,并分别标注sinx、cosx.,解 输入命令: x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,z,x,y); gtext(sin(x); gtext(cos(x);,命令axis auto将坐标轴返回到自动缺省值.,例3、在区间0.005,0.01显示y=sin(1/x)的图形.,解 输入命令: x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y); axis(0.005 0.01 -1 1),定制坐标,图形保持,(1)、hold on hold off,命令hold on 保持当前图形,以便继续画图到当前的图上.命令hold off释放当前图形窗口。注意”hold on”hold off”后面不能跟分号“;”.若想将多条曲线画在一起,则可用“hold on”,例4、将y=sinx、y=cosx分别用点和线画在同一屏幕上.,解 输入命令: x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,z,ro:); hold on plot(x,y);,(2) H=figure figure(H),命令H=figure创建图形并返回图形的句柄.,命令figure(H)新建H窗口,激活图形H使其可见,并把它置于 其他图形之上.,例5、在区间0,2*pi分别画出y=sinx;z=cosx的图形,保持并显示y=sinx的图形.,解 输入命令: x=linspace(0,2*pi,100); y=sin(x);z=cos(x);plot(x,y); title(sin(x); pause figure(2); plot(x,z);title(cos(x);,图区控制(分隔平面),若打算在一个屏幕上画各自独立的多个图形,则需将屏幕分割为多块,并分别作图.,H=subplot(mrows,ncols,thisPlot) subplot(mrows, ncols,thisPlot) subplot(1,1,1),命令H=subplot(mrows,ncols,thisPlot)划分整个作图区域为 mrows*ncols块(逐行对块访问)并激活第thisPlot块,其后的作图语句将图形画在该块上.,命令subplot(mrows,ncols,thisPlot)激活已划分为 mrows*ncols块的屏幕中的第thisPlot块,其后的作图语句将图形画在该块上.,命令subplot(1,1,1)返回非分割状态.,例6、将屏幕分割为四块,并分别画上y=sinx;z=cosx; a=sinx*cosx;b=sinx/cosx.,解 输入命令: x=linspace(0,2*pi,100); y=sin(x);z=cos(x);a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps); subplot(2,2,1);plot(x,y);title(sin(x); subplot(2,2,2);plot(x,z);title(cos(x); subplot(2,2,3);plot(x,a);title(sin(x)cos(x); subplot(2,2,4);plot(x,b);title(sin(x)/cos(x);,缩放图形,zoom on 为当前图形打开缩放模式.,单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为中心的图形放大2倍;单击鼠标右键,则缩小2倍.,zoom off 关闭缩放模式.,例7、缩放y=sinx的图形.,解 输入命令: x=linspace(0,2*pi,30); y=sin(x); plot(x,y) zoom on,特殊二、三维图形,1、特殊二维图形,(1)极坐标图:polar(theta,rho,s),用角度theta(弧度表示)和极半径rho作极坐标图,用s指定线型.,解 输入命令: theta=linspace(0,2*pi); rho=sin(2*theta).*cos(2*theta); polar(theta,rho,g); title(Polar plot of sin(2*theta).*cos(2*theta) );,(2)、散点图:scatter(X,Y,S,C),scatter(X,Y,S,C) 在向量X和Y的指定位置显示彩色圈.X和Y必须大小相同.,例2、绘制seamount散点图.,解 输入命令: load seamount (装载数据) s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论