矩阵及其运算

第二讲

教学目的:让学生掌握矩阵及其运算、符号运算。

教学内容:矩阵及其运算、符号运算。

教学方法:讲解法。

讲授正文:

1.4 矩阵及其运算

矩阵是Matlab 数据存储的基本单元,而矩阵的运算是Matlab 语言的核心,在Matlab 语言系统中几乎一切运算均是以对矩阵的操作为基础的。只有一行的矩阵又称为数组,但在Matlab 中数组没有行与列的概念,其运算多为元素间的运算,这点与矩阵有不同之处,因此以下分别介绍数组与矩阵。

1.4.1数组的输入与运算

1.数组的输入

创建简单数组的方法见表1-9。

表1-9 创建简单数组的方法

例如:

>>b=[1,3,5,7,9,11] %元素之间要用逗号或空格分开

b =

1 3 5 7 9 11

>>c=1:2:11

c=

1 3 5 7 9 11

>>d=linspace(1,11 ,6)

d=

1 3 5 7 9 11

2.数组元素的访问

访问一个元素:x(i)表示访问数组x 的第i 个元素.

访问一块元素:x(s:h :t) 表示访问数组x 的从第s 个元素开始,以步长为h 到第t 个元素(但不超过t ),h 可以为负数,h 缺损时为1.

直接使用元素编址序号:x([a,b,c,d])表示提取数组x 的第a 、b 、c 、d 个元素构成一个新的数组[x(a) x(b) x(c) x(d)].

3.标量与数组的运算

标量与数组的加、减、乘、除、乘方运算是数组的每个元素与该标量施加相应的加、减、乘、除、乘方运算,见表1-10。

表1-10 标量与数组的运算

其中a=[a1,a2,„,an]是数组,c 为标量。

4.数组与数组的运算

数组与数组的运算要求数组维数是相同的,其加、减、乘、除、幂运算可按元素对元素方式进行,不同维数的数组不能进行运算,见表1-11。

见表1-11 数组与数组的运算

其中a=[a1,a2,„,an], b=[b1,b2,„,bn]。

注意:数组的乘除法是指两同维数组对应元素之间的乘除法,它们的运算符只能为“. *”和“. /”或“. \”,而表达式a*b、a/b、a^b是没有意义的!

1.4.2矩阵的输入与运算

1.矩阵的输入

(1)直接输入法。最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号或回车键分隔。输入矩阵时,严格要求所有行有相同的列。例如

>>A=[2,3,5;1,3,5;6,9,4] %行之间用分号隔开

A=

2 3 5

1 3 5

6 9 4

(2)外部文件读入法。Matlab 语言允许用户调用在Matlab 环境之外定义的矩阵。可以

利用任意的文本编辑器编辑所要使用的矩阵,矩阵元素之间以特定分断符分开,并按行列布置。读入矩阵的一种方法可参考3.3节数据交换系统。另外也可以利用load 函数,其调用方法为:Load+文件名[参数]

例如:事先在记事本中建立文件:data1.txt

1 1 1

1 2 3

1 3 6

在Matlab 命令窗口中输入:

>> load data1.txt

>> data1

data1=

1 1 1

1 2 3

1 3 6

Load 函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,如果不给定文件名,则将自动认为matlab.mat 文件为操作对象,如果该文件在Matlab 搜索路径中不存在时,系统将会报错。

2.特殊矩阵的建立

对于一些比较特殊的矩阵(单位阵、矩阵中含1或0较多),由于其具有特殊的结构,MA TLAB 提供了一些函数用于生成这些矩阵。见表1-12。

表1-12

3.矩阵中元素或块的操作

对矩阵中元素或块的常用操作,见表1-13。

表1-13 矩阵中元素或块的常用操作

例如:

A=[1,2,3;4,5,6;7,8,9]

A =

1 2 3

4 5 6

7 8 9

>> A(2,:) %取出A 的第2行的所有元素

ans =

4 5 6

>> A([1 3],[2,3]) %取出A 的1,3行与2,3列交叉的元素

ans =

2 3

8 9

>> A(3:-1:1,:) %以逆序提取矩阵A 的第1~3行,构成新矩阵,即进行了上下行翻转 ans =

7 8 9

4 5 6

1 2 3

4. 矩阵的基本数学运算

矩阵的基本数学运算包括矩阵的四则运算、与常数的运算、逆运算、行列式运算、秩运算、特征值运算等基本函数运算,这里进行简单介绍。

(1)四则运算 矩阵的加、减、乘运算符分别为“+,—,*” ,用法与数字运算几乎相同,但计算时要满足其数学要求(如:同型矩阵才可以加、减)。

矩阵的除法有两种形式:左除“\”和右除“/”。其运算规则见表1-1算术运算符。

(2)与常数的运算 常数与矩阵的运算即是同该矩阵的每一元素进行运算。但需注意进行数除时,常数通常只能做除数。

(3)基本函数运算 矩阵的函数运算是矩阵运算中最实用的部分,常用的主要有以下几个,见表1-14。

表1-14 矩阵的函数运算命令

例如:

>>a=[2 1 –3 –1; 3 1 0 7; -1 2 4 –2; 1 0 –1 5];

>>det(a)

ans =

-85

>> inv(a)

ans =

-0.0471 0.5882 -0.2706 -0.9412

0.3882 -0.3529 0.4824 0.7647

-0.2235 0.2941 -0.0353 -0.4706

-0.0353 -0.0588 0.0471 0.2941

>> [v,d]=eig(a)

v =

-0.5843 0.9223 -0.1387 - 0.2449i -0.1387 + 0.2449i

0.7160 0.0904 -0.7828 -0.7828

-0.3806 -0.0066 -0.0803 + 0.3491i -0.0803 - 0.3491i

0.0333 -0.3756 -0.4212 - 0.0489i -0.4212 + 0.0489i

d =

-1.1228 0 0 0

0 2.5266 0 0

0 0 5.2981 + 1.3755i 0

0 0 0 5.2981 - 1.3755i

(4)数据处理

表1-15 常用数据处理的命令

另外,矩阵的运算中还有幂运算(运算符为 .^ )、指数运算(exp )、对数运算(log )、和开方运算(sqrt )等,这里就不一一说明了。

1.5 符号运算介绍

Matlab 符号运算是通过集成在Matlab 中的符号数学工具箱(Symbolic Math Toolbox)来实现的。该工具箱不是基于矩阵的数值分析,而是使用字符串来进行符号分析与运算。实际上,Matlab 中的符号数学工具箱是建立在Maple 基础上的,当进行Matlab 符号运算时,它就请求Maple 软件去计算并将结果返回给Matlab 。

Matlab 的符号数学工具箱可以完成几乎所有得符号运算功能。这些功能主要包括:符号表达式的运算,符号表达式的复合、化简,符号矩阵的运算,符号微积分、符号函数画图,符号代数方程求解,符号微分方程求解等。此外,工具箱还支持可变精度运算,既支持符号运算并以指定的精度返回结果。

1.5.1符号对象建立

符号对象是用字符串形式表示的,但又不同于普通的全由字母组成的字符串,往往很像数学中的表达式,事实上Matlab 的变量与表达式都可为符号对象。符号对象由sym ( )和syms 建立。例如:

(1)符号变量的建立

①>> syms x y z %建立符号变量x ,y ,z

②>> t=sym(„t ‟); %建立符号变量t

sym 与syms 的区别在于:syms 可以建立多个变量,而sym ()只建立一个符号变量。两者有时可以相互替代。例如:

>> syms x y z 等价于下面的三条语句

>> x=sym(„x‟);

>> y=sym(„y‟);

>> z=sym(„z‟);

(2)符号表达式的建立

符号表达式的建立常用有三种方法

①>> syms x y

z=x^3+2*y^2-5 %建立符号表达式

②>> f=sym(„x^2+3*x+2‟); %建立符号表达式f=x^2+3*x+2

③>> f= „x^2+3*x+2‟; %用单引号创建的符号表达式对空格很敏感,不要在字符间随意添加空格!

(3)符号矩阵的建立

①使用sym 函数直接生成,如

>> A=sym(‟[1+x, sin(x); 5, exp(x)]‟)

②将数值矩阵转化成符号矩阵

>> B=[2/3, sqrt(2); 5.2, log(3)]

>> C=sym(B)

最后指出一点:符号对象建立时可以附加属性real 、positive 和 unreal ,例如,

>> x=sym('x','real') %表明x 是实的

>> k=sym('k','positive') %表明k 是正的

>> x=sym('x','unreal') %去掉x 的附加属性

1.5.2符号运算函数

我们在表1-12中列出一些常用的符号运算函数名称和功能,其参数设置,读者可借助Matlab 的帮助系统自己研读。函数funtool 是一个直观的图形化函数计算器,很方便进行代数运算和微积分运算。

表1-16 符号运算函数

1.6 实例

下面通过1个实例, 说明MATLAB 的通用操作界面的使用方法, 使读者对软件环境更加熟悉, 并且掌握如何在命令窗口中使用简单命令。

实验1.1 MATLAB通用操作界面综合练习实验

按照以下步骤进行。

(1) 启动MA TLAB 。

(2) 在命令窗口中输入以下几行命令:

>> a=[1,2,3;4,5,6;7,8,9];

>> b=[1,3,5;2,4,6;5,7,9];

>> c='矩阵加法计算';

>> d=a+b;

>> wlb='矩阵乘法计算';

>> w=a*b;

(3)打开工作空间窗口查看变量, 共有6个变量, 如图1-6所示为MA TLAB 界面左上侧的工作空间窗口。

图1-6

(4)双击其中的变量“a ”,出现数组编辑器窗口(Array Editor), 如图1-7所示为该变量的详细信息。

图1-7

(5)打开历史命令窗口(Command History),如图1-8所示, 用光标选中上面的6行命令,单击鼠标右键,在快捷菜单中选择“Create M-File”命令生成M 文件。

图1-8

(6)出现M 文件编辑/调试器窗口(Editor/Debugger), 如图1-9所示。单击工具栏的“Save ”按钮,将文件保存为“d:\MATLAB7\work\jinjishuxueshiyan\shiyan101.m”。

图1-9

(7)打开当前目录浏览器窗口(Current Directory Browser),将当前目录设置为“D:\MATLAB7\work\jinjishuxueshiyan”,可以看到刚保存的“shiyan101.m ”文件,在命令窗口中输入“shiyan101”运行文件。

(8)在命令窗口中输入“save shiyan101” 命令, 从当前目录目录浏览器窗口可以看到在当前目录下生成了一个“shiyan101.mat ”数据文件,如图1-10所示。

图1-10

(9)在命令窗口中输入“exit ”命令退出MA TLAB 。

(10)重新启动MATLAB ,在命令窗口中输入“shiyan101”此时不能运行该文件,因为该文件不在MATLAB 的搜索路径中。单击界面的菜单“File ”—〉“Set Path ”, 打开设置对话框,选择“Add Folder ”按钮,将“D:\MATLAB7\work\jinjishuxueshiyan” 目录添加到搜索路径中,如图1-11所示,单击“save ” 按钮关闭该对话框,重新在命令窗口中输入“shiyan101” 则可以运行该文件。

图1-11

(11)退出MATLAB 后重新启动,打开工作空间窗口,此时将看到没有内存变量。如果要将“shiyan101.mat ”数据文件的变量导入,可选择菜单“File ”—〉“Import Data ”命令,然后选择“D:\MATLAB7\work\jinjishuxueshiyan\ shiyan101.mat ”文件,打开得如图1-12所示的“Import Wizard”窗口。

图1-12

在该窗口中将要导入的变量前的复选框选中,如选中“a ”, “b ”, “c ”, “d ”四个变量,然后单击 “finish ”按钮,查看工作空间中出现的4个变量。

(12)如果要查看文件“shiyan101.m ”的内容,只要在MA TLAB 命令窗口中输入“type shiyan101”命令,则可看到文件的内容如下:

>> type shiyan101

a=[1,2,3;4,5,6;7,8,9];

b=[1,3,5;2,4,6;5,7,9];

c='矩阵加法计算';

d=a+b;

wlb='矩阵乘法计算';

w=a*b;


相关文章

  • 实验一_矩阵的基本运算
  • 实验一.矩阵的基本运算 一. 问题 已知矩阵A .B .b 如下: 4-11⎡3⎢6507⎢-47-1⎢1A =⎢-45-6⎢2 ⎢-36-78⎢-491⎣8-94612-1310⎤-16⎥⎥-8⎥⎥ -8⎥1⎥⎥0⎦ 246-32⎤⎡1⎢ ...

  • 对称不定矩阵三对角化约化方法的新讨论
  • 对称不定矩阵三对角化约化方法的新讨论 作者:苏尔 来源:<上海师范大学学报·自然科学版>2013年第06期 摘要:对称不定矩阵实现三对角分解PAPT=LTLT的关键问题是如何从Tk-1约化到Tk进行递推计算,直接计算的工作量很大 ...

  • 半导体所硅基光学矩阵处理器研究取得突破
  • 文章来源:半导体研究所发布时间:2012-06-05[字号: 小  中  大 ] 数字信号处理中的大多数算法均可转化为矩阵运算,光信号由于本征的并行和高带宽特性,非常适合进行矩阵运算.因此,为电学数字信号处理器嵌入光学运算内核是非常有前景的 ...

  • 数据结构--稀疏矩阵运算器
  • 数据结构 课程设计报告 设计题目:稀疏矩阵运算器 年 级 班 级 姓 名 学 号指导教师 起止时间 学期 一.实验目的 通过实习,了解并初步掌握设计.实现较大系统的完整过程,包括系统分析.编码设计.系统集成.以及调试分析,熟练掌握数据结构的 ...

  • 2013-2014第一学期线性代数 教学大纲
  • 课程号:20112730 课程名称:大学数学(理工) 线性代数 课程号:20112830 课程名称:大学数学(III )线性代数 开课学期:秋季或春季(学期课) 总学时:58 和58 学分:3 和3 先修课程:初等数学 基本目的:介绍线性代 ...

  • 8矩阵特征值的计算
  • 矩阵特征值的计算 §1幂法与逆幂法 1.1幂法 幂法是一种计算矩阵的按模最大的特征值(称此特征值为矩阵的主特征值)及对应的特征向量的迭代方法,特别适用于大型稀疏矩阵.反幂法是计算海森伯格矩阵或三对角矩阵的对应一个给定近似特征值的特征向量的有 ...

  • 基于QR分解算法的任意阶复矩阵求逆的DSP实现
  • 2010年第23卷第4期 E l ec tron i c Sci &T ech /Apr 15, 2010 协议 算法及仿真 基于QR 分解算法的任意阶复矩阵求逆的DSP 实现 倪 涛, 丁海锋, 阮黎婷, 张志强, 赵前晟 (西安 ...

  • 线性代数基础讲义
  • 2015考研数学线性代数基础讲义 第一章 行列式 一.基本内容 1.排列与逆序 定义 :由 n 个自然数1, 2,3,..., n 组成的无重复有序实数组 i 1 , i 2 , i n 称为一个 n 级排列. 定义 :在一个 n 级排列中 ...

  • 矩阵的秩的性质以及矩阵运算和矩阵的秩的关系
  • 高等代数第二次大作业 1120133839 周碧莹 30011303班 矩阵的秩的性质 1.阶梯型矩阵J的行秩和列秩相等,它们都等于J的非零行的数目:并且J的主元所在的列构成列向量的一个极大线性无关组. 2.矩阵的初等行变换不改变矩阵的行秩 ...

© 2024 范文参考网 | 联系我们 webmaster# 12000.net.cn