一维海森堡模型和MATLAB的简单介绍_第1页
一维海森堡模型和MATLAB的简单介绍_第2页
一维海森堡模型和MATLAB的简单介绍_第3页
一维海森堡模型和MATLAB的简单介绍_第4页
一维海森堡模型和MATLAB的简单介绍_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一维海森堡模型和MATLAB的简单介绍i.i 一维海森堡模型海森堡模型(Heisenberg model)是一个自旋系统的统计力学的模型。在 量子力学发展初期,海森堡首先提出自旋与自旋之间可能存在交互作用,其数 学形式是两个自旋角动量的内积S, Sj。海森堡模型的哈密顿算符H是这些内 积的总和。H = J S S其中自旋角动量的x,y,z三个分量之间的互易关系为S?,SJ = ihb8Sj ,力 为普朗克除以2兀,为了方便以下讨论假设力=1。只考虑最近邻的自旋才存在 交互作用,且交互作用的强度Jtj都均等,则哈密顿算符简化为H = JES S = j(SxSx + SySy + SzSz)i

2、ji j i j i ji,ji,jj=i+1可定义上升算符S +和下降算符S-,S= Sx 土iSy则哈密度算符写成一 1H = JE (S+S- + S-S +) + SzSz2 i j i j i ji,j以上哈密顿纯粹是算符的形式,为了方便,我们令J=i,对自旋为是S =1/2,每个自旋有两个状态:| J ,|个,我们用列向量f10、, S + =f1,S -=f0 0-1J00 J0JS + I I=l f; S + I f =0;s-11=0; s-1 f =l Q;对于多个自旋的系统中,每一个自选的表示就不再相同。例如对 于L=2的两个自旋的系统,它的希尔伯特空间为lf,|lf,

3、4 = lff,lfl,4f ,1口在它的希尔伯特空间中,将H写成矩阵的表达:vff l H lffm h ffAf l H lfff14-1 1二 4 -i2414) 加 H llf 、 )同理,L=3, 4个格点的H的矩阵表示也可以求得,进而我们可以利用计算机中的 标准库来求得它的本征值和本征态,本文采用MATLAB中的库函数eig(),和 LANCZOS方 法求出基态。但是,随着L的增加,它的希尔伯特空间的维度按指数增加。因此,借助计算机是必要 的。(本文主要借助于MATLAB)1.2 MATLAB 的简介MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据 可

4、视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括 MATLAB和Simulink两大部分。MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验 室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程 序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性 动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学 研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决 方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编 辑模式,代表了当今国际科

5、学计算软件的先进水平。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩 阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序 等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金 融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形 式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的 事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成 为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+,JAVA 的支持。Simulin

6、k是基于MATLAB的框图设计环境,可以用来对各种动态系统进行 建模、分析和仿真,它的建模范围广泛,可以针对任何能够用数学来描述的系统 进行建模,例如航空航天动力学系统、卫星控制制导系统、通讯系统、船舶及汽 车动力学系统等等,其中包括连续、离散,条件执行,事件驱动,单速率、多速 率和混杂系统等等。Simulink提供了利用鼠标拖放的方法建立系统框图模型的图 形界面,而且Simulink还提供了丰富的功能块以及不同的专业模块集合,利用 Simulink几乎可以做到不书写一行代码完成整个动态系统的建模工作MATLAB的优点:1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出 来

7、;2)具有完备的图形处理功能,实现计算结果和编程的可视化;3)友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;4)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大 量方便实用的处理工具。1.3用MATLAB的语言描写H简单的说,我们需要通过编写程序在计算机中运行,来求出我们需要的哈密顿H的矩阵;L个格点的希尔伯特空间为/ /2、/木/入 、|f,|f,|f|f|VL每个格点上的自旋状态只有|( ,|个 ,这两种情况。我们用0,1来表示。每个格点的状态对应一个数0或者1。例如:L=3时的一个基矢则它的基矢可表示为|1,0,0由此,我们不难想到利用二进制数来

8、表示基矢,每个格点都对应于一个二进制数的1位。我们的基矢可表示为2/个二进制数;分别为十进制数0,12/ -1所对应的二进制数;现在我们关心编写程序计算H的矩阵元:H = J L(S+S-+ S-S+) + SzSzj=i+1s +11=l T; s +1 T=0;s-11=0; s-1 T=l Q;主要程序如下H = zeros (2八l, 2八l);J = 1;for i = 1 : 2八lfor m = 1 : l - 1%转化为二进制数的m位n = m + 1;i_real = i - 1;im = bitget (i_real, m);in = bitget (i_real, n);

9、if (im = in)H (i, i) = H (i, i) + 0.25;elseif (im = 0 & in = 1 )i_new_real = i_real + 2八(m - 1) - 2八(n - 1);i_new = i_new_real + 1;H (i, i_new) = H (i, i_new) + 0.5火J;H (i, i) = H (i, i) - 0.25;elseif (im = 1 & in = 0)i_new_real = i_real + 2八(n - 1) - 2八(m - 1) ;i_new = i_new_real + 1;H (i, i_new) =

10、 H (i, i_new) + 0.5火J;H (i, i) = H (i, i) - 0.25;endendendH;由此,我们可以得到L个自旋格点的哈密顿量H;1.4 MATLAB中的运行结果exponential nail此时,我们已经完成了用MATLAB语言描写哈密顿量H,我们可以通过eig()函 数求得它的本征值和本征态,然而我们最关心的是基态(在很大程度上,系统 都处在基态)。MATLAB中,计算模拟的结果:L234567E-0.75-1-1.6160-1.9279-2.4936-2.83620L89101112E-3.3749-3.7363-4.2580-4.6321-5.14210physicists注:此图来自中国人民大学物理系王

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论