您的位置:首页 > 编程语言 > MATLAB

MATLAB矩阵操作【z】

2010-08-04 20:10 225 查看
[b]特殊矩阵的实现[/b]

[b]单位阵的生成
eye(n)
eye(m,n) [/b]

[b]零矩阵的生成
zeros(n)
zeros(m,n) [/b]

[b]全1矩阵的生成
ones(n)
ones(m,n) [/b]

[b]随机元素矩阵函数
rand(n,m)
rand(n) [/b]

[b]对角矩阵
diag(V) % V=[1 2 3 4]; [/b]

[b]伴随矩阵
compan(P) % p=[1,a1,a2,...,an] [/b]

[b]上三角矩阵 下三角矩阵
triu(B)
tril(B) [/b]

[b]矩阵函数[/b]

[b]矩阵的行列式
det(A) [/b]

[b]矩阵求逆
inv(A)
pinv(A) [/b]

[b]矩阵的迹
trace(A) [/b]

[b]矩阵的秩
rank(A) [/b]

[b]矩阵三角分解
[L,U] = lu(A) [/b]

[b]矩阵奇异值分解
cond(A) [/b]

[b]矩阵的范数
N = norm(A,选项) [/b]

[b]矩阵的特征多项值与特征向量
[V,D]=eig(A) [/b]

[b]矩阵的特征多项式、特征方程和特征根
P = poly(A)
V = roots(P) [/b]

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

[b][b]MatLab中的[/b][/b]

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

[b]一、[b]矩构造[/b][/b]

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

例1.利用pascal函数来产生一个[b]矩[/b]

A=pascal(3)
A=
1 1 1
1 2 3
1 3 6


例2.利用magic函数来产生一个[b]矩
B=magic(3)
B=[/b]

8 1 6
3 5 7
4 9 2


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

>>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.利用直接输入法可产生列[b]矩、行及常数[/b]

u=[3;1;4]
u=
3
1
4


v=[2 0 -1]
v=
2 0 -1


s=7
s=
7


[b]二、[b]矩的基本运算[/b][/b]

1、四则运算

例5.[b]矩的加法[/b]

X=A+B
X=
9 2 7
4 7 10
5 12 8


例6.[b]矩的减法
Y=X-A
Y=
8 1 6
3 5 7
4 9 2 [/b]

[b]注: 若二个的大小不完全相同,则会出错![/b]

例如,X=A+u
??? Error using ==> plus


Matrix dimensions must agree。

例7.[b]矩的乘法[/b]

X=A*B

X=

15 15 15

26 38 26

41 70 39

[b]注: 若第一个的列数和第二个行数不相同,这两个就不可以相乘。[/b]

例如,X=A*v

??? Error using ==> mtimes

Inner matrix dimensions must agree。

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

2、[b]矩的转置、逆运算及行列式运算[/b]

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

例8.求[b]矩B的转置[/b]

X=B'
X=
8 3 4
1 5 9
6 7 2


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

例9.求[b]矩A的逆[/b]

X=inv(A)

X=

3 -3 1

-3 5 -2

1 -2 1

在[b]MATLAB中,求的行列式大小,可用函数“det”实现。[/b]

例10.求[b]矩A的行列式[/b]

X=det(A)

X=

1

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

例如,>>X=inv(u)

??? Error using ==> inv

Matrix must be square。

再如,X=det(u)

??? Error using ==> det

Matrix must be square。

[b]三、[b]矩的常用函数运算[/b][/b]

1.[b]矩的特征值运算[/b]

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

例11.求[b]矩A的特征值及特征向量[/b]

>>[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]bc分别为特征向量和特征值。[/b]

2.[b]矩的秩运算[/b]

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

例12.求[b]矩A的秩[/b]

>>x=rank(A)

x=

3

3.[b]矩的正交化运算[/b]

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

例13.求[b]矩A的正交基[/b]

>>x=orth(A)

x=

-0.1938 0.8165 0.5438

-0.4722 0.4082 -0.7812

-0.8599 -0.4082 0.3065

4.[b]矩的迹运算[/b]

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

例14.求[b]矩A的迹[/b]

>>x=trace(A)

x=

9

[b]四、特殊[b]矩的生成[/b][/b]

[b]MATLAB中提供了几个特殊,主要包括如下:[/b]

1.空[b]矩[/b]

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

例15

>>[]

ans=

[]

2.单位[b]矩[/b]

在[b]MATLAB中,单位可用函数“eye(n,m)”实现,其中n表行数,m表列数。[/b]

例16

>>x=eye(4,3)

x=

1 0 0

0 1 0

0 0 1

0 0 0

3.全部元素为1的[b]矩[/b]

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

例17

>>x=ones(4,3)

x=

1 1 1

1 1 1

1 1 1

1 1 1

4.全部元素为0的[b]矩[/b]

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

例18

>>x=zeros(4,3)

x=

0 0 0

0 0 0

0 0 0

0 0 0

5.魔方[b]矩[/b]

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

6.伴随[b]矩[/b]

在[b]MATLAB中,某个的伴随可用函数“compan(A)”实现。[/b]

例20

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

>>x=compan(u)

x=

0 7 -6

1 0 0

0 1 0

[b]注: 函数compan()中的变量必须是向量形式,而不能是。[/b]

7.随机[b]矩[/b]

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

例21

>>x=rand(4,3)

x=

0.9501 0.8913 0.8214

0.2311 0.7621 0.4447

0.6068 0.4565 0.6154

0.4860 0.0185 0.7919

8.帕斯卡[b]矩
我们知道,二次项展开后的系数随n的增大组成一个三角形表,称为[/b]

杨辉三角形。由杨辉三角形表组成的[b]矩称为帕斯卡(Pascal),函数pascal(n)生成一个n阶帕斯卡。[/b]

例22

>>x=pascal(3)

x=

1 1 1

1 2 3

1 3 6

9.范得蒙[b]矩[/b]

在[b]MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙。[/b]

原帖:http://hi.baidu.com/%B6%AC%CC%EC%C0%EF%B5%C4%D2%BB%BF%C3%B2%DD/blog/item/3d2190878d6d662fc75cc371.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: