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

如何在RK4算法的循环中提取每个x,y点并绘制对应曲线图?

RK4 迭代值提取与曲线绘制实现方案

你只需要修改原RK4函数的返回逻辑,存储每一步迭代的x、y值,再调用可视化库绘制曲线即可,以下是可直接运行的完整代码:

import matplotlib.pyplot as plt

def f(x,y):
    return 2*x**2-4*x+y

def RK4(x0,y0, b, h):
    # 初始化存储序列,先存入初始值
    x_points = [x0]
    y_points = [y0]
    while x0 < b:
        k1 = h * f(x0, y0)
        k2 = h * f(x0 + 0.5*h, y0 + 0.5*k1)
        k3 = h * f(x0 + 0.5*h, y0 + 0.5*k2)
        k4 = h * f(x0 + h, y0 + k3)
        y0 += (k1 + 2*k2 + 2*k3 + k4)/6
        x0 += h
        # 存入当前步计算结果
        x_points.append(x0)
        y_points.append(y0)
    return x_points, y_points

# 计算参数配置
b = 3
h = 0.001
init_x = 1
init_y = 0.7182818

# 执行计算得到所有坐标点
all_x, all_y = RK4(init_x, init_y, b, h)

# 绘制曲线
plt.figure(figsize=(9,5))
plt.plot(all_x, all_y, label='RK4 计算结果', color='steelblue')
plt.xlabel('x 取值')
plt.ylabel('y 取值')
plt.title('四阶龙格-库塔法计算结果曲线')
plt.legend()
plt.grid(linestyle='--', alpha=0.3)
plt.show()

# 输出最终y值和原代码结果对齐
print("最终y值:", all_y[-1])

核心改动说明

  • 原RK4函数仅返回最终y值,修改后新增列表存储每一步迭代的x、y坐标,返回完整的坐标序列
  • 把全局参数b、h改为函数入参,降低代码耦合
  • 引入matplotlib库实现曲线可视化,可直接运行查看结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:21:01