Add multivariate root finding (Newton and Cuyt's Halley)
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 12/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- C++
- Estrellas
- 378
- Forks
- 271
- Merge medio
- 12 h 37 min
- PR fusionados (30 d)
- 66
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de boostorg/math
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 12/100
Los mantenedores suelen responder en 1 día
-
Reverse-mode autodiff: order-2 tape slows order-1 gradients, rewound tapes keep allocating blocks, rvar copies silently share a nodePosiblemente ocupada @NAThompson la tomó hace 2 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
Los mantenedores suelen responder en 1 día
-
Feature WishlistAbiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
boostorg/math#303 · 20 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de boostorg/math
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
-
error not reported I/O low priority rt_lib
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Los mantenedores suelen responder en 1 día
-
[XLA] hlo/pass/README.md says passes implement Run; since the NVI change they implement RunImplAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
NVIDIA-RTX/NRI#312 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Los mantenedores suelen responder en 9 días