2
$\begingroup$

I have a set of lists called Er[l], where l is from 1 to 13. I want to find the minimum point in the plot in these lists after interpolation by spline method. I need the values and the points on the plot.

    Er[1]={{6., -0.052309}, {5.9, -0.0585607}, {5.8, -0.0655975}, {5.7, \
-0.0734887}, {5.6, -0.0822908}, {5.5, -0.0920279}, {5.4, -0.102672}, \
{5.3, -0.114093}, {5.2, -0.126007}, {5.1, -0.137885}, {5., \
-0.148821}, {4.9, -0.157357}, {4.8, -0.161233}, {4.7, -0.157053}, \
{4.6, -0.139813}, {4.5, -0.102251}, {4.4, -0.0339586}, {4.3, 
  0.0798611}, {4.2, 0.260101}, {4.1, 0.536103}, {4., 0.948895}, {3.9, 
  1.55563}, {3.8, 2.43571}, {3.7, 3.69923}, {3.6, 5.49906}, {3.5, 
  8.04835}, {3.4, 11.6474}, {3.3, 16.7263}, {3.2, 23.9162}, {3.1, 
  34.1743}, {3., 49.0186}, {2.9, 70.9924}, {2.8, 104.639}, {2.7, 
  158.686}}

this was an example of data inside the lists Er[radius,energy]

   ListLinePlot[{Er[1], Er[2], Er[3], Er[4], Er[5], Er[6], Er[7], Er[8], 
       Er[9], Er[10], Er[11], Er[12], Er[13]}, 
      PlotStyle -> {Black, Red, Blue, Green, Pink, Yellow, Brown, Orange, 
        Magenta, Gray, Cyan, Purple, Darker[Blue]}, 
      PlotRange -> {{3, 6}, prange}, 
      AxesLabel -> {"r (Å)", "E (kcal/mol)"}, InterpolationOrder -> 3, 
      Method -> "Spline"];

Thanks in advance

$\endgroup$
  • 3
    $\begingroup$ Take a look at Interpolation ... Minimize ... NMinimize ... FindMinimum $\endgroup$ – Dr. belisarius Dec 2 '13 at 19:30
3
$\begingroup$

For each list, you can use Minimize in conjunction with an InterpolatingFunction. I make the assumption that the minimum must occur in the same interval that the data is specified.

func[1] = Interpolation[Er[1], Method -> "Spline"]

min = Minimize[{func[1][x], func[1][[1, 1, 1]] <= x <= func[1][[1, 1, 2]]},x]

{-0.161251, {x -> 4.79331}}

To display on a plot:

ListLinePlot[Er[1], 
  Epilog -> {Red, PointSize[0.02], Point[{x /. min[[2]], min[[1]]}]}, 
  PlotRange -> All]

enter image description here

For the other 12 lists, you can wrap this in a Table function to feed in the other lists, and create those plots.

$\endgroup$

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.