このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
固有値と固有ベクトル
[___]=eig(___,
は、前述の構文の任意の入力引数または出力引数を使用して、eigvalOption
)eigvalOption
で指定された形式で固有値を返します。eigvalOption
には、固有値を列ベクトルとして返す場合は“向量”
,固有値を対角行列として返す場合は“矩阵”
を指定します。
画廊
を使用して対称正定値行列を作成します。
A=画廊(“莱默”,4)
A=4×41.0000 0.5000 0.3333 0.2500 0.5000 1.0000 0.6667 0.5000 0.3333 0.6667 1.0000 0.7500 0.2500 0.5000 0.7500 1.0000
A.
の固有値を計算します。結果は列ベクトルになります。
e=eig(A)
e=4×10.2078 0.4078 0.8482 2.5362
あるいは、eigvalOption
を使用して固有値を対角行列に返します。
D=eig(A,“矩阵”)
D=4×40.2078 0 0 0 0 0.4078 0 0 0 0 0.8482 0 0 0 0 2.5362
画廊
を使用して、循環行列を作成します。
A=画廊(“circul”,3)
A=3×31 2 3 3 1 2 2 3 1
A.
の固有値と右固有ベクトルを計算します。
[V,D]=环境影响评价(A)
V =3×3复杂-0.5774 + 0.00000 i -0.5774 + 0.00000 i -0.5774 + 0.00000 i -0.2887 + 0.5000i -0.2887 - 0.5000i
D=3×3复杂6.0000+0.0000i 0.0000+0.0000i 0.0000+0.0000i 0.0000+0.0000i-1.5000+0.8660i 0.0000+0.0000i 0.0000+0.0000i 0.0000+0.0000i-1.5000-0.8660i
結果が* V = V * D
を満たすことを確認します。
A*V-V*D
ans=3×3复杂10-14年× -0.2220 + 0.00000 i -0.0888 - 0.0111i -0.0888 + 0.0111i -0.0888 + 0.00000 i - 0.0833i -0.0444 + 0.00000 i -0.1110 + 0.0666i -0.1110 - 0.0666i
理論上は,固有値分解はこの関係を満たします。eig
は浮動小数点計算を使用して分解を行うため,A*V
はV*D
にほぼ等しい程度にしかなりません。言い換えると、A*V-V*D
は0
に近づきますが,厳密に等しくはなりません。
既定では、eig
は固有値と固有ベクトルを常に並べ替えられた順序で返すとは限りません。関数排序
を使用して、固有値を昇順に並べて、対応する固有ベクトルを並べ替えます。
5行5列の魔方陣行列の固有値と固有ベクトルを計算します。
=魔法(5)
A=5×517 24 18 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
[V,D]=环境影响评价(A)
V =5×5-0.4472 0.0976 -0.6330 0.6780 -0.2619 -0.4472 0.3525 0.5895 0.3223 -0.1732 -0.4472 0.5501 -0.3915 -0.5501 0.3915 -0.4472 -0.3223 0.1732 -0.3525 -0.5895 -0.4472 -0.6780 0.2619 -0.0976 0.6330
D=5×560.000 0000 0 -21.2768 0000 -13.1263 000
A.
の固有値はD
の対角上にあります。ただし、固有値は並べ替えられていません。
诊断接头(D)
を使用してD
の対角から固有値を抽出してから、結果のベクトルを昇順に並べ替えます。排序
の 2.番目の出力はインデックスの置換ベクトルを返します。
位于[d] =排序(诊断接头(d))
d=5×1-21.2768 -13.1263 13.1263 21.2768 65.0000
印第安纳州=5×12 3 5 4 1
ind
を使用してD
の対角要素を並べ替えます。D
の固有値はv
の列内の固有ベクトルに対応するため,同じインデックスを使用してv
の列も並べ替えなければなりません。
Ds=D(ind,ind)
Ds=5×5-21.2768 0 0 0 0 0 -13.1263 0 0 0 0 0 13.1263 0 0 0 0 0 21.2768 0 0 0 0 0 65.0000
Vs=V(:,ind)
Vs=5×50.0976 -0.6330 -0.2619 0.6780 -0.4472 0.3525 0.5895 -0.1732 0.3223 -0.4472 0.5501 -0.3915 0.3915 -0.5501 -0.4472 -0.3223 0.1732 -0.5895 -0.3525 -0.4472 -0.6780 0.2619 0.6330 -0.0976 -0.4472
(五、四)
と(Vs,Ds)
はいずれもA.
の固有値分解を出力します。A*V-V*D
と* Vs-Vs * Ds
の結果は丸め誤差を除けば一致します。
e1 =规范(* V-V * D);e2 =规范(* Vs-Vs * Ds);E = abs(e1 - e2)
e=1.2622e-29
3行3列の行列を作成します。
A=[1 7 3;2 9 12;5 22 7];
右固有ベクトルv
、固有値D
,および左固有ベクトルW
を計算します。
[V,D,W]=eig(A)
V =3×30.2610 -0.9734 0.1891 -0.5870 0.2281 -0.5816 -0.7663 -0.0198 0.7912
D=3×325.5548 0 0 0 -0.5789 0 0 0 -7.9759
W =3×3-0.1791 -0.9587 -0.1881 -0.8127 0.0649 -0.7477 -0.5545 0.2768 0.6368
結果がW * = D * W的
を満たすことを確認します。
W'*A-D*W'
ans=3×310-13年× -0.0266 -0.2132 -0.1243 0.0056 -0.0286 -0.0072 -0.0022 0 -0.0178
理論上は,固有値分解はこの関係を満たします。eig
は浮動小数点計算を使用して分解を行うため,W'*A
はD*W'
にほぼ等しい程度にしかなりません。言い換えると、W'*A-D*W'
は0
に近づきますが,厳密に等しくはなりません。
3行3列の行列を作成します。
A = [3 10 0;0 3 1;0 0 3];
A.
の固有値と右固有ベクトルを計算します。
[V,D]=环境影响评价(A)
V =3×31.0000 -1.0000 1.0000 0 0.0000 -0.0000 0 0 0.0000
D=3×33 0 0 0 3 0 0
A.
は反復固有値をもち,固有ベクトルは独立していません。つまり,A.
は対角化できず、したがって不完全であるということです。
A.
が不完全であっても、v
とD
が方程式* V = V * D
を満たすことを確認します。
A*V-V*D
ans=3×310-15× 0 0.8882 -0.8882 0 0 0.0000 0 0 0
理論上は,固有値分解はこの関係を満たします。eig
は浮動小数点計算を使用して分解を行うため,A*V
はV*D
にほぼ等しい程度にしかなりません。言い換えると、A*V-V*D
は0
に近づきますが,厳密に等しくはなりません。
2.つの行列A.
とB
を作成して,ペア(A、B)
の固有値と右固有ベクトルの一般化固有値問題を解きます。
A =[1/根号(2)0;0 1];B = [0 1;1 /√(2)0];[V D] = eig (A, B)
V =2×2复杂1.0000+0.0000i 1.0000+0.0000i 0.0000-0.7071i 0.0000+0.7071i
D=2×2复杂1.000 + 1.000 i + 0.000 i + 0.000 i + 0.000 i + 0.000 i
結果がA*V=B*V*D
を満たすことを確認します。
* V - B * * D
ans=2×20 0 0 0
残差誤差* V - B * * D
は厳密に0になります。
マシンの精度に近い値を含む,悪条件の対称行列を作成します。
总体安排长EA = diag([10^-16, 10^-15])
A=2×21.000000000000000e-16 0 0 1.000000000000000e-15
既定のアルゴリズムを使用して,一般化固有値と一連の右固有ベクトルを計算します。この場合,既定のアルゴリズムは“乔”
です。
[V1,D1]=eig(A,A)
V1=2×21.000000000000000e+08 00 3.162277660168380e+07
D1=2×29.999999999999E-01 0 0 1.000000000000000 E+00
ここで、“qz”
アルゴリズムを使用して、一般化固有値と一連の右固有ベクトルを計算します。
[V2,D2]=eig(A,A,“qz”)
V2=2×21 0 0 1
D2=2×21 0 0 1
“乔”
の結果がA*V1=A*V1*D1
をどの程度満たすかをチェックします。
总体安排短A*V1-A*V1*D1
ans=2×210-23× 0.1654 0 0 -0.6617
次に“qz”
の結果がA*V2=A*V2*D2
をどの程度満たすかをチェックします。
* V2 - * V2 * D2
ans=2×20 0 0 0
両方とも対称行列である場合、eig
は既定で“乔”
アルゴリズムを使用します。この場合,求出アルゴリズムがより正確な結果を返します。
2.行 2.列の単位行列A.
と、特異行列B
を作成します。
一个=眼(2);B = [3 6;4 8];
コマンド[V,D]=eig(B\A)
を使用して行列
の一般化固有値を計算しようとすると、B \
がInf
値を出力するためMATLAB®はエラーを返します。
代わりに、関数eig
に両方の行列を渡して、一般化固有値と右固有ベクトルを計算します。
[V D] = eig (A, B)
V =2×2-0.7500 -1.0000 -1.0000 0.5000
D=2×20.0909 0 0 Inf
両方の行列を別々に渡し、問題の求解に最適なアルゴリズムをeig
に選択させるほうがよい結果になります。この例で、环境影响评估(A、B)
は、B
が可逆でなくても、一連の固有ベクトルと少なくとも 1.つの実数固有値を返します。
最初の固有値と最初の固有ベクトルについて であることを確認します。
eigval=D(1,1);eigvec=V(:,1);A*eigvec-eigval*B*eigvec
ans=2×110-15×0.1110 - 0.2220
理論上は、固有値分解はこの関係を満たします。浮動小数点計算を使用して分解が行われるため、A * eigvec
は、この例で計算されたとおり、eigval * B * eigvec
にほぼ等しい程度にしかなりません。
A.
—入力行列入力行列。実数正方行列または複素正方行列として指定します。
データ型:双
|单
複素数のサポート:あり
B
—一般化固有値問題の入力行列。一般化固有値問題の入力行列。実数または複素数の値からなる正方行列として指定します。B
はA.
と同じサイズでなければなりません。
データ型:双
|单
複素数のサポート:あり
平衡期权
—バランスオプション“平衡”
(既定値) |“nobalance”
バランスオプション。事前のバランス化手順を有効にする“平衡”
、あるいは無効にする“nobalance”
として指定します。ほとんどの場合,バランス化手順によってA.
の条件付けは改善され,より正確な結果が得られるようになります。ただし,バランス化によって不正確な結果が生じる場合があります。A.
にスケールが著しく異なる値が含まれる場合は“nobalance”
を指定します。たとえば、A.
に非ゼロの整数の他に,ごく小さい(ゼロに近い)値も含む場合,バランス化手順では,小さい値をスケーリングして整数と同じ意味をもたせる場合があり,不正確な結果が生じることがあります。
“平衡”
は既定の動作です。バランス化の詳細については、均衡
を参照してください。
算法
—一般化固有値アルゴリズム“乔”
|“qz”
一般化固有値アルゴリズム。“乔”
または“qz”
を指定して,ペアの一般化固有値の計算に使用するアルゴリズムを選択します。
アルゴリズム | 説明 |
---|---|
“乔” |
B のコレスキー分解を使って、A. とB の一般化固有値を計算します。 |
“qz” |
一般化 舒尔分解とも呼ばれる QZアルゴリズムを使用します。このアルゴリズムはA. およびB の対称性を無視します。 |
一般に、この 2.つのアルゴリズムは同じ結果を返します。QZアルゴリズムは、悪条件の行列を伴うような特定の問題に対してより安定しています。
算法
引数を省略すると,関数eig
は、A.
とB
のプロパティに基づいてアルゴリズムを選択します。この関数は、対称 (エルミート)A.
と対称(エルミート)正定値B
に対しては,“乔”
アルゴリズムを使用します。それ以外については“qz”
アルゴリズムを使用します。
A.
またはB
が非対称の場合は、指定するアルゴリズムにかかわらず、関数eig
は常に QZアルゴリズムを使用します。
eigvalOption
—固有値のオプション“向量”
|“矩阵”
固有値のオプション。“向量”
または“矩阵”
として指定します。このオプションにより、固有値を列ベクトルまたは対角行列のいずれで返すかが指定できます。既定の動作は、指定された出力の数により異なります。
e=eig(A)
のように出力を 1.つ指定する場合、既定では、固有値は列ベクトルとして返されます。
[V,D]=环境影响评价(A)
のように 2.つまたは 3.つの出力を指定する場合、既定では、固有値は対角行列D
として返されます。
例:D = eig (A,“矩阵”)
は、1.つの出力構文により固有値の対角行列を返します。
v
— 右固有ベクトル右固有ベクトル。A.
の右固有ベクトルまたはペア(A、B)
の一般化右固有ベクトルを列にもつ正方行列として返されます。v
の形式と正規化は、入力引数の組み合わせによって異なります。
[V,D]=环境影响评价(A)
は、* V = V * D
となるような,A.
の右固有ベクトルを列にもつ行列v
を返します。v
の固有ベクトルは、個々の 2.ノルムが 1.となるように正規化されます。
[V,D]=eig(A,'nobalance')
は,行列v
も返します。ただし,各固有ベクトルの 2 ノルムは必ずしも 1 である必要はありません。
[V D] = eig (A, B)
および[V,D]=eig(A,B,算法)
は、A*V=B*V*D
を満たす一般化右固有ベクトルを列にもつ行列としてv
を返します。各固有ベクトルの 2.ノルムは必ずしも 1.である必要はありません。この場合、D
には、主対角に沿ってペアの一般化固有値(A、B)
が含まれます。
eig
で“乔”
アルゴリズムと対称(エルミート)行列A.
および対称 (エルミート) 正定値B
を使用する場合、v
の固有ベクトルは、個々のB
ノルムが1になるように正規化されます。
マシンやMATLAB®のリリースが異なる場合,異なる固有ベクトルが出力されることがありますが,数値的にはいずれも正確です。
実数固有ベクトルでは,固有ベクトルの符号を変更できます。
複素数固有ベクトルでは、絶対値が 1.の任意の複素数を固有ベクトルに乗算できます。
重複固有値では,その固有ベクトルを線形結合によって再結合できます。たとえば,Ax=λxかつAy=λyの場合、A(x+y)=λ(x+y)であるため、x+yも A.の固有ベクトルです。
W
— 左固有ベクトル左固有ベクトル。A.
の左固有ベクトルまたはペア(A、B)
の一般化左固有ベクトルを列にもつ正方行列として返されます。W
の形式と正規化は、入力引数の組み合わせによって異なります。
[V,D,W]=eig(A)
は、W * = D * W的
となるような,A.
の左固有ベクトルを列にもつ行列W
を返します。W
の固有ベクトルは、個々の 2.ノルムが 1.となるように正規化されます。A.
が対称の場合、W
はv
と同じになります。
[V,D,W]=eig(A,'nobalance')
は,行列W
も返します。ただし,各固有ベクトルの 2 ノルムは必ずしも 1 である必要はありません。
[V D W] = eig (A, B)
および[V D W] = eig (A, B,算法)
は、W W * = D *的* B
を満たす一般化左固有ベクトルを列にもつ行列としてW
を返します。各固有ベクトルの 2.ノルムは必ずしも 1.である必要はありません。この場合、D
には、主対角に沿ってペアの一般化固有値(A、B)
が含まれます。
A.
とB
が対称の場合、W
はv
と同じになります。
マシンや MATLABのリリースが異なる場合、異なる固有ベクトルが出力されることがありますが、数値的にはいずれも正確です。
実数固有ベクトルでは,固有ベクトルの符号を変更できます。
複素数固有ベクトルでは、絶対値が 1.の任意の複素数を固有ベクトルに乗算できます。
重複固有値では,その固有ベクトルを線形結合によって再結合できます。たとえば,Ax=λxかつAy=λyの場合、A(x+y)=λ(x+y)であるため、x+yも A.の固有ベクトルです。
非共役転置一个=。
に等しい場合,正方行列A.
は対称行列です。
行列要素では、これは次を意味します。
実数行列は複素共役に影響されないので,対称な実数行列もエルミート行列になります。例として,行列
は対称行列であると同時にエルミート行列でもあります。
非共役転置の打ち消しA=-A.'
に等しい場合,正方行列A.
は歪対称行列です。
行列要素では、これは次を意味します。
実数行列は複素共役に影響されないので,歪対称な実数行列も歪エルミート行列になります。例として,行列
は歪対称行列であると同時に歪エルミート行列でもあります。
複素共役転置A=A'
に等しい場合,正方行列A.
はエルミート行列です。
行列要素では、これは次を意味します。
エルミート行列の対角のエントリは常に実数です。実数行列は複素共役に影響されないので、対称な実数行列もエルミート行列になります。例として、行列
は対称行列であると同時にエルミート行列でもあります。
エルミート行列の固有値は実数です。
複素共役転置の打ち消しA=-A'
に等しい場合,正方行列A.
は歪エルミート行列です。
行列要素では、これは次を意味します。
歪エルミート行列の対角のエントリは常に純粋な虚数かゼロです。実数行列は複素共役に影響されないので,歪対称な実数行列も歪エルミート行列になります。例として,行列
は歪エルミート行列であると同時に歪対称行列でもあります。
歪エルミート行列の固有値は純粋な虚数かゼロです。
関数eig
は、実対称であるスパース行列の固有値を計算できます。スパース行列の固有ベクトルや、実対称でないスパース行列の固有値を計算するには、関数EIG
を使用します。
使用上の注意事項および制限事項:
v
は基底が異なる固有ベクトルを表す場合があります。この表現は、生成されたコードで計算された固有ベクトルは、Cおよび C++コードと MATLABで異なる可能性があることを意味します。D
の固有値の順序は MATLABと異なる場合があります。固有値問題の方程式* V = V * D
を使用して、v
値とD
値を検証できます。
標準固有値問題[V,D]=环境影响评价(A)
で、A.
がエルミートの場合、コード生成では舒尔
を使用してv
とD
を計算します。それ以外の場合、[V,D]=环境影响评价(A)
の結果はMATLABで[V,D]=eig(A,眼睛(大小(A)),'qz')
を使用して得られる結果と同様になります。ただし,v
の列が正規化されます。
LAPACKライブラリコールバッククラスを指定する場合,コードジェネレーターでは以下のオプションがサポートされます。
標準固有値問題の“平衡”
および“nobalance”
オプション。
左固有ベクトルの計算。
出力は複素数になります。
入力行列に非有限値が含まれる場合、生成されたコードはエラーを発行しません。代わりに、出力には楠
値が含まれます。
コード生成では,この関数のスパース行列入力はサポートされません。
使用上の注意事項および制限事項:
以下の入力引数を1つとる構文のみがサポートされます。
e=eig(A)
[V,D]=环境影响评价(A)
詳細については、GPUでのMATLAB関数の実行(并行计算工具箱)を参照してください。
使用上の注意事項および制限事項:
非対称の非スパース行列A.
では、eig(A,“无平衡”)
構文を使用しなければなりません。
一般化の場合、环境影响评估(A、B)
、A.
,およびB
は、実対称または複素エルミートでなければなりません。さらに、B
は正定値でなければなりません。
非スパース分散配列では,以下の構文がサポートされません。
非対称A.
の[\uuuu]=eig(A,“余额”)
。
[uuuz]=eig(A,B,'qz')
[V D W] = eig (A, B)
詳細については、分散配列を使用したMATLAB関数の実行(并行计算工具箱)を参照してください。
次のMATLABコマンドに対応するリンクがクリックされました。
コマンドをMATLABコマンドウィンドウに入力して実行してください。WebブラウザーはMATLABコマンドをサポートしていません。
您还可以从以下列表中选择网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。