Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python索引器错误:标量变量的索引无效_Python_Physics - Fatal编程技术网

Python索引器错误:标量变量的索引无效

Python索引器错误:标量变量的索引无效,python,physics,Python,Physics,关于这个问题,我已经看过以前的问题了,但我似乎无法解决它。我试图求解一个与时间相关的方程(有些不相关),但第31行不断出现“标量变量的索引无效”错误。这就是我在嵌套循环中定义b的时候。我感谢你的帮助。我的Python已经生锈了,因为我最近主要使用Fortran def main(): #Constants hbar= 1.0534*10**(-34) m=9.11*10**(-31) dx=0.1*10**(-9) dt=1*10**(-15) M=[[]

关于这个问题,我已经看过以前的问题了,但我似乎无法解决它。我试图求解一个与时间相关的方程(有些不相关),但第31行不断出现“标量变量的索引无效”错误。这就是我在嵌套循环中定义b的时候。我感谢你的帮助。我的Python已经生锈了,因为我最近主要使用Fortran

def main():
#Constants
    hbar= 1.0534*10**(-34)
    m=9.11*10**(-31)
    dx=0.1*10**(-9)
    dt=1*10**(-15)
    M=[[]]
    b=[[]]
    psi=[[]]

#Wave function definition    
    x=np.linspace(0,10,100)
    psi[:]=sp.exp(-(x-3)**2/4)/((2*np.pi)**(0.25)*(1*10**(-9))**0.5)
    n=len(x)

    r=(hbar*dt/(2*m*(dx**2)))*1j   

#Matrix eigenvalues for diagonals and off-diagonals    
    for i in range(1,n-2):
        for h in range(1,n-2):
            if i==h: 
                M=2*(1+r)
            elif i==h+1 or i==h-1:
                M=-1*r

    for k in range(1,1000):
        for q in range(1,n-2):
            b=2*psi[q+1][k]+r*(psi[q][k]-2*psi[q+1][k]+psi[q+2][k])
        matmul=np.transpose(np.inv(M)*np.transpose(b))
        psi=np.transpose([0,matmul,0])
    psi=np.transpose(psi)


main()

我不确定您的所有代码都希望实现什么,但您在这里遇到了一个错误,因为您将
psi
视为一个列表(通过调用psi的第q个元素中的第k个元素psi[q][k]),而实际上它是一个缩放器/浮点列表。您可以在中断代码的行之前添加
print psi
语句来验证这一点。我得到:

psi = [2105.1955756978987, 2443.3566356290821, 2821.4068271041683, 3241.3729378382568, 3704.9020343410039, 4213.1691313503734, 4766.7842561936268, 5365.70...

好吧我现在已经修复了这个问题,并且去掉了其他列表列表,因为它们是二维矩阵。