Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Despeje de variable en expresión matemática (https://www.clubdelphi.com/foros/showthread.php?t=11393)

rsotolongo 12-06-2004 13:45:51

Despeje de variable en expresión matemática
 
Alguno de ustedes sabe dónde puedo encontrar un componente que dado
una expresión matemática y una variable de la misma a ser despejada
me devuelva la nueva expresión. Por ejemplo:

Velocidad = Distancia / tiempo (V = S / t)

quiero despejar la distancia, el componente debería devolverme

Distancia = Velocidad * tiempo (S = V * t)

Pueden sugerirme también un algoritmo para hacerlo

Saludos...

marcoszorrilla 12-06-2004 14:18:38

En un principio y suponiendo que solamente desees tres expresiones diferentes, construyes las 3 expresiones y las guardas por ejemplo en una matriz de 3 posiciones.

Le preguntamos al usuario que desea despejar y con un simple entero que representaría la opción elegida iríamos a la matriz a extraer la fórmula resultante:

nEleccion:=LoqueElija;

Edti1.Text:=MiArray[nEleccion];


Un Saludo.

Sirkius 12-06-2004 16:15:10

Supongo que sabrás que no todas las funciones pueden ser despejadas, ecuaciones sencillas como la tuya si, pero una cualquiera seguramente no.

rsotolongo 12-06-2004 21:33:05

Despejar variable en expresiones matemática
 
Disculpen si no me supe expresar bien pero la expresión no siempre va a tener tres variables sino cualquier cantidad.

Otra cosa, no entiendo cuando dices que en todas las expresiones se pueden despejar variables, pon algun ejemplo para comprender mejor

Sirkius 13-06-2004 08:02:47

Umhhh... pues por ejemplo cuando tengas polinomios tal que así:

xy^3+2y^2+y+x=0

o un sin fin de posibilidades. De hecho esto que quieres hacer nunca lo he visto: en programas matemáticas lo que se hace es ir dando valores x e y en la ecuacion implicita para poder representarla.

Lo dicho o restringes el tipo de funciones a unas facilitas, o es imposible...

Sirkius 13-06-2004 08:20:28

Por cierto, existe una fórmula (de una cara) para despejar polinomios de orden 3, y también hay una para polinomios de orden 4 (de dos hojas), pero a partir de orden 5 es IMPOSIBLE. Además de que hubieses tenido que poner las formulas para estos casos particulares y se te hubiese ido al traste si metes un termino sen(y) o cos (y) por ejemplo.

rsotolongo 13-06-2004 22:30:54

OK, digamos entonces que solo serán fórmulas que contengan solamente operadores básicos como / * + - pero eso sí, con cualquier cantidad de operandos

(x + 1) / (y + 3) = w - 2 * z

despejando x tenemos que:

x = (w - 2 * z) * (y + 3) - 1

o parecidas OK???

Sirkius 14-06-2004 11:37:24

El problema es que a base de * puedes llegar de:

y*y*y*y*y*y*y = y^6

O sea, polinomios mayores de orden 4 sin posibilidad de despeje. Quitando el problema matematico de no poder poner de forma explicita cualquier funcion, has pensando en lo complicadisimo que puede ser un algoritmo que haga eso??


La franja horaria es GMT +2. Ahora son las 05:05:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi