Sympy не обновляет коэффициенты серии - PullRequest
0 голосов
/ 19 мая 2018
aa = list(symbols('a0:2'))
q1= series(aa[0]/(1-x) + aa[1]/(1-x**2),x,n=6)
q1.subs(aa[0],1)  
print(q1)
Output: x**2*(a0 + a1) + x**4*(a0 + a1) + a1 + a0 + a0*x + a0*x**3 + a0*x**5 + O(x**6)

Но я бы хотел, чтобы все a0 в серии были заменены значением 1:

Output: x**2*(1 + a1) + x**4*(1 + a1) + a1 + 1 + 1*x + 1*x**3 + 1*x**5 + O(x**6)

Насколько я понимаю, что:

q1.subs(aa[0],1)  

сделал бы именно это.Есть ли другой способ сделать то же самое?Спасибо!

1 Ответ

0 голосов
/ 20 мая 2018

За исключением изменяемых матриц, объекты SymPy являются неизменяемыми.Их методы не изменяют их;вместо этого возвращается новый объект.Этот объект должен быть назначен чему-либо (или напечатан, или возвращен):

q2 = q1.subs(...)
print(q1.subs(...))
return q1.subs(...)  

все имеет смысл;Одинокий q1.subs(...) бесполезен.

Это описано в статье "Gotchas and Pitfalls" в разделе Неизменность выражений ;Я рекомендую прочитать остальную часть этой страницы тоже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...