matlab入门(中学生)_第1页
matlab入门(中学生)_第2页
matlab入门(中学生)_第3页
matlab入门(中学生)_第4页
matlab入门(中学生)_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1、1MATLAB入门入门肖剑肖剑重庆大学数学与统计学院重庆大学数学与统计学院2MATLAB最初是最初是20世纪世纪70年代后期由年代后期由新墨西哥大学计算机科学系主任的新墨西哥大学计算机科学系主任的Cleve Moler用用Fortran语言设计的,现在的语言设计的,现在的MATLAB程序是程序是1984年年MathWorks公司公司用用 C语言开发的。语言开发的。MATLAB 简介 3MATLAB的主要应用领域(1)数值分析)数值分析(2)数值和符号计算)数值和符号计算(3)工程与科学绘图)工程与科学绘图(4)控制系统的设计)控制系统的设计(5)数字图像处理)数字图像处理(6)数字信号处理)数

2、字信号处理(7)通讯系统设计与仿真)通讯系统设计与仿真(8)财务与金融工程)财务与金融工程4将数学和计算机技术结合创造性地解决实际问题将数学和计算机技术结合创造性地解决实际问题熟练掌握熟练掌握MATLAB的命令操作方式的命令操作方式掌握掌握MATLAB程序设计方法程序设计方法以以MATLAB为操作平台完成各种不同的任务为操作平台完成各种不同的任务实验方法实验方法猜想猜想验证验证求解求解发现发现5MATLAB桌面桌面命令窗口命令窗口工作空间浏览工作空间浏览命令历史窗命令历史窗口口6命令窗口、编辑窗口、图形窗口命令窗口、编辑窗口、图形窗口7变量名的第一个字符必须是一个英文字母,最多变量名的第一个字

3、符必须是一个英文字母,最多可包括可包括31个字符;个字符;变量名可由英文字母、数字和下划线混合组成;变量名可由英文字母、数字和下划线混合组成;在命令窗口中直接输入变量名称创建在命令窗口中直接输入变量名称创建A9A 98 x=linspace(0, pi, 11) %11x=linspace(0, pi, 11) %11个从个从0 0到到pipi的等间隔数的等间隔数. .1)1)数组构造数组构造: : 常采用常采用“first:increment:lastfirst:increment:last”和函数和函数“linspacelinspace”两种方式来创建数组,如两种方式来创建数组,如x=1:

4、5 x=1:5 (从(从1 1到到5 5公差为公差为1 1的等差数组)的等差数组)x=0 : 0.1 : 1 x=0 : 0.1 : 1 (从(从0 0到到1, 1, 公差为公差为0.10.1)数组的创建9x(1:5) x(1:5) 表示表示x x的第的第1 1到第到第5 5个元素构成个元素构成 的数组的数组. .x(1:2:5)x(1:2:5)x(2,1,4)x(2,1,4)x(3) x(3) 表示表示x x的第的第3 3个元素个元素2) 数组的操作10A=1 2 3;B=2 2 2;A=1 2 3;B=2 2 2;3) 数组的运算A.A.* *B=2 4 6;B=2 4 6;A./B=0.

5、5000 1.0000 1.5000;A./B=0.5000 1.0000 1.5000;A.B=1 4 9;A.B=1 4 9;sin(A)=0.8415 0.9093 0.1411;sin(A)=0.8415 0.9093 0.1411;11max(v) 求最大值求最大值min (v) 求最小值求最小值sum(v) 求和求和mean(v) 求平均值求平均值sort(v) 按升序排列按升序排列12创建矩阵创建矩阵的常用方法的常用方法:直接输入法三条规则:直接输入法三条规则: 矩阵元素必须在方括号矩阵元素必须在方括号 之内之内; 同一行相邻元素间用同一行相邻元素间用逗号逗号或或空格空格分隔分隔

6、; 矩阵的行与行之间必须用矩阵的行与行之间必须用分号分号分隔分隔.例例3. 二阶矩阵二阶矩阵 A=1 2; 3 4A = 1 2 3 413命令文件命令文件( (脚本式脚本式M M文件文件) ) 无输入参数,不返回参数无输入参数,不返回参数 对文件命名对文件命名, ,保存在当前工作目录中保存在当前工作目录中. zyt.m. zyt.mM M文件分为命令文件和函数文件两种文件分为命令文件和函数文件两种x=0:pi/100:2*pi;y=2*exp(-0.5*x).*cos(4*pi*x);plot(x,y)14函数文件函数文件( (函数式函数式M M文件文件) ) 可输入参数,也可返回参数可输入

7、参数,也可返回参数主要用来定义函数子程序主要用来定义函数子程序, ,它由它由functionfunction起头,起头,后跟的函数名必须与文件名相同。后跟的函数名必须与文件名相同。 例例4 4 计算第计算第n n个个FibonnaciFibonnaci数的函数文件数的函数文件fibfun.mfibfun.mfunction f=fibfun(n)if n2 f=fibfun(n-1)+fibfun(n-2);else f=1; end15MATLABMATLAB 程序中的流程控制程序中的流程控制条件控制条件控制有选择地运行程序块有选择地运行程序块1. if / elseif 语句语句分析下列程

8、序,说明运行结果及原因分析下列程序,说明运行结果及原因 clear a=100;b=10; if ab disp(ab) %显示字符串显示字符串ab) %显示字符串显示字符串ab end162. for循环循环语法语法: for 变量变量 =初值初值:步长:终值步长:终值 可执行语句可执行语句 end例例5 5 求求1+2+1+2+100(sum100.m)+100(sum100.m)mysum=0;for i=1:1:100 mysum=mysum+i;endmysum173. while. while循环循环 whilewhile循环将循环体中的语句循环执行不定次数。循环将循环体中的语句循

9、环执行不定次数。 语法:语法: while while 条件表达式条件表达式 循环体语句循环体语句 endend例例6 6 求求1+2+1+2+100(sum100w.m)+100(sum100w.m)mysum=0;i=1;while (i help sin type magic clearclc常用常用MATLAB指令指令19+ 加加 .+ 点加点加 - 减减 .- 点减点减 矩阵幂矩阵幂 . 点幂点幂* 乘乘 .* 点乘点乘/ 右除右除 ./ 点右除点右除 左除左除 . 点左除点左除1 .算术运算符算术运算符2.关系运算符关系运算符 小于小于 大于大于 = 大于等于大于等于 = 等于等于

10、 = 不等于不等于3.逻辑运算符逻辑运算符 & 与与 (and) | 或或 (or) 非非 (not)20Plot(X,Y) 最基本的二维图形命令最基本的二维图形命令plot命令自动打开一个图形窗口命令自动打开一个图形窗口Figure1原理:原理: 用直线连接相邻两数据点来绘制图形用直线连接相邻两数据点来绘制图形 根据图形坐标大小自动缩扩坐标轴根据图形坐标大小自动缩扩坐标轴,将数据标尺及单将数据标尺及单位标注自动加到两个坐标轴上位标注自动加到两个坐标轴上使用方法使用方法:(1) X, Y都是向量都是向量,且它们的长度相等且它们的长度相等;(2)如果如果X和和Y都是维数相同矩阵都是维数相

11、同矩阵,按列与列对应绘图按列与列对应绘图21例例7. x=0:0.1:2*pi; y=cos(x); plot(y) figure, plot(x,y)plot(y): 以以y的值为纵坐标的值为纵坐标,y的下标为横坐标的下标为横坐标。以以 为横坐标为横坐标 以以 为纵坐标为纵坐标22处理图形处理图形(2)hh = xlabel(string): 在当前图形的x轴上加图例stringhh = ylabel(string): 在当前图形的y轴上加图例stringhh = title(string): 在当前图形的顶端上加图例stringhh = zlabel(string): 在当前图形的z轴上加

12、图例string1、在图形上图例和标注、在图形上图例和标注23例例8 在区间0,2*pi画sin(x)的图形,并加注图例“自变量 X”、“函数Y”、“示意图”, 并加格栅.解解 x=linspace(0,2*pi,30); y=sin(x); plot(x,y) xlabel(自变量X) ylabel(函数Y) title(示意图) grid on24例例9 在区间0,2*pi画sin(x),并分别标注“sin(x)” ”cos(x)”.解解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) gtext(sin(x);gtext(

13、cos(x)命令gtext(string)用鼠标放置标注在现有的图上.运行命令gtext(string)时,屏幕上出现当前图形,在图形上出现一个交叉的十字,该十字随鼠标的移动移动,当按下鼠标左键时,该标注string放在当前十交叉的位置. (3) hh = gtext(string)252、定制坐标、定制坐标Axis(xmin xmax ymin ymax zmin zmax)例例10 在区间0.005,0.01显示sin(1/x)的图形。解解 x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y) axis(0.005 0.01 -1 1)定

14、制图形坐标将坐标轴返回到自动缺省值Axis autox、y、z的最大、最小值263、图形保持、图形保持(1) hold on hold off例例11 将y=sin(x)、y=cos(x)分别用点和线画出在同一屏幕上。解解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x) plot(x,z) hold on plot(x,y)保持当前图形, 以便继续画图到当前图上释放当前图形窗口27同时绘制多条曲线同时绘制多条曲线例例12. 衰减振荡曲线函数衰减振荡曲线函数: y=e -0.5x sin 5x图形图形.x=0:0.1:4*pi; y= exp(-0.5*x)

15、;y1=y .*sin(5*x);plot(x,y1,x,y,-r,x,-y,-r)28 plot(X,Y,s) s参数:参数: - 实线实线 . 点点 * 星号星号 上三角上三角 : 点线点线 o 圆圆 s 方形方形 右三角右三角 - 虚线虚线 + +号号 v 下三角下三角 p 正五边形正五边形 y 黄色黄色m 紫红色紫红色c 蓝绿色蓝绿色r 红色红色 g 绿色绿色b 蓝色蓝色w 白色白色k 黑色黑色 上述参数的不同组合可以为图形设置不同的线形、上述参数的不同组合可以为图形设置不同的线形、颜色和标识,调用时以颜色和标识,调用时以单引号单引号来引用,来引用,各选项直接相连各选项直接相连,不需要

16、分隔符。不需要分隔符。29 【例例13】 x=0:0.1*pi:pi; y=sin(x); z=cos(x); plot(x,y,-k,x,z,-.rd)00.511.522.533.5-1-0.8-0.6-0.4-0.200.20.40.60.8130图形窗口的分割图形窗口的分割subplot命令实现图形窗口分割命令实现图形窗口分割. .在一个图形在一个图形窗口中显示几幅图象窗口中显示几幅图象, ,对几个函数进行比较对几个函数进行比较subplot(m,n,i)把图形窗口分割为把图形窗口分割为m行行n列子窗列子窗口口并选定第并选定第i个窗口为当前窗口个窗口为当前窗口subplot(2,2,1

17、)subplot(2,2,1)subplot(2,2,2)subplot(2,2,2)subplot(2,2,3)subplot(2,2,3)subplot(2,2,4)subplot(2,2,4)31 解解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

18、)cos(x) subplot(2,2,4);plot(x,b),title(sin(x)/cos(x)例例14 将屏幕分割为四块,并分别画出y=sin(x),z=cos(x),a=sin(x)*cos(x),b=sin(x)/cos(x)。32空间三维作图q 三维曲线三维曲线 : plot3设三维曲线的参数方程为:设三维曲线的参数方程为:x=x(t),y=y(t),z=z(t),则其图形可由下面的命令绘出:则其图形可由下面的命令绘出:例例15:三维螺旋线:三维螺旋线plot3的用法与的用法与 plot 类似类似 t=0:0.1:10*pi; x=2*t; y=sin(t); z=cos(t)

19、; plot3(x,y,z);plot3(x,y,z,s)33空间三维作图u 网格生成函数:网格生成函数:meshgridx, y 为给定的向量,为给定的向量,X, Y 是网格划分后得到的网格矩阵是网格划分后得到的网格矩阵u 绘制由函数绘制由函数 z=z(x,y) 确定的曲面时,首先需产生一个网确定的曲面时,首先需产生一个网格矩阵,然后计算函数在各网格点上的值。格矩阵,然后计算函数在各网格点上的值。若若 x = y, 则可简写为则可简写为 X,Y= meshgrid(x)X,Y= meshgrid(x,y) x=-8:0.5:8; y=-8:0.5:8; X,Y= meshgrid(x,y);

20、 r=sqrt(X.2+Y.2)+eps; Z=sin(r)./r; mesh(X,Y,Z)例例16:34-202-202-505xyPeaks调用格式:调用格式: surf(x,y,z) 绘绘制三维曲面图,制三维曲面图,x,y,z为图为图形坐标向量形坐标向量例例17:X,Y,Z=peaks(30)peaks为为matlab自动生成的三维测试图形自动生成的三维测试图形surf(X,Y,Z)35函数的曲线函数的曲线 使用使用ezplot和和ezplot3函数函数,可可以方便的绘制二维和三维参数以方便的绘制二维和三维参数曲线曲线. 函数调用格式函数调用格式:ezplot(f,xmin,xmax,y

21、min,ymax)f是一个字符串是一个字符串 ezplot(x,y,tmin,tmax)36函数调用格式:ezplot3(x,y,z,tmin,tmax)例19.绘制如下参数方程的曲线图 tzttyextcossin10利用利用ezplot3ezplot3函数可以函数可以绘制该方程曲线图绘制该方程曲线图ezplot3(exp(t/10),sin(t)*cos(t),t,0,6*pi)37函数的曲面ezmesh绘制函数表示曲面的网格图,也可以利用ezsurf绘制函数表示的曲面ezmesh命令格式:ezmesh(f,domain)ezmesh(x,y,z,smin,smax,tmin,tmax)例

22、20.绘制如下函数的曲面图 223xxyyzezmesh(y2-3*x*y+x2,-4,4,-4,4)38t=-pi:pi/10:pi;x y z=cylinder(1+sin(t);surf(x,y,z)axis square柱面和球面柱面和球面k=5;n=2k-1;theta=pi*(-n:2:n)/n;phi=(pi/2)*(-n:2:n)/n;x=cos(phi)*cos(theta);y=cos(phi)*sin(theta);z=sin(phi)*ones(size(theta);colormap(0 0 0; 1 1 1)C=hadamard(2k);surf(x,y,z,C)a

23、xis square39x,y=meshgrid(-6:0.2:6);z=x.2-y.2;mesh(x,y,z)colormap(0 0 1)x,y=meshgrid(-8:0.5:8);z=x.2-y.2;ii=find(abs(x)6|abs(y)6);z(ii)=zeros(size(ii);mesh(x,y,z)矩形域上的马鞍面矩形域上的马鞍面40t=0:.1:2*pi;r=0:0.1:2;x=r*cos(t);y=r*sin(t);zz=x.2-y.2;surfc(x,y,zz)figuremesh(x,y,zz)colormap(0 0 1) 圆域上的马鞍面圆域上的马鞍面41符号变

24、量与符号表达式符号变量与符号表达式 在数学应用中,常常需要做极限、微分、在数学应用中,常常需要做极限、微分、求导数等运算,求导数等运算,MATLAB称这些运算为符号称这些运算为符号运算。运算。MATLAB的符号运算功能是通过调用的符号运算功能是通过调用符号运算工具箱符号运算工具箱(Symbolic Math Toolbox)内的内的工具实现,其内核是借用工具实现,其内核是借用Maple数学软件。数学软件。MATLAB的符号运算工具箱包含了微积分运的符号运算工具箱包含了微积分运算、化简和代换、解方程等几个方面的工具算、化简和代换、解方程等几个方面的工具 42符号表达式的创建符号表达式的创建sym

25、s符号变量符号变量1符号变量符号变量2 f=表达式表达式例例22.符号多项式运算符号多项式运算syms xf=2*x2+3*x-5;g=x2+x-7;h1 = f+gh2 = expand(f*g ) factor(h2)h1=3*x2+4*x-12h2 = 2*x4+5*x3- 16*x2-26*x+35ans =(x-1)*(2*x+5)*(x2+x-7)43 A1=subs(A, old, new)修改表达式修改表达式用用new置换符号表达式置换符号表达式A中的中的old 得到新的符得到新的符号表达式号表达式A1。例例23. 求符号多项式的值求符号多项式的值syms a xf=a*x2+

26、3*x+4;f1=subs(f,a,2)subs(f1,x,5)符号表达式中变量替换符号表达式中变量替换f1 = 2*x2+3*x+4ans = 6944复杂表达式的化简复杂表达式的化简syms x y z a b cf=(x+y)*(a+bc)z/(x+a)2pretty(f) 2)()(axbayxzc 常用化简命令:降幂排列:collect(P,x); 展开:expand(P);3. 重叠: horner(P); 4. 因式分解: factor(P);5. 化简: simplify(P) 45级数求和运算级数求和运算S=symsum(f,n,a,b) syms k nS=symsum(k

27、,k,1,n);S1=simple(S)S1 =1/2*n*(n+1)S=symsum(k2,k,1,n);S2=simple(S)S2 =1/6*n*(n+1)*(2*n+1)nkSnk 2111例24.计算级数2212221nkSnk 46符号变量和表达式的建立符号变量和表达式的建立【例例25】用符号计算验证三角等式用符号计算验证三角等式syms fai1 fai2y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2) y =sin(fai1-fai2) sincoscossinsin()121212472ln1xyx解:可用以下程序完成:解:可用

28、以下程序完成: clear; syms x y=log(x+2)/(1-x); dy=diff(y,x) dy3=diff(y,x,3) pretty(dy3) 函数函数pretty(),其功能是使它作用的表达式更,其功能是使它作用的表达式更符合数学上的书写习惯。符合数学上的书写习惯。 例26:求函数 的一阶和三阶导数。函数的极值函数的极值 1、一元函数的极值、一元函数的极值 函数命令:函数命令:fminbnd调用格式:调用格式:x,feval,exitflag=fminbnd(fun,x1,x2) %求求fun在区间在区间(x1,x2)上的极值上的极值.返回值:返回值:x:函数函数fun在在

29、(x1,x2)内的极值点内的极值点feval:求得函数的极值求得函数的极值exitflag:exitflag0,函数收敛于解函数收敛于解x处处exitflag=0,已达最大迭代次数已达最大迭代次数exiflag0,函数在计算区间内不收敛函数在计算区间内不收敛.49| )sin(|)( xexy),(22 例例27:求函数:求函数在在上的极小值上的极小值. fun=inline(x+pi)*exp(abs(sin(x+pi) x,feval,exitflag=fminbnd(fun,-pi/2,pi/2) fun = Inline function: fun(x) = (x+pi)*exp(ab

30、s(sin(x+pi)x = -1.2999e-005feval = 3.1416exitflag = 150 xx=-pi/2:pi/200:pi/2;yxx=(xx+pi).*exp(abs(sin(xx+pi);plot(xx,yxx) xlabel(x),grid on % 可以用命令可以用命令xx,yy=ginput(1) 从局部图上从局部图上取出极值点及相应函数值取出极值点及相应函数值-2-1.5-1-0.500.511.52345678910111213x512、 多元函数的极值多元函数的极值 函数命令函数命令:fminsearch调用格式调用格式:x,feval,exitfla

31、g=fminsearch(fun,x0)% 求在求在x0附近的极值附近的极值例例28:求求2221100)()(),(xxyyxf 的极小值的极小值. function f=myfunmin2(v)x=v(1);y=v(2);f=100*(y-x2)2+(1-x)2; 52sx,sfeval=fminsearch(myfunmin2,2 3) sx = 1.0000 1.0000sfeval = 2.1718e-010533、函数零点、函数零点 函数命令函数命令:fzero求一元函数的零点求一元函数的零点调用格式:调用格式:x,feval,exitflag=fzero(fun,x0)例例29:

32、求求 5 . 0)(sin)(1 . 02tettft的零点。的零点。 (1)采用符号计算)采用符号计算S=solve(sin(t)2*exp(-0.1*t)-0.5*abs(t),t) S =0. 54y=inline(sin(t).2.*exp(-0.1*t)-0.5*abs(t),t); t=-10:0.01:10;Y=y(t);plot(t,Y,r); % r 用红色作图用红色作图hold on %在原来基础上作图在原来基础上作图plot(t,zeros(size(t),k); %y横为横为0,黑色,黑色xlabel(t);ylabel(y(t)hold off (2)数值法求解)数值

33、法求解zoom on%获局部放大图获局部放大图tt,yy=ginput(5);zoom off%用鼠标获用鼠标获5个零点猜测值个零点猜测值ttyy 55-10-8-6-4-20246810-5-4-3-2-101ty(t)56tt = -2.0046 -0.5300 -0.1152 0.6221 1.6820yy = -0.0088 -0.0088 -0.0088 -0.0088 -0.0088 57t1,y1=fzero(y,-0.1) -0.1附近找附近找t1 = -0.5198y1 = 0 t2,y2=fzero(y,2) t2 = 1.6738y2 = 2.2204e-016 输出: 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2)单变量方程单变量方程0)(xfsolve()语句的用法例30: 求解方程 ax2+bx+c = 0输入: x= solve(a*x2+b*x+c)或 solve(a*x2+b*x+c=0)1)符号解输入: x,y=solve(x2+

温馨提示

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

评论

0/150

提交评论