Begtostudy(白途思)'s Professional Technology Blog

欢迎访问begtostudy的专业知识博客!主要是专业技术和算法为主。
  首页  :: 联系 :: 订阅 订阅  :: 管理

MATLAB矩阵操作【z】

Posted on 2010-08-04 20:10  白途思  阅读(2825)  评论(0编辑  收藏  举报

特殊矩阵的实现

  • 单位阵的生成
    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)
  • 矩阵的范数
    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

上例中的bc分别为特征向量和特征值

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=

    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.帕斯卡
    我们知道,二次项展开后的系数随n的增大组成一个三角形表,称为

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

例22

>>x=pascal(3)

x=

     1     1     1

     1     2     3

     1     3     6

9.范得蒙

MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙

 

原帖:http://hi.baidu.com/%B6%AC%CC%EC%C0%EF%B5%C4%D2%BB%BF%C3%B2%DD/blog/item/3d2190878d6d662fc75cc371.html

前往Begtostudy的编程知识博客(CSDN)