This code implements a Gauss-Newton optimization of objective functions that can be iteratively approximated by quadratics. This approach is particularly appropriate for least-squares inversions of moderately non-linear transforms. You will also find code for conjugate-gradient and line-search optimizations.
Get documentation of the algorithm here: [ ../../papers/inv/inv.html ] [ ../../papers/inv.pdf ] [ ../../papers/inv.ps.gz ]
Several papers describe ways to use this code: [ ../../papers/regularization.pdf ] [ ../../papers/regularization/ ] [ ../../papers/neural.pdf ] [ ../../papers/neural/ ] [ ../../papers/rmsinv.pdf ] [ ../../papers/rmsinv/ ]
See an older C++ version [ ../conjugate_gradients/ ]
See the java documentation in the documentation subdirectory [ documentation/ ] .
The current version of this code is now a part of the Mines Java Toolkit at https://github.com/MinesJTK/jtk in the edu.mines.jtk.opt package, with code in https://github.com/MinesJTK/jtk/tree/master/core/src/main/java/edu/mines/jtk/opt and documentation in https://github.com/MinesJTK/jtk/tree/master/docs/opt_package
An older public version is available from http://code.google.com/p/optimal/
| File: | Bytes: | Modified: | 
|---|---|---|
| Almost.java | 14647 | 2020-08-02 10:56:05 | 
| AlmostTest.java | 6274 | 2020-08-02 10:55:19 | 
| ArrayMath.java | 461 | 2020-08-02 10:56:05 | 
| ArrayVect1.java | 5119 | 2020-08-02 10:56:05 | 
| ArrayVect1Test.java | 2250 | 2020-08-02 10:55:19 | 
| CleanFormatter.java | 5311 | 2020-08-02 10:56:05 | 
| CleanFormatterTest.java | 3069 | 2020-08-02 10:55:19 | 
| CleanHandler.java | 4677 | 2020-08-02 10:56:05 | 
| CleanHandler.properties | 31 | 2020-08-02 10:56:05 | 
| CoordinateTransform.java | 6865 | 2020-08-02 10:56:05 | 
| CoordinateTransformTest.java | 3261 | 2020-08-02 10:55:19 | 
| GaussNewtonSolver.java | 10831 | 2020-08-02 10:56:05 | 
| GaussNewtonSolverTest.java | 11508 | 2020-08-02 10:55:19 | 
| license.txt | 11922 | 2020-08-02 10:55:19 | 
| LinearTransform.java | 2359 | 2020-08-02 10:56:05 | 
| LinearTransformWrapper.java | 1968 | 2020-08-02 10:56:05 | 
| Localize_ch.properties | 88 | 2020-08-02 10:56:05 | 
| Localize_de.properties | 106 | 2020-08-02 10:56:05 | 
| Localize_es.properties | 102 | 2020-08-02 10:56:05 | 
| Localize.java | 12453 | 2020-08-02 10:56:06 | 
| Localize.properties | 102 | 2020-08-02 10:56:05 | 
| LocalizeTest.java | 3900 | 2020-08-02 10:55:19 | 
| LoggerStream.java | 3361 | 2020-08-02 10:56:05 | 
| LogMonitor_ch.properties | 120 | 2020-08-02 10:56:05 | 
| LogMonitor_de.properties | 126 | 2020-08-02 10:56:05 | 
| LogMonitor_es.properties | 118 | 2020-08-02 10:56:05 | 
| LogMonitor.java | 10214 | 2020-08-02 10:56:05 | 
| LogMonitor.properties | 124 | 2020-08-02 10:56:05 | 
| MathPlus.java | 382 | 2020-08-02 10:56:05 | 
| Monitor.java | 2039 | 2020-08-02 10:56:05 | 
| PartialMonitor.java | 2097 | 2020-08-02 10:56:05 | 
| Quadratic.java | 1731 | 2020-08-02 10:56:05 | 
| QuadraticSolver.java | 7624 | 2020-08-02 10:56:05 | 
| QuadraticSolverTest.java | 5198 | 2020-08-02 10:55:19 | 
| README | 1259 | 2020-08-02 10:55:19 | 
| ScalarSolver.java | 16422 | 2020-08-02 10:56:05 | 
| ScalarSolverTest.java | 7919 | 2020-08-02 10:55:19 | 
| src.tar.gz | 38693 | 2020-08-02 10:56:06 | 
| Transform.java | 3769 | 2020-08-02 10:56:05 | 
| TransformQuadratic.java | 9666 | 2020-08-02 10:56:05 | 
| VectConst.java | 1886 | 2020-08-02 10:56:05 | 
| Vect.java | 4017 | 2020-08-02 10:56:05 | 
| VectUtil.java | 9186 | 2020-08-02 10:56:05 |