当前位置:网站首页>使用Matlab实现:幂法、反幂法(原点位移)
使用Matlab实现:幂法、反幂法(原点位移)
2022-07-02 06:25:00 【霏霏小雨】
幂法
例题
使用幂法,计算下面矩阵的主特征值及对应的特征向量。
A = [ 2 − 1 0 − 1 2 − 1 0 − 1 2 ] A= \left[\begin{array}{ccc} 2 & -1 & 0\\ -1 & 2 & -1\\ 0 & -1 & 2 \end{array}\right] A=⎣⎡2−10−12−10−12⎦⎤
实现
幂法的数学迭代公式为:
取 v ( 0 ) ≠ 0 , α ≠ 0 , 令 u ( 0 ) = v ( 0 ) 取 v^{(0)} \neq 0,\alpha \neq 0, 令 u^{(0)} = v^{(0)} 取v(0)̸=0,α̸=0,令u(0)=v(0)
v ( 1 ) = A v ( 0 ) = A u ( 0 ) v^{(1)} = A v^{(0)} = A u^{(0)} v(1)=Av(0)=Au(0)
u ( 1 ) = v ( 1 ) m a x ( v ( 1 ) ) = A v ( 0 ) m a x ( A v ( 0 ) ) u^{(1)} = \frac{v^{(1)}}{max(v^{(1)})} = \frac{A v^{(0)}}{max(A v^{(0)})} u(1)=max(v(1))v(1)=max(Av(0))Av(0)
v ( 2 ) = A u ( 1 ) = A v ( 1 ) m a x ( A v ( 0 ) ) = A 2 v ( 0 ) m a x ( A 2 v ( 0 ) ) v^{(2)} = A u^{(1)} = \frac{Av^{(1)}}{max(A v^{(0)})} = \frac{A^2 v^{(0)}}{max(A^2 v^{(0)})} v(2)=Au(1)=max(Av(0))Av(1)=max(A2v(0))A2v(0)
u ( 2 ) = v ( 2 ) m a x ( v ( 2 ) ) = A 2 v ( 0 ) m a x ( A 2 v ( 0 ) ) u^{(2)} = \frac{v^{(2)}}{max(v^{(2)})} = \frac{A^2 v^{(0)}}{max(A^2 v^{(0)})} u(2)=max(v(2))v(2)=max(A2v(0))A2v(0)
依次类推。
使用Matlab实现:
format long g;
v0 = [1;1;1];
u0 = [1;1;1];
A = [2,-1,0;-1,2,-1;0,-1,2];
v = A * u0;
u = v / norm(v, inf);
i = 0;
while norm(u - u0, inf) >= 1e-5
u0 = u;
v = A * u0;
u = v / norm(v, inf);
i ++;
end;
norm(v, inf)
i
u
求解得:
i = 8 , u ( 9 ) = ( 0.70711 , − 1 , 0.70711 ) T , λ = m a x ( v ( 9 ) ) = 3.41422 i = 8,u^{(9)} = (0.70711, -1, 0.70711)^T,\lambda = max(v^{(9)}) = 3.41422 i=8,u(9)=(0.70711,−1,0.70711)T,λ=max(v(9))=3.41422
反幂法
例题
已知下列矩阵有特征值 λ \lambda λ 的近似值 p = 4.3 p = 4.3 p=4.3 ,用原点位移的反幂法,求对应的特征向量 u u u ,并改善 λ \lambda λ 。
A = [ 3 0 − 10 − 1 3 4 0 1 − 2 ] A= \left[\begin{array}{ccc} 3 & 0 & -10\\ -1 & 3 & 4\\ 0 & 1 & -2 \end{array}\right] A=⎣⎡3−10031−104−2⎦⎤
实现
反幂法,是基于幂法,推导出来的一个求最小特征值的方法。由于特征值的性质,可以用来求某个近似值的精确特征值。
其数学迭代方法如下:
首先,对矩阵 A − p I A - p I A−pI进行三角分解,便于以后求方程组的解。
A − p I = L U A - p I = L U A−pI=LU
求 v ( k ) v^{(k)} v(k) 时,相当于求两个三角方程组。
{ L y ( k ) = u ( k − 1 ) U v ( k ) = y ( k ) \begin{cases} L y^{(k)} = u^{(k - 1)}\\ U v^{(k)} = y^{(k)}\\ \end{cases} { Ly(k)=u(k−1)Uv(k)=y(k)
又有:
u ( k ) = v ( k ) m a x ( v ( k ) ) u^{(k)} = \frac{v^{(k)}}{max(v^{(k)})} u(k)=max(v(k))v(k)
使用Matlab实现:
A = [3,0,-10;-1,3,4;0,1,-2];
I = eye(3,3);
p = 4.3;
u0 = [1;1;1];
v = inv(A - p * I) * u0;
u = v / norm(v, inf);
i = 0;
while norm(u - u0, inf) > 1e-5
u0 = u;
v = inv(A - p * I) * u0;
u = v / norm(v, inf);
i ++;
end;
i
u
x = p + 1 / norm(v, inf)
求解得:
i = 6 , u ( 7 ) = ( − 0.96606 , 1 , 0.15210 ) T , λ = p + 1 m a x ( v ( k ) ) = 4.57447 i = 6,u^{(7)} = (-0.96606, 1, 0.15210)^T,\lambda = p + \frac{1}{max(v^{(k)})} = 4.57447 i=6,u(7)=(−0.96606,1,0.15210)T,λ=p+max(v(k))1=4.57447
边栏推荐
- php中判断版本号是否连续
- Sqli Labs clearance summary - page 2
- [leetcode question brushing day 35] 1060 Missing element in ordered array, 1901 Find the peak element, 1380 Lucky number in matrix
- php中生成随机的6位邀请码
- Laravel8中的find_in_set、upsert的使用方法
- Yolov5 practice: teach object detection by hand
- ssm+mysql实现进销存系统
- oracle-外币记账时总账余额表gl_balance变化(上)
- Go common compilation fails
- Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory'
猜你喜欢
Sqli-labs customs clearance (less2-less5)
The first quickapp demo
SSM学生成绩信息管理系统
TCP攻击
Brief analysis of PHP session principle
The boss said: whoever wants to use double to define the amount of goods, just pack up and go
SQLI-LABS通關(less6-less14)
Proteus -- RS-232 dual computer communication
Uniapp introduces local fonts
Spark的原理解析
随机推荐
Oracle EBS database monitoring -zabbix+zabbix-agent2+orabbix
ssm垃圾分类管理系统
sqli-labs通关汇总-page1
Oracle 11g uses ords+pljson to implement JSON_ Table effect
ORACLE EBS ADI 开发步骤
一个中年程序员学习中国近代史的小结
ORACLE 11G利用 ORDS+pljson来实现json_table 效果
Only the background of famous universities and factories can programmers have a way out? Netizen: two, big factory background is OK
图解Kubernetes中的etcd的访问
软件开发模式之敏捷开发(scrum)
2021-07-05c /cad secondary development create arc (4)
2021-07-17c /cad secondary development creation circle (5)
Error in running test pyspark in idea2020
Oracle RMAN automatic recovery script (migration of production data to test)
Oracle EBS ADI development steps
JS countdown case
DNS attack details
Proteus -- RS-232 dual computer communication
Oracle RMAN semi automatic recovery script restore phase
Explain in detail the process of realizing Chinese text classification by CNN