8
$\begingroup$

I have a list of coordinates that make a near-parabolic graph, which I managed to fit and calculate the curvature. However, the curvature only outputs a equation. Is there any way to calculate the radius of the curvature so it gives a numeric value? Any help is appreciated.

My code is as follows:

list = {{54.5, 120.5}, {65.25, 143.15}, {65.61, 143.02}, {76.18, 
    157.28}, {89.89, 176.76}, {98.08, 184.87}, {98.33, 
    184.44}, {118.5, 197.5}, {140.77, 205.74}, {150.96, 
    207.06}, {163.11, 206.07}, {169.09, 204.77}, {177.07, 
    202.8}, {181.14, 201.13}, {182.41, 200.47}, {194.65, 
    192.49}, {201.47, 188.95}, {209.02, 182.56}, {209.21, 
    182.86}, {222.11, 172.77}, {230.93, 161.53}, {230.96, 
    161.51}, {245.51, 141.75}, {257.03, 124.18}, {257.23, 
    124.53}, {261.71, 114.96}, {261.72, 114.91}, {267.16, 
    104.41}, {267.29, 104.07}, {280.45, 72.62}, {280.63, 
    72.34}, {283.35, 63.57}, {286.5, 48.5}};

fit = NonlinearModelFit[list, a*(x + c)^2 + b, {a, b, c}, x];
curvature = Simplify[ArcCurvature[{t, fit[t]}, t]]

The fitted equation along with the list of coordinates graphed out:

Output

$\endgroup$
11
$\begingroup$

Curvature of a parabola depends on the position. To find curvature at the maximum point do

ArcCurvature[{t,fit[t]},t]/.Maximize[fit[t],t][[2]]
(*0.0170112*)
| improve this answer | |
$\endgroup$
  • $\begingroup$ Also find max curvature with Maximize[curvature, t] giving {0.00193965, {t -> 48.421}} and min curvature on the range xmin, xmax with {xmin, xmax} = MinMax[list[[All, 1]]]; Minimize[{curvature, xmin <= t <= xmax}, t] giving {0.00114411, {t -> 286.5}} $\endgroup$ – flinty Jun 19 at 14:03
  • $\begingroup$ @flinty Thank you, I also notice your answer on a related post. $\endgroup$ – yarchik Jun 19 at 14:17
  • $\begingroup$ Yes it's very similar. I forgot to constrain the Maximize too, it should be Maximize[{curvature, xmin <= t <= xmax}, t] giving {0.0170112, {t -> 154.442}} which is the same as your value. $\endgroup$ – flinty Jun 19 at 14:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.