1. ホーム
  2. math

[解決済み] Mathematica の行列対角化

2022-03-03 21:05:35

質問

A=PDP^-1となるような行列Aを考えている。

これをMathematicaを使って解く方法は

a={{0, -1}, {-1, 0}}
d = DiagonalMatrix[Eigenvalues[a]]
{{-1,0}, {0,1}}
p = Transpose[Eigenvectors[a]]

p.d.Inverse[p]
{{0, -1}, {-1, 0}}

どちらが正しいのでしょうか。

問題は、P行列が私の期待したものと違うということです。Mathematica が生成する行列は

p={{1, -1}, {1, 1}}

しかし、私が探しているのは

p2={{1/Sqrt[2], 1/Sqrt[2]}, {1/Sqrt[2], -(1/Sqrt[2])}}
p2.d.Inverse[p2]
{{0,-1}, {-1,0}}

これも方程式が解ける。Transpose[Eigenvectors[a]]を実行するときに,Mathematica に異なる答えを表示させる方法はありますか.

どのように解決するのですか?

あなたがする必要があるのは、あなたが得る答えを正規化することです。という関数があります。 ノーマライズ このように使用することができます。

Normalize /@ {{1, -1}, {1, 1}}

<イグ