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

Sympy绘制含DiracDelta的二元3D函数报错问题求助

问题原因与解决思路
  • SymPy的plot3d工具仅支持处理可直接数值化的常规函数,而狄拉克δ函数(DiracDelta)属于广义函数——它定义为仅在某点处取无穷大、其余点为0且积分值为1,无法进行常规的数值计算与绘图,直接调用plot3d会因无法转换为可计算格式报错。
  • 原代码存在重复导入的冗余问题:重复导入了symbols、DiracDelta,且导入的plot_parametric未被使用,虽不直接引发报错,但建议精简。
可视化替代方案

要呈现该函数的特性,可使用近似脉冲函数模拟狄拉克δ的行为,比如用窄高斯函数$\delta(x) \approx \frac{1}{\sigma\sqrt{2\pi}} e{-\frac{x2}{2\sigma^2}}$(取极小的σ值来逼近脉冲效果)。

示例代码:

from sympy import symbols, exp, sqrt, pi
from sympy.plotting import plot3d

x, y = symbols('x y')
# 用窄高斯函数近似狄拉克δ,σ取值越小越接近脉冲特性
sigma = 0.05
delta_approx_y = exp(-y**2/(2*sigma**2))/(sigma*sqrt(2*pi))
delta_approx_x = exp(-x**2/(2*sigma**2))/(sigma*sqrt(2*pi))
f_approx = x*delta_approx_y + y*delta_approx_x

plot3d(f_approx, (x, -1, 1), (y, -1, 1))
  • 运行后会生成符合原函数特性的3D图像:在y=0的x轴上呈现随x变化的脉冲,在x=0的y轴上呈现随y变化的脉冲。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:07:03