matlab求图像自相关 CSDN_紧束缚模型态密度图像的Python实现

bc1ac8f22e13258ec29445c2c66515c1.png

在凝聚态物理以及统计物理中,态密度是一个很重要的概念,我们能从态密度图像中获取很多有用的信息。例如,态密度对了解低维系统中的带间跃迁很重要,在态密度图像中带隙比色散图像中直观得多。

8606e019f62354e6ffb26214c1d51f63.png
图1.举个栗子态密度图像。

原则上说,知道了色散关系,也就确定了态密度对于一些模型,比如说自由电子气,我们能够很容易的得到其解析的态密度函数,能够很容易地用一些软件甚至手画就能得到态密度的图像。但是现实是,对于大部分问题,就算色散关系知道,想要解析的求其态密度函数的解析表达也是不容易的甚至是不可能的。为此,我们必须尝试数值解。

下面,我将以紧束缚模型为例,展示一下怎么来画其态密度图像。束缚模型的色散关系是比较容易求的,不会求的同学可以回去翻固体物理的相关书籍,这里我就直接给了,如下。

其中t为跃迁强度,D是模型维度,其他不重要,感觉纠结的强迫症同学去查书吧。取:

我这里就只考虑二维立方晶格模型,弄清这个典型,一维、三维甚至更高维的就都清楚了。此时我们需要的色散关系就变成了下面这样:

这样的色散关系要求解析的态密度表达式实在有点难为我这种数理不勤,文史不分的同学了。我之前用Matlab画过,代码给在这里,多不赘述,主要讨论python画法。

% here the MATLAB code

fcf3e0b2a6e4068b08399056792077dd.png
图2.这是Matlab的结果。

基本思路:态密度定义为单位频率间隔内的状态数 ,即

。那么这个问题就变成了往篮子里装鸡蛋的问题了,也就是说,我们给出系统的
个能量状态,把这些状态投放到若干个排列好的篮子里面,之后再归一化就得到了分布密度,也即我们要求的态密度。也就是直方图,突然茅塞顿开。这就要用到python里numpy.histogram包了。

水平太低,始终没有不太会python里numpy.meshgrid,不过总感觉和Matlab里的meshgrid区别蛮大(存疑)。python手足无措只好用循环,三维情况的话就三重循环了,取的点多了计算量还是蛮大的。程序如下:

import 

7dfaa0a148c92fd6358e6ea872aec15f.png
图3.Python运行结果。

这里,我没有做太多的图像优化,是有些难看。操作就这么个操作,慢慢品吧。画图是一个技术活,用什么色彩、取多少个值,取几个“篮子”,都需要积累经验。

就酱!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值