我正在努力理解这个简单 ODE 的 dsolve 行为:
Y''(t) = b*Y'(t) + f(t)
出于某种原因,如果我使用 f(t)=exp(ta),dsolve 会引发错误,但对于一般的 f(t) 或 f(t)=exp(a*t),或者如果我为 a 赋值,dsolve成功。完整的错误信息:
文件“~/.local/lib/python3.7/site-packages/sympy/solvers/ode.py”,第 679 行,在 dsolve 中返回 _helper_simplify(eq、hint、hints、simplify、ics=ics)
_helper_simplify 中的文件“~/.local/lib/python3.7/site-packages/sympy/solvers/ode.py”,第 704 行 sols = solvefunc(eq, func, order, match)
文件“~/.local/lib/python3.7/site-packages/sympy/solvers/ode.py”,第 5674 行,在 ode_nth_linear_constant_coeff_undetermined_coefficients 返回 _solve_undetermined_coefficients(eq, func, order, match)
_solve_undetermined_coefficients coeffsdict[s[x]] += s['coeff'] 中的文件“~/.local/lib/python3.7/site-packages/sympy/solvers/ode.py”,第 5766 行
关键错误:exp(t)
我正在使用这段代码:
from sympy import symbols, Function, dsolve, exp, Eq
a, b, t = symbols('a b t')
Y = Function('Y')(t)
#f = Function('f')(t) # works
#f = exp(a*t) # works
f = exp(t-a) # KeyError: exp(t)
#f = exp(t-2) # works
odeY = Eq( Y.diff(t,t), b*Y.diff(t) + f )
dsolve(odeY,Y)
我正在使用带有 python3.7 的 sympy 版本 1.5.1
非常感谢!