Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Debci en 31 Marzo 2010, 10:55 am



Título: Resolucion de sistemas de ecuaciones sencillos
Publicado por: Debci en 31 Marzo 2010, 10:55 am
Hola a todos, ya tengo mi procesador de expresiones algebraico-aritmeticas, resuelve expreiones facilmente, ahora quiero dar el paso y conseguir hacerlo con expresiones de dos miembros, osease, ecuaciones con 1 o mas incognitas.

Tengo por ejemplo esta expresion:

Citar
5*49/2*a == 15
La evaluo, proceso y me pide un valor para a se lo doy y si no cumple la expresión, devuelve 0 (false) si la cumple devuelve 1 (true).
Ahora estoy planteando una manera de aislar la incognita en uno de los miembros de la ecuacion, para resolverla, añadirla ala expresion inicial y comprovar que es correcta.
La pregunta es como?

He imaginado 3 maneras posibles:

La primera, es haciendo el bestia, y usando puerza bruta, aunmentando la variable de 0,001 en 0,001 e ir probando pero será muy inexacto y es probable que en muchas ocasiones no lo encuentre, eso sin contar con el uso de memoria que requeriria un bucle de ese nivel.

La segunda es identificando el grado de la ecuacion, aislar las incognitas y aplicar la formula correspondiente.

La tercera es haciendolo literalmente, osea moviendo caracteres por la cadena, y detectando el simbolo que lleva para luego dejar la incognita sola y evaluar la expresión. Esto eliminando posibilidades puede resultar muy tedioso de programar, y quizas, que estoy seguro que habrá metodos mas sencillos que estos.

Un saludo


Título: Re: Resolucion de sistemas de ecuaciones sencillos
Publicado por: h0oke en 31 Marzo 2010, 11:26 am
Lo más recomendable sería usar el concepto de sistema de ecuaciones. Podrías utilizar el método de gauss, hallando un cuadro de números y resolviendo tal... es sólo una idea.


Título: Re: Resolucion de sistemas de ecuaciones sencillos
Publicado por: Debci en 31 Marzo 2010, 11:37 am
Lo más recomendable sería usar el concepto de sistema de ecuaciones. Podrías utilizar el método de gauss, hallando un cuadro de números y resolviendo tal... es sólo una idea.
Ok investigare sobre el tema, pero para un sistema de ecuaciones no tiene que haber mas de una ?

Saludos


Título: Re: Resolucion de sistemas de ecuaciones sencillos
Publicado por: h0oke en 31 Marzo 2010, 11:58 am
En general un sistema de ecucaciones es un sistema con m ecuaciones y n incógnitas... Lo cuál te permitirá generalizar tu caso para varias ecucaciones.... Ahora bien, si trasladas tu sistema a una matriz, podrás ver que la forma de calcular la incógnita es la misma que calculando para varias ecuaciones con una sola "x". Deberás tener en cuenta si el sistema es homogéneo o no, para ver si tu sistema antes que nada posee o no solución. Una sugerencia: busca sobre el teorema de Roché Frobeniuss...

No sé si es la mejor opción computacional, pero la verdad que en cuanto a matemáticas es lo mejor que puedes hacer.


Título: Re: Resolucion de sistemas de ecuaciones sencillos
Publicado por: 1mpuls0 en 31 Marzo 2010, 22:04 pm
Es mejor usar los métodos numéricos  :xD, mira aquí te dejo un code a ver si te sirve o "algo"  :xD

Es para dar solucion a Sistemas de Ecuaciones Lineales por medio de los métodos de Gauss-Seidel y Jacobi, mira esta página para que entiendas un poco de que se trata

http://www.geronet.com.ar/?p=6

Aquí descarga el code

http://laquetegustaati.com.mx/D929/SSEL.zip

(http://laquetegustaati.com.mx/D929/ecuaciones.bmp)

Saludos


Título: Re: Resolucion de sistemas de ecuaciones sencillos
Publicado por: sapito169 en 1 Abril 2010, 02:42 am
-esplicate vien
-dame un ejemplo dime que es lo que va a recivir tu programa y que deve botar por resultado
-creo que quieres decir que si le pones una cadena como "2*x+3==5" deve devolver 1




Título: Re: Resolucion de sistemas de ecuaciones sencillos
Publicado por: Debci en 1 Abril 2010, 15:58 pm
-esplicate vien
-dame un ejemplo dime que es lo que va a recivir tu programa y que deve botar por resultado
-creo que quieres decir que si le pones una cadena como "2*x+3==5" deve devolver 1



asi es.

Saludos