levenberg marquardt C coding algorithm

by a.mlw.walker
Tags: algorithm, coding, levenberg, marquardt
a.mlw.walker is offline
Feb5-13, 01:49 PM
P: 153
HI guys. Haven't been here in a while...
I have an algorithm attached that uses the levenberg marquardt non linear curve fitting alogrithm to fit a surface.
My C coding skills are reasonable, however I am struggling to adjust the model so that I can fit my curve to it. I want to use this algorithm as its a nice standalone algorithm as opposed to some of these otherones that come as part of much larger packages.
I have a simple dataset:
double tx[5] = {1, 2, 3, 4, 5};
double tz[5] = {1.2, 2.693, 4.325, 6.131, 8.125};
that I am trying to fit to the following function:
 for (i = 0; i <sizeof(tz)-1; i++)
    invtrig = arcsinh(sinh(p[2])*exp(p[0]*(i+1)*2*3.145));
    Fitted_Curve[i] = (1/(p[0]*p[1]))*(p[2]-invtrig);
    x += pow((tz[i]-Fitted_Curve[i]), 2);
return x;
The original surface that the model was trying to fit was:
double f( double tx, double tz, const double *p )
    return p[0] + p[1]*tx + p[2]*tz;
Due to the simplicity of this algorithm I am struggling to see how to "convert" it all over so that it will successfully solve mine (which i have the solution to). I can get it to compile if I force it to, but it doesnt converge on the correct results at all - heads to #NAN#
I have attached the code, there is one file called myalgorithm.c which I have been working on to get mine to work, and then there is surface1.c which is the example. Obviously only bring one into a project at a time as they both have a main in.
Attached Files
File Type: zip myalgorithm.zip (22.6 KB, 1 views)
Phys.Org News Partner Science news on Phys.org
SensaBubble: It's a bubble, but not as we know it (w/ video)
The hemihelix: Scientists discover a new shape using rubber bands (w/ video)
Microbes provide insights into evolution of human language

Register to reply

Related Discussions
Levenberg-Marquardt Algorithm with Several Functions General Math 10
Levenberg Marquardt Algorithm General Math 0
Fit with least squares, Levenberg–Marquardt algorithm Calculus 2
[Data regression] Levenberg-Marquardt BUT force to intersect 2 KNWON points General Math 1
example of Levenberg-Marquardt-Method Calculus 1