How can write Dirac bra-ket notation in MATLAB? Example please.
25 ビュー (過去 30 日間)
古いコメントを表示
Idrees Muhammad
2022 年 12 月 22 日
コメント済み: Bjorn Gustavsson
2023 年 2 月 10 日
Bra-ket notation is | > , <|
3 件のコメント
Image Analyst
2022 年 12 月 22 日
@Idrees Muhammad You accepted the answer below so we assume you figured it out and got it working. 🙂 Thanks for accepting and awarding @Bjorn Gustavsson "reputation points".
採用された回答
Bjorn Gustavsson
2022 年 12 月 22 日
That depends on what you want to apply the bra-ket on. If it is simple vectors you might get away with simple inner-products using dot. If you have some more advanced objects (wave-functions, and some quantum-mechanical operator) you might start with something like:
function Q = bra_ket(Psi,Phi,f_op)
Q = integral3(@(r1,r2,r3) Psi(r1,r2,r3).*f_op(Phi(r1,r2,r3)),r1min,r1max,r2min,r2max,r3min,r3max)
end
(There should surely be a conjugation in there somewhere). This might run into problems when you need to calculate gradients for the operator acting on Phi for example, the function should be in the integral3-call should be capable to handle vectorized input and that might require some ingenuity.
If you have wave-functions on some finite grid you might get something starting with trapz:
function Q = bra_ket_traps(Psi,Phi,f_op,r1,r2,r3)
opPhi = f_op(Phi,r1,r2,r3); % Here you might need additional argument
Q = trapz(r3(1,1,:),trapz(r2(1,:,1),trapz(r1(:,:,1),conj(Psi).*(opPhi)),2),3);
end
You might also have some good use of the chebfun-toolbox for more clever tools. You can find it on the file exchange.
HTH
5 件のコメント
Bjorn Gustavsson
2023 年 2 月 10 日
What are yout Psi, Phi? Wavefunctions defined in what way? What dimensionality are your problem? What is the operator f_op? Does f_op work on Phi and Psi in the way you intend?
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Call C++ from MATLAB についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!