1. ホーム
  2. math

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

2022-01-26 13:37:02

質問

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}}

画像