Autor Tema: Resolver ecuaciones de primer grado  (Leído 1915 veces)

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Resolver ecuaciones de primer grado
« en: 21 de Marzo de 2011, 04:59:18 am »
Hola, bueno, me apena tener que preguntar esto, pero no he encontrado instrucciones o ejemplos en ningún lado. Lo que quiero hacer es resolver ecuaciones de primer grado en php, o en términos más fáciles, "encontrar el valor de x".

Por ejemplo tengo la siguiente ecuación:

Citar
3x-1 = 9+x

La verdad es una ecuación bastante fácil, solo que; ¿alguien me podría instruir en cómo realizarla en PHP?
Saludos ^^
- Moderador de PHP


Comunidad PHPeros

Resolver ecuaciones de primer grado
« en: 21 de Marzo de 2011, 04:59:18 am »

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:Resolver ecuaciones de primer grado
« Respuesta #1 en: 21 de Marzo de 2011, 05:16:11 am »
De la manera como lo planteas, creo que va a costar y mucho pues habría que armarse todo un algoritmo para que la aplicación reconozca qué es cada valor y qué hacer con él.

A mí lo único que se me ocurre es conseguir los puntos Y para formar la recta en el plano cartesiano dada la pendiente y el valor de x cuando y = 0 siguiendo la ecuación y = m * x + b y tomando un rango adecuado con respecto a X, algo como desde -5 a 5 por poner un ejemplo.

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:Resolver ecuaciones de primer grado
« Respuesta #2 en: 21 de Marzo de 2011, 06:12:50 am »
Por ahora lo que se me ocurre es ir sacando cada término, por ejemplo que al sacarlos todos, el array quede así:

$terminos[0] = '3x';
$terminos[1] = '-1';
$terminos[2] = '9';
$terminos[3] = 'x';


O también hacer un array multidimensional en donde en cada término se especifique el valor de este, y en que lado de la ecuación está (a la izquierda del signo igual o a la derecha del signo igual), para cuando se haga el cambio de lagos también cambiar cada término de signo, entonces quedaría más o menos algo así:

$terminos[0] = array('3x','izquierda');
$terminos[1] = array('-1','izquierda');
$terminos[2] = array('9','derecha');
$terminos[3] = array('x','derecha');


Pero no se me ocurre cómo hacerlo, ¿alguna sugerencia?
« Última modificación: 21 de Marzo de 2011, 06:15:06 am por Warlox »
- Moderador de PHP


Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:Resolver ecuaciones de primer grado
« Respuesta #3 en: 21 de Marzo de 2011, 10:57:26 am »
Me gustó un poco tu idea, para ayudarte un poco más, que el arreglo en realidad sea de la siguiente forma:

COEFICIENTE - VARIABLE - POSICION
Algo como:

$termino[0] = array(3, 'x', 0);

Que la posición sea 0 para izquierda, 1 para derecha. Y si no tiene variable, lo dejas vacío.

Cuando vuelva de la universidad me lo voy a plantear mejor y comento. Saludos.

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:Resolver ecuaciones de primer grado
« Respuesta #4 en: 21 de Marzo de 2011, 17:27:27 pm »
Exacto, muy bien lo de la variable porque así te es más fácil hacer el cambio de lados, para poner en un lado las variables y en el otro poner los números sin variables.
- Moderador de PHP


Desconectado HostingUnEuro

  • PHPerit@
  • *
  • Mensajes: 31
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:Resolver ecuaciones de primer grado
« Respuesta #5 en: 21 de Marzo de 2011, 21:16:46 pm »

A mi se me ocurre algo que quizá sea mas largo y un poco mas sucio pero bueno, para dar ideas. Lo que yo planteo es contar todos los caracteres de una cadena, recorrer uno por uno mediante un foreach() todos los elementos y comprobar que si ese elemento es una X, mirar un elemento atras y ver si al ser un numero o un signo, hacer una acción responsable.

No se si me he dado a entender, un saludo.

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:Resolver ecuaciones de primer grado
« Respuesta #6 en: 21 de Marzo de 2011, 21:42:28 pm »
A mi se me ocurre algo que quizá sea mas largo y un poco mas sucio pero bueno, para dar ideas. Lo que yo planteo es contar todos los caracteres de una cadena, recorrer uno por uno mediante un foreach() todos los elementos y comprobar que si ese elemento es una X, mirar un elemento atras y ver si al ser un numero o un signo, hacer una acción responsable.

No se si me he dado a entender, un saludo.
Más sencillo aún, separamos los factores con un espacio.

3x +4 = 8 -4x

Desconectado HostingUnEuro

  • PHPerit@
  • *
  • Mensajes: 31
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:Resolver ecuaciones de primer grado
« Respuesta #7 en: 21 de Marzo de 2011, 22:50:20 pm »

Más sencillo aún, separamos los factores con un espacio.

3x +4 = 8 -4x

Si, sería otro método. Lo malo de esto es que si se plantea la ecuación: 3x +4 = 8 -(-4x) habría que hacer algo mas para verificar si hay doble positvo o doble negativo.