Foros del Web » Programando para Internet » Javascript »

Calculo de minimos

Estas en el tema de Calculo de minimos en el foro de Javascript en Foros del Web. Hola! estoy haciendo un proyecto en el que tengo una base de datos, en el que voy introudciendo los datos obtenidos de las observaciones, estos ...
  #1 (permalink)  
Antiguo 23/02/2007, 04:10
 
Fecha de Ingreso: febrero-2007
Mensajes: 62
Antigüedad: 17 años, 2 meses
Puntos: 1
Calculo de minimos

Hola! estoy haciendo un proyecto en el que tengo una base de datos, en el que voy introudciendo los datos obtenidos de las observaciones, estos datos los tengo que representar graficamente, y obtener todos los mínimo que aparecen en la gráfica para luego calcular la distancia entre los mínimos que hay, sabría alguien como podria calcularlo?? un saludo y muchas gracias
  #2 (permalink)  
Antiguo 23/02/2007, 06:28
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Re: Calculo de minimos

Igual te sirve este ejemplo:

<script>
a=[3,2,6,4,-67,3,32,1];
minimo=a[0];
for(aa=1;aa<a.length;aa++){
minimo=Math.min(minimo,a[aa]);
}
alert("El mínimo es "+minimo);
</script>
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 23/02/2007, 17:12
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: Calculo de minimos

otro ejemplo seria el siguiente:

var minimo;
var a=[3,2,6,4,-67,3,32,1];
a.sort();
minimo = a[0];

sort --> ordena

Saludos.
  #4 (permalink)  
Antiguo 23/02/2007, 19:31
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Calculo de minimos

O incluso así:
Código PHP:
var arr=[3,2,6,4,-67,3,32,1];
var 
minimo = eval( "Math.min("+arr.join(",")+")" ); 
La veo la manera más rapida a la hora de ejecutarla en masa (pero menos legible) :S
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 26/02/2007, 02:40
 
Fecha de Ingreso: febrero-2007
Mensajes: 62
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: Calculo de minimos

Muchas gracia! pero necesito calcular todos los mínimos que hay en una gráfica de más de 3000 datos que tengo, no me vale el minimos, ya que tengo luego que calcular la distancia que hay entre cada mínimo para luego hacer la media de todas las distancia, y calcular el periodo.Muchas gracias
  #6 (permalink)  
Antiguo 26/02/2007, 02:45
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Re: Calculo de minimos

La gráfica se representa por una fórmula? o es por nubes de puntos?
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #7 (permalink)  
Antiguo 26/02/2007, 04:39
 
Fecha de Ingreso: febrero-2007
Mensajes: 62
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: Calculo de minimos

La gráfica se representa por puntos que tengo en la base de datos
  #8 (permalink)  
Antiguo 26/02/2007, 12:11
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Calculo de minimos

¿Con una funcion de mysql para extraer el minimo de una columna de registros?
Cita:
Iniciado por panyy80
necesito calcular todos los mínimos que hay en una gráfica
Lo que no entiendo es que sean varios mínimos. Entre un conjunto de números sólo hay un mínimo ¿no? ¿O es que son varios conjuntos de números? ¿Y por qué no te vale lo que te decimos?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #9 (permalink)  
Antiguo 27/02/2007, 05:06
 
Fecha de Ingreso: febrero-2007
Mensajes: 62
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: Calculo de minimos

son datos que se han obtenidos, y van haciendo ciclos, cada ciclo va de mínimo a mínimo, y calculando los mímimos que tengo tengo que sacar la media del perido de lo que dura cada ciclo, entonces tengo que saber todos los mínimos, la gráfica sale como estilo a la funcion seno pero sin tener parte negativa
  #10 (permalink)  
Antiguo 27/02/2007, 05:58
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Calculo de minimos

El problema se convierte ya en un problema matemático más que en un problema de javascript... A ver lo que se me ocurre:

Si la función no es parametrizable (es decir, no tiene forma de ecuación, son datos sin ningún sentido matemático) la cosa se vuelve complicada.



No tengo mucha idea de esto, pero a priori deberías analizar así, por ejemplo: Supongamos que tenemos miles de puntos representados en una gráfica (dices que sale tipo la del seno). Deberíamos crear rectas entre puntos correlativos (con cada pareja de puntos seguidos creamos una recta). Deberíamos saber si esa recta es creciente o decreciente (angulo de inclinación).

Entonces para todas las rectas existentes (en fin, angulos de inclinación de esas rectas) miramos a ver cuándo se pasa de inclinación negativa (decreciente) a inclinación positiva (creciente). En ese punto cambia la curvatura de la "función" y entonces tendríamos un mínimo local:



En esta imagen el crecimiento cambia en las rectas de magenta. En ese momento de cambio es cuando capturarías el punto que sería un mínimo local, osea un mínimo de los que buscas.



Parece mucho rollo pero es más facil de lo que parece porque al fin y al cabo es solo comparar angulos, que hallarás directamente con una función trigonométrica a partir de las coordenadas. Quiero decir, que aunque tengas 30000 elementos no irá tan despacio...


Dime qué te parece, supongo que habrá maneras de simplificarlo, pero no se me ha ocurrido.

Un saludo.

PD: No he contado si existen rectas horizontales, eso son pequeños detalles a utlimar..
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #11 (permalink)  
Antiguo 02/03/2007, 19:37
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Calculo de minimos

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>
<
TITLEM&#237;nimos locales </TITLE>
</HEAD>

<
BODY>


<
script language="javascript">

function 
pto(x,y) {
    
this.x=xthis.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].matriz[i1].x;
        if( 
incr_x == ) return false;
        var 
incr_y matriz[i2].matriz[i1].y;
        return 
incr_y/incr_x 0;
    }
    for(var 
i=0pend_anterior=undefinedi<ptos.length-1i++) {    //comparamos (i) con (i+1)
        
var pend_nueva pendiente_pos(matrizii+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.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #12 (permalink)  
Antiguo 08/03/2007, 08:08
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Calculo de minimos

bueno respondeme algo por lo menos no? que he escrito un codigo...
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:35.