使 Sympy 的方程组可迭代
Making Sympy's system of equations iterable
我正在尝试找出一种在 Sympy 中求解方程组的有效方法 "automatically"。让我举例说明,这是制定代码的标准方法
n = 3
y = sp.symbols('y1:{}'.format(n + 1))
TempDict1=(sp.solve([Dem_s[0],Dem_s[1]],(y[0],y[1])))
我想让它可迭代,所以方程组会根据 Dem_s 和 y 的列表中分别存在多少个方程和变量来自行更新。
我试过以下方法:
Templist=[]
for i in range(n-1):
Templist.append(y[i])
TempDict1={}
for i in range(n-1):
TempDict1=sp.solve([Dem_s[i]], (Templist))
但是,这并不能解决问题。你有什么建议吗?
提前致谢。
第一个片段最好表示为
n = 3
y = sp.symbols('y1:{}'.format(n + 1))
TempDict1 = sp.solve(Dem_s, y)
如果您有一个变量元组 y
,则无需使用 (y[0], y[1])
解压和重新打包。传递 y
应该完全符合您的要求。
你没有展示 Dem_s
是如何形成的,但只要它是 SymPy 表达式的列表或元组,上面的就可以工作。
我正在尝试找出一种在 Sympy 中求解方程组的有效方法 "automatically"。让我举例说明,这是制定代码的标准方法
n = 3
y = sp.symbols('y1:{}'.format(n + 1))
TempDict1=(sp.solve([Dem_s[0],Dem_s[1]],(y[0],y[1])))
我想让它可迭代,所以方程组会根据 Dem_s 和 y 的列表中分别存在多少个方程和变量来自行更新。
我试过以下方法:
Templist=[]
for i in range(n-1):
Templist.append(y[i])
TempDict1={}
for i in range(n-1):
TempDict1=sp.solve([Dem_s[i]], (Templist))
但是,这并不能解决问题。你有什么建议吗?
提前致谢。
第一个片段最好表示为
n = 3
y = sp.symbols('y1:{}'.format(n + 1))
TempDict1 = sp.solve(Dem_s, y)
如果您有一个变量元组 y
,则无需使用 (y[0], y[1])
解压和重新打包。传递 y
应该完全符合您的要求。
你没有展示 Dem_s
是如何形成的,但只要它是 SymPy 表达式的列表或元组,上面的就可以工作。