matlab入门简介(解进修订版).ppt_第1页
matlab入门简介(解进修订版).ppt_第2页
matlab入门简介(解进修订版).ppt_第3页
matlab入门简介(解进修订版).ppt_第4页
matlab入门简介(解进修订版).ppt_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1、MATLAB入门简介,直观灵活的语言 数值计算功能 符号运算功能 开放性、可扩展性强 绘图功能 丰富的工具箱 Simulink 动态仿真集成环境,MATLAB 特点和功能,Matlab = Matrix Laboratry 矩阵实验室, Matlab是以矩阵为单位进行数据处理。,Matlab 的工作界面,命令窗口,当前工作目录,当前工作空间,输入命令的历史记录,命令 提示符,主要内容,矩阵及MATLAB常用运算 MATLAB绘图功能 MATLAB程序设计 数据导入 实例分析,矩阵及MATLAB常用运算,pi : 圆周率 ,inf,Inf :无穷大,如:1/0,nan,NaN :Not-a-Nu

2、mber,一个不定值,如 0/0,eps :浮点运算相对精度,特殊变量 ans,i,j :虚部单位,即,系统预定义变量,系统预定义的变量,MATLAB语言中,定义变量时应避免与常量名重复,以防改变这些常量的值, 如果已改变了某外常量的值,可以通过 “ clear 常量名 ” 命令恢复该常量 的初始设定值(当然,也可通过 重新启动MATLAB 系统来恢复这些常量值)。,Matlab 变量的命名规则,Matlab 变量,以字母开头 后面可以跟 字母、数字 和 下划线 长度不超过 63 个字符(6.5 版本以前为 19 个) 区分字母的 大小 写,Matlab 语句的通常形式,变量 = 表达式,查看

3、已定义的变量,who 显示工作空间中的所有变量 whos 显示变量的详细属性,Matlab 数值运算,复数,z=3+4i,数与算术表达式,数学运算符,+ - * / 右除 左除 , (12+2*(7-4)/(32), y=x3-x(1/4)+2.15*sin(3*x),直接输入法,矩阵元素必须在“ ” 内 同行元素间用 空格 或 逗号 分隔 行与行之间用 分号 或 回车符 分开 矩阵大小不用预先定义,例: A = 1 2 3; 4 5 6; 7 8 9,矩阵的创建,Matlab 的操作对象 矩阵,冒号操作符,格式:e1:e2:e3 注:e1初始值,e2步长,e3终止值 e1:e3 注: 默认e

4、2=1,例: A = 0:2:10 % A = 0 2 4 6 8 10,矩阵的创建,linspace(a,b,n),将 a到b进行n-1等分,n缺省时,默认为100,例: A = linspace(0,1,5) % A = 0 0.2500 0.5000 0.7500 1.0000,常见矩阵生成函数,矩阵元素的操作,矩阵元素的提取,=?,=?,(1) 单个元素:A ( 2, 3 ) A ( 6 ),(2) 整行或整列:A ( 2, : ), A ( :, 3 ),(3) 子矩阵:A ( 2:5, 4:8 ), A ( 1,3, 2,4 ) , A ( 3,2, 2,4 ),注:A ( :,

5、: ) 与 A ( : ) 的区别,(4) 删除矩阵的行列:,A =, A ( 3, : )=, A ( :, 2,4 )=,双下标引用: A ( i , j ) 第i行第j列元素 单下标引用: A ( i ) 注:按列排列,二维看成一维,A ( : ) A中所有元素按列排成一列,1 2 3 4 5 6 7 8 9,MATLAB 矩阵运算,矩阵的转置:共轭 A,矩阵的翻转和旋转: fliplr、flipud、rot90,矩阵元素重组: reshape (A, m, n),查看矩阵的大小:size(A),将 A 排成一个m n 的矩阵,满足 m n = #A,数组运算(点运算):.* ./ .

6、.,矩阵算术: + - * / ,!凡是带.的操作都是对矩阵中元素的操作,矩阵基本运算,矩阵的加减:,矩阵的乘法,矩阵与标量相加减:对矩阵的每一个元素都加减标量 矩阵与矩阵相加减: 相同的维数;对应分量进行运算,矩阵与标量相乘:对矩阵的每一个元素都乘以标量 矩阵与矩阵相乘:A*B A的列数等于B的行数,矩阵基本运算,矩阵的除法:/、 右除和左除,若 A 可逆方阵,则,AB inv(A)*B,B/A B*inv(A),X=AB A*X=B X=B/A X*A=B,通常,矩阵除法可以理解为,解线性方程组Ax=B 6x1+3x2+4x3=3 -2 x1+5 x2+7 x3=-4 8 x1-4 x2-

7、3 x3=-7 A=6 3 4; -2 5 7; 8 -4 -3 B=3;-4; -7 X=AB,A = 6 3 4 -2 5 7 8 -4 -3 B = 3 -4 -7 X = 0.6000 7.0000 -5.4000,例 1 矩阵的基本运算。 A=1, 2, 3; 4, 5, 6; B =6, 5, 4; 3, 2, 1; C =A+B %计算两个矩阵的和 D =B %计算矩阵B的转置 E=A*D %做矩阵乘法,必须要满足 % 矩阵乘法的基本要求 %E应该是2阶方阵 F=det(E) %求E的行列式值 G=E(-1) %求E的逆,输出结果: C= 7 7 7 7 7 7 D= 6 3 5

8、 2 4 1 E= 28 10 73 28 F=54 G= 0.5185 -0.1852 -1.3519 0.5185,(1) 求转置矩阵 a=10,2,12;34,2,4;98,34,6; a ans = 10 34 98 2 2 34 12 4 6 (2) 矩阵求逆 inv(a) ans = -0.0116 0.0372 -0.0015 0.0176 -0.1047 0.0345 0.0901 -0.0135 -0.0045,(3) 矩阵的特征值 u,v=eig(a) u = -0.2960 0.3635 -0.3600 -0.2925 -0.4128 0.7886 -0.9093 -0.

9、8352 0.4985 v = 48.8395 0 0 0 -19.8451 0 0 0 -10.9943,矩阵的逻辑运算,运算符 b=sym(b);%定义符号变量 x=2; y=3; u=ax+by v=xx+yy,syms命令 格式: syms arg1 arg2 argn 说明:一次可以定义多个符号变量。,以空格隔开,2建立符号表达式,利用单引号生成符号表达式 y=1/sqrt(2*x),用sym函数建立符号表达式 U=sym(3*x2-5*y+2*x*y+6) 不需定义变量,使用已定义的符号变量组成符号表达式,syms x y; V=3*x2-5*y+2*x*y+6,findsym(s

10、),subs(f): 用当前工作空间中存在的变量值,替换 f中所有出现的相同的变量,并进行简化计算。 subs(f,x,a):用 a 替换 f 中的 x ;a 是可以是 数/数值变量/表达式 或 符号变量/表达式。,subs:符号替换,y=2*x subs(y,x,3),syms x y f=x2+y2 subs(f,x,5) subs(f,x y,2 3),符号表达式操作,n,d=numden(s) 提取符号表达式s的分子和分母,分别存入n和d中 factor(s),对符号表达式s进行分解因式 expand(s),对s进行展开 collect(s,v),对s按变量v合并同类项。 simpli

11、fy(s) ,应用函数规则对s进行化简 simple(s),调用Matlab的其他函数对表达式进行综合化简,并显示化简过程。,f=sym(a*x2/(b+x) n,d=numden(f) %提取分子分母,syms a b x y; A=a3-b3; factor(A) %对A进行因式分解 s=(-7*x2-8*y2)*(-x2+3*y2) expand(s) %对s展开 collect(s,x) %对s按变量x合并同类项,syms x y a s=log(2*x/y); simplify(s) %简化 s=(x2+y2)2+(x2-y2)2 simple(s) %自动调用多种函数对s进行化简,

12、并显示每步结果,举例,极限 limit(f,x,a) 导数 diff(f,v) 积分 int(f,v,a,b) 级数求和 symsum(f,v,a,b) 泰勒级数展开式 taylor(f,n,x,a) 符号代数方程求解 solve 符号微分方程求解 dsolve,常用符号运算功能的实现,syms x y=sin(x)/x; limit(y) limit(y,x,0) limit(sin(x)/x,x,inf),1. 极限,diff(f): 计算 f 关于默认自变量的导数,diff(f,v): 计算 f 关于变量 v 的导数,diff(f,n),diff(f,v,n),diff(f,n,v):

13、n次求导,syms a x y=a*x2; A=diff(y,x) B=diff(y,a) C=diff(y,x,2) D=diff(y,a,2),2. 导数,syms x y=x A=int(y,x) B=int(y,x,1,3),syms x y I=int(int(x2*exp(-y2),x,0,y),y,0,1),3. 积分,syms a n S=symsum(1/an,n,1,inf) subs(S,2),4. 级数求和,5.一元函数的泰勒级数展开,taylor(f,n,x,a),功能:符号函数f在 x=a 处的n-1阶泰勒展开式, 其中x为待展开的符号变量; n的缺省值为 n=6;

14、a的缺省值为 a=0;,syms x f1=sin(x);f2=exp(x); taylor(f1) taylor(f2,8,1),解方程,syms x; f = x2-1; s = solve(f,x),s = solve(x3-3*x+1=0,x),s = solve(x3-3*x+1,x),6. 符号代数方程的求解,例:解方程组,eq1 = x+2*y-z=27 eq2 = x+z=3 eq3 = x2+3*y2=28 s = solve(eq1,eq2,eq3) s.x s.y s.z,y = dsolve(eq1,eq2, . ,cond1,cond2, . ,v),y 为输出, e

15、q1、eq2、.为微分方程, cond1、cond2、.为初值条件, v 为自变量。,只有很少一部分微分方程(组)能求出解析解。大部分微分方程(组)只能利用数值方法求数值解。,7.符号常微分方程的求解,dsolve 的使用,如果省略初值条件,则表示求通解;,如果省略自变量,则默认自变量为 t,dsolve(Dy=2*x,x); dy/dx = 2x dsolve(Dy=2*x); dy/dt = 2x,若找不到解析解,则返回其积分形式。,微分方程中用 D 表示对 自变量 的导数,如:,Dy y; D2y y; D3y y,例 :求微分方程 的通解。,eq1 = Dy+2*x*y=x*exp(-

16、x2) y = dsolve(eq1,x),例 :求微分方程 在初值条件 下的特解。,eq1 = x*Dy+y-exp(x)=0 cond1 = y(1)=2*exp(1) y = dsolve(eq1,cond1,x),MATLAB 绘图功能,MatLab图形绘制功能,plot,基本用法 plot(x,y,s) 参数x为横轴变量,y为纵轴变量, s控制图形的基本特征如颜色、线型等,可省略。,x=linspace(0,2*pi,100); y=sin(x); plot(x,y); plot(x,y,g*); plot(x,sin(x),b.,x,cos(x),r); title(sin(x)

17、cos(x); xlabel(x); ylabel(y); legend(sin,cos);,其它2-D图形绘制参考: help窗口help NavigatorDemosMATLABGraphics2-D plots,生产图像的保存 系统默认.fig 也可以存储成其它格式,%subplot 图像排版 x=0:0.1*pi:2*pi; subplot(1,2,1); plot(x,sin(x); subplot(1,2,2); plot(x,cos(x);,三维曲线 plot3,t=0:0.1:20; y=sin(t); z=cos(t); plot3(t,y,z, .-) grid on,pl

18、ot3(x,y,z,s) x,y,z 是相同类型的向量,且长度相等。,例:三维螺线 y=sin(x),z=cos(x), 0x20,MATLAB 程序设计,Matlab 程序设计介绍,Matlab 是一种科学计算语言,但同时也具有和 C、 FORTRAN 等高级语言相类似的语言特征,能方便地实现程序控制。利用 Matlab 的程序控制功能,可以将有关Matlab 命令编成程序存储在一个文件中(M文件),然后运行该文件,Matlab 就会自动依次执行文件中的命令,直到全部命令执行完毕。,在 Matlab 程序设计中,要充分利用 Matlab 数据结构的特点,提供编程效率。,M文件创建 file

19、菜单 new m-file 或 工具栏-新建 edit M文件有两类 独立的m文件 称命令文件(脚本文件) 可调用m文件 称函数文件 (1) 命令文件 没有输入输出参数 与在命令窗口逐行执行文件中的所有指令,其结果是一样的。 (2) 函数文件 需要输入变量,返回输出变量 matlab用户自定义函数,用 Matlab 语言编写的程序称为 M文件,以“.m”为扩展名,M文件,特定规则: 有多个输入变量时,各变量用逗号隔开; 输出形参多用一个时,用 括起来; m文件保存时,文件名必须是 和函数名同名。 程序中的变量均为局部变量,变量只在函数运行期间有效,不保存在工作空间中。 (全局变量用global

20、定义,且定义变量建议大写),function y=f(x1,x2) y=x12+x22;,function 输出形参表=函数名(输入形参表) %注释说明语句段 程序语句段,function x y=test(m,n) x=m+n; y=m-n;,函数M文件的格式,函数调用,常见的函数调用形式为: out1 out2 =函数名(in1,in2,) 一个函数可以嵌套,也可以调用其它的函数,甚至调用自己(也就是递归调用)。,function y=f(x1,x2) y=x12+x22;,function x y=test(m,n) x=f(m)+f(n); y=f(m)-f(n);,z=f(3,5),

21、m n=test(2,3) m n=test(f(2),f(3),f.m,test.m,if语句 1. if 表达式 commands end 2. if 表达式 commands1 else commands2 end,3. if 表达式1 commands1 elseif 表达式2 commands2 elseif else commands end,matlab的程序结构,顺序结构、选择结构、循环结构,for循环 一般形式 for x=array commands end,matlab的程序结构,sum=0; for i=1:100 sum=sum+i; end sum,while循环

22、一般形式 while 表达式 commonds end,sum=0; i=1; while i=100 sum=sum+i; i=i+1; end sum,% 函数文件 fac.m function f=fac(n) if (n=1) f=1; else f=n*fac(n-1); end,% 命令文件 %1!+2!+n! s=0; n=input(input n:); for i=1:n s=s+fac(i); end s,例:利用函数的递归调用计算 n!,允许循环嵌套,break,continue 只要有矩阵形式可以解决的问题,不要使用for循环。tic/toc :计时,注意:,i=1; for t=0:0.01:100 i=i+1; y(i)=si

温馨提示

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

最新文档

评论

0/150

提交评论