当前位置:文档之家› matlab第五讲教案(最新整理)

matlab第五讲教案(最新整理)

西南科技大学本科生课程备课教案计算机技术在安全工程中的应用——Matlab 入门及应用授课教师:徐中慧班级:专业:安全技术及工程第四章课型:新授课教具:多媒体教学设备,matlab 教学软件一、目标与要求掌握矩阵与数组的相关运算,及matlab 中矩阵运算的相关函数,包括三角分解、正交变换、奇异值分解、特征值分解、矩阵的秩的运算等。

二、教学重点与难点本堂课教学的重点在于引导学生在编写matlab 程序时能够熟练运用矩阵运算的相关函数实现相应的功能。

三、教学方法本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。

四、教学内容一、课后习题的解说。

(1)在计算器发明(约1974 年)之前,人们需要用数学用表来计算正弦、余弦和对数值。

创建正弦值数学用表的步骤如下:①创建角度矢量、范围在 0~3600之间,步长为 180。

②计算正弦值,用角度和计算出来的正弦值创建表格。

③分别用两个 disp 语句给表格加上标题和表头。

④用 fprintf 显示数据,要求小数点后有两位有效数字。

解:angle=0:18:360; sine=sin(angle/180*pi);disp(' SINE TABLE ')disp(' Angle Sine ')fprintf(' %4.2f %4.2e\n',[angle;sine])(2)使用搜索引擎或浏览器搜索英镑、日元、欧元和人民币对美元的汇率,并把输出结果绘制成表。

要求用 disp 在表格中添加标题和表头,用 fprintf 输出格式化数据。

①创建日元和美元的汇率表,表中共有 25 行,从 5 日元开始,步长为 5 日元②创建人民币和美元的汇率表,表中共有 30 行,从 5 元开始,步长为 5 元③创建数据表格,表中有 5 列,第一列是美元,第二列是欧元,第三列是英镑,第四列是人民币,第五列是日元。

计算与 1 到 10 美元等价的其它货币值。

(将结果输出到.txt 文件中,此步骤属选做)解:①jpy=5:5:25*5;usd1=jpy*0.01301;disp('JPY &USD TABLE')disp('JPY USD')fprintf(' %4.2f %4.2f\n',[jpy;usd1])a a')fprintf('%4.2f%4.2f\n',[cny;usd2])③usd=1:1:10;eur=usd* 0.7323;gbp=usd* 0.6405; cny=usd* 6.3816;jpy=usd*76.358;disp(' AS Exch') disp(' USD EUR GBP RMB JPY')fprintf('%4.2f%4.2f%4.2f%4.2f%4.2f \n',[ usd;eur;gbp;cny;jpy])二、矩阵的相关知识掌握矩阵与数组的相关运算,及 matlab 中矩阵运算的相关函数,包括三角分解、正交变换、奇异值分解、特征值分解、矩阵的秩的运算等。

(1) 矩阵的定义由 m×n 个数 a ij (i=1,2,…,m;j=1,2,…n )排成的 m 行 n 列的数表⎧a 11 ⎪ 21 a 12 a 22a 1n ⎫⎪ 2n A = ⎪ ⎪ ⎨ ⎬ ⎪ ⎪ ⎪⎩a 31 称为 m 行 n 列的矩阵,简称 m×n 矩阵。

(2) 相关概念a 32 a 3n ⎪⎭①行数与列数都等于 n 的矩阵称为 n 阶矩阵或 n 阶方阵。

②只有一行的矩阵A = (a 1 a 2 a n )称为行矩阵,又称行向量。

③只有一列的矩阵⎛ a 1 ⎫ a ⎪ B = 2 ⎪⎪ a ⎪ ⎝ n ⎭④两个矩阵行数相等,列数也相等,就称为它们是同型矩阵 ⑤元素都是 0 的矩阵称为零矩阵⑥设 A,B 均为 n×n 矩阵,I 为 n 阶单位矩阵。

若 AB=I,则 B 为 A 的逆矩阵。

A 也是 B 的逆矩阵。

⑦若矩阵 A 无逆矩阵,则称 A 为奇异矩阵。

若 A 有逆矩阵,则称 A 是非奇异矩阵,简称非异阵。

即非奇异矩阵就是可逆矩阵②cny=5:5:30*5;usd2= cny *0.1567;disp('CNY &USD TABLE disp('RMB USD')三、Matlab 中矩阵的创建(1)M A T L A B中矩阵创建的规则a、矩阵元素必须在”[ ]”内;b、矩阵的同行元素之间用空格(或”,”)隔开;c、矩阵的行与行之间用”;”(或回车符)隔开;d、矩阵的元素可以是数值、变量、表达式或函数;e、矩阵的尺寸不必预先定义。

(2)矩阵的创建方法①、直接输入法a.最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。

矩阵用方括号括起来,元素之间用空格或逗号分隔开,矩阵行与行之间用分号分开。

b.在 workspace 中单击右键定义一个新的变量,双击变量名在 variable editor 中输入矩阵元素。

c.建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中 e1 为初始值,e2 为步长,e3 为终止值。

d.还可以用 linspace 函数产生行向量,其调用格式为:linspace(a,b,n) ,其中 a 和b 是生成向量的第一个和最后一个元素,n 是元素总数。

可以看出来 linspace(a,b,n)与a:(b-a)/(n-1):b 等价。

e.用命令 logspace 可以创建一个等比数组,需要三个输入值。

前两个数值分别作为 10 的指数,最后一个值是数组中元素的个数。

logspace(1,3,3)ans =10 100 1000②、利用 MATLAB 函数创建矩阵基本矩阵函数如下:ones()函数:产生全为 1 的矩阵,ones(n):产生 n*n 维的全 1 矩阵,ones(m,n):产生 m*n 维的全 1 矩阵;zeros()函数:产生全为 0 的矩阵,zeros(n):产生 n*n 维的全 0 矩阵,zeros(m,n):产生 m*n 维的全0 矩阵;rand()函数:产生在(0,1)区间均匀分布的随机阵;rand (n):产生n*n 维的随机矩阵,rand (m,n):产生m*n 维的随机矩阵;eye()函数:产生单位阵;eye(n):产生 n*n 维的单位矩阵,eye(m,n):产生 m*n 维的单位矩阵;randn()函数:产生均值为 0,方差为 1 的标准正态分布随机矩阵。

③对角矩阵a.用函数diag 可以提取矩阵对角线上的元素。

A=[1 2 3;3 4 5;1 2 3];diag(A)b.定义函数diag 的第二个输入参数k,可以提取出其它对角线上的元素。

若k 为正数,则提取矩阵右上角线上的元素;若k 为负数,则提取左下角对角线上的元素。

⎡1 2 3⎤A =⎢3 4 5⎥⎢⎥⎢⎣1 2 3⎥⎦c.如果函数diag 的输入不是二维矩阵,而是矢量B=[1 2 3];那么,Matlab 会把输入矢量作为对角线元素产生一个新的矩阵,并将新矩阵的其它元素置为零:④在M a t l a b中也可以用已经定义的矩阵来定义其它矩阵B=[1.5,3.1]; B=[1.5,3.1];S=[3.0,B] S=3.0,B];S = T=[1 2 3;S]3.0000 1.5000 3.1000 T =1.00002.00003.00003.0000 1.5000 3.1000如果需要对矩阵的内容进行修改和添加,则可以直接用序号定义元素,这个过程叫做索引数组。

B=[1.5,3.1]; B=[1.5,3.1];S=[3.0,B] S=[3.0,B];S = T=[1 2 3;S]3.0000 1.5000 3.1000 T =S = 1.0000 2.0000 3.00003.0000 2.0000 3.1000 3.0000 1.5000 3.1000T(2,3)=3.5T =1.00002.00003.00003.0000 1.5000 3.5000⑤冒号的使用冒号运算符常用于定义一个新矩阵或修改原有矩阵。

先用冒号定义一个等差数列H=1:8H =1 2 3 4 5 6 7 8注:上述矩阵默认步长等于 1。

如果 3 个数之间使用冒号,则中间的数值为步长。

time=0:0.5:2.0time =0 0.5000 1.0000 1.5000 2.0000⎪ ⎝ ⎭在进行数值计算时,常用冒号从矩阵中提取数据。

如果冒号用在代表行或列的序号位置,则表示所有的行或所有的列。

⎛ 1 2 3 4 5 ⎫ M = 2 3 4 5 6 ⎪3 4 5 6 7 ⎪提取矩阵 M 第一列的命令为M=[1:5;2:6;3:7]; x=M(:,1) x =1 2 3上面的语句可以理解为提取第 1 列的所有行。

同理还可以提取行数据M=[1:5;2:6;3:7]; z=M(1,:) z =1 23 4 5上面的语句可以理解为提取第 1 列的所有行。

如果不需要提取整行或整列,冒号可以理解为“从_ 行到_行” 或“从_列到_列” M=[1:5;2:6;3:7]; W=M(2:3,:) W =2 3 4 5 6 3 4 5 6 7语句的含义为提取第 2 行到第 3 行的所有列。

提取矩阵 M 右下角的四个数: M=[1:5;2:6;3:7]; W=M(2:3,4:5) W =5 6 6 7如果在矩阵名后直接加上冒号:M (:),就会把原矩阵转换成一个长的列矢量。

另一种方法是用序号标示元素。

例如矩阵 M 中第 2 行、第 3 列元素序号是 8(数完第 1 列,接下来再数第 2 列,直到第 3 列才是相应的元素)。

M (8) ans=4提示如果不知道矩阵有多少行或多少列,则可以用单词 end 表示最后一行或最后一列。

M=[1:5;2:6;3:7]; M=[1:5;2:6;3:7]; M=[1:5;2:6;3:7]; M(1,end) M(end,end) M(end) ans =ans =ans =577(3)练习①创建一个 3×3 的全零矩阵zeros(3)②创建一个 3×4 的全零矩阵zeros(3,4)③创建一个 3×3 的全 1 矩阵ones(3)④创建一个 5×3 的全 1 矩阵ones(5,3)⑤创建一个 4×6 的矩阵,矩阵中所有元素都等于C = ⨯ = = ⎝ ⎭ ⎝ ⎭ ⎝ ⎭ ⎝ ⎭ a=ones(4,6); a=a*pi a =3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416⑥用函数 diag 创建一个对角线元素为 1、2、3 的矩阵。

相关主题