收藏 分享(赏)

第1讲 MATLAB入门.ppt

上传人:dreamzhangning 文档编号:3232995 上传时间:2018-10-08 格式:PPT 页数:72 大小:1.11MB
下载 相关 举报
第1讲 MATLAB入门.ppt_第1页
第1页 / 共72页
第1讲 MATLAB入门.ppt_第2页
第2页 / 共72页
第1讲 MATLAB入门.ppt_第3页
第3页 / 共72页
第1讲 MATLAB入门.ppt_第4页
第4页 / 共72页
第1讲 MATLAB入门.ppt_第5页
第5页 / 共72页
点击查看更多>>
资源描述

1、,邓宇龙 Telephone:13187104414Email:,数学工具软件,课程介绍: 1、课时: 48学时 2、内容: (1)高等数学 (2)线性代数 (3)概率统计,数学工具软件,考核方式:平时考核=实验操作+实验报告+综 合练习成绩评定:平时成绩20%,平时考核80%(实验报告30%,实验操作20%,综合练习30%),数学工具软件,湖南科技学院数学与计算科学系,MATLAB入门,数学类科技应用软件:,数值计算(Number Crunching)型软件:Matlab, Xmath, Gauss, Mlab等. 它们对大批数据具有较强的管理、计算和可视化能力,运行效率高。,2. 数学分析

2、(Math Analysis)型软件:Mathematica, Maple等. 它们以符号计算见长,并可得到解析符号解和任意精度解,但处理大量数据是运行效率低。,Matlab 简介; Matlab 工作环境; 变量与函数; 数组; 矩阵; Matlab 命令系统; Matlab语言中的关系与逻辑运算; Matlab 编程。,一 Matlab 简介,它是一套高性能的数值计算和可视化数学软件。在 Matlab 环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形方式显示出来。,Matlab:矩阵实验室 Matrix + Laboratory 。 主要用于方便矩阵的存取,其基

3、本元素是无须定义维数的矩阵。,1984年,Cleve Moler & John Little 成立MathWorks公司,正是把Matlab推向市场。,MATLAB的发展历程,1 操作系统 : DOS Windows Unix/Linux2 版本:1984年 1.0 版(DOS)1992年 4.0 版2000年 6.0版(Release 12)2004年 7.0版(Release 14)2006年 R2006 (7.2,7.3版)2009年 R2009 (7.7,7.8版),Matlab 的主要特点:,4. 语法限制不严格,程序设计自由度大;,2. 运算符丰富;,3. 具有结构化的控制语句(如

4、 for 循环、while循环、break 语句和 if 语句)和面向对象编程的特性;,1. 语言简洁紧凑,使用方便灵活,库函数极其丰富;,5.图形功能强大;,Matlab 的五大通用功能: 数值计算功能(Numeric); 符号计算功能 (Symbolic); 数据可视化功能(Graphic); 数据图形文字统一处理功能(Notebook); 建模仿真可视化功能(Simulink)。,Matlab : Matlab 主包:数百个核心内部函数; 各种可选Toolbox”工具包”:功能性工具包:扩充Matlab的符号计算功能、图示建模仿真功能文字处理功能、硬件适时交互功能;学科性工具包:Cont

5、rol toolbox,Optimization tollbox,它可用来求解各类学科的问题,包括:信号处理、图象处理、控制、系统辨识、神经网络等.,6. 功能强大的工具箱;,8. 缺点:程序的执行速度较慢。,7. 源程序的开放性;,优点:功能强大;界面友善,语言自然;开放性强。编程效率高、易学易用.,运行Matlab的可执行文件,自动创建Matlab指令 窗(Command Window)。初学者可在命令窗键入: demo 或 intro(入门演示),发现指令不知如何使用时,help命令将告诉你使用。例: help sinSIN Sine. SIN(X) is the sine of the

6、 elements of X.,二 Matlab 工作环境,在Matlab下进行基本数学运算,只需将运算式直接打入提示号()之后,并按入Enter键即可。例如:,(10*19+2/4-34)/2*3 ans = 234.7500,Matlab可以将计算结果以不同的精确度的数字格式显示,可以在指令视窗上的功能选单上的Options 下选 Numerical Format,或直接在指令视窗键入以下的各个数字显示格式的指令。 format short (这是默认的),Matlab利用了二个游标键可以将所下过的指令叫回来重覆使用,CtrlC(即同时按Ctrl及C二个键)可以用来中止执行中的Matlab

7、的工作。,有三种方法可以结束Matlab 1.exit 2.quit 3.直接关闭Matlab的命令视窗(Command window),三 变量及其命名规则,1 变量MATLAB中变量的命名规则是: (1)变量名必须是不含空格的单个词; (2)变量名区分大小写; (3)变量名最多不超过19个字符; (4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号.,预定义的变量,而键入 clear 则是清除所有定义过的变量名称。,2、数学运算符号及标点符号,(1)MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果. (2)

8、“%” 后面所有文字为注释. (3) “.”表示续行.,三角函数和双曲函数,3、数学函数,3、数学函数,指数函数,复数函数,取整函数和求余函数,矩阵变换函数,其他函数,可查阅在线帮助 helpwin 中 Matlabelfun 或help elfun。,为MATLAB定义新函数,必须编写函数文件. 函数文件是文件名后缀为M的文件,这类文件的第一行必须是一特殊字符 function 开始,格式为:function 因变量名=函数名(自变量名) 函数值的获得必须通过具体的运算实现,并赋给因变量.,4、M文件,M文件建立方法:1. 在Matlab中,点:File-New-M-file2. 在编辑窗口

9、中输入程序内容3. 点:File-Save,存盘,M文件名必须与函数名一致。,Matlab的应用程序也以M文件保存。,例:定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2,function f=fun(x) f=100*(x(2)-x(1)2)2+(1-x(1)2,1.建立M文件:fun.m,2. 可以直接使用函数 fun.m,例如:计算 f(1,2), 只需在Matlab命令窗口键入命令: x=1 2 fun(x),Matlab的运算事实上是以数组 (array) 及矩阵 (matrix) 方式在做运算。, x=1 2 3 4 5 6 7 8 ;% 一维 1x8 阵列,

10、x = 1 2 3 4 5 6 7 8; 4 5 6 7 8 9 10 11 ; % 二维 2x8 矩阵,以;区隔各列的元素,四、数组,1 创建简单的数组, x=(0:0.02:1); % 以:起始值=0、增量值=0.0.2、终止值=1的矩阵,2 建立数组 上面的方法只适用于元素不多的情况,但是当元素很多的时候,则须采用以下的方式:, x=linspace(0,1,100); % 利用linspace,以区隔起始值=0,终止值=1之间的元素,数目=100, zeros(2,2)%全为0的矩阵,2 数组的方向行向量与列向量,,产生列向量有两种方法:直接产生 例 c=1;2;3;4转置产生 例 b

11、=1 2 3 4; c=b 说明:以空格或逗号分隔的元素指定的是不同列的元素,而以分号分隔的元素指定了不同行的元素.,x=logspace(first,last,n) 创建从first开始,到last结束,有n个元素的对数分隔行向量.,x=a b c d e f 创建包含指定元素的行向量,x=first:last 创建从first开始,加1计数,到last结束的行向量,x=first:increment:last 创建始于first,步长increment,终于last的向量,x=linspace(first,last,n) 创建从first开始,到last结束,有n个元素的行向量,3 数组的

12、运算,(1)标量-数组运算数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算.,设:a=a1,a2,an, c=标量,则:a+c=a1+c,a2+c,an+ca.*c=a1*c,a2*c,an*ca./c= a1/c,a2/c,an/c(右除)a.c= c/a1,c/a2,c/an (左除)a.c= a1c,a2c,ancc.a= ca1,ca2,can,(2)数组-数组运算当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行的,不同大小或维数的数组是不能进行运算的.,设:a=a1,a2,an, b=b1,b2,bn,则:a+b= a1+

13、b1,a2+b2,an+bna.*b= a1*b1,a2*b2,an*bna./b= a1/b1,a2/b2,an/bna.b=b1/a1,b2/a2,bn/ana.b=a1b1,a2b2,anbn,五 矩 阵,逗号或空格用于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩阵时,按Enter键也表示开始一新行. 输入矩阵时,严格要求所有行有相同的列. 例 m=1 2 3 4 ;5 6 7 8;9 10 11 12 p=1 1 1 12 2 2 23 3 3 3,1 矩阵的建立,特殊矩阵的建立:.,d=eye(m,n) 产生一个m行、n列的单位矩阵,c=ones(m,n) 产生一个m

14、行、n列的元素全为1的矩阵,b=zeros(m,n) 产生一个m行、n列的零矩阵,a= 产生一个空矩阵,当对一项操作无结 果时,返回空矩阵,空矩阵的大小为零., ones(3,3) %全为1的矩阵 ans = 1 1 1 1 1 1 1 1 1, rand(2,4);随机矩阵, a+b*I%复数阵列,2 矩阵中元素的操作,(1)矩阵A的第r行:A(r,:),(2)矩阵A的第r列:A(:,r),(4)取矩阵A的第i1i2行、第j1j2列构成新矩阵:A(i1:i2, j1:j2),(5)以逆序提取矩阵A的第i1i2行,构成新矩阵:A(i2:-1:i1,:),(6)以逆序提取矩阵A的第j1j2列,构

15、成新矩阵:A(:, j2:-1:j1 ),(7)删除A的第i1i2行,构成新矩阵:A(i1:i2,:)= ,(8)删除A的第j1j2列,构成新矩阵:A(:, j1:j2)= ,(9)将矩阵A和B拼接成新矩阵:A B;A;B,(3)依次提取矩阵A的每一列,将A拉伸为一个列向量:A(:),(2)矩阵-矩阵运算1 元素对元素的运算,同数组-数组运算。,3 矩阵的运算,(1)标量-矩阵运算同标量-数组运算。,2矩阵运算: 矩阵加法:A+B 矩阵乘法:A*B 方阵的行列式:det(A)determinant 方阵的逆:inv(A)inverse 方阵的特征值与特征向量:V,D=eigA eigenval

16、ue, a=1,2,3,4,;5,6,7,8;2,3,2,6,a =1 2 3 45 6 7 82 3 2 6, b=1,6,4,9;1,2,1,5;0,4,6,2,b =1 6 4 91 2 1 50 4 6 2, a.*b,ans =1 12 12 365 12 7 400 12 12 12, a*b ? Error using = * Inner matrix dimensions must agree.,六 Matlab 命令系统,可查阅在线帮助 helpwin 中Matlabgeneral 或 help general。,七 Matlab语言中的关系与逻辑运算,关系运算,ab ans

17、 = 0 0 1 1 1 1,a=b ans = 0 1 0 0 0 0,a=1:2:11; b=2:1:7;,a=b ans = 0 1 1 1 1 1,a=1,3,5,7,9,11; b=2,3,4,5,6,7.,逻辑运算,逻辑关系函数,Matlab提供如下几种控制流结构: For循环,While循环,If-Else-End结构和 switch-case-end结构。,八 Matlab编程,这些结构经常包含大量的 MATLAB 命令,故经常 出现在MATLAB程序中,而不是直接加在 Matlab 提示符下.,For循环允许一条语句或一组语句被重复执行预 先指定的次数。For循环的一般形式是

18、:for x =array语句end,1.For 循环,for n=1:10x(n)=sin(n*pi/10);endx,例 对n=1,2,10,求xn= 的值,在 for 和 end 语句之间的语句按数组中的每一列执行一 次。在每一次迭代中,x被指定为数组的下一列,即在第 n次循环中,x=array(:, n)。,x =0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0.5878 0.3090 0.0000,例 求1+2+100的和。,clear % 清除内存中保留的变量 sum=0; % 设置初值 for i=1:100; % for循环,

19、增量为1sum=sum+i; end sum,例 设计一个九九乘法表。,clear % 清除内存中保留的变量 for i=1:9;for j=1:9a(i,j)=i*j;end end % end,a =1 2 3 4 5 6 7 8 92 4 6 8 10 12 14 16 183 6 9 12 15 18 21 24 274 8 12 16 20 24 28 32 365 10 15 20 25 30 35 40 456 12 18 24 30 36 42 48 547 14 21 28 35 42 49 56 638 16 24 32 40 48 56 64 729 18 27 36 4

20、5 54 63 72 81,For循环不能用For循环内重新赋值循环变量n来终止; 在For循环内接受任何有效的Matlab数组 ; For循环可按需要嵌套; 当有一个等效的数组方法来解给定的问题时,应避免用For循环。例如,上面的例子可被重写为,注意:,n=1:10;x=sin(n*pi/10),与For循环以固定次数求一组命令的值相反, While 循环以不定的次数重复执行一组语句。 While循环的一般形式是:,while 表达式1语句1end,2.While 循环,只要表达式1里的所有元素为真,就执行while和 end之间的语句1,否则,就结束循环。,money=10000 year

21、s=0 while money20000years=years+1 money=money*(1+11.25/100) end,例 设银行年利率为11.25%。将10000元钱存入银行,问多长时间会连本带利翻一番?,例 求1100的偶数和。,clear x=0; sum=0; while x101sum=sum+2;x=x+2; end sum % 显示结果,3.IF-ELSE-END 结构,很多情况下,命令的序列必须根据关系的检验有 条件地执行。在编程语言里,这种逻辑由某种If- Else-End结构来提供。,如果在表达式1中的所有元素为真(非零),那么 就执行 if 和 end 语言之间的

22、语句1。,最简单的If-Else-End结构是:,if 表达式1语句1end,先建立 m文件fun1.m定义函数f(x),再在Matlab 命令窗口输入 fun1(2),fun1(-1)即可。,function f=fun1(x) if x1f=x2+1 end if x=1f=2*x end,echo %显示命令的执行过程 x=input(input the value of x) %通过键盘输入变量 x 的值 if x1y=1 end if (x0)&(x=1)y=x end if x=0y=0 end y %输出函数 y 的值,假如有两个选择,If-Else-End结构是:if 表达式1

23、语句1else语句2end,在这里,如果表达式1为真,则执行语句1;如果表达式是假,则执行语句2。,当有三个或更多的选择时,If-Else-End结构采用形式,if 表达式1语句1elseif 表达式2语句2elseif 表达式3语句3elseif 表达式4语句4elseif else语句 end,先建立M文件fun2.m定义函数f(x),再在Matlab命令窗口输入fun2(2),fun2(0.5), fun2(-1)即可。,function f=fun2(x) if x1f=x2+1 else if x=0f=x3elsef=2*xend end,4.switch-case-end结构,如

24、果在一个程序中,必须针对某个变量不同取 值情况进行相应操作,switch语句比if else语 句更方便。switch语句的一般形式为:,switch 分支条件(数值或字符串)case 数值(或字符串)条件1,语句1case 数值(或字符串)条件2语句2case 数值(或字符串)条件3语句3case .otherwise语句end,其中分支条件可以是一个函数、变量或者表达式. 如果条件1与分支条件匹配就执行语句1,退出循 环;否则,检验条件2,如果条件2与分支条件匹 配执行语句2,退出循环;否则,检验条件 3,.,当所有条件都不与分支条件匹配时就执 行最后的语句。注意otherwise是可以省略的。,对以下问题,编写M文件: (1)用起泡法对10个数由小到大排序. 即将相邻两个数比较,将小的调到前头. (2)有一个 矩阵,编程求出其最大值及其所处的位置. (3)编程求 (4)一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下. 求它在第10次落地时,共经过多少米?第10次反弹有多高? (5)有一函数 ,写一程序,输入自变量的值,输出函数值.,实验练习,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报