当前位置:网站首页>使用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
边栏推荐
- MySQL中的正则表达式
- Oracle EBS数据库监控-Zabbix+zabbix-agent2+orabbix
- php中的数字金额转换大写数字
- sparksql数据倾斜那些事儿
- Anti shake and throttling of JS
- Two table Association of pyspark in idea2020 (field names are the same)
- php中计算树状结构数据中的合计
- Build FRP for intranet penetration
- ssm超市订单管理系统
- 2021-07-05c /cad secondary development create arc (4)
猜你喜欢

ORACLE 11G利用 ORDS+pljson来实现json_table 效果

How to call WebService in PHP development environment?

The boss said: whoever wants to use double to define the amount of goods, just pack up and go

Sqli-labs customs clearance (less15-less17)

Cloud picture says | distributed transaction management DTM: the little helper behind "buy buy buy"

Oracle EBs and apex integrated login and principle analysis

Illustration of etcd access in kubernetes

2021-07-05c /cad secondary development create arc (4)

sqli-labs通關匯總-page2

JSP intelligent community property management system
随机推荐
JS delete the last character of the string
PHP Session原理简析
SQLI-LABS通关(less15-less17)
view的绘制机制(二)
ORACLE APEX 21.2安装及一键部署
oracle EBS标准表的后缀解释说明
Oracle 11g uses ords+pljson to implement JSON_ Table effect
ORACLE EBS ADI 开发步骤
类加载器及双亲委派机制
oracle-外币记账时总账余额表gl_balance变化(上)
Explanation of suffix of Oracle EBS standard table
Ingress Controller 0.47.0的Yaml文件
JS create a custom JSON array
SQLI-LABS通关(less2-less5)
UEditor .Net版本任意文件上传漏洞复现
Sqli-labs customs clearance (less18-less20)
Brief analysis of PHP session principle
Tool grass welfare post
Oracle 11.2.0.3 handles the problem of continuous growth of sysaux table space without downtime
sqli-labs通关汇总-page4