5 votos

Por qué Mathematica (Reducir) no puede encontrar solución clara para casi trivial de las desigualdades?

Supongamos que queremos resolver la desigualdad $ax^2+bx+c<0$. Por simplicidad, suponga que la $a>0$$b^2-4ac>0$. En esta forma, es casi un problema trivial. A pesar de que, si queremos resolver con Mathematica (Reducir), la versión 8, el

Assuming[a > 0 && b^2 - 4*a*c > 0, Reduce[a*x^2 + b*x + c < 0, x, Reals]]

comando genera decenas de líneas (en lugar de simplemente ser -(b/(2 a)) - 1/2 Sqrt[(b^2 - 4 a c)/a^2] < x < -(b/(2 a)) + 1/2 Sqrt[(b^2 - 4 a c)/a^2], en el que esta solución está presente en algún lugar profundo, pero está lleno de

  • innecesario el caso de las separaciones (como si no podía interpretar el $b^2-4ac<0$ condición, y a pesar de que fue dado como hipótesis, se repite esto en la solución de formas equivalentes),
  • las condiciones imposibles (como $a\leq 0$ que debería haber sido descartado por la hipótesis),
  • ramas con claridad condiciones contradictorias (como x < -(b/(2 a)) - 1/2 Sqrt[(b^2 - 4 a c)/a^2] || x > -(b/(2 a)) - 1/2 Sqrt[(b^2 - 4 a c)/a^2] al principio).

El uso de

Reduce[{a > 0, b^2 - 4*a*c > 0, a*x^2 + b*x + c < 0}, x, Reals]

y sobre todo

FullSimplify[Reduce[{a > 0, b^2 - 4*a*c > 0, a*x^2 + b*x + c < 0}, x, Reals]]

alivia el problema un poco (que en sí es sorprendente, dado que de lo Assuming debe hacer... o al menos lo que yo pensaba que debería hacer...), pero todavía está lejos de lo que yo he esperado como resultado. (Sobre todo porque este último comando, aunque no produce el menor salida, ni siquiera dar una solución explícita para $x$.)

Gracias de antemano!

3voto

Ted Percival Puntos 3712

Hasta donde yo sé, Reduce no hace uso de los supuestos del sistema, sólo Refine, Simplify, FullSimplify y FunctionExpand hacer.

Así que usted puede poner manualmente los supuestos en Reduce, a continuación, eliminarlos desde el resultado con el de simplificar el mecanismo:

$Assumptions = a > 0 && b^2 - 4*a*c > 0;
Reduce[a*x^2 + b*x + c < 0 && $Assumptions, x] // FullSimplify

que los rendimientos de

output

Si se incluyen los $b\neq0$ en sus supuestos, luego de recibir el simple resultado que estás buscando:

$Assumptions = a > 0 && b^2 - 4*a*c > 0 && b != 0;
Reduce[a*x^2 + b*x + c < 0 && $Assumptions, x] // FullSimplify

(* Returns:
(-b - Sqrt[b^2 - 4 a c])/(2 a) < x < (-b + Sqrt[b^2 - 4 a c])/(2 a)
*)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X