当前位置:文档之家› 矩阵运算、分解和特征值

矩阵运算、分解和特征值

矩阵运算、分解和特征值
矩阵运算、分解和特征值

实验报告(五)

院(系)课程名称:数学模型日期:年月日

班级学号实验室506 专业数学教育姓名计算机号F08 实验

名称

矩阵运算、分解和特征值成绩评定

所用

软件

MATLAB 7.0 指导教师

实验目的1.矩阵的基本运算。

2.矩阵的LU、QR和Cholesky分解。3.矩阵的特征向量和特征值。

实验内容问题1:求线性方程组

1234

124

234

1234

258

369

225

4760

x x x x

x x x

x x x

x x x x

+-+=

?

?--=

?

?

-+=-

?

?+-+=

?

的解。问题2:

(1)求矩阵

123

456

780

A

??

?

= ?

?

??

的LU分解。

(2)求矩阵

123

456

789

101112

A

??

?

?

=

?

?

??

的QR分解。

(3)求5阶pascal矩阵的Cholesky分解。

问题3:

(1)求矩阵

31

13

A

-

??

= ?

-

??

的特征值和特征向量。

(2)求矩阵

23

45

84

A

??

?

= ?

?

??

的奇异值分解。

实验过程问题1:A=[2,1,-5,1;1,-3,0,-6;0,2,-1,2;1,4,-7,6];

>> inv(A)

ans =

1.3333 -0.6667 0.3333 -1.0000

-0.0741 0.2593 1.1481 -0.1111

0.3704 -0.2963 0.2593 -0.4444

0.2593 -0.4074 -0.5185 -0.1111

ans=[1.3333,-0.6667,0.3333,-1.0000;-0.0741,0.2593,1.1481,-0.1111;0.3704,-0. 2963,0.2593,-0.4444;0.2593,-0.4074,-0.5185,-0.1111];

>> B=[8;9;-5;0];

>> ans*B

ans =

2.9996

-3.9996

-1.0000

1.0003

所以线性方程的解x=[ 2.9996,-3.9996,-1.0000,1.0003]

问题2:1、A=[1,2,3;4,5,6;7,8,0];

>> [L,U]=lu(A)

L =

0.1429 1.0000 0

0.5714 0.5000 1.0000

1.0000 0 0

U =

7.0000 8.0000 0

0 0.8571 3.0000

0 0 4.5000

2、A=[1,2,3;4,5,6,;7,8,9;10,11,12];

>> [Q,R]=qr(A)

Q =

-0.0776 -0.8331 0.5456 -0.0478

-0.3105 -0.4512 -0.6919 0.4704

-0.5433 -0.0694 -0.2531 -0.7975

-0.7762 0.3124 0.3994 0.3748

R =

-12.8841 -14.5916 -16.2992

0 -1.0413 -2.0826

0 0 -0.0000

0 0 0

3、

pascal(5)

ans =

1 1 1 1 1 1

2

3

4

5 1 3

6 10 15 1 4 10 20 35 1 5 15 35 70 问题3:1、A=[3,-1;-1,3];

>> [X,D]=eig(A)

X =

-0.7071 -0.7071

-0.7071 0.7071

D =

2 0

0 4

2、A=[2,3;4,5;8,4];

>> [U,S,V]=svd(A)

U =

-0.3011 -0.4694 -0.8301 -0.5491 -0.6263 0.5534 -0.7796 0.6224 -0.0692 S =

11.2889 0

0 2.5612

0 0

V =

-0.8004 0.5995

-0.5995 -0.8004

心得体会这次试验就是套公式,但是主要是初次熟悉矩阵的解,而且每次的英语字符都需注意,线性方程组的知识也要复习才能更好的应付以后的数学建模实验。

注:实验报告用A4纸双面打印,篇幅不要超过一页。

特征值分解与奇异值分解

特征值:一矩阵A作用与一向量a,结果只相当与该向量乘以一常数λ。即A*a=λa,则a 为该矩阵A的特征向量,λ为该矩阵A的特征值。 奇异值:设A为m*n阶矩阵,A H A的n个特征值的非负平方根叫作A的奇异值。记 (A) 为σ i 上一次写了关于PCA与LDA的文章,PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的。在上篇文章中便是基于特征值分解的一种解释。特征值和奇异值在大部分人的印象中,往往是停留在纯粹的数学计算中。而且线性代数或者矩阵论里面,也很少讲任何跟特征值与奇异值有关的应用背景。奇异值分解是一个有着很明显的物理意义的一种方法,它可以将一个比较复杂的矩阵用更小更简单的几个子矩阵的相乘来表示,这些小矩阵描述的是矩阵的重要的特性。就像是描述一个人一样,给别人描述说这个人长得浓眉大眼,方脸,络腮胡,而且带个黑框的眼镜,这样寥寥的几个特征,就让别人脑海里面就有一个较为清楚的认识,实际上,人脸上的特征是有着无数种的,之所以能这么描述,是因为人天生就有着非常好的抽取重要特征的能力,让机器学会抽取重要的特征,SVD是一个重要的方法。 在机器学习领域,有相当多的应用与奇异值都可以扯上关系,比如做feature reduction的PCA,做数据压缩(以图像压缩为代表)的算法,还有做搜索引擎语义层次检索的LSI(Latent Semantic Indexing) 另外在这里抱怨一下,之前在百度里面搜索过SVD,出来的结果都是俄罗斯的一种狙击枪(AK47同时代的),是因为穿越火线这个游戏里面有一把狙击枪叫做 SVD,而在Google上面搜索的时候,出来的都是奇异值分解(英文资料为主)。想玩玩战争游戏,玩玩COD不是非常好吗,玩山寨的CS有神马意思啊。国内的网页中的话语权也被这些没有太多营养的帖子所占据。真心希望国内的气氛能够更浓一点,搞游戏的人真正是喜欢制作游戏,搞Data Mining的人是真正喜欢挖数据的,都不是仅仅为了混口饭吃,这样谈超越别人才有意义,中文文章中,能踏踏实实谈谈技术的太少了,改变这个状况,从我自己做起吧。 前面说了这么多,本文主要关注奇异值的一些特性,另外还会稍稍提及奇异值的计算,不过本文不准备在如何计算奇异值上展开太多。另外,本文里面有部分不算太深的线性代数的知识,如果完全忘记了线性代数,看本文可能会有些困难。 一、奇异值与特征值基础知识: 特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法。两者有着很紧密的关系,我在接下来会谈到,特征值分解和奇异值分解的目的都是一样,就是提取出一个矩阵最重要的特征。先谈谈特征值分解吧:

第九章矩阵特征值问题的数值方法

第9章矩阵特征值问题的数值 方法 9.1 特征值与特征向量 9.2 Hermite矩阵特征值问题 9.3 Jacobi方法 9.4 对分法 9.5 乘幂法 9.6 反幂法 9.7 QR方法

9.1 特征值与特征向量设A是n阶矩阵,x是非零列向量. 如果有数λ存在,满足, (1) 那么,称x是矩阵A关于特征值λ的特征向量.

如果把(1)式右端写为 ,那么(1)式又可写为: x λ ()0 I A x λ-=||0 I A λ-=即1110 ()||...n n n f I A a a a λλλλλ--=-=++++记 它是关于参数λ的n 次多项式,称为矩阵A 的特 征多项式, 其中a 0=(-1)n |A |. (2)

显然,当λ是A的一个特征值时,它必然 是的根. 反之,如果λ是的根,那么齐次方程组(2)有非零解向量x,使(1)式 成立. 从而,λ是A的一个特征值. A的特征值也称为A的特征根 . ()0 fλ= ()0 fλ=

矩阵特征值和特征向量有如下主要性质: 定理9.1.1 n阶矩阵A是降秩矩阵的充分必要 条件是A有零特征值. 定理9.1.2 设矩阵A与矩阵B相似,那么它们 有相同的特征值. 定理9.1.3 n阶矩阵A与A T有相同的特征值. 定理9.1.4 设λ ≠λj是n阶矩阵A的两个互异特 i 征值,x、y分别是其相应的右特征向 量和左特征向量,那么,x T y=0 .

9.2 Hermite矩阵特征值问题?设A为n阶矩阵,其共轭转置矩阵记为A H. 如果A=A H,那么,A称为Hermite矩阵.

求矩阵特征值算法及程序

求矩阵特征值算法及程序简介 1.幂法 1、幂法规范化算法 (1)输入矩阵A、初始向量( 0),误差eps; (2) k 1; (3)计算V(k)A(k 1); (4)m k max(V(k)) ,m k1max( V ( k 1)); (5) (k)V(k)/m k; (6)如果m k m k 1eps,则显示特征值1和对应的特征向量x(1) ),终止; (7)k k 1, 转(3) 注:如上算法中的符号max(V )表示取向量V 中绝对值最大的分量。本算法使用了数据规范化处理技术以防止计算过程中出现益出错误。 2、规范化幂法程序 Clear[a,u,x]; a=Input[" 系数矩阵A="]; u=Input[" 初始迭代向量u(0)="]; n=Length[u]; eps=Input[" 误差精度eps ="]; nmax=Input[" 迭代允许最大次数nmax="]; fmax[x_]:=Module[{m=0,m1,m2}, Do[m1=Abs[x[[k]]]; If[m1>m,m2=x[[k]];m=m1], {k,1,Length[x]}]; m2] v=a.u; m0=fmax[u]; m1=fmax[v]; t=Abs[m1-m0]//N; k=0; While[t>eps&&k

文本预览
相关文档 最新文档