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)
会做到这一点。有没有其他方法可以做同样的事情?谢谢!
答案 0 :(得分:2)
除了可变矩阵,SymPy对象是不可变的。他们的方法不会修改它们;而是返回一个新对象。需要将此对象分配给某个(或打印或返回):
q2 = q1.subs(...)
print(q1.subs(...))
return q1.subs(...)
一切都有意义;孤独的q1.subs(...)
是没用的。
Immutability of Expressions下的“陷阱和陷阱”一文中对此进行了介绍;我也建议您阅读该页面的其余部分。