使用sympy.plotting.plot绘图结果异常,与图形计算器不符
问题原因及解决方法
- 核心问题:未将
t定义为SymPy的符号变量,导致plot函数无法正确解析表达式的变量范围,进而出现图形提前终止的异常。 - 修正后的代码:
先定义符号变量再绘图,两种写法都能正常工作:
函数式写法:
直接表达式写法:import sympy # 定义符号变量t t = sympy.Symbol('t') def S(t): return (10*sympy.E**(t/12)*((sympy.sin((sympy.pi*t)/24))**2)) sympy.plotting.plot(S(t), xlim=[0,24])import sympy t = sympy.Symbol('t') sympy.plotting.plot(10*sympy.E**(t/12)*((sympy.sin((sympy.pi*t)/24))**2), xlim=[0,24]) - 效果验证:修正后图形会完整覆盖[0,24]区间,最大值出现在t≈14附近,和图形计算器结果一致。
- 关键说明:SymPy的符号计算与绘图依赖明确的符号变量定义,未定义符号时,表达式会被当作普通Python代码处理,导致解析逻辑出错,引发绘图范围异常。
内容的提问来源于stack exchange,提问作者Annemarie
相关产品推荐
相关产品推荐

