How to create numerically and symbolically creation/annihilation operator?
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
mathango
am 6 Mär. 2017
Bearbeitet: Walter Roberson
am 18 Jan. 2018
Hi everyone, I am attempting to create creation and annihilation operator used in 2nd quantization of quantum mechanics. I want to do both numerically and symbolically. Those who are not familiar here is a simple math to illustrate idea:
n= (cd)(c)
where (cd) is the creation operator or c dagger and (c) is annihilation operator or c basic rules
[(cd),(c)] = (cd)(c)+(c)(cd) = 1
[(cd),(cd)] = (cd)(cd)+(cd)(cd) = 0
[(c),(c)] = (c)(c)+(c)(c) = 0
Below is my listing for numerical approach:
{clear all;
close all;
clc;
matdimension = 3;
tempvector = 0:1:matdimension
tempvector = sqrt(tempvector)
tempmatrix = diag(tempvector);
creation = circshift(tempmatrix,-1);
annihilation = creation';
% creation = circshift(diag(sqrt(0:1:mat_dim)),-1);
H1=creation*annihilation;
H2=annihilation*creation;
H3= H1 + H2
H4= H2 + H1;
H5= creation*creation + creation*creation;}
And the output is :
{tempvector = 0 1 2 3
tempvector = 0.00000 1.00000 1.41421 1.73205
H3 =
1.00000 0.00000 0.00000 0.00000
0.00000 3.00000 0.00000 0.00000
0.00000 0.00000 5.00000 0.00000
0.00000 0.00000 0.00000 3.00000}
1) Obviously something is wrong with my code since answer H3 should be equal to 1 which is not. What I am missing here?
2)Is it possible to create new math rules in matlab? ( I have commutation in mind [A,B]= ) I want to create the above code but do the symbolic calculation as well. If yes, is there a simple example to illustrate the method?
3)I managed to copy dagger symbol and paste it on matlab script, however the script will not compile. Is there a work around this?
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Discrete Data Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!