繁体   English   中英

解决薛定inger方程:ValueError:设置具有序列的数组元素。

Solving Schrodinger equation: ValueError: setting an array element with a sequence.

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我需要编写一个python脚本,以在一定时间间隔[0,L]内由抛物线给出的电势来求解schrodinger方程。

我对python不太了解,我只是想修改教授的脚本,以解决相同的问题,但潜力无限。 我定义了新的潜力,但是由于遇到了这个错误,我可能使用的是错误的

Traceback (most recent call last):
  File "C:/Users/Utente/Desktop/schrodinge.py", line 43, in <module>
    out=odeint(schrodinger,init,x,(E,))
  File "C:\Users\Utente\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\integrate\odepack.py", line 233, in odeint
    int(bool(tfirst)))
  File "C:/Users/Utente/Desktop/schrodinge.py", line 18, in schrodinger
    return np.array([g0,g1])
ValueError: setting an array element with a sequence.

我的代码如下:

    import numpy as np 
    import matplotlib.pyplot as plt
    from scipy.integrate import odeint

    def schrodinger(state,x,k):
        ''' system of 1st order differential equations to integrate.
            The Schrodinger equation for a free particle with wave vector,
            k**2 = 2m(E-U)/hbar**2

           args:
           state - array: psi[0] - Psi(x),  psi[1]= d/dx Psi(x).  Wave function and it's derivative.   
        '''
        g0 = state[1]
        g1 = -2*(E-Vx)*state[0]
        return np.array([g0,g1])

    L = 25
    U0 = (L/2)**2
    x1= np.arange(0., L, 0.01)
    x2= np.arange(-L, 0, 0.01)
    x3= np.arange(L, 2*L, 0.01)

    V1 = 0*x1
    V2 = U0 - (x1-(L/2))**2

    Vx = np.concatenate((V1,V2,V1))
    x = np.concatenate((x2,x1,x3))

    fig = plt.figure(num=1, figsize=(10,6))
    fig.clf()
    ax1= fig.add_subplot(111)

    ax1.plot(x,Vx)


    init=[1.,0] # the initial condition, [ Psi, d/dx Psi] at x=0.
    E_values = [U0/2,U0,2*U0]

    for E in E_values:   
        out=odeint(schrodinger,init,x,(E,))
        ax2 = fig.add_subplot(112)
        ax2.plot(x,out[:,0])


fig.canvas.draw()

fig.show()

你知道我在做什么错吗? 谢谢你的帮助!!

问题暂未有回复.您可以查看右边的相关问题.
5 薛定inger方程 解决方案存在问题

我正在尝试绘制像电位这样的阶跃函数前后的波动函数。 我发现,如果初始能量大于势能,则看起来不错,但如果势能更大,则解决方案将产生负向分歧。 我认为在这种情况下的解决方案是; 在量子力学中,我们通常通过将A设置为零来放弃第一项。 但是,我也想删除这样的非物理解决方案,但我不知道如 ...

2018-11-19 12:56:53 0 13   odeint
6 改变薛定inger方程的比例

我需要在Schrodinger方程的y轴上更改绘图的比例,以显示理论计算值与我们的计算值之间的差异,该差异约为0.01%。 所以在情节上,我得到的比例尺还不足以显示出差异。 这是我的项目中的代码。 ...

8 如何解决这种类型的错误“ ValueError:设置具有序列的数组元素”?

我正在使用k均值对图像进行聚类,其中包含66个字体图像。 对于每幅图像,我们使用投影在前40个主成分上的系数作为特征向量。 该图像集群项目来自《用Python编程计算机视觉》一书。 但是它发生在“ TypeError:只有大小为1的数组可以转换为Python标量的情况下” 上面的异常是以下异常的 ...

9 工作和解决ValueError在数据帧上设置具有序列的数组元素

这个问题已经在包括此处 , 此处和此处在内的多个地方进行了讨论。 但是,作为经典,我正在努力实现我的代码中提出的想法。 我收到错误消息: ValueError:使用序列设置数组元素。 这意味着,如果我们尝试将某些内容写入数组的单个位置(数组单元格,矩阵条目),并且该内容 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM