奇怪的 r 出现在使用 Sympy 的 dsolve 输出中

Strange r appears in dsolve output using Sympy

我有兴趣求解以下微分方程:

eqn = 4.0*N*sqrt(N - 1)*rho(s) + (4*s**2*(N - 1) + (N - 2*s*(N - 1))**2)*Derivative(rho(s), (s, 2))

我尝试使用 Sympy 中的 dsolve:

dsolve(eqn,rho(s), n=5)

给出了以下输出:

Eq(rho(s), -1.33333333333333*s**3*r(2.0)/N + 1.33333333333333*s**3*r(2.0) + C2*(1 - 2.0*s**2*sqrt(N - 1.0)/N) + C1*s*(1.0 - 0.666666666666667*s**2*sqrt(N - 1.0)/N) + O(s**5))

这个奇怪的“r(2.0)”是什么?我尝试搜索,但没有找到任何有用的东西。

感谢您的帮助!

浮点数的存在是输入可能有问题的线索(因为它不会给出所需的输出)。如果您将 4.0 更改为 4 那么您将没有用于求解方程式的递归函数留在解决方案中。如果您查看 ode_2nd_power_series_ordinary 中的 finaldict 值,您的 4.0:

看起来像这样
{r(2): -2.0*sqrt(N - 1.0)*r(0)/N, 
 r(3): 0.666666666666667*(2*N*r(2.0) - sqrt(N - 1.0)*r(1) - 2*r(2.0))/N}

而不是

{r(2): -2*sqrt(N - 1)*r(0)/N, 
 r(3): 2*(-4*sqrt(N - 1)*r(0) - sqrt(N - 1)*r(1) + 4*sqrt(N - 1)*r(0)/N)/(3*N)}

使用4代替4.0的解没有r(2.0):

Eq(rho(s), 
    C2*(s - 2*s**3*sqrt(N - 1)/(3*N)) + 
    C1*(1 - 8*s**3*sqrt(N - 1)/(3*N) - 
    2*s**2*sqrt(N - 1)/N + 8*s**3*sqrt(N - 1)/(3*N**2)) + O(s**5))