首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >得到4而不是4.76作为数学/科学问题的答案(始终是整数而不是小数)

得到4而不是4.76作为数学/科学问题的答案(始终是整数而不是小数)
EN

Stack Overflow用户
提问于 2011-04-16 20:20:30
回答 2查看 134关注 0票数 1

所以这在某种程度上和我画能级的问题有关,link to the problem

不管怎样,我是用离散化的方法,得到各种位势的能级和波函数,我可能是编程工具,因为我不知道如何得到能量本征值的数值结果。我有一种强烈的感觉,那就是必须能够从给定的代码中提取该信息(该代码具有来自linalg模块的eig_banded例程)。但我只是一个工具,不知道怎么做:\

所以我只需要我画出的能量的数值。

我尝试过(这是链接中代码的一部分):

代码语言:javascript
复制
    def calc(Nmesh,POWER,L ,numwav=0):
    #
    dx=L/Nmesh
    x = np.arange(-L,L+0.0001,dx)
    Npts=len(x)

    V = x**POWER

    #
    ai = np.empty((2,Npts))   # ai[:,i] = a[:,i-1]
    ai[0,:] = 1/dx**2 + V     #
    ai[1,:] = -1.0/dx**2/2    #
    ai[1,Npts-2] = -99.0      #
    a = ai[:,1:-1]
    f = report_time(linalg.eig_banded)
    eig, vec = f(a, lower=True,overwrite_a_band=True,
                 select='i',select_range=(0,numwav)
                 ) #

    wave = np.empty(Npts)
    wave[1:-1] = vec[:,numwav]
    wave[0] = 0             #
    wave[Npts-1] = 0        #
    wave = 150*wave + eig[numwav]
    return x, V, wave, eig[numwav]

def main():
    try: numwav = int(sys.argv[1])
    except (IndexError, ValueError):
        numwav = 2
    POWER=4
    L=4.0
    Nmesh = 512
    print 'Nmesh=%d' % Nmesh
    x, V, wave, y = calc(Nmesh, POWER, L,numwav)
    print 'Energy eigenvalue is: %d' % y

但是在这个例子中,它给出的特征值是4,在曲线图上它更接近4.76…

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-16 22:19:25

这是你的问题:

代码语言:javascript
复制
>>> '%d' % 1.2
'1'

您想要的格式字符串是%f以显示小数

代码语言:javascript
复制
>>> '%f' % 1.2
'1.200000'

诊断的关键在于它是一个整数,而不是您所看到的浮点数。

有关详细信息,请访问http://docs.python.org/library/stdtypes.html。例如,您可以使用以下格式进行舍入:

代码语言:javascript
复制
>>> '%.2f' % 1.234
'1.23'
>>> '%.2f' % 1.236
'1.24'
票数 6
EN

Stack Overflow用户

发布于 2011-04-16 20:26:52

这是你的问题吗?

代码语言:javascript
复制
>>> 1/2
0

如果是这样,这就是你的解决方案:

代码语言:javascript
复制
>>> from __future__ import division

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

https://stackoverflow.com/questions/5686416

复制
相关文章

相似问题

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