Add multivariate root finding (Newton and Cuyt's Halley)
维护者通常 1 天内回复
评估
调研方向
Start from the scalar solvers in tools/roots.hpp (Newton, Halley, Schröder) to see the existing iteration and convergence conventions, then check autodiff.hpp for how forward-mode derivatives are exposed. Design the multivariate Newton step J(x)a = −F(x) and the Cuyt–Halley update first, since the globalization choice and the fallback near aᵢ + bᵢ/2 ≈ 0 are open questions. Done means a documented API with tests on known systems that converge to the expected roots and show cubic convergence for the Halley variant.
由索引模型根据 Issue 内容生成。
描述
tools/roots.hpp has Newton, Halley and Schröder for scalar equations, but there is no solver for a system F(x) = 0 with x in ℝⁿ.
Proposal:
- Multivariate Newton: solve J(x) a = −F(x), with a line search or trust region for globalization.
- Multivariate Halley via Cuyt's Padé approach (Cuyt & Van der Cruyssen 1983; Cuyt, ACM TOMS 1985): with a = −J⁻¹F and b = J⁻¹F″[a, a], update componentwise xᵢ ← xᵢ + aᵢ² / (aᵢ + bᵢ/2). It converges cubically, reuses one factorization of J for both solves, and needs only the directional second derivative F″[a, a], not the full tensor. Fall back to the Newton component where aᵢ + bᵢ/2 ≈ 0.
- Derivatives from a user-supplied Jacobian, or from autodiff (forward-mode
autodiff.hpphandles F″[a, a] directly).
Uses include equilibria, collocation, closest points on implicit curves and surfaces, and ray–surface intersection in rendering.
- 主要语言
- C++
- 星标
- 378
- 派生
- 271
- 平均合并
- 12 小时 37 分钟
- 30 天内合并 PR
- 66
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
boostorg/math 的其他 Issue
-
难度 5/5 一周以上 新手友好度 35/100
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 12/100
维护者通常 1 天内回复
-
Reverse-mode autodiff: order-2 tape slows order-1 gradients, rewound tapes keep allocating blocks, rvar copies silently share a node可能已有人在做 @NAThompson 于 1 天前认领。 未关闭
难度 4/5 3-5 天 新手友好度 20/100
维护者通常 1 天内回复
-
Feature Wishlist未关闭enhancement
难度 5/5 一周以上 新手友好度 20/100
维护者通常 1 天内回复
相似的 Issue
-
bug libcudf
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 2 天内回复
-
level/task module/cloud monitoring type/maintenance
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
LadybirdBrowser/ladybird#13809 ·
维护者通常 1 天内回复
-
bug module:nodes tests
难度 2/5 1-3 小时 新手友好度 78/100
rocketride-org/rocketride-server#3020 ·
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 9 天内回复