【发布时间】:2021-11-20 11:52:38
【问题描述】:
我正在学习sympy 和一阶线性差分方程。
对于方程y(n) = x(n)-3y(n-1) 的解是y(n) = n^{2}*.25 + n*.625 + 0.28125*(1-(-3)^{n}),初始条件为y(-1)=0 和x(n) = n^{2}+n。
我一直在解决问题,这就是我所拥有的:
from sympy import *
n, i = symbols("n i", integer=True)
a, b = IndexedBase("a"), IndexedBase("b")
def x(n): return n**2+n
y = Function("y")
lexpr = y(n)
s1 = Sum(b[i]*x(n-i),(i,0,1)).doit().subs([(b[i], u) for i,u in enumerate([1., 0.])])
s2 = -Sum(a[i]*y(n-i),(i,1,1)).doit().subs([(a[1],3.)])
rexpr = s1 + s2
pprint(Eq(lexpr, rexpr))
diffeq = Eq(lexpr, rexpr)
res = dsolve(diffeq, ics={y(-1): 0})
【问题讨论】:
标签: sympy