Python Symphy solve会引发一个错误,即一个元素不明确
正如标题所说,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[
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])。我试图用隐式方法解欧拉倒向方程。