Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

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

share|improve this question
3  
Take a look at Interpolation ... Minimize ... NMinimize ... FindMinimum –  belisarius Dec 2 '13 at 19:30
add comment

1 Answer

up vote 2 down vote accepted

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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