ブラとケットの算法についての積の演算子
- ハミルトニアンHと任意の演算子Aの積をHAとし、その算法について説明します。
- Hの固有関数を|n>、|n'>として、それぞれの固有値をEn、En'とします。
- HAを|n>と|n'>ではさんだ場合の計算の手順について述べます。
- ベストアンサー
積の演算子についてのブラとケットの算法について教えてください
ハミルトニアンHと任意の演算子Aの積をHAとします。Hの固有関数を|n>、 |n'>としてそれぞれの固有値をEn、En'とすると H|n>=En|n>、 H|n'>=En'|n'>となります。 今、HAを|n>と|n'>ではさんだ場合の算法についてですが、一応次のように やりました。これでいいのでしょうか? <n'|HA|n>=<n'|H|n'><n'|Å|n>=En'<n'|H|n'><n'|Å|n> =En'<n'|HA|n> ものの本によればHの行列要素とAの行列要素の積で書かれると書いてありま すが。。。上の計算では都合よく真ん中を|n'><n'|としましたが本当にこれで いいのでしょうか?ひとつよろしくお願いします。
- Santa123
- お礼率62% (5/8)
- 物理学
- 回答数3
- ありがとう数4
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
どうも。補足を読みました。 >ここでの|i>は|n>と|n'>を含むHのすべての固有ケットをとればいいのでしょうか? そうです。すべての和を取るのです。 一般に、波動関数を|φ>とおくと、Hの固有ケットの組を|i>などと書くと、 <φ|H|φ>=Σ<φ|j><j|H|i><i|φ> (Σは、すべてのj、iについての和をとる) となります。 <j|H|i>は、例えば、i、jがそれぞれ1、2、3の値を取るとすると、 <1|H|1> <1|H|2> <1|H|3> <2|H|1> <2|H|2> <2|H|3> <3|H|1> <3|H|2> <3|H|3> を一般的に表すことになるので、行列要素となります。 i=jの時、すなわち<j|H|j>は、その行列の対角要素になります。
その他の回答 (2)
- ryumu
- ベストアンサー率44% (65/145)
補足読みました。 私は物理のテキストに関しては、岩波書店のファイマン物理シリーズをお薦めしてます。 ブラケットに関しては、このシリーズの量子力学(砂川重信訳)の前半(~5章あたりまで)に述べられているので、一度読んでみられてはいかかでしょうか。 また私はNMRを用いた研究をしてるので、NMRのテキストで量子力学を勉強することが多いのですが、荒田洋治著「NMRの書」(丸善)の第2章「量子力学とスピン」の一読もお勧めします。
お礼
ありがとうございました。早速ファインマン物理シリーズを あたってみます(^^)。
- ryumu
- ベストアンサー率44% (65/145)
ちょっと違います^^; > 上の計算では都合よく真ん中を|n'><n'|としましたが・・・ これはしても良いんですけど、|n><n|をはずす理由も無いので、これも考慮する必要があります。 一般的にHの固有ケットを|i>と置くと(この場合、|n>と|n’>の二種類だけということにしてるんですよね)、 <n'|HA|n>=Σ<n'|H|i><i|A|n>=En’<n'|A|n> となります(Σはiのすべてについての和)。 ここで、<n'|n>=0であり、<n'|H|i>は i=n’の時だけ値(En')を持つことを利用してます。 ところで、Santa123さんの書かれている式のところで、 >>・・=<n'|H|n'><n'|Å|n>=En'<n'|H|n'><n'|Å|n> は、おかしいですよね? <n'|H|n'>=En' なんですから。
補足
早速のレスありがとうござました。 ところで >これはしても良いんですけど、|n><n|をはずす理由も無いので、これも考慮する >必要があります。 >一般的にHの固有ケットを|i>と置くと(この場合、|n>と|n’>の二種類 >だけということにしてるんですよね)、 > <n'|HA|n>=Σ<n'|H|i><i|A|n>=En’<n'|A|n> >となります(Σはiのすべてについての和)。 ここでの|i>は|n>と|n'>を含むHのすべての固有ケットをとればいいの でしょうか? >ところで、Santa123さんの書かれている式のところで、 >>>・・=<n'|H|n'><n'|Å|n>=En'<n'|H|n'><n'|Å|n> >は、おかしいですよね? <n'|H|n'>=En' なんですから ご指摘のとおりです(^^);;
関連するQ&A
- 昇降演算子のブラケットの問題
昇降演算子のブラケットの問題 以下の問題を解いたら、 ψ=D*exp(-cx^2/2)(c、Dは定数)となり、 下記画像の(5)式を使いませんでした。 どうやったら(5)式を使うのでしょうか。 どなたか教えていただけるとうれしいです。 -- 質量m、角振動数ωの1次元調和振動子の ハミルトニアンは(1)式で与えられる。 ここでp(^は省略します)は運動量演算子、 xは位置演算子であり、交換関係[x,p]=xp-px=ih/2πを満たす。 また、(2)、(3)で定義される2つの演算子を考える。 演算子N=a†aの固有値をnとし、 その規格化された固有状態を|n>とする。 すなわちN|n>=n|n>,<n|n>=1である。 次の2つの関係式が成り立つ。 a†|n>=√(n+1)|n+1>, a|n>=√n|n-1> 上記で定義された固有状態|n>の規格化された波動関数を ψ_n(x)=<x|n>とする。 ここで、|x>は演算子x(^は省略します)の固有状態である。 基底状態|0>の満たす条件a|0>=0を用いて、 ψ_0(x)=<x|0>を求めよ。なお、(4)、(5)の関係式を用いてもよい。
- ベストアンサー
- 物理学
- 分かる限りで構わないのでお願いします。
分かる限りで構わないのでお願いします。 ハミルトニアン H=(p^2/2m)+{(m・ω^2・x^2)/2} で記述される1次元調和振動子を考える。ここで、座標x^,運動量p^は正準交換関係[x^,p^]=ihを満たすエルミート演算子であるとする。 a^={√(mω/2h)}・{x^+(ip^/mω)}とおくと [a^,a^’]=1, H^=hω(N^+(1/2)), (N^=a^’a^), [N^,a^]=-a^, [N^,a^’]=a^’, が成立する。これらの公式を用いて以下の問に回答して下さい。 (a^,x^,p^はそれぞれの文字の上に^があるイメージで。a^’はa^の右上に+があるイメージで。) (1)任意の状態ベクトル |Ψ〉に対し、〈Ψ|Ψ〉≧0である事実を用いて、エルミート演算子N^の固有値が、非負の整数値となることを示して下さい。また、状態 |0〉を、 a^|0〉=0, 〈0|0〉=1 を満たすものと定義するとき、Nの固有値nの固有状態が |n〉:=N_n(a^’)^n|0〉と表されることを示して下さい。さらにエネルギー固有値も求めて下さい。 (2)(1)の固有状態 |n〉を 〈n|n〉=1と規格化するとき、規格化因子N_nを決定して下さい。 (3)公式〈x|x^|Ψ〉=x〈x|Ψ〉, 〈x|p^|Ψ〉=-ih・∂/∂x〈x|Ψ〉、などを用いて波動関数φ_n(x)≡〈x|n〉を求めて下さい。 (ヒント:exp(ε^2/2)・exp(-ε/2)=d/dε-εを利用) (4)規格化された固有状態|n〉に対する演算子x,pの行列要素 〈m|x^|n〉, 〈m|p^|n〉を計算して下さい。 (ヒント:まずa^,a^’の行列要素を求め、次にx^,p^がa^,a^’を用いてどのよに書けるか考える。)
- ベストアンサー
- 物理学
- クロネッカー積の固有値と逆行列について
タイトルどおり、クロネッカー積の固有値と逆行列について教えてください。 A=N*N正方行列、B=M*M正方行列のクロネッカ積C=A*Bの固有値と逆行列について解説されているサイトや文献がありましたら教えてもらえませんか。 ちなみに線形代数は学部1年で習う程度しか知りません。またN=M=2の場合は確認したのですが、一般的なものが知りたいので、よろしくお願いいたします。 クロネッカー積の基本は http://www.aichi-gakuin.ac.jp/~chino/anova/chapter1/sec1-4-7.html に書いています。
- ベストアンサー
- 数学・算数
- (汎用的に)行列の積を求めるプログラム
L*M実行列A , M*N実行列B , M*N実行列C を引数として、A*BをCに代入するプログラムを作りたいと思っています。 具体的には、エラーがでるのはわかっていますがイメージとして void multiply(int L,int M,int N,double A[L][M],double B[M][N],double C[L][N]) { for(int l=0;l<L;l++) for(int n=0;n<N;n++) C[l][n]=0; for(int l=0;l<L;l++){ for(int m=0;m<M;m++){ for(int n=0;n<N;n++) C[l][n]+=A[l][m]*B[m][n]; } } } という感じです。Cを自分なりに学習したところ、「2次元配列を渡すには行or列数が少なくとも既知でないといけない」のは知識として得ているのですが、ではこの問題を回避して所望のプログラムを書け、と言われると行き詰ってしまいました。 卒論をするにあたり、種々のサイズの行列演算が必要なので、できるだけ効率的な関数を書いておきたいのですが、どうすれば一般の行列の積の演算が可能になるのでしょうか?
- ベストアンサー
- C・C++・C#
- 演算子を対角化するとはどういう意味ですか?
量子力学を学んでいます。 テキストを読んでいてよく「ハミルトニアンHを対角化して・・・」のような表現に出会います。 線型代数を学んだときには、行列Mを対角化することとは、ある行列Pを P^(-1) M P のようにかけて対角行列を作ることだったと思います。 そこで、ある演算子を対角化するとは具体的にどういうことなのですか?
- 締切済み
- 物理学
- 以下の問題が与えられたのですが、
以下の問題が与えられたのですが、 (4)という定義なしに答える方法はあるのでしょうか? 本問では(4)という定義はありません。 どなたか教えていただけると助かります。 質量m、角振動数ωの1次元調和振動子の ハミルトニアンは(1)式で与えられる。 ここでp(^は省略します)は運動量演算子、 xは位置演算子であり、交換関係[x,p]=xp-px=ih/2πを満たす。 また、(2)、(3)で定義される2つの演算子を考える。 演算子N=a†aの固有値をnとし、 その規格化された固有状態を|n>とする。 すなわちN|n>=n|n>,<n|n>=1である。 次の2つの関係式が成り立つことを示し、 係数A,Bを求めよ。 a†|n>=A|n+1>, a|n>=B|n-1> ただしA,Bは正の実数とする。
- ベストアンサー
- 物理学
- 固有値を全く持たない演算子(or 行列、作用素?)はあり得るのか?
任意の固有値{e_i}が0以上(0 <= e_i)であり、また任意の固有値{e_i}は整数に限られるような演算子(作用素?)Nがあるとします。 さらに、Nが固有値Eを持つとすれば、E-1もE+1も固有値であることが分かっているとします。(ただし、E=1の場合は、E-1は固有値ではありません。) 仮にNが1つでも固有値を持つとすれば、上記仮定より必然的に0以上の整数全てがNの固有値である事になります。しかし、Nが全く固有値を持たないときは、この限りではありません。 私の疑問は、全く固有値を持たない演算子(作用素)は存在しえるのかという事です。0演算子(作用素)ですら、固有値0を持っています。 できれば、演算子は線形演算子、エルミートであり、作用される被演算子(被作用素?)は連続で、絶対積分可能な関数であるとしたいのですが、その様な空間(?)の数学的に厳密な定義の仕方が分からないので、その場合に限らなくてもかまいません。何か一例でも、存在すると聞いたことがあるなどでもかまいません。 よろしくお願いします。
- ベストアンサー
- 数学・算数
- 代数
次の行列の集合は行列の乗法に関して群となることを示せ。 N:={A∈GL(n,C)| Aの各行各列に0でないCの元が唯一つ} (Cは複素数全体の集合とする) A,B∈Nに対してdet(A,B)=detAdetB≠0なのでA,B∈NつまりNは乗法で閉じている。 行列の積について結合法則は成り立つ。 En(n次の単位行列)についてdetEn=1≠0つまりEn∈Nまたfor ∀A∈N,En・A=A・En=A Enは単位元 A∈Nに対しdetA≠0であるので逆行列A^(-1)が存在しdet(A^(-1))=(detA)^(-1)≠0 よってA^(-1)∈N逆元が存在する。 ∴Nは群である。 これで示したことになるのでしょうか?
- 締切済み
- 数学・算数
- 行列の積について
3行3列の行列AとB、およびその和と積を表示するものです #include <stdio.h> int main (void) { int i,j,k; double a[3][3] = {{2.4, 5.5, -8.5},{0.8, 3.7, 1.1},{3.5, -9.1, 2.6}}; double b[3][3] = {{-5.1, 9.8, 2.3},{-4.1, 0.2, -0.3},{3.3, 6.1, -1.3}}; double c[3][3] = {0}; printf(" 行列A\n"); for (i = 0; i < 3; i++){ for (j = 0; j < 3; j++) printf("%5.1f", a[i][j]); printf("\n"); } printf("\n 行列B\n"); for (i = 0; i < 3; i++){ for (j = 0; j < 3; j++) printf("%5.1f", b[i][j]); printf("\n"); } printf("\n 行列A+B\n"); for (i = 0; i < 3; i++){ for (j = 0; j < 3; j++) c[i][j] = a[i][j] + b[i][j]; } for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) printf("%5.1f", c[i][j]); printf("\n"); } for (i=0; i<3 ; i++){ for (j=0; j<3; j++) for (k=0; k<3; k++) c[i][j] =c[i][j]+ a[i][k]* b[k][j]; } printf("\n 行列AB\n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) printf("%7.2f", c[i][j]); printf("\n"); } return 0; } これだと積だけが異なった値が出てしまいます。 試しに、積の部分だけで組んでみると正しい答えが出ました。 for文のブロックの組み方がまずいのかなと思っていますが、これ以外だと、行列のレイアウトが崩れてしまいます どのように直したらいいのか、ご教示お願いします
- ベストアンサー
- C・C++・C#
- 行列の固有値問題
以下の証明はどのように行えばいいのでしょうか。 n次多項式f(s)=a(n)s^n + a(n-1)s^(n-1) + ・・・・ +a(1)s + a(0)とする。 行列A(n×nの正方行列)の固有値がλ1、λ2、・・・、λnであるとき、行列多項式f(A)の固有値はf(λ1)、f(λ2)、・・・、f(λn)であることを、任意のn次正方行列は適当な正則行列QによってQ^(-1)AQが下三角行列になるようにできることと、下三角行列の固有値は対角成分になることを用いて示せ。 という問題です。分かりにくくてすいません。 行列多項式というものが初めて目にする言葉ですし、方針が立ちません。 よろしくお願いします。
- 締切済み
- 数学・算数
お礼
非常によく分かりました。ありがとうございました。これで気分がスッキリしました(^^)。 ブラとケットの演算で今更ながらDiracの本などを紐解いてみたりしたのですが、どうもよく飲み込めなくて。。。何かこの辺りの話をわかりやすく書かれているテキストをご存知でしたら、教えていただけると嬉しいです。あつかましいお願いで恐縮ですが、お時間のあるときにでも一つよろしくお願いします。