Делаем систему уравнений Симпи повторяемой
Я пытаюсь найти эффективный способ решения систем уравнений в Sympy "автоматически". Позвольте мне привести пример, это стандартный подход к формулированию кода
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))
Однако это не решит этого. У вас есть какие-нибудь предложения?
Заранее спасибо.
1 ответ
Решение
Первый фрагмент будет лучше выражен как
n = 3
y = sp.symbols('y1:{}'.format(n + 1))
TempDict1 = sp.solve(Dem_s, y)
Если у вас есть кортеж переменных y
нет необходимости распаковывать и перепаковывать (y[0], y[1])
, Переходя y
должен делать именно то, что вы хотите.
Вы не показали, как Dem_s
формируется, но пока это список или кортеж выражений SymPy, вышеприведенное будет работать.