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分
- マージ済み PR(30日)
- 66
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
boostorg/math のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 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 1週間以上 初心者へのやさしさ 20/100
boostorg/math#303 · コメント 20 件 ·
メンテナーはふだん 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 日以内に返信