使 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 表达式的列表或元组,上面的就可以工作。