Re: How to find the kinks in a list
- To: mathgroup at smc.vnet.net
- Subject: [mg104380] Re: How to find the kinks in a list
- From: ADL <alberto.dilullo at tiscali.it>
- Date: Thu, 29 Oct 2009 03:00:01 -0500 (EST)
- References: <hc91oo$e4g$1@smc.vnet.net>
This might work:
data = ImportString["... your data ...", "Table"];
{x, y} = Transpose[data];
(*finds the x corresponding to maximum y*)
maxPos[xli_?VectorQ, yli_?VectorQ] := xli[[Flatten[Position[yli, Max
[yli]]]]];
(*finds the x corresponding to minimum y*)
minPos[xli_?VectorQ, yli_?VectorQ] := xli[[Flatten[Position[yli, Min
[yli]]]]];
(*computes a balanced derivative*)
dd[x_] := ListCorrelate[Join[{-1}, Table[0, {1}], {1}]/2, x];
(*computes a 3-moving average*)
mm[x_] := MovingAverage[x, 3];
(*computes the second derivative*)
ddx = mm@mm@x;
ddy = dd@dd@y;
maxPos[ddx, ddy]
==> {1.51}
minPos[ddx, ddy]
==> {3.31}
ADL
On Oct 28, 10:09 am, Mather <sdzbb... at hotmail.com> wrote:
> Hi, all
>
> I want to get the two kinks in the following list, say, x=1.5 and 3.3
> by Mathematica.
> However I have no idea which command to employ.
> Can anyone help? Thanks in advance!
> ...