How do I show that my matrix is unitary?

13 ビュー (過去 30 日間)
Bryan Acer
Bryan Acer 2016 年 5 月 9 日
編集済み: Roger Stafford 2016 年 5 月 9 日
I have a matrix H with complex values in it and and set U = e^(iH). My code to verify that U is a unitary matrix doesn't prove that U' == U^-1 which holds true for unitary matrices. What am I doing wrong? Thank you!
H = [2 5-i 2; 5+i 4 i; 2 -i 0]
U = exp(i * H)
UConjTrans = U'
UInverse = inv(U)
  3 件のコメント
Bryan Acer
Bryan Acer 2016 年 5 月 9 日
編集済み: Bryan Acer 2016 年 5 月 9 日
The wording of the problem implies that H is hermitian and that U must therefore be a unitary matrix given by U = e^(i*H)
"show that H is hermitian." "Show U is unitary. (Recall a unitary matrix means U† = U−1)"
Roger Stafford
Roger Stafford 2016 年 5 月 9 日
It is obviously true that H is Hermitian symmetric, but it does not follow that exp(i*H) is unitary, as you yourself have shown.
Note: The set of eigenvectors obtained by [V,D] = eig(H) can constitute a unitary matrix in such a case if properly normalized.

サインインしてコメントする。

回答 (1 件)

Roger Stafford
Roger Stafford 2016 年 5 月 9 日
編集済み: Roger Stafford 2016 年 5 月 9 日
The problem lies in your interpretation of the expression e^(i*H). It is NOT the same as exp(i*H). What is called for here is the matrix power, not element-wise power, of e. The two operations are distinctly different. Do this:
e = exp(1);
U = e^(i*H);
You will see that, subject to tiny rounding error differences, the inverse of U is equal to its conjugate transpose.
See:
http://www.mathworks.com/help/matlab/ref/mpower.html

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by