1、大学数学实验MATLAB简介一一 MATLAB MATLAB概述概述n启动启动MATLAB MATLAB n学会使用学会使用helphelp命令命令 nhelphelp命令命令 n学会使用学会使用demodemo命令命令ndemodemo命令命令n运行方式:命令行方式,运行方式:命令行方式,M M文件方式文件方式 三、数值运算三、数值运算n1 1变量变量n在在MATLABMATLAB中中,变量由字母、数和下划线组成变量由字母、数和下划线组成.第一个字符必须是字母第一个字符必须是字母.一个变量最多由一个变量最多由3131个字符个字符组成组成,并区分大小写并区分大小写.下面是下面是MATLABMA
2、TLAB中表示特殊量的字符:中表示特殊量的字符:npipi(圆周率)、(圆周率)、epseps(最小浮点数)、(最小浮点数)、InfInf(正无穷大)、(正无穷大)、NaNNaN(表示(表示0/00/0或或inf-infinf-inf等不定值)、等不定值)、i,ji,j(虚数单位)(虚数单位)n2 2语句语句nMATLABMATLAB语句的一般形式为:变量语句的一般形式为:变量=表达式表达式.当某一语句的输入完成后当某一语句的输入完成后,按回车键按回车键,计算机就执行计算机就执行该命令该命令.如果该语句末没输入其它符号或输入了逗号如果该语句末没输入其它符号或输入了逗号,将显示结果;如果句末输入
3、了分号将显示结果;如果句末输入了分号,将不将不显示结果显示结果.如果语句中省略了变量和等号如果语句中省略了变量和等号,那么计算机将结果赋值给变量那么计算机将结果赋值给变量ans.ans.3 3矩阵矩阵n把mn个数排成m行n列的数表,此数表被称为m行n列的矩阵,记为nMATLAB中矩阵的输入方法如下:A=a11,a1n;am1,amn.逗号是数之间的分隔符(也可用空格代替);分号是换行符.(1).创建矩阵n1).直接定义nA=1 2 3;4 5 6n2).向量的简单构造nx=0:0.1:1nx=linspace(0,pi,11)nX=logspace(0,2,100)na=1:5;b=1:2:9
4、;c=b a3)向量的操作nx=0:0.1*pi:pi;ny=sin(x)ny(2)%数组元素nx(1:5)ny(3:-1:1)4)矩阵的剪裁与拼接nA=1 2 3;4 5 6;7 8 9;nA(3,:)%A的第3行nA(:,3)%A的第3列nB=A(2:3,:)%A的第2,3行nC=A(1:2,1 3)%A的第1,2行,1 3列nA(1:2:3,3:-1:1)%?n拼接:左右拼接要求行数相同,上下拼接列数相同nD=C,zeros(2,1)nE=D;eye(2),ones(2,1)提示nA(:)逐列取出A中所有元素作为一个列向量nA(i)把A看作列向量,提取其中第i个元素nA(r,c)nA(r
5、,:)A 中第r行nA(:,c)A中第c列(2)数组的运算n1)标量-数组运算:每个元素na=1:5;3*a-5n2)数组-数组运算:点乘,点除,元素对元素方式ng=1 2 3;5 6 7;8 9 10;nh=1 1 1;2 2 2;3 3 3;ng.*h(3)矩阵的运算n与线性代数中定义一致n+加法 减法 转置*乘法 乘幂 左除/右除n:是AX=B的解X,X=ABn/:是XA=B的解X,X=B/A4.函数nMATLAB提供了大量的函数.可以通过help查询.例如sqrt(开方)、log(自然对数)、log10(以10为底的对数)、sin(正弦)等.n对于数组,函数作用于每一个数据元素常用函数
6、及数组特征及矩阵操作函数n常用函数n数组特征及矩阵操作函数nsize(A),size(A,1),size(A,2)nlength(A)nflipud(A)nfliplr(A)ndiag(A)四、图形功能n4.14.1绘制二维图形绘制二维图形nplot(x,y).plot(x,y).其中其中x x、y y是是1n1n阶矩阵阶矩阵.也可以用格式也可以用格式nplot(x1,y1,x2,y2,)plot(x1,y1,x2,y2,)把多条曲线画在同一坐标系下把多条曲线画在同一坐标系下 n例A.1nx=linspace(0,2*pi,30);ny=sin(x);plot(x,y)n例A.2n x=lin
7、space(0,2*pi,30);ny1=sin(x);y2=cos(x);plot(x,y1,x,y2);nplot(x,y1;y2)%上下拼接nhold on;plot(x,y1);plot(x,y2);(2)基本的绘图控制nplot(x,y,color-linestyle-marker)nplot(x,y,y:o)%黄色-点线-小圆圈n颜色:y,r,g,b,w,k,m,cn线型:-:-.-n数据点图标:.+*o petagram S:小方块;H:六角星;D:钻石形;V:向下三角形;:向上三角形.nplot(x,y,linewidth,2)%线条粗细n plot(x,y,.,markers
8、ize,5)%点大小naxis(xmin xmax ymin ymax)出x轴和y轴的最小、最大值n三个不同图形画在一起:n t=0:pi/12:2*pi;ny1=6*sin(t);y2=6*cos(t);y3=sin(t.2)-t.*cos(t);nplot(t,y1,r-,t,y2,bo,t,y3,k:)n画圆:nt=(0:0.1:2)*pi;nx=r*sin(t);ny=r*cos(t);nplot(x,y)(3)图形标注nMATLAB还提供了图形的加注命令:ntitle 题头标注.xlabel x轴标注.nylabel y轴标注.gtext 鼠标定位标注.ngrid 网格.n但建议用菜
9、单方式:insert菜单(4)多幅图形nSubplot(m,n,p),m*n个区域,第p个区域nx=linspace(0,2*pi,30);y=sin(x);z=cos(x);u=2*sin(x).*cos(x);v=sin(x)./cos(x);nsubplot(2,2,1),plot(x,y),title(sin(x)nsubplot(2,2,2),plot(x,z),title(cos(x)nsubplot(2,2,3),plot(x,u),title(2sin(x)cos(x)nsubplot(2,2,4),plot(x,v),title(sin(x)/cos(x)4.2 三维图形n
10、空间曲线的绘制空间曲线的绘制n绘制空间曲线的基本命令为绘制空间曲线的基本命令为:nplot3(x,y,z)plot3(x,y,z);plot3(x,y,z,s)plot3(x,y,z,s)或或plot3(x1,y1,z1,s1,x2,y2,z2,s2,)plot3(x1,y1,z1,s1,x2,y2,z2,s2,)n其中其中x,y,zx,y,z是同维的向量或矩阵是同维的向量或矩阵.当它们是矩阵时当它们是矩阵时,以它们的列对应元素为空间曲线上点的坐标以它们的列对应元素为空间曲线上点的坐标.s.s是线形、颜色开关是线形、颜色开关,这一点与二维曲线时的情形相同这一点与二维曲线时的情形相同.nt=0:
11、pi/50:10*pi;plot3(sin(t),cos(t),t);t=0:pi/50:10*pi;plot3(sin(t),cos(t),t);n 曲面的绘制曲面的绘制 n绘制空间曲面的基本命令为绘制空间曲面的基本命令为mesh(x,y,z).mesh(x,y,z).n如果如果x x、y y是向量是向量,则要求则要求x x的长度的长度=矩阵矩阵z z的列维;的列维;y y的长度的长度=矩阵矩阵z z的行维的行维.以以zijzij为竖坐标为竖坐标,x,x的第的第i i个分量为横坐标个分量为横坐标,y,y的第的第j j个分量为纵坐标绘网格图个分量为纵坐标绘网格图.n如果是同维矩阵如果是同维矩阵
12、,则数据点的坐标分别取自这三个矩阵则数据点的坐标分别取自这三个矩阵n meshc(x,y,z)meshc(x,y,z)带等高线的网格图带等高线的网格图,waterfall(x,y,z),waterfall(x,y,z)瀑布水线图瀑布水线图,n surf(x,y,z,c)surf(x,y,z,c)可着色的曲面图可着色的曲面图,n surfc(x,y,z)surfc(x,y,z)带等高线的可着色的曲面图带等高线的可着色的曲面图.n例A.5 画三维图:nx=-7.5:0.5:7.5;y=x;nX,Y=meshgrid(x,y);%(生成绘图时所需的x-y坐标)nR=sqrt(X.2+Y.2)+eps
13、;Z=sin(R)./R;nmesh(X,Y,Z)n画球:nx0=2;y0=3;z0=4;%球心nr=5;%半径n%下面开始画nx,y,z=sphere;nmesh(r*x+x0,r*y+y0,r*z+z0);n任意球:n%by friendchjnr=1;%半径nx0=0;%中心ny0=0;nz0=0;ntheta=(0:0.1:2)*pi;%同时除以整数n可以只画1/n球nphi=(0:0.1:2)*pi;%同时除以整数n可以只画1/n球nx=zeros(length(theta),length(phi);ny=x;nz=x;nfor i=1:length(theta)n for j=1:
14、length(phi)n x(i,j)=r*sin(theta(i)*cos(phi(j)+x0;n y(i,j)=r*sin(theta(i)*sin(phi(j)+y0;n endn z(i,:)=r*cos(theta(i)+z0;nendnsurf(x,y,z)naxis square课堂练习n操练二 作图练习n1)n2)n3)五、符号运算5.1.5.1.字符串变量、符号变量和符号表达式的建立字符串变量、符号变量和符号表达式的建立1.1.用单引号来设定字符串用单引号来设定字符串name=ZHANG HUA;f=cos(x)name=ZHANG HUA;f=cos(x)2.2.用函数用函
15、数symssyms来定义符号变量来定义符号变量syms x y u v t;syms x y u v t;3.3.用函数用函数symsym建立符号表达式建立符号表达式y=sym(2+cos(x)y=sym(2+cos(x)4.4.用函数用函数symssyms来建立符号表达式来建立符号表达式syms y u;p=exp(-y/u);q=y2+u3+u*y;syms y u;p=exp(-y/u);q=y2+u3+u*y;5.2 符号和数值之间的转换n1.用sym将数值表达式转换为符号表达式na=sym(1+2*sqrt(3)n2.用numeric将符号表达式转换为数值表达式ndouble(a)%
16、numeric不能用n3.用eval计算符号表达式的值n f=sym(2+x2);x=1 2;3 4;y=eval(f)n4.符号的可变精度运算(Variable precision arithmetic)ndigits(40);vpa(a)nvpa(a,10)5.3符号表达式的基本代数运算n符号表达式:直接用+-*/n syms x;f=cos(x);g=sin(2*x);f/g+f*gn字符串表达式:用sym再用+-*/nf=4*x+6*y+3;g=2*x2+5*x+6;h=sym(f)+sym(g)5.4 符号微积分1 1 符号微积分符号微积分下面着重介绍一些与微积分有关的指令下面着重介
17、绍一些与微积分有关的指令,这些指令都需要符号表达式作为输入宗量这些指令都需要符号表达式作为输入宗量.(1 1)求和)求和symsum(S)symsum(S)对通项对通项S S求和求和,其中其中k k为变量且从为变量且从0 0变到变到k-1.k-1.symsum(S,v)symsum(S,v)对通项对通项S S求和求和,指定其中指定其中v v为变量且为变量且v v从从0 0变到变到v-1.v-1.symsum(S,a,b)symsum(S,a,b)对通项对通项S S求和求和,其中其中k k为变量且从为变量且从a a变到变到b.b.symsum(S,v,a,b)symsum(S,v,a,b)对通项
18、对通项S S求和求和,指定其中指定其中v v为变量且为变量且v v从从a a变到变到b.b.例:求例:求 ,键入键入k=sym(k)%kk=sym(k)%k是一个符号变量是一个符号变量;symsum(k)symsum(k)得得 ans=1/2*k2-1/2*k ans=1/2*k2-1/2*k 例:求例:求 ,键入键入:symsum(k2,0,10)symsum(k2,0,10)得得 ans=385 ans=385 例:求例:求 键入键入symsum(xk/sym(k!),k,0,inf),symsum(xk/sym(k!),k,0,inf),得得 ans=exp(x)ans=exp(x)(2
19、 2)求极限)求极限limit(P)limit(P)表达式表达式P P中自变量趋于零时的极限中自变量趋于零时的极限limit(P,a)limit(P,a)表达式表达式P P中自变量趋于中自变量趋于a a时的极限时的极限limit(P,x,a,left)limit(P,x,a,left)表达式表达式P P中自变量中自变量x x趋于趋于a a时的左极限时的左极限limit(P,x,a,right)limit(P,x,a,right)表达式表达式P P中自变量中自变量x x趋于趋于a a时的右极限时的右极限例:求例:求 ,键入键入 P=sym(sin(x)/x);P=sym(sin(x)/x);li
20、mit(P)limit(P)得得 ans=1 ans=1 例:求例:求 键入键入P=sym(1/x);P=sym(1/x);limit(P,x,0,right)limit(P,x,0,right)得得 ans=inf ans=inf 例:求 ,键入:P=sym(sin(x+h)-sin(x)/h);h=sym(h);limit(P,h,0)得ans=cos(x)例:求 ,键入 v=sym(1+a/x)x,exp(-x);limit(v,x,inf,left)得 ans=exp(a),0(3 3)求导数)求导数 diff(S,v)diff(S,v)求表达式求表达式S S对变量对变量v v的一阶导
21、数的一阶导数.diff(S,v,n)diff(S,v,n)求表达式求表达式S S对变量对变量v v的的n n阶导数阶导数.例如:设例如:设A=,A=,求键入命令求键入命令:syms a b x;syms a b x;A=1/(1+a),(b+x)/cos(x);1,exp(x2);A=1/(1+a),(b+x)/cos(x);1,exp(x2);diff(A,x)diff(A,x)ans=0,1/cos(x)+(b+x)/cos(x)2*sin(x)ans=0,1/cos(x)+(b+x)/cos(x)2*sin(x)0,2*x*exp(x2)0,2*x*exp(x2)n例:求y=sinx+e
22、x的三阶导数,键入命令:n diff(sin(x)+x*exp(x),3)n得 ans=-cos(x)+3*exp(x)+x*exp(x)n例:求例:求y=(lnx)xy=(lnx)x的导数的导数.可键入命令:可键入命令:np=(log(x)x;p=(log(x)x;np1=diff(p,x)p1=diff(p,x)n得:得:p1=log(x)x*(log(log(x)+1/log(x)p1=log(x)x*(log(log(x)+1/log(x)n例:求例:求y=xf(x2)y=xf(x2)的导数的导数.可键入命令:可键入命令:np=x*f(x2);p1=diff(p,x)p=x*f(x2)
23、;p1=diff(p,x)n得:得:p1=f(x2)+2*x2*D(f)(x2)p1=f(x2)+2*x2*D(f)(x2)n(4 4)求积分)求积分n int(P)int(P)对表达式对表达式P P进行不定积分进行不定积分.n int(P,v)int(P,v)以以v v为积分变量对为积分变量对P P进行不定积分进行不定积分.n int(P,v,a,b)int(P,v,a,b)以以v v为积分变量为积分变量,以以a a为下限为下限,b,b为上限对为上限对P P进行定积分进行定积分.例:求例:求 ,可键入可键入int(-2*x/(1+x2)2)int(-2*x/(1+x2)2)得得 ans=1/
24、(1+x2)ans=1/(1+x2)例:求例:求 ,可键入可键入int(x*log(1+x),0,1)int(x*log(1+x),0,1)得得ans=1/4 ans=1/4 例:求例:求 可键入:可键入:int(2*x,sin(t),log(t)int(2*x,sin(t),log(t)得:得:ans=log(t)2-sin(t)2 ans=log(t)2-sin(t)2 对(符号)矩阵积分对(符号)矩阵积分(5 5)符号函数作图)符号函数作图ezplot(f)ezplot(f)在默认区间在默认区间-2,2-2,2绘制绘制y=f(x)y=f(x)的函数图的函数图ezplot(f,a,b)ez
25、plot(f,a,b)在区间在区间a,ba,b绘制绘制y=f(x)y=f(x)的函数图的函数图ezplot(x,y,tmin,tmax)ezplot(x,y,tmin,tmax)绘制由参数议程绘制由参数议程x=x(t),y=y(t),tmin=t=tmaxx=x(t),y=y(t),tmin=t=tmax表示的曲线表示的曲线ezpolar(f,a,b)ezpolar(f,a,b)绘制由极坐标议程绘制由极坐标议程r=f(),a=br=f(),a=1n EPS=EPS/2;n=n+1;nendnn,EPS=EPS*26.4 分支结构n1.if-else-end结构(elseif)nif 关系表达式 n 语句nelse n 语句nendn2.switch-case-end结构nswitch 表达式(标量或字符串)ncase 值1n 语句体1;ncase 值2.1,值2.2,n 语句体2;nnotherwisen 语句体nnendn 例A.7n操练 操练三 2)3)谢谢!谢谢!