拓冰建站拓冰建站
首页 / 资讯中心 / 正文

diffeqpy入门教程:求解第一个常微分方程,3步用matplotlib绘制精美解曲线

diffeqpy入门教程求解第一个常微分方程3步用matplotlib绘制精美解曲线【免费下载链接】diffeqpySolving differential equations in Python using DifferentialEquations.jl and the SciML Scientific Machine Learning organization项目地址: https://gitcode.com/gh_mirrors/di/diffeqpydiffeqpy是一个用 Python 求解微分方程的开源库底层直接调用 SciML 科学机器学习生态的 DifferentialEquations.jl 核心求解器让你在 Python 里就能以 Julia 级性能求解常微分方程ODE、随机微分方程SDE、延迟微分方程DDE和微分代数方程DAE。本入门教程带你 3 步求解第一个常微分方程并用 matplotlib 绘制出一条精美的解曲线。一、diffeqpy 是什么为什么值得学简单来说你写 Python引擎是 Julia。diffeqpy 把 Julia 生态中最强大的微分方程求解库搬进了 Python主要特点特点说明 强大的求解引擎核心为 DifferentialEquations.jl覆盖 ODE/SDE/DDE/DAE 等 8 类方程 纯 Python 体验不需要会 Juliafrom diffeqpy import de一行导入即可开始⚡ 极致性能支持de.jit符号化加速、GPU 加速大规模集合求解 轻量选项只解常微分方程时可导入更小的ode模块加载更快、内存更省核心源码位于diffeqpy/de.py完整功能入口和diffeqpy/ode.py常微分方程轻量入口声明的 Julia 依赖清单在diffeqpy/juliapkg.json中。二、一键安装最快配置方法打开终端执行一条命令pip install diffeqpy依赖如 juliacall会自动装好首次使用时还会自动下载所需的 Julia 求解包。安装完成后可以直接运行项目自带测试验证环境tox三、第一步定义常微分方程问题我们以经典指数衰减方程du/dt -u、初始值u(0) 0.5为例from diffeqpy import de def f(u, p, t): return -u u0 0.5 tspan (0.0, 1.0) prob de.ODEProblem(f, u0, tspan)三个要素一目了然f(u, p, t)微分方程的右端函数u0初始值tspan求解的时间区间四、第二步求解拿到解对象sol de.solve(prob)solve一步出解返回的解对象sol提供了最常用的三样东西属性含义sol.t求解保存的时间点序列sol.u对应时间点的解值sol(t)在任意时刻 t 的连续插值解曲线更平滑的秘密五、第三步用 matplotlib 绘制解曲线import matplotlib.pyplot as plt plt.plot(sol.t, sol.u) plt.title(常微分方程 du/dt -u 的解曲线) plt.xlabel(t) plt.ylabel(u) plt.show()运行后即可得到一条平滑的指数衰减曲线这就是 diffeqpy matplotlib 绘制微分方程解的最短路径。5.1 进阶用插值画出更平滑的曲线sol(t)是连续插值函数可以在任意自选网格上取值画面会更细腻import numpy as np t np.linspace(0, 1, 100) plt.plot(t, sol(t)) plt.show()六、可选技巧调精度、换求解器通过solve的通用参数即可控制算法与精度例如使用 9 阶 Runge-Kutta 方法并收紧容差sol de.solve(prob, de.Vern9(), saveat0.1, reltol1e-10, abstol1e-10)saveat控制解的保存间隔reltol/abstol相对误差与绝对误差容差七、常见疑问与实用提示Q1de和ode该选哪个日常只需解常微分方程时用from diffeqpy import ode对应diffeqpy/ode.py加载更快、内存占用更小需要 SDE、DDE、DAE、回调或 JIT 符号加速时用功能完整的from diffeqpy import de对应diffeqpy/de.py。Q2为什么 Julia 带!的函数在 Python 里要改写法Python 函数名不能含!约定用_b替代。例如 Julia 端的step!在 Python 中写成de.step_b(integrator)。Q3求解太慢怎么办两个方向一是用de.jit(prob)把问题符号化并生成高效原生代码代价是额外编译时间二是 GPU 加速——from diffeqpy import cuda可自动安装 NVIDIA CUDA 后端AMD、Intel oneAPI、Apple Metal 分别对应amdgpu.py、oneapi.py、metal.py适合成千上万条轨迹的并行求解。Q4想多看几个完整例子项目测试目录diffeqpy/tests/下有按题型分类的示例脚本test_ode.py常微分方程、test_sde.py随机微分方程、test_dde.py延迟微分方程、test_dae.py微分代数方程可直接打开阅读。八、总结diffeqpy 把 Julia 生态顶级微分方程求解能力封装成了 Python 包一条 pip 命令安装 →ODEProblem定义问题 →de.solve求解 →matplotlib绘图四步即可完成从建模到出图的完整流程。无论你是做物理仿真、生物建模还是科学计算diffeqpy 都能帮你又快又准地求解第一个、也是后续所有的常微分方程。【免费下载链接】diffeqpySolving differential equations in Python using DifferentialEquations.jl and the SciML Scientific Machine Learning organization项目地址: https://gitcode.com/gh_mirrors/di/diffeqpy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门