Делаем систему уравнений Симпи повторяемой

Я пытаюсь найти эффективный способ решения систем уравнений в 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, вышеприведенное будет работать.

Другие вопросы по тегам