当前课程知识点:数值分析 > 第四章 矩阵特征值与特征向量的计算 > 4.2 反幂法 > 反幂法
各位同学大家好
我是北京理工大学朱国庆老师
我们接下来学习
矩阵特征值与特征向量计算的反幂法
矩阵特征值 特征向量的计算的幂法
是用来计算按模最大的特征值
和特征向量的方法
如果我们想算一个矩阵
它按模最小的特征值
和特征向量的话
我们需要使用反幂法
反幂法的基本思想是这样的
如果我们假设
矩阵Ax等于λx这个式子成立
也就是λ作为矩阵A的特征值的话
x是特征向量
那么这个x
假设矩阵A可逆的情况之下
这个x写成A的逆λx的这种形式
同样我们做一个处理
把这个A的逆x等于λx分之一
做一个解读
我们把λ分之一视为A的逆这个函数
这个矩阵它的特征值
这个特征值是基于刚才那个Ax等于λ
也就是对应的同样的特征向量
λ作为A的特征值的时候
λ分之一就作为A的逆的特征值了
这里面线性代数当中的内容告诉我们
矩阵A与矩阵A的逆
它的特征值实际上是互为倒数的
特征向量保持不变
也就是同一个特征向量
对应的特征值
实际上是要互为倒数关系
那么求矩阵A的按模最小的特征值
就是相当于是等价于求矩阵A的逆
它的按模最大的特征值
然后这个最大的特征值逆计算
我们就可以按照幂法来处理
同样的这里面 如果我们写x(k+1)
等于A的逆y(k)的时候
这里面这个计算A的逆
可能这个运算量也比较大
实际上我们是为了计算x的k+1次幂
我们不需要把A的逆算出来
我们利用的是
第二章当中求解线性方程组的理论
Ax(k+1)=y(k)
而且这个A在计算线性方程组求解的时候
我们把这个矩阵A
比如说用LU分解的话
那么分解一次
我们在多次计算xk的时候
都可以拿过来使用
第二个
如果是讨论反幂法的应用的时候
我们还会说
矩阵A的特征值如果是一个λi
那么我们想算矩阵A
它在某一个点附近的特征值的时候
我们可以通过原点移位的方法
反幂法来把这个矩阵
在λi附近的某一个特征值算出来
一般来说是这么假设的
已知矩阵A在λ*附近有一个特征值λi0
那么这个λ*
我们视为一个初始的近似值
我们构造一个A-λ*I
那么它的这个矩阵的特征值
就是λi-λ*
因为我们想算λ*附近的λi0的时候
我们假设λi0-λ*
这是一个比较小的值
换句话说 λi0-λ*
是A-λ*I按模最小的那个特征值
那么这样的话我们就可以
把A-λ*I用反幂法来计算
一般来说是这样的
用反幂法算A-λ*I的
最小特征值λi0-λ*
然后A在λ*附近的特征值λi0
基本上就通过这个反幂法算出来
然后特征向量当然也能够算得出来了
这里面如果μ是A-λ*I的逆的按模最大特征值
μ分之一就是A-λ*I的
按模最小的特征值了
这个μ分之一就是λi0-λ*
然后λi0就等于μ分之一再加上λ*了
这是一个近似处理的一个过程
下面来看一下反幂法处理问题的算法流程
我们这里面实际上是给定的原点移位的
假设我们需要输入矩阵A
近似值λ* 然后初始向量x
误差限ε还有迭代次数N
这里面第二步取k=1
λ0取成1
y是x的归一化或者叫做标准化处理的结果
然后作一个三角分解
把A-λ*I等于LU
然后解线性方程组LUx=y
Lz=y然后Ux=z
这里面我们知道y是给定的单位化的那个结果
然后L是一个单位下三角矩阵
所以那个z的计算是
从上往下先算z1 z2
一直到zn的运算过程
同样知道了z之后
Ux=z的时候
U是一个上三角矩阵
所以我们需要先算xn xn-1 x2 x1
这是一个从下往上的一个计算的过程
然后我们取μ是等于向量x当中的最大元素
然后y是x的一个单位化的处理结果
λ就等于λ*加上μ分之一了
如果我们的判别条件
λ-λ*小于ε这个是成立的
那么我们就得到了
我们需要的特征值λ
然后还有一个对应的特征向量 就是那个y
否则的话我们再把k+1
就是再进行迭代下一步
把k+1赋予k
然后λ赋给λ0
转到第四步的一个运算
第三步那个LU分解的时候
这里面其实已经分解过了
我们直接拿过来用就可以了
然后否则的话 就输入失败的信息
这个算法就到此结束
补充一句 我们这个里面的λ*
其实如果取成0的话
这个其实就是所谓的普通的反幂法
没有用原点移位的
然后λ*取成在某个点附近
你给定的近似值的话
这就是原点移位的那个反幂法
下面我们用反幂法
来看一个具体的计算的例子
矩阵A是第一行 2 -1 0
第二行 0 2 -1
第三行 0 -1 2
我们首先要算
按模最小的特征值及特征向量
也就是用普通的反幂法来计算的一个例子
然后x(0)取成0 0 1
当然是个列向量
第二个 我们讲计算接近2.93的特征值
及其对应的特征向量
然后求A按模最小的特征值
及其特征向量的时候
普通的反幂法
x(k+1)等于A的逆y(k)
我们转换成Ax的k+1
等于y(k)的形式
首先将矩阵A做一个LU分解
把矩阵A进行LU分解
L是它的单位下三角矩阵
这里面1 1 1
然后那个只在A三二的位置有个负二分之一
然后U的话是2 2 3/2对角线
然后是-1 -1 0的那个表达式
是整个上三角矩阵
然后我们计算的时候
y(0)实际上是x(0)的单位化
本质上而言都已经是0 0 1的形式了
所以还是它本身
然后Lz是y(0)
通过Lz=y(0)
L是知道的
然后把z算出来
也是0 0 1
然后再算一个Ux(1)等于z的这种形式
我们把x(1)给它算出来
有了x(1)之后
x(1)这个向量
最大的那个元素μ是2/3
我们λ(1)就是μ分之一
这个就等于1.5
然后y(1)实际上是x(1)的单位化
把那个2/3作为分母
然后拿x(1)除上那个2/3
1/4 1/2 1
同样的 有了y(1)之后
我们要算Lz=y(1)
然后把z算出来
然后Ux(2)=z
把x(2)算出来
这个x(2)算出来11/24 2/3 5/6
最大的那个元素应该是5/6
这个μ取成5/6
然后λ(2)就是μ分之一 是1.2
这个时候我们算的那个x(2)
就是把那个5/6
x(2)除上
每个元素都除上5/6
算出来是11/20 4/5 1
这是我们的那个计算程序
当k取1 2 3 4 5 6 7的时候
我们假设精度是10的-7次方的话
那么七步其实就可以得到精确的结果了
然后我们要求如果是10的-4次方的话
刚才是迭代3次
然后得到第三行的一个结果
当然如果我们采用matlab的计算语言的话
特征值应该是2 3 1
下面来看第二步
用反幂法来求矩阵A
接近2.93的特征值及特征向量的时候
这个x(0)取的是0 0 1
我们把A-2.93I
按模最小求它的特征值
这里面反幂法处理的时候
x(k+1)等于A-2.93I的逆
然后y的k
然后(A-2.93I)x(k+1)=y(k)
然后我们要做的
实际上是对那个A-2.93I做一个LU分解
这个LU分解的时候
这个手算可能算不了了
需要大家用计算机来算
这个把L单位下三角矩阵
这个U
这个上三角矩阵单独给出来
按照原点移位的这个思想
首先要算的是
y(0)等于x(0)单位化的处理
然后是Lz等于y(0)
然后把z算出来
然后Ux(1)等于z
我们把x(1)算出来
通过这个数据可以看得出来
这个数据在小数点后都给了
好几位的这个有效数字
所以这个必须用计算机来做了
然后μ是取x(1)这个向量当中
最大的那个元素
然后这个λ(1)就是2.93再加上μ分之一
因为2.93是原点移位那个近似值
同样的 有了λ(1)之后
我们再把这个y(1)算出来
然后
迭代是按照上面的次序去迭代3次
我们就可以算出来
λ第三个近似值是3.0000357
然后u当然就是这个近似值
就是y(3) 是1
然后-0.9992431
然后是0.99914
这个题目讲解到此结束
然后我们这个近似计算的时候
精确值λ其实是等于3的
u是等于1 -1 1的
特征值的这个误差
我们算出来是0.00086
按最大的一个元素取无穷模的话
这个应该是小于等于0.001的
我们看一下这个计算程序的结果
k=0的时候
k=1的时候
k=2的时候
我们这里面的误差取成
这个e的-7的话
那么这里面在
k=7的时候
其实精确度都可以算的很高了
右边是对应的用matlab的程序语言算出来的结果
矩阵A的特征值是2 3 1
这部分内容分享到此结束
-1.1 误差的概念
--误差的概念
-1.2 误差的传播
--误差的传播
-第一章 习题
--第一章 习题
-2.1 Gauss消去法
--Gauss消去法
-2.2 矩阵的三角分解
--矩阵的三角分解
-2.3 直接三角分解法
--直接三角分解法
-2.4 平方根法和改进的平方根法
-2.5 误差分析(1)向量和矩阵范数
-2.6 误差分析(2)条件数
-第二章 习题
--第二章 习题
-3.1 Jacobi迭代法和Gauss-Seidel 迭代法
-3.2 迭代法收敛性的判别
-3.3 误差分析
--误差分析
-第三章 习题
--第三章 习题
-4.1 幂法
--幂法
-4.2 反幂法
--反幂法
-第四章 习题
--第四章 习题
-5.1 多项式插值理论
--多项式插值理论
-5.2 Lagrange 插值多项式
-5.3 Newton 插值多项式(1)差商型
-5.4 Newton 插值多项式(2)差分型
-5.5 分段线性插值
--分段线性插值
-5.6 Hermite 插值
-第五章 习题
--第五章 习题
-6.1 数据拟合的最小二乘法(1)多项式拟合
-6.2 数据拟合的最小二乘法(2)其他函数拟合
-6.3 正交多项式
--正交多项式
-6.4 函数的最佳平方逼近
-第六章 习题
--第六章 习题
-7.1 数值微分
--数值微分
-7.2 Newton-Cotes求积公式(1)数值积分的基本思想、Newton-Cotes公式
--Newton-Cotes求积公式(1)数值积分的基本思想、Newton-Cotes公式
-7.3 Newton-Cotes求积公式(2)误差估计
-7.4 复化求积公式
--复化求积公式
-7.5 Romberg求积公式、Gauss型求积公式
-第七章 习题
--第七章 习题
-8.1 Romberg求积公式、Gauss型求积公式
-8.2 简单迭代法的加速、牛顿法与弦截法
-第八章 习题
--第八章 习题
-9.1 常微分方程数值解法概述
-9.2 Euler方法及其改进方法
-第九章 习题
--第九章 习题