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

求解一阶常微分方程时出现TypeError: object is not callable错误

错误原因分析
  1. 函数对象误用:y = Function('y')(t) 已经将y实例化为t的函数对象,后续不能再以y(t)的形式调用它,这是触发TypeError: 'y' object is not callable的核心原因。
  2. 方程格式错误:原代码将方程定义为元组(Derivative(y(t)) - (2*t*y(t)), -t),但dsolve需要接收一个等式表达式(用Eq构造)或左边减右边等于0的表达式。
修正后的代码
# 求解一阶常微分方程 y' - 2ty = -t
from sympy import *

t = symbols('t')
y = Function('y')(t)

# 方法1:用Eq构造等式
eqn = Eq(Derivative(y, t), 2*t*y - t)
# 方法2:直接写左边减右边等于0的表达式(两种方法任选其一即可)
# eqn = Derivative(y, t) - 2*t*y + t

display(eqn)

ysol = dsolve(eqn, y)
print("The solution is ", ysol.lhs, " = ", ysol.rhs)
print("The solution is ") 
display(ysol)
代码说明
  • 移除了所有y(t)的调用,直接使用已实例化的函数对象y。
  • 用Eq(导数项, 右端项)正确构建微分方程,符合dsolve的参数要求。
  • dsolve的第二个参数传入y即可,无需再调用y(t)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:07:08