Python Symphy solve会引发一个错误,即一个元素不明确

Python Symphy solve会引发一个错误,即一个元素不明确,python,sympy,Python,Sympy,正如标题所说,Symphy solve返回一个我不知道如何解决的错误 我的代码 from sympy.solvers import solve import numpy as np z = 10 h = 0.1 r = 10 He = 10 aa = 1+(h*r) bb = -1 mm = np.zeros([He,He]) m = np.zeros([He+1]) for i in range(He): mm[i,i] = aa if i is 0: m[

正如标题所说,Symphy solve返回一个我不知道如何解决的错误

我的代码

from sympy.solvers import solve
import numpy as np
z = 10
h = 0.1
r = 10
He = 10

aa = 1+(h*r)
bb = -1
mm = np.zeros([He,He])
m = np.zeros([He+1])

for i in range(He):
    mm[i,i] = aa
    if i is 0:
        m[i] = -bb * z
    if i > 0:
        mm[i,i-1] = bb

ln = solve(mm,m)
我得到一个错误:

  The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

感谢您的回答:)

如果不解释代码应该做什么,您的代码就不太清楚,我发现了两个问题:

首先,Symphy是一个具有无限精度的符号数学库。它使用自己的
Symbol
定义变量,并
sympy.solver.solve
要求一个等式和一个符号列表(等式应取决于这些符号)。请参阅文档以了解这一点:

另一个点是
mm
具有
(10,10)
的形状,
m
是长度
11
的向量。你想解什么方程


我对你的问题的解决办法是,如果你想解一个像
mm@X=m
这样的方程,那么就用
np.linalg.solve(mm,m)
但是你需要有正确的形状。

哪一行给了你这个错误?你指的是哪一页?难道
symphy.solver.solve
不应该与
symphy.Symbol
一起使用吗?代码中没有任何符号。编辑:
mm
m
没有连贯的形状,您要解的方程是什么?谢谢您保存了它!是的,你是对的,我不应该有m=np.zero([He+1]),应该是m=np.zero([He])。我试图用隐式方法解欧拉倒向方程。