Bueno, espero que no hayas perdido el hilo panyy80, he hecho un script básico para sacar los mínimos locales (que creo que es lo que necesitas) de un conjunto de puntos encerrados en una matriz.
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Mínimos locales </TITLE>
</HEAD>
<BODY>
<script language="javascript">
function pto(x,y) {
this.x=x; this.y=y;
}
var ptos=new Array();
ptos[0]=new pto(0,100);
ptos[1]=new pto(11,50); // 0 y 1 -> pendiente negativa
ptos[2]=new pto(20,20); // 1 y 2 -> pendiente negativa --> MINIMO
ptos[3]=new pto(35,30); // 2 y 3 -> pendiente Positiva
ptos[4]=new pto(41,200); // 3 y 4 -> pendiente Positiva
ptos[5]=new pto(50,100); // 4 y 5 -> pendiente negativa --> MINIMO
ptos[6]=new pto(54,150); // 5 y 6 -> pendiente Positiva
ptos[7]=new pto(62,100); // 6 y 7 -> pendiente negativa
ptos[8]=new pto(70,10); // 7 y 8 -> pendiente negativa --> MINIMO
ptos[9]=new pto(72,12); // 8 y 9 -> pendiente Positiva
function minimos_locales(matriz) {
var minimos=new Array(); //la matriz que contendrá los índices de los puntos que son mínimos locales en matriz
//calcula la pendiente entre dos ptos (índices de matriz) siendo i1.x<i2.x y devuelve true si es positiva (creciente) y false si es negativa (decreciente) o cero (horizontal)
function pendiente_pos(matriz,i1,i2) {
var incr_x = matriz[i2].x - matriz[i1].x;
if( incr_x == 0 ) return false;
var incr_y = matriz[i2].y - matriz[i1].y;
return incr_y/incr_x > 0;
}
for(var i=0, pend_anterior=undefined; i<ptos.length-1; i++) { //comparamos (i) con (i+1)
var pend_nueva = pendiente_pos(matriz, i, i+1);
if( pend_anterior!=undefined ) //si teniamos almacenada una pendiente anterior
if( (pend_anterior==false) && (pend_nueva==true) ) //pendientes pasan de negativas a positivas --> MINIMO
minimos[minimos.length]=i;
pend_anterior=pend_nueva;
}
return minimos;
}
for( i in ptos )
document.write( "pto["+i+"] = ("+ptos[i].x+", "+ptos[i].y+") <br/>");
document.write( "Mínimos locales: "+ minimos_locales(ptos).join(", ") );
</script>
</BODY>
</HTML>
Espero que te sirva y veas ahí la idea.
Hacer después la distancia entre mínimos no debería ser complicado.
Un saludo y espero tu respuesta.