Python 级数求和的辛代数解
我试图在下面的等式中求解Python 级数求和的辛代数解,python,sympy,Python,Sympy,我试图在下面的等式中求解C 我可以使用sympy为枚举数的x执行此操作,例如x0,x2,…,x4,但似乎无法找出如何为I=0到t执行此操作。例如,对于有限的数量 from sympy import summation, symbols, solve x0, x1, x2, x3, x4, alpha, C = symbols('x0, x1, x2, x3, x4, alpha, C') e1 = ((x0 + alpha * x1 + alpha**(2) * x2 + alpha**(
C
我可以使用sympy
为枚举数的x
执行此操作,例如x0,x2,…,x4
,但似乎无法找出如何为I=0
到t
执行此操作。例如,对于有限的数量
from sympy import summation, symbols, solve
x0, x1, x2, x3, x4, alpha, C = symbols('x0, x1, x2, x3, x4, alpha, C')
e1 = ((x0 + alpha * x1 + alpha**(2) * x2 + alpha**(3) * x3 + alpha**(4) * x4)
/ (1 + alpha + alpha**(2) + alpha**(3) + alpha**(4)))
e2 = (x3 + alpha * x4) / (1 + alpha)
rhs = (x0 + alpha * x1 + alpha**(2) * x2) / (1 + alpha + alpha**(2))
soln_C = solve(e1 - C*e2 - rhs, C)
非常感谢@bryans为我指明了
Sum
的方向。在详细阐述他的评论时,这里有一个似乎有效的解决方案。因为我是新来的sympy
如果有人有更简洁的方法,请分享
from sympy import summation, symbols, solve, Function, Sum
alpha, C, t, i = symbols('alpha, C, t, i')
x = Function('x')
s1 = Sum(alpha**i * x(t-i), (i, 0, t)) / Sum(alpha**i, (i, 0, t))
s2 = Sum(alpha**i * x(t-3-i), (i, 0, t-3)) / Sum(alpha**i, (i, 0, t-3))
rhs = (x(0) + alpha * x(1) + alpha**(2) * x(2)) / (1 + alpha + alpha**(2))
我不确定这是否可以被归类为更“简洁”,但如果你知道总结的上限,它也会很有用。假设我们要计算此表达式: 我们可以用同位语表达它,并求解它,如下所示:
from sympy import init_session
init_session(use_latex=True)
n = 4
As = symbols('A_1:' + str(n+1))
x = symbols('x')
exp = 0
for i in range(n):
exp += As[i]/(1+x)**(i+1)
Ec = Eq(exp,0)
sol = solve(Ec,x)
#print(sol)
#sol #Or, if you're working on jupyter...
我个人从未使用过这个模块,但建议您可以使用
Sum(..)
函数(向下滚动到有限和)。
from sympy import init_session
init_session(use_latex=True)
n = 4
As = symbols('A_1:' + str(n+1))
x = symbols('x')
exp = 0
for i in range(n):
exp += As[i]/(1+x)**(i+1)
Ec = Eq(exp,0)
sol = solve(Ec,x)
#print(sol)
#sol #Or, if you're working on jupyter...