Re:Regularized Newton Method with Global $O(1/k^2)$ Convergence
by jpfr on Tuesday December 07, 2021 @04:47PM
(#29478618)
After following the course, you should be able to grok the solver code in /src/system.cpp. That looks fairly standard.
The interesting part (to me, as that is not my specialty) lies in the translation of the 3D constraints (including rotation, etc.) into a single objective function for solving Newton-style.
Re:Regularized Newton Method with Global $O(1/k^2)$ Convergence
by phkahler on Wednesday December 08, 2021 @10:31AM
(#29485931)
>> The interesting part (to me, as that is not my specialty) lies in the translation of the 3D constraints (including rotation, etc.) into a single objective function for solving Newton-style.
That's funny - I like the geometry stuff and have a good grasp of how to create useful constraint equations. I just don't know too much about the code for solving systems of those equations ;-)
Re:Regularized Newton Method with Global $O(1/k^2)$ Convergence
by gugagore on Wednesday December 08, 2021 @01:08PM
(#29488202)
There are probably many ways to formulate the same geometric constraint. For example, what parameterization of rotations do you use? I think the choice has implications for how easy it is to solve the equations.
Re:Regularized Newton Method with Global $O(1/k^2)$ Convergence
by phkahler on Thursday December 09, 2021 @09:37AM
(#29497772)
>> For example, what parameterization of rotations do you use?
For orientation we use quaternions. For other things it's an axis-angle representation. For the equal angle constraint I'm not sure how that's implemented. There was a recent addition of length-ratio between lines and arcs. That implementation was surprising to me.
But as a maintainer of solvespace (Open Source CAD software with geometric/algebraic constraint system) I am left wondering if this can be applied to our constraint solver, which I didn't write. It solves systems of algebraic constraints using some form of Newtons method, partial derivatives, jacobian... All stuff I'm familiar with, but not in great detail. Figuring out how best (and weather) to apply this might be a major digression ;-)