How can write Dirac bra-ket notation in MATLAB? Example please.

66 vues (au cours des 30 derniers jours)
Idrees Muhammad
Idrees Muhammad le 22 Déc 2022
Commenté : Bjorn Gustavsson le 10 Fév 2023
Bra-ket notation is | > , <|
  3 commentaires
Image Analyst
Image Analyst le 22 Déc 2022
@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".
Idrees Muhammad
Idrees Muhammad le 22 Déc 2022
Sir, you also can help me.

Connectez-vous pour commenter.

Réponse acceptée

Bjorn Gustavsson
Bjorn Gustavsson le 22 Déc 2022
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 commentaires
Idrees Muhammad
Idrees Muhammad le 9 Fév 2023
Hello , whenever i run these funtion its not worked,please help me and put some values to run.i try much more but not get the idea.
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
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
Bjorn Gustavsson
Bjorn Gustavsson le 10 Fév 2023
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?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Call C++ from MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by