Local max/min of Mathematica data sets.

  • Mathematica
  • Thread starter wil3
  • Start date
  • #1
179
1

Main Question or Discussion Point

Is there a way in Mathematica to find the local maxima of a set of points? I have a fairly fine data set, and I can clearly see several peaks in it that I would like to know the numerical value of (as in, the highest point- I don't need a spline approximation or anything too fancy like that). I have already smoothed the set, so I'd rather not fit polynomials if possible.

Additionally, is there a way to find the expected zeros of a set? Let's say that I have two points in order, and somewhere between them the measured response value drops to negative. I know I can find this manually, but there are enough zeroes that I would prefer not to. I am not too picky regarding whether the guessed zero is based on a linear connection between the two points or some sort of exotic polynomial or spline.

Thanks very much.
 

Answers and Replies

  • #2
1,069
29
Suppose you have
points={{xa,ya},{xb,yb},{xc,yc}...}

peakQ[{{x1_,y1_},{x2_,y2_},{x3_,y3_}}]:=Abs[y1]<Abs[y2]&&Abs[y2]>Abs[y3];
peaks=Map[#[[2]]&,Select[Partition[points,3,1],peakQ[#]&]]

Then

crossQ[{{x1_,y1_},{x2_,y2_}}]:=Sign[y1]!=Sign[y2];
zero[{{x1_,y1_},{x2_,y2_}}]:=x1+(x2-x1)*Abs[y1]/Abs[y2+y1];
zeros=Map[zero[#]&,Select[Partition[points,2,1],crossQ[#]&]]

Test these carefully on sample data to make certain I haven't made any mistakes.

Then study how and why these work so that you can use these methods yourself in the future.
 
  • #3
179
1
Sorry about the delay in replying. That worked perfectly, like your suggestions always do. Thanks very much for your help.
 

Related Threads on Local max/min of Mathematica data sets.

Replies
5
Views
9K
Replies
2
Views
3K
Replies
14
Views
9K
Replies
1
Views
7K
Replies
6
Views
12K
Replies
12
Views
24K
Replies
5
Views
5K
Replies
4
Views
3K
Replies
2
Views
2K
Replies
8
Views
6K
Top