matlab矩阵的简单运算

  • 格式:doc
  • 大小:42.50 KB
  • 文档页数:16

特殊矩阵的实现

 单位阵的生成

eye(n)

eye(m,n)

 零矩阵的生成

zeros(n)

zeros(m,n)

 全1矩阵的生成

ones(n)

ones(m,n)

 随机元素矩阵函数

rand(n,m)

rand(n)

 对角矩阵

diag(V) % V=[1 2 3 4];  伴随矩阵

compan(P) % p=[1,a1,a2,...,an]

 上三角矩阵 下三角矩阵

triu(B)

tril(B)

矩阵函数

 矩阵的行列式

det(A)

 矩阵求逆

inv(A)

pinv(A) 求广义逆,非方阵的情况

 矩阵的迹

trace(A)  矩阵的秩

rank(A)

 矩阵三角分解

[L,U] = lu(A)

 矩阵奇异值分解

cond(A) SVD(A)

 矩阵的范数

N = norm(A,选项)

 矩阵的特征多项值与特征向量

[V,D]=eig(A)

 矩阵的特征多项式、特征方程和特征根

P = poly(A)

V = roots(P)

------------------------------------------------------------------------------------------------------------------

MatLab中的矩阵

我们知道,求解线性方程组是线性代数课程中的核心内容,而矩阵又在求解线性方程组的过程中扮演着举足轻重的角色。下面我们就利用科学计算软件MATLAB来演示如何使用矩阵,同时,也使学生对线性代数的认识更加理性。

一、矩阵的构造

在MatLab中,构造矩阵的方法有两种。一种是直接法,就是通过键盘输入的方式直接构造矩阵。另一种是利用函数产生矩阵。

例1.利用pascal函数来产生一个矩阵

A=pascal(3)

A=

1 1 1

1 2 3

1 3 6

例2.利用magic函数来产生一个矩阵

B=magic(3)

B= 8 1 6

3 5 7

4 9 2

例3.还可以利用函数产生一个4*3的随机矩阵

>>c=rand(4,3)

c=

0.9501 0.8913 0.8214

0.2311 0.7621 0.4447

0.6068 0.4565 0.6154

0.4860 0.0185 0.7919

例4.利用直接输入法可产生列矩阵、行矩阵及常数

u=[3;1;4]

u=

3

1

4 v=[2 0 -1]

v=

2 0 -1

s=7

s=

7

二、矩阵的基本运算

1、四则运算

例5.矩阵的加法

X=A+B

X=

9 2 7

4 7 10

5 12 8

例6.矩阵的减法

Y=X-A

Y=

8 1 6

3 5 7

4 9 2 注: 若二个矩阵的大小不完全相同,则会出错!

例如,X=A+u

??? Error using ==> plus

Matrix dimensions must agree。

例7.矩阵的乘法

X=A*B

X=

15 15 15

26 38 26

41 70 39

注: 若第一个矩阵的列数和第二个矩阵行数不相同,这两个矩阵就不可以相乘。

例如,X=A*v

??? Error using ==> mtimes

Inner matrix dimensions must agree。

在MATLAB中,矩阵的除法有两个运算符号,分别为左除“\”与右除“/”,矩阵的右除运算速度要慢一点,而左除运算可以避免奇异矩阵的影响,它们的作用主要用于求解线性方程组,我们在后面会涉及到矩阵的除法。

2、矩阵的转置、逆运算及行列式运算

与线性代数中一样,矩阵的转置只需用符号“,”来表示即可。

例8.求矩阵B的转置

X=B'

X=

8 3 4

1 5 9

6 7 2

线性代数中求矩阵逆的运算非常复杂,而在MATLAB中,矩阵的逆运算只需要函数“inv”来实现,这大大简化了计算过程。

例9.求矩阵A的逆

X=inv(A)

X=

3 -3 1

-3 5 -2

1 -2 1 在MATLAB中,求矩阵的行列式大小,可用函数“det”实现。

例10.求矩阵A的行列式

X=det(A)

X=

1

注: 在求矩阵的逆和行列式时,一定要求矩阵是一个方阵,否则会出错!

例如,>>X=inv(u)

??? Error using ==> inv

Matrix must be square。

再如,X=det(u)

??? Error using ==> det

Matrix must be square。

三、矩阵的常用函数运算

1.矩阵的特征值运算 在线性代数中,计算矩阵特征值及特征向量的过程相当麻烦,但在MATLAB中,矩阵特征值运算只需要函数“eig”或“eigs”即可。

例11.求矩阵A的特征值及特征向量

>>[b,c]=eig(A)

b=

-0.5438 -0.8165 0.1938

0.7812 -0.4082 0.4722

-0.3065 0.4082 0.8599

c=

0.1270 0 0

0 1.0000 0

0 0 7.8730

上例中的b、c矩阵分别为特征向量矩阵和特征值矩阵。

2.矩阵的秩运算 矩阵的秩在求解线性方程组中应用非常广泛,而在线性代数中计算矩阵的秩也非常复杂,但在MATLAB中,矩阵的秩只需要用函数“rank”即可。

例12.求矩阵A的秩

>>x=rank(A)

x=

3

3.矩阵的正交化运算

在MATLAB中,矩阵的正交化运算可由函数“orth”计算得到。下面的例子用来求矩阵的一组正交基,有了正交基就可以对矩阵进行正交化了。

例13.求矩阵A的正交基

>>x=orth(A)

x=

-0.1938 0.8165 0.5438

-0.4722 0.4082 -0.7812

-0.8599 -0.4082 0.3065 4.矩阵的迹运算

矩阵的迹是指矩阵主对角线上所有元素的和,在MATLAB中,矩阵的迹可由函数“trace”计算得到。

例14.求矩阵A的迹

>>x=trace(A)

x=

9

四、特殊矩阵的生成

MATLAB中提供了几个特殊矩阵,主要包括如下:

1.空矩阵

空矩阵用“[]”表示,空矩阵的大小为零,但变量名存在于工作空间中。

例15

>>[]

ans=

[]

2.单位矩阵 在MATLAB中,单位矩阵可用函数“eye(n,m)”实现,其中n表行数,m表列数。

例16

>>x=eye(4,3)

x=

1 0 0

0 1 0

0 0 1

0 0 0

3.全部元素为1的矩阵

在MATLAB中,全部元素为1的矩阵可用函数“ones(n,m)”实现。

例17

>>x=ones(4,3)

x=

1 1 1

1 1 1 1 1 1

1 1 1

4.全部元素为0的矩阵

在MATLAB中,全部元素为0的矩阵可用函数“zeros(n,m)”实现。

例18

>>x=zeros(4,3)

x=

0 0 0

0 0 0

0 0 0

0 0 0

5.魔方矩阵

魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。MATLAB提供了求魔方矩阵的函数“magic(n)”,其功能是生成一个n阶魔方阵。

6.伴随矩阵 在MATLAB中,某个矩阵的伴随矩阵可用函数“compan(A)”实现。

例20

>>u=[1 0 -7 6];

>>x=compan(u)

x=

0 7 -6

1 0 0

0 1 0

注: 函数compan()中的变量必须是向量形式,而不能是矩阵。

7.随机矩阵

随机矩阵在数理统计的研究中非常重要,它们表示元素服从某个分布如均匀分布、正态分布的矩阵。在MATLAB中,随机矩阵可用函数“rand(n,m)”实现。

例21

>>x=rand(4,3)

x=