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)

会做到的。还有别的办法吗?谢谢!

最佳答案

除了可变矩阵外,symphy对象是不可变的。它们的方法不会修改它们;而是返回一个新对象。此对象需要分配给某些对象(或打印或返回):

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

一切都有道理;孤独的人是无用的。
这在Immutability of Expressions下的“Gotchas and pittfalls”文章中有介绍;我建议您也阅读该页的其余部分。

关于python - Sympy不会更新序列系数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50427694/

10-12 21:05