IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Opened 21 years ago

Closed 21 years ago

Last modified 20 years ago

#383 closed defect (fixed)

psMinimizeLMChi2 rework

Reported by: eugene Owned by: gusciora@…
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)

psMinimize.c (75.1 KB ) - added by eugene 21 years ago.
psMinimize with my version of psMinimizeLMChi2
psMinimize.h (4.8 KB ) - added by eugene 21 years ago.
psMinimize.h to match previous psMinimize.c
psMinimize.2.h (4.8 KB ) - added by eugene 21 years ago.
header file for psMinimize.c above

Download all attachments as: .zip

Change History (10)

by eugene, 21 years ago

Attachment: psMinimize.c added

psMinimize with my version of psMinimizeLMChi2

by eugene, 21 years ago

Attachment: psMinimize.h added

psMinimize.h to match previous psMinimize.c

comment:1 by eugene, 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!)

by eugene, 21 years ago

Attachment: psMinimize.2.h added

header file for psMinimize.c above

comment:2 by robert.desonia@…, 21 years ago

Owner: changed from robert.desonia@… to george.gusciora@…

comment:3 by robert.desonia@…, 21 years ago

Status: newassigned

comment:4 by Eric.VanAlst@…, 21 years ago

Owner: changed from george.gusciora@… to gusciora@…
Status: assignednew

comment:5 by eugene, 21 years ago

Resolution: fixed
Status: newclosed

these changes were added to cycle 6. another set of updates were sent as bug 480

comment:6 by Paul Price, 20 years ago

Keywords: VERIFIED added

Bug has been resolved.... closing.

comment:7 by Paul Price, 20 years ago

Keywords: VERIFIED removed

Bugs have been fixed... closing.

Note: See TracTickets for help on using tickets.