You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SymPy 1.14中dsolve求解特定ODE时触发TypeError报错咨询

SymPy 1.14求解含符号参数二阶ODE时的TypeError问题

问题说明

在SymPy 1.14中求解形如x^k y(x) + y''(x) = 0的常微分方程时,当k为未赋值的符号参数,调用dsolve()会触发TypeError错误,核心原因是符号对象无法被Python的range()函数识别为整数类型。

复现代码

from sympy import *
x = symbols("x")
k = symbols("k")
y = Function("y")
ode = Eq(x**k*y(x) + Derivative(y(x), (x, 2)), 0)
dsolve(ode, func=y(x))

报错信息

Traceback (most recent call last):
  File "<python-input-18>", line 1, in <module>
    dsolve(ode,func=y(x))
    ~~~~~~^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/sympy/solvers/ode/ode.py", line 640, in dsolve
    return _helper_simplify(eq, hint, hints, simplify, ics=ics)
  File "/usr/lib/python3.13/site-packages/sympy/solvers/ode/ode.py", line 670, in _helper_simplify
    sols = solvefunc(eq, func, order, match)
  File "/usr/lib/python3.13/site-packages/sympy/solvers/ode/ode.py", line 2364, in ode_2nd_power_series_ordinary
    for i in reversed(range(startind)):
                      ~~~~~^^^^^^^^^^
TypeError: 'Symbol' object cannot be interpreted as an integer

环境信息

  • Python版本:3.13.7 (main, Aug 16 2025, 15:55:01) [GCC 15.2.1 20250813]
  • SymPy版本:1.14.0

Maple求解结果说明

Maple对此方程的解以贝塞尔函数形式给出,包含第一类和第二类贝塞尔函数,解的具体形式与参数k直接相关。

Bug提交请求

由于无法登录GitHub,希望有用户能将此问题提交到SymPy的GitHub Issues页面。

内容的提问来源于stack exchange,提问作者Nasser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 06:33:11