Resonance curve fitting with Mathematica

  • Mathematica
  • Thread starter greedo
  • Start date
  • #1
5
0

Main Question or Discussion Point

I have to fit a resonance curve to my data points, where the equation for the curve and the data points are:

Code:
model = a/Sqrt[4 k w^2 + (v^2 - w^2)^2]

data = {{242, 7/10}, {244.3`, 1}, {245.33`, 3/2}, {245.54`, 
   2}, {248.63`, 4}, {249.6`, 5}, {250.48`, 34/5}, {250.91`, 
   8}, {251.18`, 9}, {251.35`, 10}, {252.76`, 20}, {253.25`, 
   40}, {253.5`, 55}, {253.6`, 70}, {253.7`, 75}, {253.9`, 
   77}, {254.16`, 66}, {254.5`, 47}, {254.86`, 33}, {255.82`, 
   15}, {257, 5}};
I need to find the parameters that give the best fit for the data. This is the command I think is the closest to the solution:
Code:
fit = FindFit[
  data, {model, {0 <= k}}, {{a, 30}, {k, 0.007}, {v, 253}}, w}
but i get the error:
Code:
FindFit::eit: The algorithm does not converge to the tolerance of 4.806217383937354`*^-6 in 500 iterations. The best estimated solution, with feasibility residual, KKT residual or complementary residual of {...} is returned
I have tried playing with starting values, conditionals, NonlinearModelFit and others but none of them work. Could someone please help?
 

Answers and Replies

  • #2
28,915
5,181
I have to fit a resonance curve to my data points, where the equation for the curve and the data points are:

Code:
model = a/Sqrt[4 k w^2 + (v^2 - w^2)^2]

data = {{242, 7/10}, {244.3`, 1}, {245.33`, 3/2}, {245.54`, 
   2}, {248.63`, 4}, {249.6`, 5}, {250.48`, 34/5}, {250.91`, 
   8}, {251.18`, 9}, {251.35`, 10}, {252.76`, 20}, {253.25`, 
   40}, {253.5`, 55}, {253.6`, 70}, {253.7`, 75}, {253.9`, 
   77}, {254.16`, 66}, {254.5`, 47}, {254.86`, 33}, {255.82`, 
   15}, {257, 5}};
I need to find the parameters that give the best fit for the data. This is the command I think is the closest to the solution:
Code:
fit = FindFit[
  data, {model, {0 <= k}}, {{a, 30}, {k, 0.007}, {v, 253}}, w}
but i get the error:
Code:
FindFit::eit: The algorithm does not converge to the tolerance of 4.806217383937354`*^-6 in 500 iterations. The best estimated solution, with feasibility residual, KKT residual or complementary residual of {...} is returned
I have tried playing with starting values, conditionals, NonlinearModelFit and others but none of them work. Could someone please help?
That error just means that your initial guess is too far off. I got it to work without error for an initial guess of a=10000 and k=1 and v=253.
 
  • #3
611
2
hi, my suggestion is first you take the initial values for the fit from the experimental data. It is easy just plot and see...and take the initial value and include it in fit routine. origin software can do this job ..or you can use gnuplot..but in gnuplot you get only the fitted curve instead of the individual components..anyways you get the accurate output.
good luck..
 

Related Threads for: Resonance curve fitting with Mathematica

Replies
1
Views
2K
Replies
5
Views
2K
Replies
2
Views
4K
  • Last Post
Replies
5
Views
3K
Replies
4
Views
3K
  • Last Post
Replies
1
Views
6K
  • Last Post
Replies
3
Views
685
Top