幂法及反幂法课程课程设计
题
目 幂法和反幂法求矩阵特征值
具
体
内
容
随机产生一对称矩阵 对不同的原点位移和初值(至少取3个)分别使用幂 法求计算矩阵的主特征值及主特征向量 用反幂法求计算矩阵的按模最小特征 值及特征向量 并比较不同的原点位移和初值说明收敛。
要
求
1.认真读题 了解问题的数学原形
2.选择合适问题求解的数值计算方法
3.设计程序并进行计算
4.对结果进行解释说明
采
用
方
法
及
结
果
说
明
对于幂法和反幂法求解矩阵特征值和特征向量的问题将从问题
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
算 法设计和
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图 理论依据 程序及结果进行阐述该问题。 一 问题的分析
求n阶方阵A的特征值和特征向量 是实际计算中常常碰到的问题 如 机械、结构或电磁振动中的固有值问题等。对于n阶矩阵A 若存在数 和 n维向量x满足
Ax= x
1
则称 为矩阵
A的特征值 x为相应的特征向量。
由高等代数知识可知 特征值是代数方程
| I
-A|= n+a1 1 n+…+a1 n +an=0 2 的根。从表面上看 矩阵特征值与特征向量的求解问题似乎很简单 只需 求解方程 2 的根 就能得到特征值 再解齐次方程组
I
-A x=0 3
的解 就可得到相应的特征向量。
上述方法对于n很小时是可以的。但当n稍大时 计算工作量将以惊 人的速度增大 并且由于计算带有误差 方程 2 未必是精确的特征方程 自然就不必说求解方程 2 与 3 的困难了。幂法是一种计算矩阵主特 征值 矩阵按模最大的特征值 及对应特征向量的迭代方法 特别是用于 大型稀疏矩阵。反幂法是计算海森伯格阵或三角阵的对应一个给定近似特 征值的特征向量的有效方法之一。
二 算法设计及
流程图
破产流程图 免费下载数据库流程图下载数据库流程图下载研究框架流程图下载流程图下载word
1、幂法算法
1 取初始向量u)
0( 例如取u)0(=(1,1,…1)T ,置精度
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
置k=1.
2 计算
v)
(k=Au)1( k,mk=max(v)(k), u)(k= v)(k/ mk
3 若| mk= m1
k|< 则停止计算 mk作为绝对值最大特征值1 u)(k作为 相应的特征向量 否则置k=k+1 转 2
2、反幂法算法
1 取初始向量u)
0( 例如取u)0(=(1,1,…1)T ,置精度要求 置k=1.
2 对A作LU分解 即A=LU
3 解线性方程组 Ly)
(k=u)1( k,Uv)(k=y)(k
4 计算
mk=max(v)
(k), u)(k= v)(k/ mk
5 若|mk=m1
k|< 则停止计算 1/mk作为绝对值最小特征值n u)(k作为 相应的特征向量 ;否则置k=k+1 转 3 .
幂法流程图
开始
输入A [m,u,index] =pow(A,1e
-6)
k=0;m1=0
v=A*u
[vmax,i]=max(abs(v))
m=v(i);u=v/m abs(m-m1)< 1e-6
index=1;break; 输出 m u index 结束
m1=m;k=k+1
反幂法流程图
开始
输入A [m ,u,index] =pow_inv(A,1e-6) k=0;m1=0
v=invA*u
[vmax,i]=max(abs(v))
m=v(i);u=v/m abs(m-m1)< 1e-6 index=1;break; 输出 m u index 结束
m1=m;k=k+1
输入A
[m,u,inde
x] =pow(A,1e
-6)
三、算
法的理论依据及其推导 一 幂法算法的理论依据及推导 幂法是用来确定矩阵的主特征值
的一种迭代方法 也即 绝对值最大的特
征值。稍微修改该方法 也可以用来确定其他特征值。幂法的一个很有用的特 性是它不仅可以生成特征值 而且可以生成相应的特征向量。实际上 幂法经 常用来求通过其他方法确定的特征值的特征向量。
1、幂法的迭代格式与收敛性质
设n阶矩阵A的特征值1 2
,…,n 是按绝对值大小编号的
xi(i=1,2,
…,n)为对应i 的特征向量 且1 为单根 即
|1 |>|2
|?…?|n |
则计算最大特征值与特征向量的迭代格式为
v)
(k=Au)1( k,mk=max(v)(k), u)(k= v)(k/ mk 1 其中max(v)
(k)表示向量v)(k绝对值的最大分量。
2、对于幂法的定理
按式 1 计算出mk和
u)(k满足
klimmk=1 , klimu)(k=)max(1 1x
x 二 反幂法算法的理论依据及推导
反幂法是用来计算绝对值最小的特征值忽然相应的特征向量的方法。是对 幂法的修改 可以给出更快的收敛性。
1、反幂法的迭代格式与收敛性质
设A是非奇异矩阵 则零不是特征值 并设特征值为 |1 |
?|2 |?…?|1 n |>|n |
则按A1
的特征值绝对值的大小排序 有
|n
1|>|11 n |?…?|11 |
对A1
实行幂法 就可得A1 的绝对值最大的特征值1/n 和相应的特征向量 即A的绝对值最小的特征值和相应的特征向量。
由于用
A1 代替A作幂法计算 因此该方法称为反幂法 反幂法的迭代格 式为 v)
(k= A1 u)1( k,mk=max(v)(k), u)(k= v)(k/ mk 2 2、对于反幂法的定理
按式 2 计算出的mk和
u)(k满足
klimmk=n 1, klimu)(k=)max(n nx
x
在式 2 中 需要用到A1
这给计算带来很大的不方便 因此 把 2 式
的第一式改为求解线性方程组
A v)
(k= u)1( k 3 但由于在反幂法中 每一步迭代都需求解线性方程组 3 式 迭代做了大量的 重复计算 为了节省工作量 可事先把矩阵A作LU分解 即 A=LU 所以线性方程组 3 改为
Ly)(k=u)1( k,Uv)(k=y)(k
四、算
法程序设计代码 幂法程序 在matlab中建立一个M文件并保存。 %pow.m
function [m,u,index,k]=pow(A,u,ep,it_max)
if nargin<4
it_max=1000;
end
if nargin<3
ep=1e-5;
end
n=length(A);
index=0;
k=0;
m1=0;
m0=0;
I=eye(n);
T=A-m0*I;
while k<=it_max
v=T*u;
[vmax,i]=max(abs(v));
m=v(i);
u=v/m;
if abs(m-m1)
>B=rand(4); 结果显示】
>>A=B+B’
A =
0.2675 0.5776 0.6344 1.3130
0.5776 1.1503 0.7641 0.1367
0.6344 0.7641 0.0257 0.4193
1.3130 0.1367 0.4193 1.2248
>> u=[1 1 1 1]';
>> [m,u,index,k]=pow(A,u) m =
2.6813
u =
0.8576
0.6934
0.5623
1.0000
index =
1
k =
49
3 修改M0=1e-
m =
2.6814
u =
0.8576
0.6934
0.5623
1.0000
index =
0
k =
1001
修改
M0=0 %此时为幂法 m =
2.6815
u =
0.8576
0.6935
0.5623
1.0000
index =
1
k =
10
修改U=[1 2 3 4]
修改M0=1e-4 m =
2.6813
u =
0.8576
0.6934
0.5623
1.0000
index =
1
k =
9
修改
M0=1e-3
m =
2.6805
u =
0.8576
0.6934
0.5622
1.0000
index =
1
k =
7
修改M0=0
m =
2.6814
u =
0.8576
0.6934
0.5623
1.0000 index =
1
k =
9
修改
U=[3 5 6 7] 修改M0=1e-4
m =
2.6819
u =
0.8577
0.6937
0.5624
1.0000
index =
1
k =
7
修改M0=1e-3 m =
2.6814
u =
0.8576
0.6934
0.5623
1.0000
index =
0
k =
1001
修改M0=0
m =
2.6820
u =
0.8577
0.6937
0.5624
1.0000
index =
1
k =
7
总结以上,幂法如下
U m0 m u index k
[1 1 1 1]
0.0001 2.6813 [0.8576 0.6934 0.5623 1.0000] 1 49 0.001 2.6814 [0.5876 0.6934 0.5623 1.0000] 0 1001 0 2.6815 [0.8576 0.6935 0.5623 1.0000] 1 10 [1 2 3 4]
0.0001 2.6813 [0.8576 0.6934 0.5623 1.0000] 1 9 0.001 2.6805 [0.8576 0.6934 0.5622 1.0000] 1 7 0 2.6814 [0.8576 0.6934 0.5623 1.0000] 1 9 [3 5 6 7]
0.0001 2.6819 [0.8577 0.6937 0.5624 1.0000] 1 7 0.001 2.6914 [0.8576 0.6934 0.5623 1.0000] 0 1001 0 2.692 [0.8577 0.6937 0.5624 1.0000] 1 7
反幂法结果显示
在m0为0时
M0=0.001 U=[1 1 1 1]
M0=0.1 u=[1 1 1 1]
M
0=0 u=[1 3 5 7]
M
0=0.1 u=[1 3 5 7]
M
0=0.5 u=[1 3 5 7]
M
0=0 u=[2 3 4 5]
M
0=0.1 u=[2 3 4 5]
M
0=0.7 u=[2 3 4 5]
综上
反幂法结果如下 u m0 m u index k [1 1 1 1] 0.1 0.3847 [-0.8996 1.0000 0.2726 -0.2364]
1 15
0.001 0.3847 [
-0.8996 1.0000 0.2726 -0.2364] 1 16
0 0.3847 [
-0.8996 1.0000 0.2726 -0.2364] 1 16 [1 3 5 7] 0.5 0.3847 [-0.8995 1.0000 0.2726 -0.2364]
1 27
0.1 0.3847 [
-0.8996 1.0000 0.2726 -0.2364] 1 17
0 0.3847 [
-0.8996 1.0000 0.2726 -0.2364] 1 20 [2 3 4 5] 0.7 0.7091 [-0.6962 -0.4497 0.2196
1.0000] 1 5
0.1 0.3847 [
-0.8995 1.0000 0.2726 -0.2364] 1 17
0 0.3847 [
-0.8996 1.0000 0.2726 -0.2364] 1 19
五、
结果分析 采用幂法和反幂法 求矩阵的最大和最小特征值 从原理上看 这两种方 法都是迭代法 因此迭代初始向量的选择对计算结果会产生一定影响 主要表 现在收敛速度上。
同时 原点位移m的选取也影响收敛的速度。但原点位移m0的适当选取依 赖于对矩阵A的大致了解。
成
员
1007024104辛志贤
1007024107张 容
1007024108罗言月