行列 m の固有多項式を与える.
CharacteristicPolynomial[{m,a},x]
a についての一般化された固有多項式を与える.
CharacteristicPolynomial
行列 m の固有多項式を与える.
CharacteristicPolynomial[{m,a},x]
a についての一般化された固有多項式を与える.
詳細
- m は正方行列でなければならない.
- 数値と記号の両方が記入できる.
- CharacteristicPolynomial[m,x]は,基本的にDet[m-id x]に等しい.ただし,id は適切な大きさの単位行列である. »
- CharacteristicPolynomial[{m,a},x]は,基本的にDet[m-a x]である. »
例題
すべて開く すべて閉じる例 (3)
CharacteristicPolynomial[{{1, 2}, {3, 4}}, x]Plot[%, {x, -5, 10}]m = (| | |
| - | - |
| a | b |
| c | d |);CharacteristicPolynomial[m, x]Det[m - x IdentityMatrix[2]]CharacteristicPolynomial[IdentityMatrix[3], λ]CharacteristicPolynomial[ConstantArray[0, {10, 10}], λ]スコープ (17)
基本的な用法 (7)
CharacteristicPolynomial[{{1.1, 2.2, 3.25}, {0.76, 4.6, 5}, {0.1, 0.1, 6.1}}, x]CharacteristicPolynomial[Table[N[1 / (i + j + 1), 20], {i, 3}, {j, 3}], x]CharacteristicPolynomial[{{1.2 + I, 3 - 2 I, 3 π}, {-0.2, 5I, 2}, {1, 2.3, E}}, x]CharacteristicPolynomial[{{(1/3), (1/2), (3/5)}, {(1/2), (4/5), 1}, {(3/5), 1, (9/7)}}, x]Plot[%, {x, -1.5, 2.5}]m = RandomReal[{1, 9}, {100, 100}];CharacteristicPolynomial[m, x];//Timingℱ = FiniteField[43, 2];
CharacteristicPolynomial[{{ℱ[12], ℱ[23], ℱ[34]}, {ℱ[45], ℱ[56], ℱ[67]}, {ℱ[78], ℱ[89], ℱ[90]}}, x]CenteredIntervalオブジェクトを含む行列の固有多項式:
(m = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 3}, WorkingPrecision -> 10], {2}])//MatrixFormp = CharacteristicPolynomial[m, x]ranrep[e_CenteredInterval] := e["Center"] + RandomInteger[{-1000, 1000}] / 1000 e["Radius"]
(mrep = Map[ranrep, m, {2}])//MatrixFormp の係数には mrep の固有多項式の係数が含まれていることを確認する:
MapThread[IntervalMemberQ, {CoefficientList[p, x], CoefficientList[CharacteristicPolynomial[mrep, x], x]}]一般化された固有値 (4)
m1 = {{1, 2}, {5, 4}};m2 = {{4, 3}, {6, 4}};CharacteristicPolynomial[{m1, m2}, x]Det[m1 - x m2]a = {{1., 1.5, 2.}, {3.1, 2., 2.9}, {3., 2., 1.}};b = {{1.3, .5, 1.1}, {0., 1.5, 2.3}, {1., 0., 1.}};CharacteristicPolynomial[{a, b}, x]a = {{1, 1, 1}, {1, 0, 1}, {0, 0, 1}};b = {{0, 1, 1}, {0, 1, 1}, {1, 0, 0}};CharacteristicPolynomial[{a, b}, x]Eigenvalues[{a, b}]CharacteristicPolynomial[N[{a, b}, 20], y]a = {{x, 1 + x}, {1 - x, x}};b = {{1, 1}, {1, 2x}};
CharacteristicPolynomial[{a, b}, y]特殊行列 (6)
SparseArray[{{1, 3} -> 2, {2, 2} -> 3, {3, 1} -> 1, {4, 2} -> 5}, {4, 4}]CharacteristicPolynomial[%, x]SparseArray[{{x_, y_} /; Abs[x - y] < 3 -> 1}, {10, 10}]CharacteristicPolynomial[%, x]SymmetrizedArray[{{1, 1} -> 2, {1, 2} -> 1}, {2, 2}, Symmetric[All]]CharacteristicPolynomial[%, x]QuantityArray[{{1, 2}, {3, 4}}, {"Meters", "Meters"}]CharacteristicPolynomial[%, x]CharacteristicPolynomial[IdentityMatrix[12], λ]Factor[%]HilbertMatrix[n]の固有多項式:
CharacteristicPolynomial[HilbertMatrix[5], λ]JordanMatrix[λ,n]の固有多項式は
である:
CharacteristicPolynomial[JordanMatrix[λ, 4], x] == (λ - x)^4//SimplifyCharacteristicPolynomial[JordanMatrix[λ, 5], x] == (λ - x)^5//SimplifyCompanionMatrix[{c0,c1,…,cn}]の最小多項式:
CompanionMatrix[{c0, c1, c2, c3}]//MatrixFormCharacteristicPolynomial[%, x]アプリケーション (6)
m = (| | | |
| -- | --- | --- |
| -6 | 28 | 21 |
| 4 | -15 | -12 |
| -8 | a | 25 |)cp = CharacteristicPolynomial[m, x]roots = SolveValues[cp == 0, x]roots /. a -> 32roots /. a -> 31
のときは,
が唯一の実根で,他に2つある根は複素共役対である:
roots /. a -> 33
における重根の「弾み」にズームして3つの多項式を可視化する:
{Plot[Table[cp, {a, {32, 31, 33}}]//Evaluate, {x, -3, 6}, PlotLegends -> LineLegend[{a == 32, a == 31, a == 33}], ImageSize -> Small],
Plot[cp /. a -> 32, {x, 0.5, 2.5}, PlotLegends -> LineLegend[{a == 32}], ImageSize -> Small]}//Rowm = {{6, 5, 8, 1, 4}, {8, 0, 2, 7, 1}, {7, 4, 0, 8, 3}, {2, 3, 1, 1, 6}, {0, 4, 8, 2, 3}};cp = CharacteristicPolynomial[m, x]cp /. x -> 0Times @@ SolveValues[cp == 0, x] // FullSimplifyDetを使って直接計算した場合と比較する:
Det[m]行列のトレースを固有多項式で次数が2番目に高い累乗項の係数として計算する:
m = {{4, 3, 8, 9}, {8, 1, 0, 7}, {1, 2, 6, 7}, {2, 5, 1, 2}};cp = CharacteristicPolynomial[m, x](-1)^Length[m] - 1Coefficient[cp, x^Length[m] - 1]Total[SolveValues[cp == 0, x]]//FullSimplifyTrを使って直接計算した場合と比較する:
Tr[m]m = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};SolveValues[CharacteristicPolynomial[m, x] == 0, x]Eigenvaluesを使って直接計算した場合と比較する:
Eigenvalues[m]固有多項式を使って行列
と
の固有値と固有ベクトルを求める:
a = {{3, 9, 4}, {3, 7, 1}, {8, 1, 8}};cp = CharacteristicPolynomial[a, x]CharacteristicPolynomial[Transpose[a], x] == cpしたがって2つの行列は同じ固有値を持つが,これは多項式の根である:
λ = SolveValues[cp == 0, x]Subscript[v, λ] = Join[NullSpace[a - λ[[1]]IdentityMatrix[3]], NullSpace[a - λ[[2]]IdentityMatrix[3]], NullSpace[a - λ[[3]]IdentityMatrix[3]]]//FullSimplifyEigensystemも同じ結果を与えるが,固有値を絶対値でソートする:
Eigensystem[a]Subsuperscript[v, λ, * ] = Join[NullSpace[a - λ[[1]]IdentityMatrix[3]], NullSpace[a - λ[[2]]IdentityMatrix[3]], NullSpace[a - λ[[3]]IdentityMatrix[3]]]//FullSimplify{MatrixPlot[Subscript[v, λ]], MatrixPlot[Subsuperscript[v, λ, * ]]}
の
についての一般化された固有系を固有多項式の根として求める:
a = {{1., 1.5, 2.}, {3.1, 2., 2.9}, {3., 2., 1.}};b = {{1.3, .5, 1.1}, {0., 1.5, 2.3}, {1., 0., 1.}};CharacteristicPolynomial[{a, b}, x]λ = SolveValues[% == 0, x]Subscript[v, λ] = Join[NullSpace[a - λ[[1]]b], NullSpace[a - λ[[2]]b], NullSpace[a - λ[[3]]b]]//FullSimplifyEigensystemを使って直接計算した場合と比較する:
Eigensystem[{a, b}]特性と関係 (10)
固有多項式はDet[m-id x]に等しい:
m = RandomInteger[9, {10, 10}];cp = CharacteristicPolynomial[m, x]% == Det[m - IdentityMatrix[Length[m]] x]一般化された固有多項式はDet[m-a x]に等しい:
{m, a} = RandomInteger[9, {2, 5, 5}];CharacteristicPolynomial[{m, a}, x]% == Det[m - a x]行列はその固有多項式の根である(ケーリー・ハミルトン(Cayley-Hamilton)の定理 [詳細]):
m = RandomInteger[10, {10, 10}];
cp = CharacteristicPolynomial[m, x];
MatrixPolynomialValue[cp, m, x] == ConstantArray[0, {10, 10}]MatrixPolynomialValue[cp, m, x]//AbsoluteTimingm = RandomReal[1, {10, 10}];Product[(v - x), {v, Eigenvalues[m]}] - CharacteristicPolynomial[m, x]//Simplify//Chop固有多項式の根の和は行列のトレース(Tr)である:
m = RandomReal[1, {10, 10}];roots = SolveValues[CharacteristicPolynomial[m, x] == 0, x];Total[roots] == Tr[m]同様に,根の積は行列式(Det)である:
Times @@ roots == Det[m]m = RandomReal[1, {10, 10}];CharacteristicPolynomial[m, x] == CharacteristicPolynomial[Transpose[m], x]t1 = (| | | |
| - | - | - |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |);t2 = (| | | |
| - | - | - |
| 1 | 4 | 0 |
| 0 | 1 | 3 |
| 0 | 0 | 1 |);t3 = (| | | |
| - | - | - |
| 1 | 0 | 0 |
| 5 | 1 | 0 |
| 6 | 7 | 1 |);CharacteristicPolynomial[t1, x] == CharacteristicPolynomial[t2, x] == CharacteristicPolynomial[t3, x]cl = RandomInteger[9, 10];
p = cl.x ^ Range[0, 9] + x ^ 10CharacteristicPolynomial[CompanionMatrix[cl], x] == pMatrixMinimalPolynomial[m,λ]は,(定数となる場合もある)多項式の商を伴って,CharacteristicPolynomial[m,λ]を割る:
mat = (| | | |
| - | -- | -- |
| 0 | -1 | 1 |
| 1 | 2 | -1 |
| 1 | 1 | 0 |);
PolynomialQuotientRemainder[CharacteristicPolynomial[mat, t], MatrixMinimalPolynomial[mat, t], t]a = (| | | | |
| -- | -- | - | - |
| -6 | 4 | 0 | 9 |
| -3 | 0 | 1 | 6 |
| -1 | -2 | 1 | 0 |
| -4 | 4 | 0 | 7 |);
χ = CharacteristicPolynomial[a, λ];
μ = MatrixMinimalPolynomial[a, λ];
Roots[μ == 0, λ] == DeleteDuplicates[Roots[χ == 0, λ]]PolynomialRemainder[μ ^ LCM@@(Max@Cases[#, λ ^ k_ :> k, -1]& /@ {μ, χ}), χ, λ]テクニカルノート
-
▪
- 行列演算の基礎 ▪
- 固有値と固有ベクトル
履歴
2003 で導入 (5.0) | 2007 で更新 (6.0) ▪ 2024 (14.0)
テキスト
Wolfram Research (2003), CharacteristicPolynomial, Wolfram言語関数, https://reference.wolfram.com/language/ref/CharacteristicPolynomial.html (2024年に更新).
CMS
Wolfram Language. 2003. "CharacteristicPolynomial." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/CharacteristicPolynomial.html.
APA
Wolfram Language. (2003). CharacteristicPolynomial. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CharacteristicPolynomial.html
BibTeX
@misc{reference.wolfram_2026_characteristicpolynomial, author="Wolfram Research", title="{CharacteristicPolynomial}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/CharacteristicPolynomial.html}", note=[Accessed: 10-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_characteristicpolynomial, organization={Wolfram Research}, title={CharacteristicPolynomial}, year={2024}, url={https://reference.wolfram.com/language/ref/CharacteristicPolynomial.html}, note=[Accessed: 10-September-2026]}