首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中组合两种潜力

在python中组合两种潜力
EN

Stack Overflow用户
提问于 2011-02-23 05:39:04
回答 2查看 653关注 0票数 1

所以我需要在python中定义它的潜力。我有无限大的方势阱,它在中间有势垒。

对于障碍,我有这样的想法:

代码语言:javascript
复制
    V_x = zeros([Npts],float)
for i in range(0,Npts,1):
    if x[i] > 0 and x[i]<width:
        V_x[i]=v0

Npts是x的长度,x定义为从xmin到xmax递增的值的数组(x=arange(Xmin,Xmax+0.001,dx))。

如何将无限的潜力包含在其中?

它有一定的长度(假设从-100到100),并且它的行为必须像不可穿透的墙一样(在-100和100处的函数必须为零)。

我可以将势垒与此势能单独组合(例如,势垒为V_b,无限势能为V_p,然后V_x可以为V_x=V_b+V_p)。

你觉得这行得通吗?我在定义无限潜能时遇到了问题……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-23 13:17:27

我建议只使用一个比有限势大几个数量级(3-4)的数字来表示无限势。它不会在你的状态的能量中产生太大的不同,让它变得更大。事实上,您很快就会受到求解哈密顿量时使用的浮点数的精度的限制。你真的只需要将ends设置为“无限”,这样就可以使用下面的代码:V_x[0] = V_x[-1] = abs(v0)*10**4。当然,如果您愿意,可以将其设置得更大,但我认为这不会有太大的不同。如果你没有将端点设置为无穷大,那么为什么你要在知道波函数将为零的大部分区域中求解波函数的值呢?

此外,请注意,在您使用的单位中,您的无限潜力不能与h-bar^2/2/m/delta_x^2相比。这一切都使得“无限”势比哈密顿中的有限势和动能项都大几个数量级。

票数 1
EN

Stack Overflow用户

发布于 2011-02-25 01:12:47

Numpy有一个Inf浮点变量,因此根据您如何使用潜力,您可以显式定义它:

代码语言:javascript
复制
import numpy as np
Npts = 100
v0 = 10.0
V_x = v0*np.ones((Npts,),dtype=float)
x = np.linspace(-20,20,Npts)
width = 15.0
# now replace those values for the potential in the impenetrable
# region with np.Inf 
ii = ((x>width) | (x<0)).nonzero()
V_x[ii] = np.Inf

这为您提供了一个x介于-20和20之间的系统,其中对于0 15或x<0,V_x = Inf

注意:作为一般建议,还有一些比使用for循环更有效的方法来设置numpy数组,如上面的代码所示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5084295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档