矩阵的正交分解与求矩阵全部特征值的QR方法
- 格式:pptx
- 大小:607.21 KB
- 文档页数:44
数值分析QR方法求矩阵特征值和特征向量四.实验代码:function [H,B]=Hessenberg(A) n=length(A);B=eye(n);for k=1:n-2X=zeros(n-k,1);H=eye(n);for i=1:n-kX(i)=A(i+k,k);enda=max(abs(X));if a==0.0breakendX=X/a;c=X(1);b1=sqrt(sum(X.^2));if X(1)>=0b1=-b1;endX(1)=X(1)-b1;b=b1^2-b1*c;H0=eye(n-k)-X*X'/b;for i=1:n-kfor j=1:n-kH(i+k,j+k)=H0(i,j);end endA=H*A*H;B=B*H;endH=A;一.实验题目:QR方法求矩阵的特征和特征向量二.设计目的:学会利用镜面变换进行矩阵的QR分解及利用将幂法求特征值和特征向量,熟悉Matlab编程环境。
三.设计原理:利用镜像变换将A相似变换为Hessenberg B矩阵。
记录变换矩阵。
运用Householder矩阵进行QR分解,QR方法为:B1=BB1=Q1R1B2=R1Q1....Bm=QmRmBm+1=RmQmBm+1与Bm相似,从而特征值相等。
再利用原点位移的反幂法求B(或A)的特征向量。
反幂法用来计算矩阵按模最小的特征值及其特征向量,也可用来计算对应与一个给定近似特征值的特征向量。
设A∈R n×n为非奇异矩阵,A的特征值依次记为|λ1|≥|λ2|≥|λ3|≥…≥|λn |,相应的特征向量为x1 ,x2,…,x n,则A-1的特征值为|1/λn|≥|1/λn-1|≥…≥|1/λ1 | ,相应的特征向量为x n ,x.所以计算A的按模最小的特征值λn的问题就是计算n-1,…,x1A-1的按模最大的特征值问题。
对于A-1应用幂法迭代(称为反幂法),可求得矩阵A-1的主特征值1/λn,从而求得A的按模最小的特征值λn。
数值分析实验报告专业信息与计算科学班级信计101 姓名学号协作队员实验日期2013 年 1 月5 日星期六成绩评定教师签名批改日期题目一、问题提出给定矩阵2345644567036780028900010A⎛⎫⎪⎪⎪=⎪⎪⎪⎝⎭,(1)用Matlab函数“eig”求矩阵全部特征值.(2)用幂法求A的主特征值及对应的特征向量.(3)用基本QR算法求全部特征值(可用Matlab函数“qr"实现矩阵的QR分解)。
二、模型建立用幂法求A的主特征值及对应的特征向量的模型:选取,按照下列公式构造向量序列{}{}则有循环足够多次后,可以近似得出,三、求解方法(1)A=[2 3 4 5 6;4 4 5 6 7;0 3 6 7 8;0 0 2 8 9;0 0 0 1 0];a=eig(A)(2)pmethod。
mfunction [l,v,s]=pmethod(A,x0,eps)if nargin==2eps = 1.0e-6;endv = x0;%v为主特征向量M = 5000; %迭代步数限制m = 0;l = 0;for(k=1:M)y = A*v;m = max(y);%m为按模最大的分量v = y/m;if(abs(m — l)<eps)l = m; %到所需精度,退出,l为主特征值 s = k;%s为迭代步数return;elseif(k==M)disp('迭代步数太多,收敛速度太慢!’); l = m;s = M;elsel = m;endendend(3)function l = rqrtz(A,M)%QR算法求矩阵全部特征值%已知矩阵:A%迭代步数:M%求得的矩阵特征值:lA = hess(A);for i=1:MN = size(A);n = N(1,1);u = A(n,n);[q,r]=qr(A—u*eye(n,n));A = r*q+u*eye(n,n);l = diag(A);end四、输出结果(1)a = 13。
实验一:编程实现以下科学计算算法,并举一例应用之。
QR基本法和位移QR法矩阵特征值求解1.QR基本法算法说明:QR基本算法是求矩阵特征值的最有效和应用最广泛的一种方法方法,其基本依据是以下两个定理:1)设A是n阶矩阵,其n个特征值为λ1、λ2、…λm,那么存在一个酉矩阵U使得U T AU是以λ1、λ2、…λm为对角元的上三角矩阵。
2)设A是n阶实矩阵,那么,存在一个正交矩阵Q,使得Q T AQ为一个准上三角矩阵,它的每一个对角元是A的一个特征值,对角元上的二阶块矩阵的两个特征值是A的一对共轭复特征值。
QR基本算法的过程如下:给定循环步数M,A T=A,k=1,2,…M,计算:A k=Q k R kA k+1=R k Q kQR基本算法有如下的收敛性质:如果A的特征值满足|λ1|>|λ2|>|λ2|≥…≥|λm|,则QR基本算法产生的矩阵序列{A k}基本收敛到上三角矩阵(特别,当A为对称阵时,收敛到对角阵),对角元素收敛到A的特征值。
在MATLAB中变成实现的QR基本算法的函数为:qrtz功能:QR基本算法求矩阵全部特征值。
调用格式:l=qrtz(A,M).其中,A为已知矩阵;M为迭代步数;L为矩阵A的全部特征值。
QR基本算法的流程图:l=qrtz(A,M)QR基本算法的MATLAB程序代码如下:function l=qrtz(A,M)for i=1:M[q,r]=qr(A);A=r*q;l=diag(A);endtask11.mformat longA=[1,5,6;4,7,0;8,11,3]l=qrtz(A,20)disp('¾«È·½â')l=eig(A)运行过程和结果:2.位移QR算法位移QR法是为了加快QR算法的收敛速度,其算法的迭代过程如下:给定循环步数M,A1=Hessenberg(A),k=1,2,…M,选择μk,然后计算:A k-μk I=Q k R kA k+1= Q k Q k+μk I一般μk的选择有以下两种考虑方法:(1) 选μk =μk ,即瑞利商位移;(2) 迭代过程中,如果子矩阵的两个特征值为实数时,选最接近a k n,n 的那个作为μk ,即威尔森位移瑞利商位移QR 法流程图如下:在MATLAB 中编程实现的瑞利商位移的QR 算法的函数为:rqrtz 。
QR方法QR方法是求任意矩阵的全部特征值的一种有效方法,它是JACOBI方法的推广。
基本思想利用矩阵的QR分解,通过逆序相乘产生对原矩阵的一系列正交相似变换,使其变化为一个近似的上三角矩阵来求全部特征值。
这里QR分解是指将矩阵化为一个正交矩阵Q和一个上三角矩阵左乘的形式。
构造原理实对称矩阵可用正交相似变换将其化为对角形矩阵,但对非对称矩阵,一般用正交相似变换化不成对角矩阵,但SCHUR分解定理给我们一个有关这方面的结果。
定理3。
(实SCHUR分解定理)设矩阵A∈R n*n,则存在一个正交矩阵Q∈R n*n,使Q T AQ=其中每个B ii是1*1或2*2的小矩阵,若B ii为1*1的,其元素就是A的实特征值,否则B ii的特征值是A一对共轭复特征值。
此定理的证明可参阅文献[3]。
定理3指出了求矩阵A的全部特征值也可用正交相似变换的方法来做,正交相似变换的结果虽然不是对角矩阵,而是分块三角形矩阵,但它同样能很方便地求出全部特征值,有关一般矩阵的正交相似变换,我们不加证明地给出一个结论。
定理4。
设非奇异矩阵A∈R n*n,且有n个不同的特征值,记A=A(1)。
如果对整数k,有矩阵A(k)的QR分解为A(k)=Q k R k,则令A(k+1)=Q T k A(k)Q k,当k→∞时有A(k)本质上收敛于分块上三角形矩阵,这里“本质上收敛”指A(k)的主对角线上的元素或子块有确定的极限,其它元素或子块不管是否有极限。
此定理给出了求解一般矩阵全部特征值的方法。
由定理3,A(k+1)=(Q1Q2....Q k)T A(Q1Q2....Q k),令,则Q k也是正交矩阵,A(k+1)=Q T k A(k)Q k说明A(k+1)也是原矩阵A的正交相似变换,从而A(k+1)与A有相同的特征值,n任意,此外,由A(k)=Q k R k,则有Q T k A(k)= Q T k A(k)R k=R k,故有A(k+1)=Q k R k,这说明A(k+1)可直接交换Q k与R k的乘积顺序得到,于是可的如下QR算法。
用qr方法求矩阵的全部特征值例题矩阵的特征值问题是矩阵理论中的重要问题之一,QR方法是一种常用的求解矩阵特征值的方法。
本文将通过一个具体的例题,介绍如何使用QR方法求矩阵的全部特征值。
一、问题描述给定一个$n\timesn$矩阵$A$,我们需要求出其全部特征值。
矩阵的特征值通常可以通过求解矩阵的特征多项式来得到。
对于实对称矩阵,我们可以通过对角化矩阵的方法来求解特征值。
但对于一般矩阵,我们需要使用其他方法,如QR方法。
二、QR方法原理QR方法是基于矩阵的QR分解原理,将原矩阵分解为一个正交矩阵和一个上三角矩阵的乘积。
通过这个分解,我们可以将原矩阵的特征多项式转化为一个简单的多项式,从而方便地求解特征值。
三、例题及解答【例题】给定一个$3\times 3$矩阵:$A=\begin{bmatrix}1&2&3\\0&-2&4\\0&-1&2\end{bmatrix}$要求求出该矩阵的全部特征值。
【解法】1. 将矩阵A进行QR分解,得到正交矩阵$Q$和上三角矩阵$R$:$A=QR$2. 计算$Q^TAQ$的特征多项式,并求出全部特征值。
3. 将上三角矩阵$R$代入特征多项式中,得到原矩阵A的特征值。
【代码实现】(使用MATLAB)```matlab% 定义矩阵AA = [1 2 3; 0 -2 4; 0 -1 2];% 进行QR分解[Q, R] = qr(A);% 计算Q^TAQ的特征多项式,并求出全部特征值[eigvals,~,~] = eig(Q^TAQ);eigvals = real(eigvals); % 取实部作为特征值% 将上三角矩阵R代入特征多项式中,得到原矩阵A的特征值eigenvalues = diag(R) ./ (diag(R)+eigvals);```【结果】经过以上步骤,我们可以得到原矩阵A的全部特征值为:$\lambda_1=2.75+0. 866i,\lambda_2=2.75-0.866i,\lambda_3=4$。
特征向量 qr分解特征向量是线性代数中的一个重要概念,它与矩阵的特征值密切相关。
特征向量是矩阵在一维向量空间上的非零向量,当这个向量与矩阵相乘时,仅发生伸缩而不发生旋转。
特征向量与特征值的计算是矩阵分析中较为复杂的问题之一。
特征向量的计算可以通过QR分解来实现。
QR分解是将一个矩阵分解为一个正交矩阵Q和一个上三角矩阵R的过程。
通过QR分解,一个矩阵可以表示为A = QR,其中Q是一个正交矩阵,R是一个上三角矩阵。
在QR分解中,我们可以使用Gram-Schmidt正交化过程来计算特征向量。
Gram-Schmidt正交化过程是一种通过线性组合的方式将线性无关的向量组转化为正交向量组的方法。
假设我们有一个线性无关的向量组{v1, v2, ..., vn},我们可以通过以下步骤进行正交化计算:1.初始化:令v1' = v1,u1 = v1'/ ||v1'||,其中u1是单位向量。
2.递推:对于每一个向量vi,i > 1,计算:vi' = vi - proj(u1, vi) - proj(u2, vi) - ... - proj(ui-1, vi)ui = vi'/ ||vi'||其中,proj(u, v)是向量v在向量u上的投影,可以通过内积计算。
3.循环:重复步骤2,直到所有的向量都被转化为正交向量。
通过Gram-Schmidt正交化过程,我们可以得到一组正交基{u1,u2, ..., un},可以使用这组正交基来表示原有的向量组。
同时,这组正交基的长度并不一定相等,不同的向量可能有不同的模长。
在计算特征向量时,我们可以使用QR分解中的计算结果。
假设我们要计算矩阵A的特征向量,我们可以进行以下步骤:1.计算A的QR分解:A = QR,其中Q是一个正交矩阵,R是一个上三角矩阵。
2.令A' = RQ,将A的特征向量转化为A'的特征向量。
方法求矩阵全部特征值求解矩阵的全部特征值是一个重要的问题,它在线性代数和数值计算中都有广泛的应用。
在本文中,将详细介绍几种方法来求解矩阵的全部特征值,包括特征值分解方法、幂迭代方法、QR方法、Jacobi方法和带位移的QR方法。
特征值是一个矩阵的最重要的性质之一,它描述了矩阵的行为和性质。
特征值可以用于计算矩阵的条件数、正交变换、矩阵的相似性和对角化等。
求解矩阵的全部特征值可以通过特征值分解来实现。
特征值分解是将一个矩阵分解成一个对角矩阵和一个特征向量矩阵的乘积。
根据特征值分解的定义,可以得到以下公式:A=QΛQ^(-1)其中A是一个n×n的矩阵,Λ是一个对角矩阵,Q是一个n×n的正交矩阵,^(-1)表示矩阵的逆。
通过特征值分解,可以求解矩阵的全部特征值和对应的特征向量。
特征值分解的方法有很多种,比如QR方法、Jacobi方法和带位移的QR方法。
幂迭代是一种求解矩阵最大特征值和对应特征向量的迭代方法。
幂迭代的基本思想是通过不断迭代矩阵的幂次来逼近最大特征值和对应特征向量。
幂迭代的过程可以通过以下公式表示:x(k+1)=Ax(k)其中x(k)表示第k次迭代的特征向量,A表示待求解的矩阵。
幂迭代的收敛性取决于一个非零初始向量的选择和特征值的大小。
当初始向量与最大特征值对应的特征向量接近时,幂迭代可以得到最大特征值的逼近值。
通过迭代可以不断逼近最大特征值,同时得到对应特征向量。
QR方法是一种求解实对称矩阵全部特征值的方法,它通过迭代将矩阵变换为上三角矩阵。
QR方法的基本步骤包括QR分解、矩阵相似变换和迭代。
在每一次迭代中,矩阵A都被变换为一个上三角矩阵R,并且特征值逐步靠近对角线的元素。
Jacobi方法是一种通过旋转矩阵将矩阵对角化的方法。
Jacobi方法的基本思想是通过多次相似变换将矩阵的非对角元素逐步置为零,使得矩阵对角化。
Jacobi方法的关键步骤是选择旋转角度和旋转矩阵,通过旋转操作将非对角元素置为零。
QR方法QR方法是求任意矩阵的全部特征值的一种有效方法,它是QR方法QR方法是求任意矩阵的全部特征值的一种有效方法,它是JACOBI方法的推广。
基本思想利用矩阵的QR分解,通过逆序相乘产生对原矩阵的一系列正交相似变换,使其变化为一个近似的上三角矩阵来求全部特征值。
这里QR分解是指将矩阵化为一个正交矩阵Q和一个上三角矩阵左乘的形式。
构造原理实对称矩阵可用正交相似变换将其化为对角形矩阵,但对非对称矩阵,一般用正交相似变换化不成对角矩阵,但SCHUR分解定理给我们一个有关这方面的结果。
定理3。
(实SCHUR分解定理)设矩阵A∈R n*n,则存在一个正交矩阵Q∈R n*n,使Q T AQ=其中每个B ii是1*1或2*2的小矩阵,若B ii为1*1的,其元素就是A的实特征值,否则B ii的特征值是A一对共轭复特征值。
此定理的证明可参阅文献[3]。
定理3指出了求矩阵A的全部特征值也可用正交相似变换的方法来做,正交相似变换的结果虽然不是对角矩阵,而是分块三角形矩阵,但它同样能很方便地求出全部特征值,有关一般矩阵的正交相似变换,我们不加证明地给出一个结论。
定理4。
设非奇异矩阵A∈R n*n,且有n个不同的特征值,记A=A(1)。
如果对整数k,有矩阵A(k)的QR分解为A(k)=Q k R k,则令A(k+1)=Q T k A(k)Q k,当k→∞时有A(k)本质上收敛于分块上三角形矩阵,这里“本质上收敛”指A(k)的主对角线上的元素或子块有确定的极限,其它元素或子块不管是否有极限。
此定理给出了求解一般矩阵全部特征值的方法。
由定理3,A(k+1)=(Q1Q2....Q k)T A(Q1Q2....Q k),令,则Q k也是正交矩阵,A(k+1)=Q T k A(k)Q k说明A(k+1)也是原矩阵A的正交相似变换,从而A(k+1)与A有相同的特征值,n任意,此外,由A(k)=Q k R k,则有Q T k A(k)= Q T k A(k)R k=R k,故有A(k+1)=Q k R k,这说明A(k+1)可直接交换Q k与R k的乘积顺序得到,于是可的如下QR算法。
qr迭代法求特征值特征向量QR迭代法是求解特征值和特征向量的一种常用方法。
在这篇文章中,我们将详细介绍QR迭代法的原理、步骤和应用。
希望读者通过本文的阅读,能够对QR迭代法有更深入的理解。
QR迭代法是一种基于矩阵分解的数值方法,它可以用来求解一个实方阵或复方阵的特征值和特征向量。
QR迭代法的基本思想是通过不断地对矩阵进行正交相似变换,将矩阵转化为上三角矩阵或者对角矩阵,从而得到矩阵的特征值和特征向量。
QR迭代法的优点是收敛速度快,精度高,适用于大规模矩阵求解。
QR迭代法的步骤如下:1.将待求解的矩阵A分解为QR,其中Q是正交矩阵,R是上三角矩阵。
2.计算R的逆矩阵。
3.计算B=R的逆矩阵乘以A。
4.将B再次分解为QR。
5.重复步骤2-4,直到矩阵收敛为止。
在实际应用中,QR迭代法可以用来求解各种问题,例如线性方程组的求解、特征值分解、奇异值分解等。
下面我们分别介绍一下这些应用。
1.线性方程组的求解对于一个线性方程组Ax=b,可以通过QR分解和反向代入来求解。
具体步骤如下:1.将系数矩阵A进行QR分解,得到Q和R两个矩阵。
2.将b进行正交变换,得到新的向量y=Q^Tb。
3.利用R和y求解新的线性方程组Rx=y。
4.通过反向代入得到x的解。
2.特征值分解对于一个实对称矩阵A,可以通过QR迭代法来求解其特征值和特征向量。
具体步骤如下:1.将A进行QR分解,得到Q和R两个矩阵。
2.计算B=R的逆矩阵乘以Q^T,得到新的矩阵C=B^T乘以A 乘以B。
3.重复步骤1-2,直到C收敛为止。
4.将C的对角线元素作为A的特征值,B的列向量作为A的特征向量。
3.奇异值分解对于一个m*n的实矩阵A,可以通过QR迭代法来进行奇异值分解。
具体步骤如下:1.将A的转置矩阵AT与A进行乘积运算得到ATA。
2.对ATA进行QR分解,得到正交矩阵Q和上三角矩阵R。
3.计算V=Q。
4.对A进行乘积运算得到AT*A。
5.对AT*A进行QR分解,得到正交矩阵Q和上三角矩阵R。
一、实验名称:用QR 算法求矩阵的特征值二、实验目的:1、通过实验进一步熟悉掌握求矩阵特征值的QR 方法及原理。
2、理解QR 方法的计算流程。
3、能够编程实现QR 方法。
三、实验内容:给定矩阵 ⎪⎪⎪⎭⎫ ⎝⎛=111132126A , ⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=0100098200876307654465432H ,采用QR 方法计算A 和H 矩阵的全部特征值。
四、实验要求:(1) 根据QR 算法原理编写程序求矩阵A 及矩阵H 的全部特征值(要求误差<105-)。
(2) 直接用MATLAB 的内部函数eig 求矩阵A 及矩阵H 的全部特征值,并与(1)的结果比较。
五、QR 方法计算矩阵特征值的程序: function[namda,time,data_na]=qr_tz(A,tol) if nargin==1; tol=1e-5; end wucha=1; time=0;while (wucha>tol)&(time<500) [q,r]=qr(A); A1=r*q; tz0=diag(A1); tz1=diag(A); wucha=norm(tz0-tz1);A=A1; time=time+1; data_na(time,:)=tz1; end namda=tz1; disp(‘特征值为’) namdadisp(‘第一个特征在值’) timen1=length(data_na); n2=(1:n1)’; temp1=[n2,data_na]; subplot(2,2,1:2)plot(date_na(:,1))title(‘迭代次数为’) gridsubplot(2,2,3)plot(data-na(:,2))title(‘第二个特征值’)gridsubplot(2,2,4)plot(data-na(:,3))title(‘第三个特征值’) grid六、实验结果:>> A=[6,2,1;2,3,1;1,1,1];[namda,time,data_na]=qr_tz(A,1e-5);特征值为namda =迭代次数为time =6图 1>> A=[6,2,1;2,3,1;1,1,1];[V,D]=eig(A,'nobalance'), V =D =0 00 00 0>>A=[2,3,4,5,6;4,4,5,6,7;0,3,6,7,8;0,0,2,8,9;0,0,0,1,0];[namda,time,data_na]=qr_t z(A,1e-5);特征值为namda =迭代次数为time =22图 2>>A=[2,3,4,5,6;4,4,5,6,7;0,3,6,7,8;0,0,2,8,9;0,0,0,1,0];[V,D]=eig(A,'nobalance'), V =D =0 0 0 00 00 0 00 0 00 00 0表1 用两种方法求得矩阵A的全部特征值表2 用两种方法求得矩阵H的全部特征值七、实验结果分析:从图1和图2中可以看出在迭代前几次可能会有一些波动,但逐渐趋于平稳,并且收敛速度快,算法稳定。
数值分析课程设计QR 方法求矩阵全部特征值问题复述用QR 算法求矩阵特征值:(i )621()231111A ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦ (ii )2345644567036780028900010H ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦要求:(1)根据QR 算法原理编制求(i )与(ii )中矩阵全部特征值的程序并输出 计算结果(要求误差510-<)(2)直接用现有的数学软件求(i ),(ii )的全部特征值,并与(1)的结果比较。
问题分析QR 方法是目前公认为计算矩阵全部特征值的最有效的方法。
它适用于任一种实矩。
QR 方法的原理是利用矩阵的正交分解产生一个与矩阵A 相似的矩阵迭代序列,这个序列将收敛于一个上三角阵或拟上三角阵,从而求得原矩阵A 的全部特征值。
QR 是一个迭代算法,每一步迭代都要进行QR 分解,再作逆序的矩阵乘法。
要是对矩阵A 直接用QR 方法,计算量太大,效率不高。
因此,一个实际的QR 方法计算过程包括两个步骤,首先要对矩阵A 用初等相似变换约化为上Hessenberg 矩阵,再用QR 方法求上Hessenberg 矩阵的全部特征值。
示意如下:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=−−−−−−−−−→−x x x x x Hessenberg B A A r Householde 阵上第一步的每一列计算一次不需迭代,对阵作正交相似变换用 ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡→==−−−−−−−−−→−n k k k k k k x x x Q R B R Q B λλλ 21QR B 代计算变换产生迭代序列,迭用第二步对B 矩阵的约化只需将每列次对角线上的元素约化为0。
因此常常用平面旋转阵(Givens 变换阵)来进行约化。
一、QR 方法原理及收敛性 设n n R A ⨯∈已实现了QR 分解,记111R Q A A ==其中1Q 是正交阵,1R 是上三角阵。
因为111-=Q Q T ,用1Q 对1A 作正交相似变换有2111A Q A Q T=可改写为 111111111112Q R Q R Q Q Q A Q A ===--显然2A 只是1A 的QR 分解因子阵的逆序相乘,而且2A 与原矩阵1A 有相同的特征值。