[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-SciML--OrdinaryDiffEq.jl":3,"tool-SciML--OrdinaryDiffEq.jl":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",157379,2,"2026-04-15T23:32:42",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":86,"forks":87,"last_commit_at":88,"license":89,"difficulty_score":32,"env_os":90,"env_gpu":90,"env_ram":90,"env_deps":91,"category_tags":98,"github_topics":99,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":111,"updated_at":112,"faqs":113,"releases":114},7985,"SciML\u002FOrdinaryDiffEq.jl","OrdinaryDiffEq.jl","High performance ordinary differential equation (ODE) and differential-algebraic equation (DAE) solvers, including neural ordinary differential equations (neural ODEs) and scientific machine learning (SciML)","OrdinaryDiffEq.jl 是 Julia 语言生态中专注于求解常微分方程（ODE）和微分代数方程（DAE）的高性能核心库。它旨在解决科学计算中复杂的动态系统建模难题，无论是基础的物理运动模拟，还是前沿的神经微分方程与科学机器学习任务，都能提供精准且高效的数值解法。\n\n这款工具特别适合科研人员、工程师以及需要处理复杂数学模型的开发者和学生使用。其独特亮点在于极高的执行效率与灵活性：不仅支持多种经典及自适应算法以应对不同刚性的方程，还针对大规模系统提供了原地（in-place）计算优化，并能通过静态数组技术将特定规模的模型编译到极致速度。此外，它完美兼容辛几何算法，能长期稳定地模拟如谐振子等保守系统。作为 SciML 生态系统的重要组成部分，OrdinaryDiffEq.jl 既可作为独立包轻量调用，也能与 DifferentialEquations.jl 无缝协作，为用户在探索自然规律与构建智能模型时提供坚实可靠的计算基石。","# OrdinaryDiffEq.jl\n\n[![Join the chat at https:\u002F\u002Fjulialang.zulipchat.com #sciml-bridged](https:\u002F\u002Fimg.shields.io\u002Fstatic\u002Fv1?label=Zulip&message=chat&color=9558b2&labelColor=389826)](https:\u002F\u002Fjulialang.zulipchat.com\u002F#narrow\u002Fstream\u002F279055-sciml-bridged)\n[![Global Docs](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-SciML-blue.svg)](https:\u002F\u002Fdocs.sciml.ai\u002FOrdinaryDiffEq\u002Fstable\u002F)\n\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fapp.codecov.io\u002Fgh\u002FSciML\u002FOrdinaryDiffEq.jl)\n[![Build Status](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fworkflows\u002FCI\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Factions?query=workflow%3ACI)\n[![Build status](https:\u002F\u002Fbadge.buildkite.com\u002F5f39777d009ce94ef1dcf2a4881c68b9fbcaf6f69f1d8b8df2.svg?branch=master)](https:\u002F\u002Fbuildkite.com\u002Fjulialang\u002Fordinarydiffeq-dot-jl)\n\n[![ColPrac: Contributor's Guide on Collaborative Practices for Community Packages](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FColPrac-Contributor%27s%20Guide-blueviolet)](https:\u002F\u002Fgithub.com\u002FSciML\u002FColPrac)\n[![SciML Code Style](https:\u002F\u002Fimg.shields.io\u002Fstatic\u002Fv1?label=code%20style&message=SciML&color=9558b2&labelColor=389826)](https:\u002F\u002Fgithub.com\u002FSciML\u002FSciMLStyle)\n\nOrdinaryDiffEq.jl is a component package in the DifferentialEquations ecosystem. It holds the\nordinary differential equation solvers and utilities. While completely independent\nand usable on its own, users interested in using this\nfunctionality should check out [DifferentialEquations.jl](https:\u002F\u002Fgithub.com\u002FSciML\u002FDifferentialEquations.jl).\n\n## Installation\n\nAssuming that you already have Julia correctly installed, it suffices to import\nOrdinaryDiffEq.jl in the standard way:\n\n```julia\nimport Pkg;\nPkg.add(\"OrdinaryDiffEq\");\n```\n\n## API\n\nOrdinaryDiffEq.jl is part of the SciML common interface, but can be used independently of DifferentialEquations.jl. The only requirement is that the user passes an OrdinaryDiffEq.jl algorithm to `solve`. For example, we can solve the [ODE tutorial from the docs](https:\u002F\u002Fdocs.sciml.ai\u002FDiffEqDocs\u002Fstable\u002Fgetting_started\u002F#ode_example) using the `Tsit5()` algorithm:\n\n```julia\nusing OrdinaryDiffEq\nf(u, p, t) = 1.01 * u\nu0 = 1 \u002F 2\ntspan = (0.0, 1.0)\nprob = ODEProblem(f, u0, tspan)\nsol = solve(prob, Tsit5(), reltol = 1e-8, abstol = 1e-8)\nusing Plots\nplot(sol, linewidth = 5, title = \"Solution to the linear ODE with a thick line\",\n    xaxis = \"Time (t)\", yaxis = \"u(t) (in μm)\", label = \"My Thick Line!\") # legend=false\nplot!(sol.t, t -> 0.5 * exp(1.01 * t), lw = 3, ls = :dash, label = \"True Solution!\")\n```\n\nThat example uses the out-of-place syntax `f(u,p,t)`, while the in-place syntax (more efficient for systems of equations) is shown in the Lorenz example:\n\n```julia\nusing OrdinaryDiffEq\nfunction lorenz!(du, u, p, t)\n    du[1] = 10.0 * (u[2] - u[1])\n    du[2] = u[1] * (28.0 - u[3]) - u[2]\n    du[3] = u[1] * u[2] - (8 \u002F 3) * u[3]\nend\nu0 = [1.0; 0.0; 0.0]\ntspan = (0.0, 100.0)\nprob = ODEProblem(lorenz!, u0, tspan)\nsol = solve(prob, Tsit5())\nusing Plots;\nplot(sol, idxs = (1, 2, 3))\n```\n\nVery fast static array versions can be specifically compiled to the size of your model. For example:\n\n```julia\nusing OrdinaryDiffEq, StaticArrays\nfunction lorenz(u, p, t)\n    SA[10.0 * (u[2] - u[1]), u[1] * (28.0 - u[3]) - u[2], u[1] * u[2] - (8 \u002F 3) * u[3]]\nend\nu0 = SA[1.0; 0.0; 0.0]\ntspan = (0.0, 100.0)\nprob = ODEProblem(lorenz, u0, tspan)\nsol = solve(prob, Tsit5())\n```\n\nFor \"refined ODEs\", like dynamical equations and `SecondOrderODEProblem`s, refer to the [DiffEqDocs](https:\u002F\u002Fdocs.sciml.ai\u002FDiffEqDocs\u002Fstable\u002Ftypes\u002Fode_types\u002F). For example, the harmonic oscillator equations can be solved using symplectic methods. The harmonic oscillator is described by:\n\n$$\\ddot{x} + \\omega^2 x = 0$$\n\nwhich is equivalent to the first-order system:\n\n$$\\dot{x} = v$$\n$$\\dot{v} = -\\omega^2 x$$\n\n```julia\nusing OrdinaryDiffEq\nfunction harmonic_oscillator!(dv, v, u, p, t)\n    ω = p[1]\n    dv[1] = -ω^2 * u[1]\nend\nω = 2.0  # angular frequency\ninitial_position = [1.0]\ninitial_velocity = [0.0]\ntspan = (0.0, 10.0)\nprob = SecondOrderODEProblem(harmonic_oscillator!, initial_velocity, initial_position, tspan, [ω])\nsol = solve(prob, VelocityVerlet(), dt = 1 \u002F 100)\nusing Plots\nplot(sol, idxs = (1, 2), label = \"Phase space\", xaxis = \"Position\", yaxis = \"Velocity\")\n```\n\nFor more complex dynamical systems, such as the Hénon-Heiles potential, symplectic integrators preserve the structure of Hamiltonian dynamics. In [DiffEqTutorials.jl](https:\u002F\u002Fgithub.com\u002FSciML\u002FSciMLTutorials.jl) we show how to solve these equations of motion:\n\n```julia\nfunction HH_acceleration!(dv, v, u, p, t)\n    x, y = u\n    dx, dy = dv\n    dv[1] = -x - 2 * x * y\n    dv[2] = y^2 - y - x^2\nend\ninitial_positions = [0.0, 0.1]\ninitial_velocities = [0.5, 0.0]\nprob = SecondOrderODEProblem(HH_acceleration!, initial_velocities, initial_positions, tspan)\nsol2 = solve(prob, KahanLi8(), dt = 1 \u002F 10);\n```\n\nOther refined forms are IMEX and semi-linear ODEs (for exponential integrators).\n\n## Available Solvers\n\nFor the list of available solvers, please refer to the [DifferentialEquations.jl ODE Solvers](https:\u002F\u002Fdocs.sciml.ai\u002FDiffEqDocs\u002Fstable\u002Fsolvers\u002Fode_solve\u002F), [Dynamical ODE Solvers](https:\u002F\u002Fdocs.sciml.ai\u002FDiffEqDocs\u002Fstable\u002Fsolvers\u002Fdynamical_solve\u002F), and the [Split ODE Solvers](https:\u002F\u002Fdocs.sciml.ai\u002FDiffEqDocs\u002Fstable\u002Fsolvers\u002Fsplit_ode_solve\u002F) pages.\n","# OrdinaryDiffEq.jl\n\n[![加入 Zulip 聊天 #sciml-bridged](https:\u002F\u002Fimg.shields.io\u002Fstatic\u002Fv1?label=Zulip&message=chat&color=9558b2&labelColor=389826)](https:\u002F\u002Fjulialang.zulipchat.com\u002F#narrow\u002Fstream\u002F279055-sciml-bridged)\n[![全球文档](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-SciML-blue.svg)](https:\u002F\u002Fdocs.sciml.ai\u002FOrdinaryDiffEq\u002Fstable\u002F)\n\n[![Codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fapp.codecov.io\u002Fgh\u002FSciML\u002FOrdinaryDiffEq.jl)\n[![构建状态](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fworkflows\u002FCI\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Factions?query=workflow%3ACI)\n[![构建状态](https:\u002F\u002Fbadge.buildkite.com\u002F5f39777d009ce94ef1dcf2a4881c68b9fbcaf6f69f1d8b8df2.svg?branch=master)](https:\u002F\u002Fbuildkite.com\u002Fjulialang\u002Fordinarydiffeq-dot-jl)\n\n[![ColPrac：社区包协作指南](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FColPrac-Contributor%27s%20Guide-blueviolet)](https:\u002F\u002Fgithub.com\u002FSciML\u002FColPrac)\n[![SciML 代码风格](https:\u002F\u002Fimg.shields.io\u002Fstatic\u002Fv1?label=code%20style&message=SciML&color=9558b2&labelColor=389826)](https:\u002F\u002Fgithub.com\u002FSciML\u002FSciMLStyle)\n\nOrdinaryDiffEq.jl 是 DifferentialEquations 生态系统中的一个组件包。它包含了常微分方程求解器和相关工具。虽然它可以完全独立使用，但对于希望利用这些功能的用户来说，建议查看 [DifferentialEquations.jl](https:\u002F\u002Fgithub.com\u002FSciML\u002FDifferentialEquations.jl)。\n\n## 安装\n\n假设您已经正确安装了 Julia，只需以标准方式导入 OrdinaryDiffEq.jl 即可：\n\n```julia\nimport Pkg;\nPkg.add(\"OrdinaryDiffEq\");\n```\n\n## API\n\nOrdinaryDiffEq.jl 是 SciML 共享接口的一部分，但也可以独立于 DifferentialEquations.jl 使用。唯一的条件是用户需要将 OrdinaryDiffEq.jl 的算法传递给 `solve` 函数。例如，我们可以使用 `Tsit5()` 算法来求解 [文档中的 ODE 教程](https:\u002F\u002Fdocs.sciml.ai\u002FDiffEqDocs\u002Fstable\u002Fgetting_started\u002F#ode_example)：\n\n```julia\nusing OrdinaryDiffEq\nf(u, p, t) = 1.01 * u\nu0 = 1 \u002F 2\ntspan = (0.0, 1.0)\nprob = ODEProblem(f, u0, tspan)\nsol = solve(prob, Tsit5(), reltol = 1e-8, abstol = 1e-8)\nusing Plots\nplot(sol, linewidth = 5, title = \"Solution to the linear ODE with a thick line\",\n    xaxis = \"Time (t)\", yaxis = \"u(t) (in μm)\", label = \"My Thick Line!\") # legend=false\nplot!(sol.t, t -> 0.5 * exp(1.01 * t), lw = 3, ls = :dash, label = \"True Solution!\")\n```\n\n该示例使用了非原地语法 `f(u,p,t)`，而原地语法（对系统方程更高效）则在 Lorenz 示例中展示：\n\n```julia\nusing OrdinaryDiffEq\nfunction lorenz!(du, u, p, t)\n    du[1] = 10.0 * (u[2] - u[1])\n    du[2] = u[1] * (28.0 - u[3]) - u[2]\n    du[3] = u[1] * u[2] - (8 \u002F 3) * u[3]\nend\nu0 = [1.0; 0.0; 0.0]\ntspan = (0.0, 100.0)\nprob = ODEProblem(lorenz!, u0, tspan)\nsol = solve(prob, Tsit5())\nusing Plots;\nplot(sol, idxs = (1, 2, 3))\n```\n\n非常快速的静态数组版本可以专门编译为与您的模型大小相匹配的形式。例如：\n\n```julia\nusing OrdinaryDiffEq, StaticArrays\nfunction lorenz(u, p, t)\n    SA[10.0 * (u[2] - u[1]), u[1] * (28.0 - u[3]) - u[2], u[1] * u[2] - (8 \u002F 3) * u[3]]\nend\nu0 = SA[1.0; 0.0; 0.0]\ntspan = (0.0, 100.0)\nprob = ODEProblem(lorenz, u0, tspan)\nsol = solve(prob, Tsit5())\n```\n\n对于“精细化的 ODE”，如动力学方程和 `SecondOrderODEProblem`，请参考 [DiffEqDocs](https:\u002F\u002Fdocs.sciml.ai\u002FDiffEqDocs\u002Fstable\u002Ftypes\u002Fode_types\u002F)。例如，谐振子方程可以使用辛积分方法求解。谐振子由以下方程描述：\n\n$$\\ddot{x} + \\omega^2 x = 0$$\n\n这等价于一阶系统：\n\n$$\\dot{x} = v$$\n$$\\dot{v} = -\\omega^2 x$$\n\n```julia\nusing OrdinaryDiffEq\nfunction harmonic_oscillator!(dv, v, u, p, t)\n    ω = p[1]\n    dv[1] = -ω^2 * u[1]\nend\nω = 2.0  # 角频率\ninitial_position = [1.0]\ninitial_velocity = [0.0]\ntspan = (0.0, 10.0)\nprob = SecondOrderODEProblem(harmonic_oscillator!, initial_velocity, initial_position, tspan, [ω])\nsol = solve(prob, VelocityVerlet(), dt = 1 \u002F 100)\nusing Plots\nplot(sol, idxs = (1, 2), label = \"Phase space\", xaxis = \"Position\", yaxis = \"Velocity\")\n```\n\n对于更复杂的动力学系统，如 Hénon-Heiles 势，辛积分器能够保持哈密顿动力学的结构。在 [DiffEqTutorials.jl](https:\u002F\u002Fgithub.com\u002FSciML\u002FSciMLTutorials.jl) 中，我们展示了如何求解这些运动方程：\n\n```julia\nfunction HH_acceleration!(dv, v, u, p, t)\n    x, y = u\n    dx, dy = dv\n    dv[1] = -x - 2 * x * y\n    dv[2] = y^2 - y - x^2\nend\ninitial_positions = [0.0, 0.1]\ninitial_velocities = [0.5, 0.0]\nprob = SecondOrderODEProblem(HH_acceleration!, initial_velocities, initial_positions, tspan)\nsol2 = solve(prob, KahanLi8(), dt = 1 \u002F 10);\n```\n\n其他精细化形式包括 IMEX 和半线性 ODE（用于指数积分器）。\n\n## 可用的求解器\n\n有关可用求解器的列表，请参阅 [DifferentialEquations.jl ODE 求解器](https:\u002F\u002Fdocs.sciml.ai\u002FDiffEqDocs\u002Fstable\u002Fsolvers\u002Fode_solve\u002F)、[动力学 ODE 求解器](https:\u002F\u002Fdocs.sciml.ai\u002FDiffEqDocs\u002Fstable\u002Fsolvers\u002Fdynamical_solve\u002F)以及 [分裂 ODE 求解器](https:\u002F\u002Fdocs.sciml.ai\u002FDiffEqDocs\u002Fstable\u002Fsolvers\u002Fsplit_ode_solve\u002F)页面。","# OrdinaryDiffEq.jl 快速上手指南\n\nOrdinaryDiffEq.jl 是 SciML 生态系统中专注于常微分方程（ODE）求解的核心组件包。它提供了高性能的求解算法，既可作为 `DifferentialEquations.jl` 的一部分使用，也可独立调用。\n\n## 环境准备\n\n*   **操作系统**：Windows、macOS 或 Linux。\n*   **前置依赖**：已安装 **Julia** (建议版本 1.6 或以上)。\n    *   请访问 [Julia 官网](https:\u002F\u002Fjulialang.org\u002Fdownloads\u002F) 下载并安装。\n*   **网络提示**：若在中国大陆地区下载安装包或注册表较慢，可配置国内镜像源（如清华源或中科大源）加速包管理操作。\n\n## 安装步骤\n\n启动 Julia REPL（交互式命令行），执行以下命令安装 `OrdinaryDiffEq`：\n\n```julia\nimport Pkg;\nPkg.add(\"OrdinaryDiffEq\");\n```\n\n*注：若需绘图功能演示，建议同时安装 `Plots` 包：`Pkg.add(\"Plots\")`。*\n\n## 基本使用\n\nOrdinaryDiffEq.jl 遵循 SciML 通用接口。核心流程为：定义方程函数 -> 创建 `ODEProblem` -> 调用 `solve` 并指定算法。\n\n### 示例：求解线性常微分方程\n\n以下示例演示如何使用 `Tsit5()` 算法求解方程 $\\frac{du}{dt} = 1.01u$，初始条件 $u(0)=0.5$。\n\n```julia\nusing OrdinaryDiffEq\n\n# 1. 定义微分方程函数 (out-of-place 形式: f(u, p, t))\nf(u, p, t) = 1.01 * u\n\n# 2. 设置初始条件和时间跨度\nu0 = 1 \u002F 2\ntspan = (0.0, 1.0)\n\n# 3. 构建 ODE 问题\nprob = ODEProblem(f, u0, tspan)\n\n# 4. 求解 (使用 Tsit5 算法，设置误差容限)\nsol = solve(prob, Tsit5(), reltol = 1e-8, abstol = 1e-8)\n\n# 5. (可选) 可视化结果\nusing Plots\nplot(sol, linewidth = 5, title = \"Solution to the linear ODE with a thick line\",\n    xaxis = \"Time (t)\", yaxis = \"u(t) (in μm)\", label = \"My Thick Line!\")\nplot!(sol.t, t -> 0.5 * exp(1.01 * t), lw = 3, ls = :dash, label = \"True Solution!\")\n```\n\n### 进阶提示\n*   **大规模方程组**：对于多变量系统，推荐使用 **in-place** 语法（如 `function lorenz!(du, u, p, t)`）以减少内存分配，提升性能。\n*   **静态数组优化**：对于固定小规模系统，结合 `StaticArrays` 可实现极致编译优化。\n*   **二阶方程**：针对哈密顿系统等二阶微分方程，可使用 `SecondOrderODEProblem` 配合辛积分器（如 `VelocityVerlet()`）。","某生物制药团队正在构建心脏电生理模型，需通过求解大规模微分方程组来模拟药物对心肌细胞离子通道的影响，以预测潜在的心律失常风险。\n\n### 没有 OrdinaryDiffEq.jl 时\n- **计算效率低下**：面对包含数百个变量的刚性方程组，传统求解器步长受限，单次模拟耗时数小时，严重拖慢药物筛选进度。\n- **精度与稳定性难以平衡**：在模拟快速变化的动作电位时，常用算法容易发散或产生非物理振荡，导致关键数据失真。\n- **缺乏前沿算法支持**：无法直接利用神经微分方程（Neural ODEs）技术将实验数据与机理模型融合，限制了模型的修正能力。\n- **内存开销巨大**：处理大规模系统时，动态数组分配频繁，导致内存占用过高，难以在普通工作站上并行运行多个案例。\n\n### 使用 OrdinaryDiffEq.jl 后\n- **性能显著提升**：利用其专为刚性问题设计的高性能算法（如 Rodas5），结合 Julia 的静态数组优化，将单次模拟时间从小时级缩短至分钟级。\n- **数值稳定性增强**：自动适配的自适应步长控制确保了在离子通道快速开闭瞬间的计算精度，消除了非物理振荡，结果更可信。\n- **无缝集成科学机器学习**：直接调用内置的 Neural ODE 接口，轻松将临床测量数据融入微分方程框架，实现了数据驱动的参数反演与模型校正。\n- **资源利用更高效**：得益于原地（in-place）运算和编译优化，大幅降低内存峰值，使得在单台服务器上并发运行上千次药物剂量模拟成为可能。\n\nOrdinaryDiffEq.jl 通过极致的高性能求解与现代化的科学机器学习生态，将复杂的生物物理模拟从“算不动”转变为“算得快、算得准”，加速了新药研发的决策闭环。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSciML_OrdinaryDiffEq.jl_be5133c3.png","SciML","SciML Open Source Scientific Machine Learning","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FSciML_dfb801ca.png","Open source software for scientific machine learning",null,"contact@chrisrackauckas.com","SciML_Org","https:\u002F\u002Fsciml.ai","https:\u002F\u002Fgithub.com\u002FSciML",[82],{"name":83,"color":84,"percentage":85},"Julia","#a270ba",100,650,259,"2026-04-15T20:14:29","NOASSERTION","未说明",{"notes":92,"python":93,"dependencies":94},"该工具是基于 Julia 语言的库，非 Python 项目。使用前需确保已正确安装 Julia。虽然可独立使用，但官方建议用户结合 DifferentialEquations.jl 生态系统以获得更完整的功能。支持多种 ODE 求解算法及高阶动力学方程（如辛积分器）。","不适用",[95,96,97],"Julia (已安装)","StaticArrays (可选，用于静态数组优化)","Plots (可选，用于绘图)",[14,35,52],[100,101,102,103,104,105,106,107,108,109,110],"ordinary-differential-equations","differentialequations","ode","event-handling","adaptive","high-performance","differential-equations","scientific-machine-learning","hacktoberfest","julia","sciml","2026-03-27T02:49:30.150509","2026-04-16T11:02:59.102411",[],[115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210],{"id":116,"version":117,"summary_zh":118,"released_at":119},280975,"v6.108.0","## OrdinaryDiffEq v6.108.0\n\n[与 v6.107.0 的差异](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.107.0...v6.108.0)\n\n\n**已合并的拉取请求：**\n- 修复文档中损坏的 diffeq.sciml.ai 链接 (#3014) (@ChrisRackauckas-Claude)\n- 将 WOperators 移至 SciMLOperators (#3017) (@ChrisRackauckas-Claude)\n- 修复 CI 矩阵：移除重复的 Multithreading 并修正 SimpleImplicitDiscreteSolve_QA 的排除项 (#3019) (@ChrisRackauckas-Claude)\n- 通过降级后重新解析 manifest 来修复 DowngradeSublibraries CI (#3020) (@ChrisRackauckas-Claude)\n- 升级子包以要求 OrdinaryDiffEqDifferentiation v2 (#3022) (@ChrisRackauckas-Claude)","2026-02-02T06:54:39",{"id":121,"version":122,"summary_zh":123,"released_at":124},280976,"v6.107.0","## OrdinaryDiffEq v6.107.0\n\n与 v6.106.0 的差异 [链接](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.106.0...v6.107.0)\n\n\n**已合并的拉取请求：**\n- 将测试套件迁移到使用 DifferentiationInterface 进行自动微分 (#2993) (@ChrisRackauckas-Claude)\n- 将 CPU buildkite 测试迁移至 GitHub Actions (#2996) (@ChrisRackauckas)\n- 在 Julia 1.10 上跳过 LazyString 的 @test_warn 测试 (#2997) (@ChrisRackauckas-Claude)\n- 将警告测试改为 retcode 测试 (#2998) (@ChrisRackauckas)\n- 为 DDE 和 SDE 添加详细程度开关 (#3000) (@jClugstor)\n- 将 ODEVerbosity重命名为 DEVerbosity (#3001) (@jClugstor)\n- 修复 DEVerbosity 的 `@verbosity_specifier` 使用问题 (#3002) (@jClugstor)\n- 为 DataStructures \u003C 0.19 版本中的 BinaryHeap 添加 empty! 兼容适配层 (#3004) (@ChrisRackauckas-Claude)\n- 更新 Mooncake 扩展以匹配 Enzyme 非活性规则 (#3005) (@ChrisRackauckas-Claude)\n- 取消 PR 上新提交时的 CI 流程 (#3008) (@termi-official)\n- 通过将 DiffEqBase 的下限版本号提升至 6.194 来修复降级测试 (#3009) (@ChrisRackauckas-Claude)\n- 优化 get_differential_vars 中的 sparse isdiag 检查，将其时间复杂度从 O(n²) 降低到 O(nnz) (#3011) (@ChrisRackauckas-Claude)\n- 调用 `final_progress` (#3012) (@visr)\n- 修复破损的 DiffEqDocs 链接，并在 linkcheck 中忽略 ForwardDiff.jl (#3015) (@ChrisRackauckas-Claude)\n\n**已关闭的问题：**\n- 雅可比矩阵复用策略 (#871)\n- 雅可比矩阵相关问题的收尾工作 (#952)\n- `empty!(::DataStructures.BinaryHeap, ....)` 导致严重错误，从而阻止 ODE 求解 (#3003)\n- rosenprock_perform_step.jl 中单位运算不一致的问题 (#3006)\n- reinit_tstops! 中缓存无法清空的问题 (#3007)\n- 稀疏质量矩阵中 get_differential_vars 的 isdiag() 存在 O(n²) 性能瓶颈 (#3010)","2026-01-31T11:53:26",{"id":126,"version":127,"summary_zh":128,"released_at":129},280977,"v6.106.0","## OrdinaryDiffEq v6.106.0\n\n[与 v6.105.0 的差异](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.105.0...v6.106.0)\n\n\n**已合并的拉取请求：**\n- 自适应 IDSolve (#2881) (@termi-official)\n- 在 codecov action 中添加 disable_safe_directory 选项 (#2945) (@ChrisRackauckas-Claude)\n- Os\u002Fcleanup jet 简化 (#2946) (@oscardssmith)\n- 文档：澄清 ESDIRK 方法不支持 SplitODEProblem (#2947) (@ChrisRackauckas-Claude)\n- 修复 DPRKN5 CompiledFloats 系数，以实现正确的 5 阶收敛 (#2948) (@ChrisRackauckas-Claude)\n- 将稀疏质量矩阵的代数变量检测优化从 O(n²) 提升至 O(nnz) (#2949) (@cuihantao)\n- 为 find_algebraic_vars_eqs 添加 MatrixOperator 支持 (#2950) (@ChrisRackauckas-Claude)\n- 在 find_algebraic_vars_eqs 中对 AbstractSciMLOperator 使用 convert(AbstractMatrix, M) (#2951) (@ChrisRackauckas-Claude)\n- 修复 DPRKN5 的就地与非就地测试容差 (#2952) (@ChrisRackauckas-Claude)\n- 跳过 Julia 1.12 上的 Enzyme 测试 (#2953) (@ChrisRackauckas-Claude)\n- 为兼容 JET，将 MacroTools 兼容性版本从 0.5 提升至 0.5.6 (#2954) (@ChrisRackauckas-Claude)\n- 将 OrdinaryDiffEqNonlinearSolve 的兼容性版本从 1.13.0 提升至 1.16.0 (#2957) (@ChrisRackauckas-Claude)\n- 完成 verbosity 系统的向后兼容性（基于 #2895）(#2958) (@ChrisRackauckas-Claude)\n- 为 FunctionMap 支持 null u0 与回调函数 (#2959) (@ChrisRackauckas-Claude)\n- 为 Newmark、RKIP 和 SIMDRK 包添加 JET 测试 (#2960) (@ChrisRackauckas-Claude)\n- 修复 LinearSolve 和 SciMLBase 的最低版本约束 (#2962) (@ChrisRackauckas-Claude)\n- 文档改进：修复代码示例中的语法错误 (#2963) (@ChrisRackauckas-Claude)\n- 文档改进：修正函数命名和 API 使用方式 (#2965) (@ChrisRackauckas-Claude)\n- 更新 PreallocationTools 的兼容性，允许所有子库使用 v1 版本 (#2967) (@ChrisRackauckas-Claude)\n- 将代码格式化工具从 JuliaFormatter 切换至 Runic.jl (#2968) (@ChrisRackauckas-Claude)\n- 将 actions\u002Fcheckout 版本从 4 升级至 6 (#2969) (@dependabot[bot])\n- 更新 FIRK 插值器 (#2970) (@Shreyas-Ekanathan)\n- 在 Julia LTS 上跳过 null_u0_callbacks 测试 (#2971) (@ChrisRackauckas-Claude)\n- 在 README 中添加简谐振子示例 (#2973) (@ChrisRackauckas-Claude)\n- 修复 NonlinearSolve 和 PreallocationTools 的最低版本约束 (#2974) (@ChrisRackauckas-Claude)\n- 暂停降级测试，等待修复完成 (#2978) (@ChrisRackauckas-Claude)\n- 重新初始化 `tstops`、`saveat` 和 `d_discontinuities` 时移除分配 (#2981) (@jClugstor)\n- 将 QA 测试（JET\u002FAqua\u002FAllocCheck）拆分为独立的测试组 (#2983) (@ChrisRackauckas-Claude)\n- 添加 get_mass_matrix 辅助函数，以支持没有 mass_matrix 字段的函数 (#2984) (@ChrisRackauckas-Claude)\n- 修复 Rosenbrock 分配测试，直接测试 perform_step! (#2985) (@ChrisRackauckas-Claude)\n- 修复 OrdinaryDiffEqTaylorSeries 以兼容 Symbolics v7 (#2986) (@ChrisRackauckas-Claude)\n- 在 Julia v1 及更早版本上跳过 ODEInterfaceRegression 测试 (#2988) (@ChrisRackauffirst\n","2026-01-16T00:13:47",{"id":131,"version":132,"summary_zh":133,"released_at":134},280978,"v6.105.0","## OrdinaryDiffEq v6.105.0\n\n[与 v6.104.0 的差异](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.104.0...v6.105.0)\n\n\n**已合并的拉取请求：**\n- 更新 JET 兼容性，以支持 Julia 1.12+ 的 v0.11 版本 (#2907) (@ChrisRackauckas-Claude)\n- 修复并测试 Rosenbrock 方法中的内存分配问题 (#2926) (@andreasnoack)\n- 为 verbosity 格式变更修补 OrdinaryDiffEqDifferentiation 模块 (#2930) (@ChrisRackauckas)\n- 修复 Rosenbrock DAE 测试中的类型推断问题 (#2931) (@ChrisRackauckas)\n- 修复 OrdinaryDiffEqBDF 测试失败的问题 (#2932) (@oscardssmith)\n- 撤销“修复 Rosenbrock DAE 测试中的类型推断问题”(#2934) (@ChrisRackauckas)\n- 修正 InterfaceV AD 测试中用于有限差分比较的容差值 (#2935) (@ChrisRackauckas-Claude)\n- 将 actions\u002Fcache 从版本 4 升级到 5 (#2936) (@dependabot[bot])\n- 添加 OrdinaryDiffEqRKIP，并修复 Compat.jl 和 UnPack 的问题 (#2938) (@ChrisRackauckas-Claude)\n- 将 NLstep ModelingToolkit 收敛性测试标记为已损坏 (#2939) (@ChrisRackauckas-Claude)\n- 修复 BrownFullBasicInit 的 GPU 兼容性（基于 #2911 重新提交）(#2941) (@ChrisRackauckas-Claude)\n- 通过将 ODEProblemLibrary 的兼容性更新至 v1.x 版本，修复 JET v0.11 的兼容性问题 (#2943) (@ChrisRackauckas-Claude)\n- 提升所有包的次版本号 (#2944) (@ChrisRackauckas-Claude)\n\n**已关闭的问题：**\n- 使用 `VectorOfArray` 的 `ArrayPartition` 会给出错误结果 (#2728)\n- 无法禁用雅可比矩阵稀疏模式检查 (#2924)\n- Rosenbrock 方法中 `perform_step!` 函数内的变量未被正确推断类型 (#2925)","2025-12-17T05:35:34",{"id":136,"version":137,"summary_zh":138,"released_at":139},280979,"v6.104.0","## OrdinaryDiffEq v6.104.0\n\n[与 v6.103.0 的差异](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.103.0...v6.104.0)\n\n\n**已合并的拉取请求：**\n- Newmark β 方法 (#2187) (@termi-official)\n- 添加 Julia 1.11 的测试，并从 Julia 1.12 预发布版本中排除 Enzyme 测试 (#2905) (@ChrisRackauckas-Claude)\n- 更新链接目标以减少重定向 (#2909) (@abhro)\n- 更新 usage.md 中的 ODE 入门教程链接 (#2912) (@AbdAlazezAhmed)\n- 为 Tsit5 求解器参考添加 DOI (#2914) (@abhro)\n- 将 actions\u002Fcheckout 从 4 升级到 6 (#2915) (@dependabot[bot])\n- 在 Dependabot 配置中添加 Julia 生态系统 (#2920) (@ChrisRackauckas-Claude)\n- 将 nlsolver.γ 转换为 tTypeNoUnits，以避免昂贵的 rationalize 调用 (#2923) (@ChrisRackauckas-Claude)\n- 移除 UnPack 和 SimpleUnPack (#2927) (@devmotion)\n\n**已关闭的问题：**\n- Numark-β 方法 (#411)\n- 使用子数组作为初始条件时，`OrdinaryDiffEqTsit5` 会抛出 `LoadError: No matching function wrapper was found!` 错误 (#2900)\n- 在常规时间积分中遇到“当前插值仅在 tprev 和 t 之间有效”的错误 (#2917)\n- QNDF 在有理化浮点数时速度变慢 (#2921)","2025-12-12T12:05:31",{"id":141,"version":142,"summary_zh":143,"released_at":144},280980,"v6.103.0","## OrdinaryDiffEq v6.103.0\n\n[与 v6.102.1 的差异](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.102.1...v6.103.0)\n\n\n**已合并的拉取请求：**\n- 在 nlstep 和 NonlinearSolveAlg 集成中复用积分器 (#2760) (@ChrisRackauckas)\n- 功能：向 `DEOptions` 添加 `save_discretes` (#2871) (@AayushSabharwal)\n- 为酶促离散伴随添加测试 (#2872) (@ChrisRackauckas)\n- 更新以使用 DiffEqBase 初始化算法 (#2873) (@ChrisRackauckas-Claude)\n- Rkv76iia (#2878) (@KeshavVenkatesh)\n- 更新 accepted_kwargs，使其对 SciMLOperators.jl#313 使用 Val 标记 (#2884) (@ChrisRackauckas-Claude)\n- 扩展用于 _initialize_dae! 的积分器 (#2885) (@ChrisRackauckas)\n- 修复 IMEX 文档示例，使其使用 SplitODEProblem (#2888) (@ChrisRackauckas-Claude)\n- 移除不匹配的表格 (#2896) (@KeshavVenkatesh)\n\n**已关闭的问题：**\n- 高斯配点法的高效实现 (#1004)\n- 统一 AbstractDiffEqInterpolation 中的字段 (#2750)\n- 通过 ODE 求解器进行自动微分时出现严重性能下降和类型不稳定问题 (#2837)\n- 自动线性化带有 `Linearize` 的 `ODEProblem` (#2874)\n- OrdinaryDiffEqLinear 文档中的示例无法运行 (#2877)\n- 使用 print 回调会保存解向量（即使 save_everystep 设置为 false）(#2882)\n- CI 测试因 OrdinaryDiffEq.jl 等包的预编译错误而失败 (#2887)","2025-10-24T16:05:45",{"id":146,"version":147,"summary_zh":148,"released_at":149},280981,"v6.102.1","## OrdinaryDiffEq v6.102.1\n\n[与 v6.102.0 的差异](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.102.0...v6.102.1)\n\n\n**已合并的拉取请求：**\n- 新方法 Rodas6P (#2774) (@gstein3m)\n- 将 DataStructures 升级至 v0.19，将 StructArrays 升级至 v0.7 (#2847) (@ChrisRackauckas-Claude)\n- 功能：将回调保存集成到积分器的初始化和最终化中 (#2857) (@AayushSabharwal)\n- 将 SciMLBase 的兼容性版本提升至 2.115 (#2862) (@j-fu)\n- 测试 DiffEqBase v6.177 以修复收敛失败问题 (#2863) (@ChrisRackauckas-Claude)\n- 修复线程问题 #2612：用 Threads.maxthreadid() 替代 Threads.nthreads() (#2864) (@ChrisRackauckas-Claude)\n- 为 WOperator 添加复制方法 (#2865) (@ChrisRackauckas-Claude)\n- 修复 DAE 质量矩阵在使用向量绝对误差容差时的初始化问题（修复 #2820）(#2868) (@ChrisRackauckas-Claude)\n- 将 ExplicitImports 设为测试依赖项 (#2870) (@devmotion)\n\n**已关闭的问题：**\n- 可能错误地使用了 `Threads.nthreads` 和 `Threads.threadid` (#2612)\n- DAE 质量矩阵形式：initialize_dae! 在非标量绝对误差容差下会失败 (#2820)\n- 使用 ForwardDiff 对带有回调的 ODE 进行微分时会崩溃 (#2867)","2025-09-09T05:39:28",{"id":151,"version":152,"summary_zh":153,"released_at":154},280982,"v6.102.0","## OrdinaryDiffEq v6.102.0\n\n[与 v6.101.0 的差异](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.101.0...v6.102.0)\n\n\n**已合并的拉取请求：**\n- [ci-skip] 更新 Project.toml (#2767) (@ChrisRackauckas)\n- 为 SimpleImplicitDiscreteSolve 添加 JET.jl 静态分析测试 (#2769) (@ChrisRackauckas)\n- 修复 OrdinaryDiffEqSymplecticRK 中未定义的 default_linear_interpolation 错误 (#2770) (@ChrisRackauckas)\n- 应用 JuliaFormatter 以修复代码格式 (#2776) (@ChrisRackauckas)\n- 从 OrdinaryDiffEqFIRK 中重新导出 AdaptiveRadau (#2777) (@asinghvi17)\n- 移除针对 v1.8 和 v1.9 的过时 Julia 版本检查 (#2778) (@ChrisRackauckas)\n- 添加拼写检查配置 (#2781) (@ChrisRackauckas)\n- 添加包含 InterfaceI 测试组的降级 CI 工作流 (#2782) (@ChrisRackauckas)\n- 为所有子库添加降级 CI (#2783) (@ChrisRackauckas)\n- 修复测试文件中已弃用的布尔型自动微分用法 (#2785) (@ChrisRackauckas)\n- 全面修复测试文件中所有已弃用的 API 使用 (#2787) (@ChrisRackauckas)\n- 添加 GPU 安全的 AutoForwardDiff 包装器，使用 AutoForwardFromPrimitive (#2788) (@ChrisRackauckas)\n- [ci-skip] 撤销 JuliaFormatter PR #2776 (#2789) (@ChrisRackauckas)\n- 更新 hard_dae.jl，使其不再使用 Rosenbrock23 (#2790) (@ChrisRackauckas)\n- 修复 OrdinaryDiffEqRosenbrock 中的文档警告 (#2792) (@ChrisRackauckas)\n- 应用 JuliaFormatter 以修复代码格式 (#2793) (@ChrisRackauckas)\n- 修复 StabilizedRK 在 Julia 1.11 下的分配测试 (#2795) (@ChrisRackauckas)\n- 修复紧随 Catalyst.jl PR #1306 之后不必要的换行分割 (#2797) (@ChrisRackauckas)\n- 将 DataStructures.jl 的兼容性更新至 v0.19 (#2799) (@ChrisRackauckas)\n- 修复紧随 Catalyst.jl PR #1306 之后的格式化换行分割 (#2800) (@ChrisRackauckas)\n- 通过在有理数字面量中显式使用 Int64，修复 X86 架构上的 InexactError 错误 (#2803) (@ChrisRackauckas)\n- 为求解器的内存分配和类型稳定性添加全面的质量保证测试基础设施 (#2805) (@ChrisRackauckas-Claude)\n- 使用显式导入语句 (#2806) (@ChrisRackauckas-Claude)\n- 更新 DiffEqProblemLibrary.jl PR #153 中的 Van der Pol 测试实现 (#2807) (@ChrisRackauckas-Claude)\n- 添加当步长恰好落在事件发生时刻时的事件检测测试 (#2809) (@dcourteville)\n- CompatHelper：为下游软件包新增 Mooncake v0.4 的兼容条目（保留现有兼容性）(#2810) (@github-actions[bot])\n- CompatHelper：为 GPU 相关软件包新增 FastBroadcast v0.3 的兼容条目（保留现有兼容性）(#2811) (@github-actions[bot])\n- CompatHelper：为 GPU 相关软件包新增 RecursiveArrayTools v3 的兼容条目（保留现有兼容性）(#2812) (@github-actions[bot])\n- CompatHelper：为 GPU 相关软件包新增 ComponentArrays v0.15 的兼容条目（保留现有兼容性）(#2813) (@github-actions[bot])\n- CompatHelper：为 GPU 相关软件包新增 FillArrays v1 的兼容条目（保留现有兼容性）(#2814) (@github-actions[bot])\n- CompatHelper：为 Adapt 新增 v4 的兼容条目，用于 pa","2025-08-28T14:09:57",{"id":156,"version":157,"summary_zh":158,"released_at":159},280983,"v6.101.0","## OrdinaryDiffEq v6.101.0\n\n[自 v6.100.0 以来的差异](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.100.0...v6.101.0)","2025-07-21T15:54:36",{"id":161,"version":162,"summary_zh":163,"released_at":164},280984,"v6.100.0","## OrdinaryDiffEq v6.100.0\n\n[与 v6.99.0 的差异](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.99.0...v6.100.0)\n\n\n**已合并的拉取请求：**\n- 设置使用 nlstep 重载 (#2758) (@ChrisRackauckas)\n- 修复自适应非就地 Stepanov5 方法。(#2759) (@toma-vlad)\n- 添加检查以确认求解成功 (#2761) (@ChrisRackauckas)\n- 由于不支持视图，将 DI 改为非严格模式 (#2762) (@ChrisRackauckas)\n- 在预发布版本中禁用 Enzyme (#2763) (@ChrisRackauckas)\n- 修复 CI 降级问题 (#2764) (@ChrisRackauckas)\n- 大幅改进文档 (#2766) (@ChrisRackauckas)","2025-07-21T03:17:19",{"id":166,"version":167,"summary_zh":168,"released_at":169},280985,"v6.99.0","## OrdinaryDiffEq v6.99.0\n\n[Diff since v6.98.0](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.98.0...v6.99.0)\n\n\n**Merged pull requests:**\n- Fix inference with NonlinearSolveAlg (#2729) (@ChrisRackauckas)\n- fix autodiff for FBDF (#2730) (@oscardssmith)\n- Os\u002Fbump di (#2732) (@oscardssmith)\n- start upgrade to MTK@10 (#2734) (@oscardssmith)\n- fix OrdinaryDiffEqBDF tests (#2735) (@oscardssmith)\n- fix downstream runners (#2737) (@oscardssmith)\n- bump core version (#2739) (@oscardssmith)\n- add DefaultImplicitODEAlgorithm and tests (#2741) (@oscardssmith)\n- Mooncake Direct Adjoints for Explicit Integrators (#2742) (@ChrisRackauckas)\n- Reset fsal when necessary for first tstep (#2743) (@oscardssmith)\n- Add AirSpeedVelocity.jl benchmarking (#2745) (@ChrisRackauckas)\n- Inactivate initdt for differentiation by enzyme (#2748) (@ChrisRackauckas)\n- fix stats of stabilized RK methods (#2753) (@ranocha)\n- bump OrdinaryDiffEqStabilizedRK (#2754) (@ranocha)\n- fix allocations in ROCK4 (#2755) (@ranocha)\n- test: fix MTK reinitialization tests, remove deprecation warnings (#2756) (@AayushSabharwal)\n\n**Closed issues:**\n- `OrdinaryDiffEqNonlinearSolve` - Type instability in relaxation (#2674)\n- FBDF not compatible with ForwardDiff (#2720)\n- Get Mooncake direct adjoints working (#2723)\n- `PreparationMismatchError` after bump of DifferentiationInterface.jl (#2738)\n- Modified SIR model turns unstable on simulation (very potentially a numerical error unavoidable due to the model (#2747)\n- Make InterpolationData an AbstractDiffEqArrayInterpolation (#2749)","2025-07-16T12:55:32",{"id":171,"version":172,"summary_zh":173,"released_at":174},280986,"v6.98.0","## OrdinaryDiffEq v6.98.0\n\n[Diff since v6.97.0](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.97.0...v6.98.0)\n\n\n**Merged pull requests:**\n- support ForwardDiff 1.0 (#2643) (@oscardssmith)\n- Disable enzyme tests on prereleases (#2714) (@ChrisRackauckas)\n- fix `sources` in Ci for 1.11 and up (#2715) (@oscardssmith)\n- continue fixing CI (#2716) (@oscardssmith)\n- fix even more ci? (#2717) (@oscardssmith)\n- fix NonlinearSolve tests (broken by #2573) (#2718) (@oscardssmith)\n- Update nystrom_convergence_tests.jl (#2721) (@ChrisRackauckas)\n- Don't check iszero Rational relax, instead make no-op (#2724) (@ChrisRackauckas)","2025-05-28T20:02:46",{"id":176,"version":177,"summary_zh":178,"released_at":179},280987,"v6.97.0","## OrdinaryDiffEq v6.97.0\n\n[Diff since v6.96.0](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.96.0...v6.97.0)\n\n\n**Merged pull requests:**\n- use [sources] (#2699) (@oscardssmith)\n- Regression test callback doubling (#2704) (@ChrisRackauckas)\n- Support SciMLOperators 0.4 in subpackages (#2705) (@devmotion)\n- Run CompatHelper also for subpackages (#2706) (@devmotion)\n- speed up RodasTableau constructors (#2712) (@oscardssmith)\n- Bump SciMLOperators (#2713) (@ChrisRackauckas)\n\n**Closed issues:**\n- Time dependence in a non-autonomous linear ODE problem does not appear to propagate correctly to the solver (#2661)\n- OrdinaryDiffEq.jl fails to precompile when DifferentiationInterface v0.7.0 is present in the environment (#2709)\n- Rodas4P() solver dominated by 2 allocations. Any way to get around this? (#2710)","2025-05-18T01:32:02",{"id":181,"version":182,"summary_zh":183,"released_at":184},280988,"v6.96.0","## OrdinaryDiffEq v6.96.0\n\n[Diff since v6.95.1](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.95.1...v6.96.0)\n\n\n**Merged pull requests:**\n- Add JET and Aqua Tests to Subpackages (#2665) (@jClugstor)\n- Don't double recurse init with default algorithm (#2695) (@ChrisRackauckas)\n- Update tests for MTK resorting (#2697) (@ChrisRackauckas)\n- Make get_differential_vars type stable (#2698) (@Ickaser)\n- CompatHelper: bump compat for SciMLOperators to 0.4, (keep existing compat) (#2702) (@github-actions[bot])\n\n**Closed issues:**\n- jittery output for nonhomogeneous ODE problem when interpolating the input (#2673)\n- Callback doesn't trigger if it occurs at initial time (#2689)\n- `Rodas` methods don't fail with `NoInit` when `u0` is inconsistent (#2700)","2025-05-09T14:34:46",{"id":186,"version":187,"summary_zh":188,"released_at":189},280989,"v6.95.1","## OrdinaryDiffEq v6.95.1\n\n[Diff since v6.95.0](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.95.0...v6.95.1)\n\n\n**Merged pull requests:**\n- Add test for AD with unitfulvalue abstol (#2686) (@ChrisRackauckas)\n- Test Union{MethodError, BoundsError} (#2687) (@hersle)\n\n**Closed issues:**\n- `no method matching Float64(::ForwardDiff.Dual{...})` when specifying only `reltol` (#2675)","2025-04-26T15:13:00",{"id":191,"version":192,"summary_zh":193,"released_at":194},280990,"v6.95.0","## OrdinaryDiffEq v6.95.0\n\n[Diff since v6.94.0](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.94.0...v6.95.0)\n\n\n**Merged pull requests:**\n- Fix some tests (#2683) (@ChrisRackauckas)\n- Fix Interface V tests (#2684) (@ChrisRackauckas)","2025-04-23T11:05:34",{"id":196,"version":197,"summary_zh":198,"released_at":199},280991,"v6.94.0","## OrdinaryDiffEq v6.94.0\n\n[Diff since v6.93.0](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.93.0...v6.94.0)\n\n\n**Merged pull requests:**\n- Use DifferentiationInterface for AD in Implicit Solvers (#2567) (@jClugstor)\n- Explicit Taylor solvers (#2620) (@tansongchen)\n- feat: allow solving NLLS in solve, rename SimpleIDSolve to IDSolve (#2640) (@vyudu)\n- fix interpolation type stability (#2641) (@oscardssmith)\n- bump OrdinaryDiffEqCore version (#2647) (@oscardssmith)\n- Add missing compat bounds preventing registration (#2650) (@jClugstor)\n- Fix typo, add test for 2656 (#2657) (@jClugstor)\n- fix: run `late_binding_update_u0_p` in `reinit!` (#2658) (@AayushSabharwal)\n- Fix sparsity pattern mismatch and test (#2662) (@jClugstor)\n- Fix undefined res and spzeros  (#2664) (@jClugstor)\n- test: improve test for `reinit!` calling `late_binding_update_u0_p` (#2667) (@AayushSabharwal)\n- Move enzyme tests to downstream (#2669) (@ChrisRackauckas)\n- CompatHelper: add new compat entry for Enzyme at version 0.13 for package downstream, (keep existing compat) (#2670) (@github-actions[bot])\n- Fix incorrect conditional in initdt (#2676) (@jClugstor)\n- remove deprecated indexing from test (#2677) (@oscardssmith)\n- SimpleImplicitDiscreteSolve (#2679) (@vyudu)\n- Test fixing (#2681) (@ChrisRackauckas)\n- AutoSparse Detection Fix for BDF etc. (#2682) (@jClugstor)\n\n**Closed issues:**\n- Improvement of stage predictors in SFSDIRK and CFNLIRK methods (#1117)\n- Dead species coming back alive (#1651)\n- Verbosity flag not correctly passed to linear solver (#1897)\n- Solution interpolation does not infer type (#2610)\n- `AbstractNonlinearTerminationMode` not defined when precompiling OrdinaryDiffEqSDIRK (#2639)\n- Strict in-place sparse Jacobians now cause errors when they don't anticipate the mass matrix (#2653)\n- Sparse jacobians no longer working? (#2654)\n- UndefVarError: `f` not defined in `OrdinaryDiffEqDifferentiation` (#2656)\n- Undefined names in OrdinaryDiffEqDifferentiation (#2659)","2025-04-22T21:51:54",{"id":201,"version":202,"summary_zh":203,"released_at":204},280992,"v6.93.0","## OrdinaryDiffEq v6.93.0\n\n[Diff since v6.92.0](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.92.0...v6.93.0)\n\n\n**Merged pull requests:**\n- Add FIRK interpolation and addsteps (#2589) (@Shreyas-Ekanathan)\n- compute initialization for ImplicitDiscreteProblem (#2624) (@vyudu)\n- feat: ImplicitDiscreteSolve (#2626) (@vyudu)\n- fix deprecated HSLDDRK64 constructor (#2627) (@ranocha)\n- fix stats.nf for KYKSSPRK42 (#2628) (@ranocha)\n- fix stats.nf for SHLDDRK methods (#2629) (@ranocha)\n- ImplicitDiscreteSolve: handle case where u is nothing (#2630) (@vyudu)\n- bump version of OrdinaryDiffEqSSPRK (#2631) (@ranocha)\n- Check for consistency between different `VectorOfArray` parent array types  (#2633) (@jlchan)\n- fix rosenbrock allocations (#2634) (@oscardssmith)\n- Remove last vestige of DiffEqOperators (#2636) (@ChrisRackauckas)\n- Test master (#2637) (@ChrisRackauckas)\n- Test whether all latest releases together means tests pass (#2638) (@ChrisRackauckas)\n\n**Closed issues:**\n- Solvers using `VectorOfArray` behave differently for different `parent` array types (#2625)","2025-03-23T18:30:07",{"id":206,"version":207,"summary_zh":208,"released_at":209},280993,"v6.92.0","## OrdinaryDiffEq v6.92.0\n\n[Diff since v6.91.0](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.91.0...v6.92.0)\n\n\n**Merged pull requests:**\n- cleanup `step!` and make it return whether the step was sucessful (#2587) (@oscardssmith)\n- Create unitfulvalue for compatibility with ForwardDiff removal (#2593) (@ChrisRackauckas)\n- fallback for non-isbits bottom eltype (#2595) (@ChrisRackauckas)\n- Make the name `OrdinaryDiffEqCore` available (#2596) (@efaulhaber)\n- test master (#2597) (@ChrisRackauckas)\n- Bump ABM subpackage version (#2598) (@mmesiti)\n- format (#2599) (@ChrisRackauckas)\n- Fix `cache` for `SplitFunction` (#2601) (@JoshuaLampert)\n- Use aliasing API for LinearSolve (#2603) (@jClugstor)\n- Continue fixing tests (#2605) (@ChrisRackauckas)\n- more test fixes (#2606) (@ChrisRackauckas)\n- Use `AbstractDiscreteProblem` instead of `DiscreteProblem` in `solve` (#2607) (@vyudu)\n- fix: rerun `initialize_dae!` in `reinit!` (#2608) (@AayushSabharwal)\n- Update CompatHelper (#2614) (@devmotion)\n- Test master (#2615) (@ChrisRackauckas)\n- Fix inconsistencies of type parameters of algorithms with AD settings (#2617) (@devmotion)\n\n**Closed issues:**\n- New tableaux for rodas4p, now rodas4p2 (#1329)\n- DAE mass-matrix form: how much of OrdinaryDiffEq do I need to depend on? (#2513)\n- Long Compile Times for StaticArrays Arguments to `solve` (#2535)\n- Update Compat with `LinearSolve.jl` (#2590)\n- OrdinaryDiffEqSymplecticRK v1.2.0 does not work with OrdinaryDiffEqCore v1.6.0 (#2600)\n- `AutoForwardDiff` (chunksize setting?) breaks type inference of `solve` (#2613)\n- Precompilation error for `OrdinaryDiffEq` after updating (#2618)\n- ERROR: The following 2 direct dependencies failed to precompile (#2619)","2025-03-05T14:47:56",{"id":211,"version":212,"summary_zh":213,"released_at":214},280994,"v6.91.0","## OrdinaryDiffEq v6.91.0\n\n[Diff since v6.90.1](https:\u002F\u002Fgithub.com\u002FSciML\u002FOrdinaryDiffEq.jl\u002Fcompare\u002Fv6.90.1...v6.91.0)\n\n\n**Merged pull requests:**\n- Fix imported threads (#2477) (@ChrisRackauckas)\n- Use Aliasing API  (#2503) (@jClugstor)\n- Switch to using ADTypes for AD choice (#2508) (@jClugstor)\n- refactor: use `SciMLBase.get_save_idxs_and_saved_subsystem` (#2516) (@AayushSabharwal)\n- feat: add late binding for tstops (#2520) (@AayushSabharwal)\n- refactor: generalize `_initialize_dae!` to use SciMLBase implementations (#2521) (@AayushSabharwal)\n- Pass on tolerances into the nested nonlinear solve of initialization (#2522) (@ChrisRackauckas)\n- Fix precision mixing in RodasTableau and better test precision mix (#2525) (@ChrisRackauckas)\n- Do not allow for accepting steps with internal newton with linsolve fail (#2527) (@ChrisRackauckas)\n- Update Project.toml to fix compat bound (#2529) (@BenChung)\n- Split the FIRK (Radau) generator to a separate package (#2534) (@ChrisRackauckas)\n- Bump codecov\u002Fcodecov-action from 4 to 5 (#2536) (@dependabot[bot])\n- Adapt KrylovSubspace Vtype to u (#2538) (@mcarmesin)\n- Speed up Radau (#2539) (@Shreyas-Ekanathan)\n- fix type stability for `DefaultCache` (#2540) (@oscardssmith)\n- fix: fix call to `get_initial_values` (#2541) (@AayushSabharwal)\n- Add tests for LinearExponential() on GPU (#2542) (@mcarmesin)\n- Simplify RadauTableau Generation redux (#2543) (@oscardssmith)\n- feat: allow using `SCCNonlinearProblem` for initialization (#2544) (@AayushSabharwal)\n- build: bump OrdinaryDiffEqCore compat in OrdinaryDiffEqNonlinearSolve (#2547) (@AayushSabharwal)\n- Small Radau Optimizations (#2548) (@Shreyas-Ekanathan)\n- don't use Rosenbrock23 with mass matrix (#2550) (@oscardssmith)\n- Update generic_rosenbrock.jl references (#2551) (@gstein3m)\n- Cache Radau Tableaus (#2552) (@Shreyas-Ekanathan)\n- Match NonlinearSolve Downstream CI (#2555) (@jClugstor)\n- Added threading to ABM algorithms using @.. (#2556) (@mmesiti)\n- Optimize `VerletLeapfrog` method (#2559) (@efaulhaber)\n- Refactor & Generalize: System for opting alg into linear interpolation (#2560) (@ChrisRackauckas)\n- Setup ADTypes release (#2563) (@ChrisRackauckas)\n- hotfix autodiff remaker (#2564) (@ChrisRackauckas)\n- Implement the drift-kick-drift form of the Leapfrog method (#2566) (@efaulhaber)\n- CompatHelper: bump compat for Zygote to 0.7 for package downstream, (keep existing compat) (#2568) (@github-actions[bot])\n- added AdaptiveRadau and RadauIIA9 to step_limiter_test.jl tests (#2570) (@cwittens)\n- Nonlinearsolve tests (#2573) (@lte678)\n- feat: support initialization of `DiscreteProblem` (#2575) (@AayushSabharwal)\n- build: bump `OrdinaryDiffEqCore` minor version (#2576) (@AayushSabharwal)\n- Fix hang in BuildKite CI (#2577) (@lte678)\n- remove extra type parameters (#2580) (@prbzrg)\n- Hotfix for ADTypes change (#2582) (@ChrisRackauckas)\n- Parallelize Radau (#2584) (@Shreyas-Ekanathan)\n- CompatHelper: bump compat for LinearSolve to 3, (keep existing compat) (#2588) (@github-actions[bot])\n\n**Closed issues:**\n- 17th order Radau (#615)\n- MethodError: no method matching RodasTableau... (#2524)\n- Precompilation issue when DataInterpolations held back (#2526)\n- Type instability interpolating solution from out of place prob with default solver (#2530)\n- `OrdinaryDiffEqFIRK` overwrites `stepsize_controller!` in `OrdinaryDiffEqCore` (#2532)\n- get_fsalfirstlast method error (#2533)\n- DelayDiffEq Integration Tests are not using dev version of OrdinaryDiffEqCore, etc. (#2553)\n- `Rodas5P` Goes unstable with an increase in `abstol` (#2561)\n- Gitlab CI does not include unit tests for OrdinaryDiffEqNonlinearSolve  (#2572)\n- TypeError: non-boolean (Num) used in boolean context (#2578)\n- `ADTypes@1.12.1` broke the precompilation (#2579)\n- Add stricter compat bounds? (#2581)\n- missing method for _get_fdtype (#2583)","2025-02-06T14:10:19"]