MATLAB教程简介.ppt_第1页
MATLAB教程简介.ppt_第2页
MATLAB教程简介.ppt_第3页
MATLAB教程简介.ppt_第4页
MATLAB教程简介.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、欢 迎 学 习,微机应用软件,课时安排: 1、Matlab简介 32学时 2、数据与图像处理(Origin、 Photoshop) 4学时,参考数目: 1、MATLAB与科学计算(第2版)王沫然 电子工业出版社 2、计算机在材料科学中的应用 许鑫华 机械工业出版社 数学物理方程的MATLAB解法与可视化 彭芳麟 清华大学出版社,学习要求: 1、准备一个笔记本兼作业本。 2、自己独立编程。,第1章 MATLAB简介,MATLAB是英语Matrix Laboratory(矩阵实验室)的缩写 MATLAB是当今国际上公认的在科技领域最为优秀的应用软件和开发环境。在欧美各高等院校,MATLAB已经成为

2、应用线性代数、自动控制理论、数据统计、数字信号处理、图形处理等高级课程的基本数学工具,是理工科本科生、硕士生、博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB已经超出实验室,广泛用于研究和解决具体的工程问题。 国内部分重点高校已作为理工学生的必修或选修课。,现在Matlab已经成为一个系列产品: 主包中有数百个高度优化的内部函数。 工具包(Toolbox),又分为两类: 功能性工具包 主要用来扩充MATLAB的数值分析、矩阵运算、数字信号处理、符号计算功能、图形建模仿真功能、文字处理功能、与硬件实时交互功能。这种工具包能用于多种学科。 学科性工具包 是专业性比较强的,如: 控制

3、系统工具包(Control System Toolbox)、 通信工具包(Communication Toolbox)、 图象处理工具包(Image Processing Toolbox)、 统计工具包(Statistic Toolbox) 偏微分方程工具包(Partial Differential Equation Toolbox),Matlab语言的特点:,1、极强的数值计算功能、作图功能和符号 计算功能。,数值计算主要内容:矩阵的创建和保存,数值矩阵代数、乘方运算和分解,数组运算,多项式和有理分式运算,数理统计分析、差分和数值导数,用于求积分和微分方程的数值解和功能函数等。 在此环境下所

4、解问题的Matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程。,利用MATLAB可以轻易地绘制二维、三维曲线,三维曲面,并可进行图形和坐标的标识、坐标控制、图形的迭绘、视角和光照设计、色彩精细控制等及绘制动画,简单易行。,Matlab语言的特点:,2、用户使用方便,语句简单,内涵丰富。,MATLAB是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序。 Matlab语言是一种解释执行的语言,它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。 把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作,快速排除输入程序中的书写错误、语法错误以至语意错误

5、,从而加快了用户编写、修改和调试程序的速度。,Matlab语言的特点:,3、最受人欢迎的特点开放性。,除内部函数外,所有MATLAB主包文件和各工具包文件都是可改的源文件。用户通过对源文件的修改,或加入自己编写的文件去构成新的专用工具包。 高版本的Matlab已逐步扩展到科学及工程计算的其它领域。因此,不久的将来,它一定能名符其实地成为“万能演算纸式的”科学算法语言。,1.1.1 MATLAB的操作界面,1、操作桌面窗口,菜单项; 工具栏; 【Command Window】指令窗口; 【Launch Pad】工作目录窗口; 【Command History】指令记录窗口; 【Workspace

6、】内存空间窗口; 【Current Directory】当前工作目录窗口;,MATLAB操作窗口,接受命令的窗口,2、指令窗的使用 数值计算 2*sin(pi/3)+5*i -22/3 演示内带程序 ballode %自由下落小球与地面非弹性碰撞的运动轨迹 演示Matlab的基本功能 demo,3、指令窗操作注意事项 怎样改变数字属性和字体 指令和变量名要区分大小写 应该指定输出变量名 常用符号 ; 不显示结果 命令延续到下一行 重新调入上一命令行 重新调入下一命令行,1.1.2 在线帮助 1、帮助系统指令 help指令名称,2、常用指令 who 列出内存中的变量名 Type 显示指定文件的内

7、容 whos 列出内存中的变量名及其性质 clear 清除内存,Matlab功能展示,例1:求解线性方程组,在Matlab指令窗口输入命令: a=2,3,-1;8,2,3;45,3,9; b=2;4;23; x=inv(a)*b x1=ab,例2:绘制正弦曲线和余弦曲线,在指令窗口输入命令: x=0:0.5:360*pi/180; %x从00到3600并转换为弧度 plot(x,sin(x),x,cos(x) %绘制正弦曲线和余弦曲线,例3:输入10个学生的成绩并对成绩按升序排序。 在指令窗口输入命令: g=input(请输入学生成绩:) sort(g) 请输入学生成绩: 65 78 96 9

8、8 91 84 79 83 74 81,1.2 矩阵与表达式1.2.1 数据、变量名、算符与表达式,1、数据格式: 10的幂为e加上正负数字: 1.062e-20 6.022e23 数字后直接加 i 或 j表示虚数 :3.14i 5+3i,2、算符 算术运算算符: * / ( ) sqrt( ) 关系运算算符:、 、 、 、 逻辑运算算符:与 、或、非 ,3、表达式从左至右、指数最先,乘除加减、括号提前。,例1: 6+4*32 ans = 42, x=(5+cos(47*pi/180)/(1+sqrt(7)-2i),例2:计算表达式的值 并将结果赋给变量x,4、变量,命名规则 字母打头,后面可

9、以为字母、数字、下划线等,但不 能为空格符、标点。 区分大小写 Abc ABc 例:MYvar12、12Myvar_ 、MY_Var12、_MyVar12, ,保存和查询 所有变量都保存在工作内存空间workspace中。 whos 查询、clear 清除。 MATLAB 的保留常量 ans 预设的计算结果变量名 i 或 j 虚数单位 eps 正的极小值=2.2204e-16 inf 值,如1/0 pi 3.1415926 NaN 不定值,如0/0, / ,5、函数,建造函数,三种方法: inline指令建造在线函数 用符号变量建造 用M文件建造 inline指令 函数名=inline( 函数

10、内容 ,自变量列表),例:建立一个带参数的x 的函数 ff=cos2x2+ 并想得到x3,2.1时的函数值。, ff=inline(cos(x2)2+theta,x,theta), ff(3,2.1),常用函数: abs 绝对值 sqrt平方根 exp指数 log自然对数 sin正弦 cos余弦 tan正切 asin反正弦 sinh 双曲正弦特殊函数:bessel 贝塞尔函数 gamma 伽马函数,如果对一系列数求函数值,或变量是矢量,可将函数 矢量化。 方法1:使用指令vectorize aaa=vectorize(ff),方法2:输入时使用对数组运算的算符 fff=inline(cos(x

11、.2).2+theta,x,theta) fff = Inline function: fff(x,theta) = cos(x.2).2+theta,求x=3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.0 时对应的函数值, x=3:0.1:4 A=aaa(x,2.1) B=fff(x,2.1),1.2.2 矩阵,1、定义矩阵 方法1:直接输入法,用空格或逗号分割同一行的元素,用分号结束一行元素,用方括号括起整个矩阵。,数据分类:标量(scalar)、矢量(vector)、 矩阵(matrix)、列阵(array), B=16 3 2 13; 5 10 1

12、1 8; 9 6 7 12;4 15 14 1 B = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1, A=1 2 ,6 9 8 A = 1 2 6 9 8,使用矩阵编辑器!,方法2:用Matlab的指令函数生成,zeros 零矩阵 ones 全部元素为1的矩阵 eye 单位矩阵 rand 均匀分布的随机数矩阵 magic 幻方阵 randn n维正态分布的随机数矩阵 cell 空矩阵 diag对角矩阵或提取对角元 linspace 等间距的矢量 logspace 对数等分的行矢量,Diag(a,k) k=o是主对角线,k 0 在主对角线上, k 0在主对角线下

13、, Z=zeros(2,4) Z = 0 0 0 0 0 0 0 0, F=5*ones(3,3) F = 5 5 5 5 5 5 5 5 5, R=randn(4,4) R = -0.4326 -1.1465 0.3273 -0.5883 -1.6656 1.1909 0.1746 2.1832 0.1253 1.1892 -0.1867 -0.1364 0.2877 -0.0376 0.7258 0.1139, a=1,3,5; diag(a) ans = 1 0 0 0 3 0 0 0 5, diag(a,-1) ans = 0 0 0 0 1 0 0 0 0 3 0 0 0 0 5 0

14、, diag(a,1) ans = 0 1 0 0 0 0 3 0 0 0 0 5 0 0 0 0, magic(3) ans = 8 1 6 3 5 7 4 9 2, eye(3) ans = 1 0 0 0 1 0 0 0 1, linspace(2,5,6) ans = 2.0000 2.6000 3.2000 3.8000 4.4000 5.00000, cell(3) ans = ,Magic(n)为元素1到n2 之间,行、列、对角线 的和都相等的n维矩阵,作业,1、计算表达式的值 并将结果赋给变量x,3、建立一行矢量为1到10间等间距的8个数。 4、用help指令查询cumsum指

15、令的用法,建立一个 33的矩阵并用cumsum指令求各列元素的累计和。 5、调用Demos窗口,选择其中各个条目并阅读窗口的 说明,浏览MATLAB的基本功能。,再见,欢 迎 学 习,微机应用软件,1.2.2 矩阵,1、定义矩阵 方法1:直接输入法 方法2:用Matlab的指令函数生成 linspace 等间距的矢量 linspace(x1, x2, N) 在x1, x2产生N个等间距的点 logspace 对数等分的行矢量 logspace(x1,x2,n) 生成从10 x1到10 x2包含n 个数据的矢量,2、标识矩阵元素 3、修改矩阵 4、矩阵操作的指令和算符 1.2.3 符号变量 1.

16、2.4其它数据结构,2、标识矩阵元素标识元素是指标识某个、某行或某列元素,例: A =16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 怎样标识 11?,A(2,3)或A(10),注意: a.在查找矩阵元素A( i,j)时,若 i,j 超出了矩阵行数和列数,则显 示出错信息。 b.储存元素A( i,j)时,若 i,j 超出 了矩阵行数和列数,则矩阵自动 扩充并以零填补没有输入的元素。,1.2.2 矩阵,冒号算符,用法1:生成矢量、矩阵 M=1:10 %步长为1的行矢量 M = 1 2 3 4 5 6 7 8 9 10, B=0:pi/4:pi %步长为/4的行矢量

17、B= 0 0.7854 1.5708 2.3562 3.1416,用法2:表示矩阵的一部分或者一行或一列的全部元素 如:A( :, j) 矩阵A的第j列 A( i,: ) 矩阵A的第I行 A(1 :k, j) 矩阵A的第j列的前k个元素,小知识:end 表示最后一个元素 如:A(end, j) 矩阵A的第j列的最后一个元素 A( i,end ) 矩阵A的第I行的最后一个元素, M(10:-1:4) %M的第十个元素和第四个元素的倒排 ans = 10 9 8 7 6 5 4,?A(end,:),3、修改矩阵合并, A(2:2:6)= A = 1 7 6,? B1=B(1:2:end,:),逻辑

18、下标,可以利用具有逻辑运算功能的指令过滤数据, x=2.1 1.7 1.6 1.5 NaN 1.9 1.8 1.5 5.1 1.8 1.4 2.2 isfinite(x) %判断元素是否为有限数 ans = 1 1 1 1 0 1 1 1 1 1 1 1 x=x(finite(x) 有限数取值,非数或无穷数去掉, x=x(abs(x-mean(x)=2*std(x) abs 绝对值 mean平均值 std 标准差,4、矩阵操作的指令和算符三类指令,标量函数 对矩阵中的每一个元素 如:sin(A) 矢量函数 对矩阵中的每一列元素 如:max(A) 矩阵函数 对矩阵中的全体元素 如:inv(A)求

19、逆, B=pi/6,pi/4;pi/3 pi/2; sin(B) %标量函数 ans = 0.5000 0.7071 0.8660 1.0000, A=1 2 3; 4 5 6; 7 8 9; max(A) %矢量函数 ans = 7 8 9, sum(A) 各列元素之和 ans = 12 15 18, prod(A) 各列元素之积 ans = 28 80 162 mean(A) 各列的平均值 ans = 4 5 6, B=2 4 6; 1 5 9; 7 3 8 median(B) 各列的中位元素 ans = 2 4 8,矩阵函数, G=1 8 4;6 8 8;3 5 8; X,V=eig(G

20、) 求矩阵本征值与本征函数 X = -0.4681 -0.8920 -0.5321 -0.7173 0.4505 -0.4583 -0.5161 0.0378 0.7119 V = 17.6707 0 0 0 -3.2096 0 0 0 2.5390,求矩阵行列式的值 det(G) ans = -144,求矩阵的逆 inv(G) ans = -0.1667 0.3056 -0.2222 0.1667 0.0278 -0.1111 -0.0417 -0.1319 0.2778,两种算符,矩阵运算算符:按矩阵运算法则定义 数组运算算符:按矩阵的对应元素进行运算, c=x/2 c = 0.5000

21、1.5000 2.0000 1.0000 3.0000 2.5000 1.5000 1.0000 2.0000,b:数组间的四则运算 注意:1、参与运算的数组必须具有相同的维数。 2、加、减不变,乘、除加点。, a=1 3 4;2 6 5;3 2 4; b=2 3 1;4 1 2;4 5 3; c=a+b c = 3 6 5 6 7 7 7 7 7, c=a.*b %注意点乘 c = 2 9 4 8 6 10 12 10 12 c=a./b %注意点除 c = 0.5000 1.0000 4.0000 0.5000 6.0000 2.5000 0.7500 0.4000 1.3333,c:数组

22、的幂运算(.) c=a.2 c = 1 9 16 4 36 25 9 4 16 c=a2 %矩阵的幂运算 c = 19 29 35 29 52 58 19 29 38, c=a.b 数组的幂运算为各对 应元素间的运算 c = 1 27 4 16 6 25 81 32 64,a./b=b.a,矩阵运算: 矩阵的加减运算与数组运算相同 乘除运算要满足矩阵运算法则., a=1 2 3; 2 3 4; b=4 5; 1 3; 8 2; c= a*b c = 30 17 43 27, A=15 7 5;12 3 14;7 10 11; B=6 7 3;11 14 13;4 10 9; C=A*B C =

23、 187 253 181 161 266 201 196 299 250 AC ans = 6.0000 7.0000 3.0000 11.0000 14.0000 13.0000 4.0000 10.0000 9.0000 C/B ans = 15.0000 7.0000 5.0000 12.0000 3.0000 14.0000 7.0000 10.0000 11.0000,注意:若A*B=C, 则B=AC, A=C/B,矩阵的转置 对于实矩阵用()符号或(.)求转置结果是一样的;然而对于含复数的矩阵,则()将同时对复数进行共轭处理,而(.)则只是将其行列重排 。, A=1+3i 3+5i

24、 2+4i 6+7i; A ans = 1.0000 - 3.0000i 2.0000 - 4.0000i 3.0000 - 5.0000i 6.0000 - 7.0000i A. ans = 1.0000 + 3.0000i 2.0000 + 4.0000i 3.0000 + 5.0000i 6.0000 + 7.0000i,1.2.3 符号变量,一、符号变量的生成 1、用单引号生成 f=exp(x) f = exp(x) g=a*x2+b*x+c=0 g = a*x2+b*x+c=0 h=D2y-2Dy-3y=0 h = D2y-2Dy-3y=0,2、用函数sym来生成 x=sym(ax+

25、b=0) x = ax+b=0 A=sym(a b c;d e f) A = a, b, c d, e, f,3、用函数syms来生成 syms x y z a g=sin(x)/x g = sin(x)/x,什么是符号运算(与数值运算的区别) 数值运算中必须先对变量赋值,然后才能参与运算。 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。,2、符号变量的运算 syms x g=sin(x)/x g = sin(x)/x limit(g,0)求极限 ans = 1, subs(g,x,0.5) 赋值 ans = 0.9589,Subs(函数名,变量,数值),用符号变量生成带参数的

26、函数 例:FF=cos2(x2)+求出在 x=3, =2.1时的函数值并求导。, GG=sym(cos(x2)2+theta) GG = cos(x2)2+theta subs(GG,x,theta,3,2.1) ans = 2.9302 或: syms x theta subs(GG,x,theta,3,2.1) diff(GG,x) 求导 ans = -4*cos(x2)*sin(x2)*x,diff(函数名,变量),一、列阵 1、结构,1.2.4其它数据结构,列阵(array)储存多维数组; 数据网格(meshgrid)储存二元或三元数据对; 基元列阵(cell)储存大小不同的矩阵; 结

27、构数组(struct)可同时存入字符串和数据; 字符串(char)存入字符和文本。,A( i, j, k) 行列层,A1,1 A1,2 A1,3 A2,1 A2,2 A2,3 A3,1 A3,2 A3,3,A( i,j),例:A(3,2,1,2)表示?,约定:Dim维 : 1 列;2 行;3 层; 4 块,2、列阵的生成 指令1: cat(dim,A1,A2,A3,) 沿着dim指定的方向将A1,A2,A3,组合成一个矩阵, A=1 3;5 7 A = 1 3 5 7 B=2 4;6 8 B = 2 4 6 8 cat(1,A,B) ans = 1 3 5 7 2 4 6 8, cat(2,A

28、,B) ans = 1 3 2 4 5 7 6 8 D=cat(3,A,B) D(:,:,1) = 1 3 5 7 D(:,:,2) = 2 4 6 8,指令2: repmat(A,m,n,p) 将矩阵A在列、行、层 的方向分别复制m,n,p 次,例: repmat(A,2,3,3),二、数据网格, Z=(X.2+Y.2) surf (X,Y,Z)%画出三维立体图 Z = 0 1 4 9 1 2 5 10 4 5 8 13 9 10 13 18,0 1 2 3,3 2 1, x=0 1 2 3;y=0 1 2 3; X,Y=meshgrid(x,y) X = 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 Y = 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3,1、定义:把平面上区域内所有 点的坐标表示出来的2个矩阵叫 平面上的数据网格。,2、指令:X,Y=meshg

温馨提示

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

评论

0/150

提交评论