Оценить симпозиальный полином с массивом - PullRequest
0 голосов
/ 06 октября 2019

Мне нужна помощь с Sympy, у меня фактически есть список полиномов, скажем, из 2 переменных s0 и s1 , однако некоторые полиномы находятся в s0 только, некоторые из s1 , некоторые - просто константы, а некоторые имеют обе переменные, например:

poly = [1 , s0 , s0+3*s1 , .... ]

Я хотел бы оценить любую из них с помощью одной и той же команды, скажем,, s0 = 2 и s1 = 1 . Например, чтобы оценить третий полином из списка, который я пробовал

s = sympy.symbols('s0:%d'2)
poly[2].subs(s,[2,0])

# s is containing (s0, s1), but this won't work at all

poly[2].eval([2,0])

# this one works only if the polynomial uses the two variables, so it will throw an error for poly[0] and poly[1]

Дело в том, что я не знаю, какой из них имеет какую переменную, я также не знаю априори, сколько переменных задействовано,эта последняя информация является вводом функции. Отсюда необходимость использования массивов и одной и той же команды для всех полиномов в списке.

1 Ответ

0 голосов
/ 07 октября 2019

Вы можете использовать dict с sub:

In [12]: from sympy import *                                                                                                                                  

In [13]: s0, s1 = symbols('s:2')                                                                                                                              

In [14]: polys = [1 , s0 , s0+3*s1]                                                                                                                           

In [15]: [S(p).subs(values) for p in polys]                                                                                                                   
Out[15]: [1, 2, 5]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...