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

如何用Matplotlib绘制可微函数?ODE求解后绘图无输出求错误排查

如何用Matplotlib绘制可微函数

绘制可微函数的核心是生成足够密集的自变量取值,计算对应函数值后用Matplotlib连线绘图,步骤如下:

  • 导入依赖库:numpy用于生成数值序列,matplotlib.pyplot用于绘图
  • 定义可微函数:确保函数在定义域内可导且能处理数组输入
  • 生成自变量范围:用np.linspace生成连续的x值,点数越多曲线越平滑
  • 计算函数值:代入自变量得到对应的y值
  • 绘图并展示:添加标签、标题后显示图形

示例代码:

import numpy as np
import matplotlib.pyplot as plt

# 定义一个可微函数
def differentiable_func(x):
    return np.exp(-x**2) + np.cos(2*x)

# 生成x的取值范围
x = np.linspace(-3, 3, 1000)
# 计算函数值
y = differentiable_func(x)

# 绘图
plt.plot(x, y, label='f(x) = e^(-x²) + cos(2x)')
plt.xlabel('x')
plt.ylabel('f(x)')
plt.title('Plot of a Differentiable Function')
plt.legend()
plt.show()
你的微分方程绘图代码错误修复

你的代码存在库导入缺失的核心问题,导致无法运行生成图形,同时可优化部分细节,修复后的代码及错误说明如下:

错误点说明

  1. 未导入必要库:代码中使用了np.sqrt、np.linspace但未导入numpy;使用odeint但未导入scipy.integrate.odeint;使用plt绘图但未导入matplotlib.pyplot
  2. 导入了无用模块:sympy.plotting未被使用,可删除
  3. 可选优化:np.linspace默认仅生成50个点,增加点数可让曲线更平滑

修复后的完整代码

import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt

def func(y, t):
    return 3*t - np.sqrt(y)

# 生成更密集的时间点
t = np.linspace(0, 5, 100)

# 初始条件
y0 = 3

# 求解微分方程
y = odeint(func, y0, t)

# 绘图
plt.plot(t, y)
plt.xlabel('time')
plt.ylabel('y(t)')
plt.title("Solution to y' = 3t - sqrt(y)")
plt.show()

运行上述代码后,你就能看到微分方程解的曲线了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:20:47