Register to reply

Levenberg marquardt C coding algorithm

by a.mlw.walker
Tags: algorithm, coding, levenberg, marquardt
Share this thread:
a.mlw.walker
#1
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.
Thanks
Attached Files
File Type: zip myalgorithm.zip (22.6 KB, 1 views)
Phys.Org News Partner Science news on Phys.org
Climate change increases risk of crop slowdown in next 20 years
Researcher part of team studying ways to better predict intensity of hurricanes
New molecule puts scientists a step closer to understanding hydrogen storage

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