1、Matlab入门教程很齐全入门教程很齐全Matlab简介数组和矩阵Matlab绘图Matlab在微积分中的应用主要内容MATLAB简介三个代表性的计算机数学语言:MATLAB是MATrix LABoratory 的缩写,由MathWorks公司推出。长于数值计算,编程方便。在各个领域都有领域专家编写的工具箱,能高效、可靠地解决各种问题。Mathematica,Wolfram Research公司 Maple,Waterloo Maple公司有强大的解析运算和数学公式推导、定理证明能力,数值计算能力比Matlab弱,更适合纯数学求解。MATLAB的功能MATLAB产品组是从支持概念设计、算法开发
2、、建模仿真,到实时实现的集成环境,可用来进行:数据分析数值与符号计算工程与科学绘图控制系统设计数字图像信号处理建模、仿真、原型开发财务工程、应用开发、图形用户界面设计MATLAB语言特点编程效率高,允许用数学的语言来编写程序用户使用方便,把程序的编辑、编译、连接和执行融为一体高效方便的矩阵和数组运算语句简单,内涵丰富扩充能力强,交互性,开放性方便的绘图功能该软件由c语言编写,移植性好l MATLAB操作窗口双击桌面快捷键,启动软件。双击桌面快捷键,启动软件。接受命令的窗口MATLAB的环境菜单项;工具栏;【Command Window】命令窗口;【Launch Pad】分类帮助窗口;【Work
3、space】工作区窗口;【Command History】指令历史记录窗口;【Current Directory】当前目录选择窗口;Matlab简介数组和矩阵Matlab绘图Matlab在微积分中的应用主要内容数组和矩阵1.变量Matlab不需要任何类型声明和维数说明,变量名的第一个字符必须是字母。a=1;num_students=25;2.常用的常数 pi:3.14159265 i,j:虚数单位;1i;3-4j;3e5i Inf 无限值;NaN空值 e 以10为底的幂次。1.602e-20,6.532e12数组和矩阵3.运算符+,-,*,/,左除:23=1.5000幂:x=2;x3;x(-3
4、)复数共轭转置 x=3+4i x=3-4i .点运算 (1)当x是一个向量时,求 不能写成x2,而必须写成 x.2 (2)两矩阵之间的点乘运算C=A.*Bijijijbac 2ix数组和矩阵.常用函数sqrt(x)开平方 abs(x)绝对值abs(3-4i)exp(x)ex;log(x)以e为底,x的对数 log(exp(2)round(x)取整 syms x;定义x为符号变量.帮助函数 help:help elfun;help specfun;help elmat数组和矩阵6.构造数组(1)直接构造,用空格或逗号间隔数组元素 A=2 3 5 1 或 A=sqrt(2),3e2,log(5),
5、1+2i (2)用增量法构造数组 (first:last)或(first:step:last)A=10:15 A=3:0.2:4 A=9:-1:0(3)用linspace函数构造数组 x=linspace(first,last,num)x=linspace(0,10,5)数组和矩阵7.构造矩阵(1)简单创建方法 row=e1,e2,em;A=row1;row2;rown A=2 4 1;4 5 2;7 2 1(2)构造特殊矩阵 ones 创建一个所有元素都为的元素 zeros 创建一个所有元素都为0的元素 127254142A数组和矩阵 eye 创建对角元素为,其他元素为的元素 rand 创建
6、一个矩阵或数组,其中的元素服从均匀分布 rand(5)*20;randn创建一个矩阵或数组,其中的元素服从正态分布 diag 创建对角矩阵 C=3 2 1;V=diag(C);(3)聚合矩阵 水平聚合 C=A B 垂直聚合 C=A;Bnndiag2121),(数组和矩阵8.获取矩阵元素A=2,3,3;4 9 4;6,3,0 取单个元素:取多个元素:获取所有元素:9.获取与矩阵有关信息length 返回最长维长度ndims 返回维数numel 返回元素个数size 返回每一维的长度 rows cols=size(A)A(3,1)A(:,2)A(3,:)A(:)数组和矩阵 9.矩阵的基本运算 例
7、已知 422134305,203153211AB a=4-2 2;-3 0 5;1 5 3;b=1 3 4;-2 0-3;2-1 1;a*b12 10 24 7 -14 -7-3 0 -8ans=AB()R A rank(a)ans=3数组和矩阵 9.矩阵的基本运算 例 已知 422134305,203153211AB det(a)ans=-158数组和矩阵 9.矩阵的基本运算 例 已知 422134305,203153211AB 求特征多项式poly(A)A=sym(A);将A转换成符号矩阵poly(A)数组和矩阵 9.矩阵的基本运算 例 已知 422134305,203153211AB 1
8、ABA/B相当于矩阵方程XB=Aans=0 0 2.0000 -2.7143 -8.0000 -8.1429 2.4286 3.0000 2.2857数组和矩阵 9.矩阵的基本运算 例 已知 422134305,203153211AB 1A B ABans=0.4873 0.4114 1.0000 0.3671 -0.4304 0 -0.1076 0.2468 0数组和矩阵 9.矩阵的基本运算 例 已知 422134305,203153211AB 10.多项式求根 例 已知 p=1 0-2-5;roots(p)ans=2.0946 -1.0473+1.1359i -1.0473-1.1359i
9、52)(3xxxp数组和矩阵 主要内容 Matlab简介 数组和矩阵Matlab绘图Matlab在微积分中的应用Matlab绘图1.二维图形绘制 plot(t,y)例1用Matlab画出的图形。x=-5:0.05:5;y=x.2;plot(x,y)plot(x,y,b+)例2绘制y=sin(tan(x)-tan(sin(x)在 区间内的曲线。x=-pi:0.05:pi;y=sin(tan(x)-tan(sin(x);plot(x,y)2xy,Matlab绘图将多条曲线画在一个图上:plot(t1,y1,选项1,t2,y2,选项2,)plot(x,x.2,rO,x,x.3,b.)2.三维图形绘制
10、plot3(x,y,z)plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,)例 试绘制参数方程 ,的三维曲线。t=0:.1:2*pi;注意点运算x=t.3.*sin(3*t).*exp(-t);y=t.3.*cos(3*t).*exp(-t);z=t.2;plot3(x,y,z),gridtetttx)3sin()(3tettty)3cos()(32tz 习 题15.利用Mathematica作出数列1)11(nnnx的点图,观察当n时,nx的变化趋势。并利用数值计算的命令计算当n取很大的整数时,nx的取值。n=1:10000;xn=(1+1./n).(n+1);plot(n,x
11、n,.)习 题16.函数xxycos在内是否有界?又问当),(时,x这个函数是否为无穷大?为什么?用Mathematica作图并验证你的结论。x=-100:100;plot(x,x.*cos(x)习 题P168 20.利用Mathematica作出函数)45(21)(2xcxxxf的图形,分别取-1,0,1,2,3等5个值,试比较作出的5个图,并从图上观察极值点、驻点,增加、减少区间,上凸、下凸区间以及渐近线。x=-5:0.1:4plot(x,1./(x.2+2*x-1)plot(x,1./(x.2+2*x)plot(x,1./(x.2+2*x+1)plot(x,1./(x.2+2*x+2)p
12、lot(x,1./(x.2+2*x+3)习 题17(1)在计算机屏幕上作出函数 1.0)(xxf和xxgln)(的图形,何时开始?gf(2)再作出函数)(/)()(xfxgxh的图形。选用适当的显示区域,展示x时,)(xh的变化趋势。(3)确定正数X,使当Xx 时,?1.0)()(xfxg习 题 x=linspace(3.43063112146e15-1e6,3.43063112146e15+1e6,100);plot(x,x.0.1,r+,x,log(x),b.)axis(3.43063112146e15-1e3 3.43063112146e15+1e3 35.77152063979 35.
13、7715206398);x=1:0.05:5plot(x,x.0.1,r.,x,log(x),b+)axis(XMIN XMAX YMIN YMAX)x=linspace(1e29,1e29+1e16,1000);plot(x,log(x)./(x.0.1),r.)axis(1e29-1e20 1e29+1e20 0.08 0.12)Matlab简介 数组和矩阵 Matlab绘图Matlab在微积分中的应用主要内容MATLAB在微积分中的应用 1、求函数值 例例1 在命令窗口中键入表达式在命令窗口中键入表达式并求并求 时的函数值。时的函数值。2ln3,x yzxeyx2,4xy x=2,y=4
14、z=x2+exp(x+y)-y*log(x)-3x=2y=4z=401.6562命令窗口显示结果:MATLAB在微积分中的应用 2、求极限 极限问题:求单侧极限:),(limit0 xxfunL),(limit0rightorleftxxfunL)(lim0 xfLxx)(lim01xfLxx)(lim02xfLxxMATLAB在微积分中的应用 2、求极限 例2 求极限 syms x;limit(sin(x)/x,x,0)ans=1定义符号变量xxxsinlim0MATLAB在微积分中的应用 2、求极限 例3 求极限 syms x;limit(exp(x3)-1)/(1-cos(sqrt(x-
15、sin(x),x,0,right)ans=12定义符号变量xxexxsincos11lim30MATLAB在微积分中的应用 2、求极限 例4 求极限 lim()nnnn syms n;limit(sqrt(n+sqrt(n)-sqrt(n),n,inf)ans=1/2定义符号变量MATLAB在微积分中的应用 3、求导数 调用格式:),(xfundiffy),(nxfundiffy 求导数求n阶导数多元函数的偏导数:),),(nymxfdiffdifff),),(mxnyfdiffdifff 或MATLAB在微积分中的应用 3、求导数 syms x diff(sin(x.3),x)ans=3*c
16、os(x3)*x2定义X为符号变量 求 dydx习题P168(1)sin(3xy MATLAB在微积分中的应用 3、求导数 syms x diff(atan(log(x),x)(2)arctan(lnxy ans=1/x/(1+log(x)2)MATLAB在微积分中的应用 3、求导数 syms x diff(1+1/x)x,x)ans=(1+1/x)x*(log(1+1/x)-1/x/(1+1/x)(3)xxy)11(MATLAB在微积分中的应用 3、求导数 syms x(4)(22xxfy MATLAB在微积分中的应用 3、求导数 例例6 设设 1010lnxyxx,求,求 y syms x
17、 y=10 x+x10+log(x)y=x10+10 x+log(x)diff(y)ans=10*x9+10 x*log(10)+1/x定义X为符号变量 求 dydx例例7 设设 ln(1),yx求求 212xd ydx syms x;y=log(1+x);a=diff(y,x,2)a=-1/(1+x)2 x=1;eval(a)ans=-0.2500求求 22d ydx求求 212xd ydx将符号表达式转换成数值表达式例6 设 222xzexyy,求 22222,zzzzzxyxyx y syms x y;z=exp(2*x)*(x+y2+2*y);a=diff(z,x)b=diff(z,y
18、)c=diff(z,x,2)d=diff(z,y,2)e=diff(a,y)zaxzby22zcx22zdy2azeyx y a=2*exp(2*x)*(x+y2+2*y)+exp(2*x)b=exp(2*x)*(2*y+2)c=4*exp(2*x)*(x+y2+2*y)+4*exp(2*x)d=2*exp(2*x)e=2*exp(2*x)*(2*y+2)222222xxzaexyyex222xzbeyy22222424xxzcexyyex2222xzdey22222xzeeyx y MATLAB在微积分中的应用 4、求极值和零点 例例7 已知已知 5432()323f xxxxx,求,求 (
19、1)函数的零点;()函数的零点;(2)函数在)函数在-1,2上的最小值上的最小值 fzero(3*x5-x4+2*x3+x2+3,0)ans=-0.8952 起始搜索点 函数 命令函数 x,f=fminbnd(3*x5-x4+2*x3+x2+3,-1,2)x=-1 f=-2MATLAB在微积分中的应用 4、求极值和零点 ,求,求 例例7 已知已知 222(,)2.5sinf x y zxyxy z函数在点(函数在点(1,-1,0)附近的最小值)附近的最小值 X,FVAL=FMINSEARCH(x(1)2+2.5*sin(x(2)-x(3)*x(1)*x(2)2,1-1 0)X=0.0010 -
20、1.5708 0.0008FVAL=-2.5000MATLAB在微积分中的应用 5、求积分 ()不定积分),int(xfunF()定积分与无穷积分),int(baxfI(a,b)为定积分的积分区间,求解无穷积分时允许将a,b设置成-Inf或Inf。MATLAB在微积分中的应用 5、求积分 例8 求不定积分 cos2 cos3xxdx int(cos(2*x)*cos(3*x)ans=1/2*sin(x)+1/10*sin(5*x)例9 求定积分 21lnexxdxIntegrate:积分int(x2*log(x),x,1,exp(1)eval(ans)ans=4.5746MATLAB在微积分中
21、的应用 5、求积分 例10 求二重积分 221,2,122ydxdyxyx syms x y;f=y2/x2;int(int(f,x,1/2,2),y,1,2)ans=7/2MATLAB在微积分中的应用 5、求积分 P251 18.(1)xdx10sinsyms xint(sin(x)10,x)ans=-1/10*sin(x)9*cos(x)-9/80*sin(x)7*cos(x)-21/160*sin(x)5*cos(x)-21/128*sin(x)3*cos(x)-63/256*cos(x)*sin(x)+63/256*xMATLAB在微积分中的应用 5、求积分 P251 18.(2)dx
22、xx342)1()1(1 int(1/(x+1)2*(x-1)4)(1/3),x)ans=-3/2*(x+1)/(x+1)2*(x-1)(1/3)MATLAB在微积分中的应用 5、求积分 P251 18.(3)106sindxx int(sin(x(1/6),x,0,1)ans=-606*cos(1)+390*sin(1)MATLAB在微积分中的应用 5、求积分 P251 18.(4)1021)1ln(dxxx int(log(1+x)/(1+x2),x,0,1)ans=1/4*pi*log(2)-Catalan-1/2*i*dilog(1/2-1/2*i)+1/2*i*dilog(1/2+1
23、/2*i)vpa(ans)quadl(log(1+x)./(1+x.2),0,1)ans=0.2722变步长数值积分 例11 求定积分 2120 xedx int(exp(-x2/2),0,1)ans=1/2*erf(1/2*2(1/2)*2(1/2)*pi(1/2)202()xterf xedt22 2022tansedt x=0:0.01:1;y=exp(-x.2/2);trapz(x,y)ans=0.8556 y=exp(-x.2/2);quadl(y,0,1)ans=0.8556变步长数值积分 梯形法数值积分 MATLAB在微积分中的应用 5、求积分 例12 2000224dzdydx
24、xzezyx int(int(int(4*x*z*exp(-x2*y-z2),z,0,pi),y,0,pi),x,0,2)ans=(-Ei(1,4*pi)+Ei(1,4*pi)*exp(pi2)-2*log(2)+2*log(2)*exp(pi2)-eulergamma-log(pi)+eulergamma*exp(pi2)+log(pi)*exp(pi2)/exp(pi2)vpa(ans,60)ans=3.141272283461464767234835871),(dtteznEinztMATLAB在微积分中的应用 6、解微分方程 ),(21mfffdsolvey),(21xfffdsolv
25、eym指明自变量if既可以描述微分方程,又可以描述初始条件或边界条件。)()4(ty:D4y3)2(y :D2y(2)=3MATLAB在微积分中的应用 6、解微分方程 例13 计算初值问题:1)0(yxydxdy dsolve(Dy=x+y,y(0)=1,x)ans=-x-1+2*exp(x)一定要大写 MATLAB在微积分中的应用 6、解微分方程 例14 求方程 dsolve(Dy+2*y/x=sin(3*x)/(x2),x)ans=(-1/3*cos(3*x)+C1)/x223sin2xxyxdxdy的通解。MATLAB在微积分中的应用 6、解微分方程 例15设输入信号为5)12cos()
26、(5tetut,求)(2)(4)(5)(24)(50)(35)(10)()3()4(tutututytytytyty syms t u=exp(-5*t)*cos(2*t+1)+5;uu=5*diff(u,t,2)+4*diff(u,t)+2*u uu=87*exp(-5*t)*cos(2*t+1)+92*exp(-5*t)*sin(2*t+1)+10MATLAB在微积分中的应用 6、解微分方程 例14设输入信号为5)12cos()(5tetut,求)(2)(4)(5)(24)(50)(35)(10)()3()4(tutututytytytyty syms t y;y=dsolve(D4y+1
27、0*D3y+35*D2y+50*Dy+24*y=87*exp(-5*t)*cos(2*t+1)+92*exp(-5*t)*sin(2*t+1)+10)y=-547/520*exp(-5*t)*sin(2*t+1)-343/520*exp(-5*t)*cos(2*t+1)+5/12+C1*exp(-2*t)+C2*exp(-3*t)+C3*exp(-t)+C4*exp(-4*t)MATLAB在微积分中的应用 6、解微分方程 若已知0)0()0(,2)0(,3)0()3(yyyy y=dsolve(D4y+10*D3y+35*D2y+50*Dy+24*y=,87*exp(-5*t)*cos(2*t
28、+1)+92*exp(-5*t)*sin(2*t+1)+10,y(0)=3,Dy(0)=2,D2y(0)=0,D3y(0)=0)y=-547/520*exp(-5*t)*sin(2*t+1)-343/520*exp(-5*t)*cos(2*t+1)+5/12+(-51/13*sin(1)-445/26*cos(1)-69/2)*exp(-2*t)+(5/8*sin(1)+179/8*cos(1)+73/3)*exp(-3*t)+(97/60*sin(1)+133/30*cos(1)+19)*exp(-t)+(41/15*sin(1)-271/30*cos(1)-25/4)*exp(-4*t)M
29、ATLAB在微积分中的应用 6、解微分方程 例16ttetytxtyetytxtxtx4)(3)(4)()(2)()(2)(x,y=dsolve(D2x+2*Dx=x+2*y-exp(-t),Dy=4*x+3*y+4*exp(-t)x=-6*t*exp(-t)+C1*exp(-t)+C2*exp(1+6(1/2)*t)+C3*exp(-(-1+6(1/2)*t)y=6*t*exp(-t)-C1*exp(-t)+4*C2*exp(1+6(1/2)*t)+2*C2*exp(1+6(1/2)*t)*6(1/2)+4*C3*exp(-(-1+6(1/2)*t)-2*C3*exp(-(-1+6(1/2)
30、*t)*6(1/2)+1/2*exp(-t)曲面模型的建立1.函数表示的曲面(1)ezmesh(f)创建函数f(x,y)的图形,f是一个字符串,表示两个变量的数学函数表达式。例:用ezmesh函数绘制函数223xxyyz的图形。syms x y;ezmesh(y2-3*x*y-x2)曲面模型的建立1.函数表示的曲面(2)ezsurf(f)创建函数f(x,y)的图形,f是一个字符串,表示两个变量的数学函数表达式。例:用ezsurf函数绘制函数223xxyyz syms x y;ezsurf(y2-3*x*y-x2)练习:22yxz22yxz曲面模型的建立2.二次曲面X,Y,Z=cylinder
31、返回半径为1的柱面的x,y,z的坐标X,Y,Z=cylinder(r,n)cylinder;t=-pi:pi/10:pi;cylinder(2+sin(t)cylinder(t)或 cylinder(t.2)(1)柱面X,Y,Z=cylinder(r)返回用r定义周长曲线的柱面的三维坐标。cylinder将r中每个元素作为半径。曲面模型的建立2.二次曲面(2)球面sphereaxis equal曲面模型的建立3.用给定数据绘图(1)网格图mesh(Z)Z为高度,颜色与高度成比例。mesh(X,Y,Z)绘网格,Z确定颜色meshc(X,Y,Z)在网格下方画一个等值线图。meshz(X,Y,Z)在
32、网格下方画一个窗帘图。X,Y=meshgrid(-2:.2:2,-2:.2:2);Z=X.*exp(-X.2-Y.2);mesh(Z)或 meshc(X,Y,Z)meshz(X,Y,Z)曲面模型的建立3.用给定数据绘图(2)三维刻面图surf(Z)高度Z为单值函数,指定颜色数据和刻面高度X,Y=meshgrid(-2:.2:2,-2:.2:2);Z=X.*exp(-X.2-Y.2);surf(Z)曲面模型的建立3.用给定数据绘图(3)三维曲面图surfl(z)surfl(X,Y,Z)surfl(,light)X,Y=meshgrid(-2:.2:2,-2:.2:2);Z=X.*exp(-X.2-Y.2);surfl(Z);shading interp;添加阴影colormap(colorcube);颜色渐变 结 语