How to create numerically and symbolically creation/annihilation operator?

15 次查看(过去 30 天)
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?

采纳的回答

Arif Ullah Khan
Arif Ullah Khan 2018-1-18
编辑:Walter Roberson 2018-1-18
Please read this article , this might be helpful https://arxiv.org/pdf/1603.04167.pdf

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by