#383 closed defect (fixed)
psMinimizeLMChi2 rework
| Reported by: | eugene | Owned by: | |
|---|---|---|---|
| Priority: | high | Milestone: | |
| Component: | types | Version: | 0.5.0 |
| Severity: | normal | Keywords: | |
| Cc: |
Description
I did not understand the way psMinimizeLMChi2 was coded. I provide a new
version which implements the algorithm as I understand it. This has been tested
on 1D and 2D Gaussians and behaves quite well. I renamed the original version
to psMinimizeLMChi2, added some comments in that portion of the code (to
understand what it was doing), and then inserted my new version. It also uses
two private functions:
p_psMinLM_GuessABP
p_psMinLM_SetABX
I also wrote out a version of GaussJordan matrix inversion (psGaussJordan) to
work past some bug testing (I though the error might have come from the matrix
inversion calls, but that was not the case). We may find it advantageous to
provide GaussJordan as well as LUD, since the GaussJordan process provides the
inverted matrix as well as the linear solution. I tested both versions of the
minimize code, and both worked well. I did not do timing tests; that might
distinguish one or the other.
Note that the psMinimizeLMChi2 I implemented uses the psMiniminizeLMChi2Func
prototype as specified in the SDRS, ie, a function which returns a single psF64
rather than a vector. This has implications for pmObject functions as well.
Attachments (3)
Change History (10)
by , 21 years ago
| Attachment: | psMinimize.c added |
|---|
comment:1 by , 21 years ago
also note that I added an initial value for lastDelta to psMinimizationAlloc
based on the given value of tol (tol + 1)
also note that some of the commented out code in the old psMinimizeLMChi2
probably breaks that code (eg currValueVec = func () is commented out!)
comment:2 by , 21 years ago
| Owner: | changed from to |
|---|
comment:3 by , 21 years ago
| Status: | new → assigned |
|---|
comment:4 by , 21 years ago
| Owner: | changed from to |
|---|---|
| Status: | assigned → new |
comment:5 by , 21 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
these changes were added to cycle 6. another set of updates were sent as bug 480

psMinimize with my version of psMinimizeLMChi2