目次
1. 一般行列の固有値と固有ベクトル
A は n 次の行列です。数値とベクトル x が を満たす場合、その数値はA の固有値と呼ばれ、x は固有値に対応する Aの固有ベクトルと呼ばれます。この式を のように書き直すと、Aの特性多項式と呼ばれます。
MATLAB では、固有値と固有ベクトルは次の形式で計算されます。
[V,D]=eig(A)
備考: この関数は数量のみを要求することもできます。
例1
2 つの方法を使用して行列 A の固有値と固有ベクトルを見つけ、その対応するノルム誤差を検証します。
ほどく:
MATLAB コードは次のとおりです。
clc;clear;
A=[16 2 3 13;5 11 10 8;9 7 6 12;4 14 15 1];
%直接求解
[v,d]=eig(A)
norm1=norm(A*v-v*d)
%解析解
[v,d]=eig(sym(A))
norm2=norm(double(A*v(:,2)-34*v(:,2))) %double函数转换为双精度类型
操作結果:
v =
-0.5000 -0.8236 0.3764 -0.2236
-0.5000 0.4236 0.0236 -0.6708
-0.5000 0.0236 0.4236 0.6708
-0.5000 0.3764 -0.8236 0.2236
d =
34.0000 0 0 0
0 8.9443 0
0 0 0 -8.9443 0
0 0 0 -0.0000
ノルム1 =1.2284e-14
v =
[ -1, 1, (12*5^(1/2))/31 - 41/31, - (12*5^(1/2))/31 - 41/31] [ -3,
1 , 17/31 - (8*5^(1/2))/31, (8*5^(1/2))/31 + 17/31] [ 3, 1, - (4*5^(
1 /2))/31 - 7/31, (4*5^(1/2))/31 - 7/31]
[ 1, 1, 1, 1]
d =
[ 0, 0, 0, 0]
[ 0、34、0、0]
[0、0、-4*5^(1/2)、0]
[0、0、0、4*5^(1/2)]
ノルム2 =0
2. 一般化固有ベクトル問題
一般化された固有ベクトルの式は次のとおりです。
上式で B=I の場合、通常の行列固有値問題になります。一般化固有値と固有ベクトルを解くための MATLAB 形式は次のとおりです。
[V,D]=eig(A,B)
残念ながら、Symbolic Operations Toolbox の eig() 関数は、一般化固有値の相関演算をサポートしていません。
例 2
A と B の一般化固有値行列と固有ベクトル行列を求めます。
,
ほどく:
MATLAB コードは次のとおりです。
clc;clear;
A=[5 7 6 5;7 10 8 7;6 8 10 9;5 7 9 10];
B=[2 6 -1 -2;5 -1 2 3;-3 -4 1 10;5 -2 -3 8];
[V,D]=eig(A,B)
norm(A*V-B*V*D)
操作結果:
V =
0.3697 + 0.0000i -0.3741 + 0.6259i -0.3741 - 0.6259i 1.0000 + 0.0000i
0.9948 + 0.0000i -0.0674 - 0.2531i -0.0674 + 0.2531i -0.6090 + 0 .0000i 0.7979 + 0.0000i 0.9239 + 0.0264i
0.9239 - 0.0264i - 0.2316 + 0.0000i
1.0000 + 0.0000i -0.6599 - 0.3263i -0.6599 + 0.3263i 0.1319 + 0.0000i
D =
4.7564 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0471 + 0.1750i 0.0000 + 0.0000i 0.0000 + 0 .0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0471 - 0.1750i 0.0000 + 0.0000i 0.0000
+ 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -0.0037 + 0.0000i
答え =
3.3761e-14
3. 疎行列の最大固有値
スパース行列の k 係数の最大固有値を計算します。MATLAB 形式は次のとおりです。
d=eigs(A,k)
最大の固有値と固有ベクトルを同時に計算します。MATLAB の形式は次のとおりです。
[V,D]=eigs()
例 3
関数 delsq および nuggrid を使用して疎行列を生成し、疎行列の 6 つの法最大固有値を見つけて、この方法の誤差を分析します。
ほどく:
MATLAB コードは次のとおりです。
clc;clear;
A=delsq(numgrid('C',15));
%生成稀疏矩阵,这个稀疏矩阵有点复杂,感兴趣的小伙伴可自行查找下 delsq和numgrid函数
[v,d]=eigs(A,6) %6代表6个模
norm=norm(A*v-v*d)
操作結果:
d =
7.8666 0 0 0 0 0
0 7.7324 0
0 0 0 0 0 7.6531 0 0 0
0 0 0 7.5213 0 0
0 0 0 0 7.4480 0
0 0 0 0 0 7.3517
ノルム =
1.4182e-14
固有ベクトルの結果はさらに長くなりますが、ここでは一部のみを示します。