如何在sympy中将数学函数存储在二维数组中?

时间:2018-11-30 13:18:22

标签: python arrays physics sympy chemistry

        from sympy.physics.hydrogen import R_nl
        from sympy import var
        from sympy import Matrix
        import sympy as sp
        sp.init_printing(use_latex="mathjax")
        r1,Z=var("r1 Z")
        r2,Z=var("r2,Z")
        O=sp.zeros(3)
        k=0
        for i in range(1,3,1):
          for j in range(0,i,1):

             print("n=",i,"l=",j, ":")
             O[k]= R_nl(i,j,r1,Z)
             display(O[k])
             print("------------------------------------")
             k=k+1

在上面的代码中,我将内置函数R_nl(它是氢原子波函数的径向部分)存储在一维数组中。我希望将其存储在二维数组中。内置的R_nl函数必须具有正整数参数n和l,因此将其存储在二维数组中会很好。有人可以帮助我将其存储在二维数组中吗?如果我尝试将其存储在二维数组中,则会引发以下错误消息


 TypeError Traceback (most recent call last)
<ipython-input-22-6bcaaf0f91e4> in <module>
      19 
      20         print("n=",i,"l=",j, ":")
 ---> 21         O[k][s]= R_nl(i,j,r1,Z)
      22         display(O[k][s])
      23         print("------------------------------------")

      TypeError: 'Zero' object does not support item assignment

1 个答案:

答案 0 :(得分:1)

尝试像O[k, s]而不是O[k][s]那样访问矩阵。