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

如何在Python中用SymPy的pdsolve求解带初始条件的PDE ut=0?

解决SymPy求解偏微分方程u_t=0的问题

你的代码存在几个明显问题,导致运行报错,修正后的正确实现如下:

错误点分析

  • 变量名误用:你定义了u = Function("u")(x, t),但代码里却用了未定义的u0,导致变量不存在
  • PDE构造错误:Eq((u0.diff(t), 0))多了一层括号,正确的等式构造应该是Eq(u.diff(t), 0)
  • 初始条件传递错误:你添加了无关的边界条件,且未将初始条件传入求解函数,pdsolve需要通过ics参数指定初始条件

修正后的代码

from sympy import *
from sympy.abc import x, t

# 定义二元未知函数 u(x, t)
u = Function("u")(x, t)

# 构造偏微分方程:u对t的偏导数等于0
pde = Eq(u.diff(t), 0)

# 定义初始条件:当t=0时,u(x,0)=x
initial_conditions = {u.subs(t, 0): x}

# 求解PDE并应用初始条件
solution = pdsolve(pde, u, ics=initial_conditions)

# 打印结果
print(solution)

运行结果

运行后会输出Eq(u(x, t), x),这符合方程的物理意义:u_t=0说明函数u不随时间t变化,初始条件为u(x,0)=x,因此任意时刻t的解都是u(x,t)=x。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:54:50