Manual de Maxima 5.47.7.g39559bd: Paquete ineq

Siguiente: Paquete rducon, Previous: Paquete functs, Subir: simplification [Índice general][Índice]

### 72.5 Paquete ineq

El paquete `ineq` contiene reglas de simplificación para desigualdades

Una sesión de ejemplo:

    (%i1) load("ineq")$
    Warning: Putting rules on '+' or '*' is inefficient, and may not work.
    Warning: Putting rules on '+' or '*' is inefficient, and may not work.
    Warning: Putting rules on '+' or '*' is inefficient, and may not work.
    Warning: Putting rules on '+' or '*' is inefficient, and may not work.
    Warning: Putting rules on '+' or '*' is inefficient, and may not work.
    Warning: Putting rules on '+' or '*' is inefficient, and may not work.
    Warning: Putting rules on '+' or '*' is inefficient, and may not work.
    Warning: Putting rules on '+' or '*' is inefficient, and may not work.
    (%i2) a>=4;  /* a sample inequality */
    (%o2)                               a >= 4
    (%i3) (b>c)+%; /* add a second, strict inequality */
    (%o3)                            b + a > c + 4
    (%i4) 7*(x<y); /* multiply by a positive number */
    (%o4)                              7 x < 7 y
    (%i5) -2*(x>=3*z); /* multiply by a negative number */
    (%o5)                           - 2 x <= - 6 z
    (%i6) (1+a^2)*(1/(1+a^2)<=1); /* Maxima knows that 1+a^2 > 0 */
                                            2
    (%o6)                             1 <= a  + 1
    (%i7) assume(x>0)$ x*(2<3); /* assuming x>0 */
    (%o7)                              2 x < 3 x
    (%i8) a>=b; /* another inequality */
    (%o8)                               a >= b
    (%i9) 3+%; /* add something */
    (%o9)                           a + 3 >= b + 3
    (%i10) %-3; /* subtract it out */
    (%o10)                              a >= b
    (%i11) a>=c-b; /* yet another inequality */
    (%o11)                            a >= c - b
    (%i12) b+%; /* add b to both sides */
    (%o12)                            b + a >= c
    (%i13) %-c; /* subtract c from both sides */
    (%o13)                         - c + b + a >= 0
    (%i14) -%;  /* multiply by -1 */
    (%o14)                          c - b - a <= 0
    (%i15) (z-1)^2>-2*z; /* determining truth of assertion */
                                          2
    (%o15)                         (z - 1)  > - 2 z
    (%i16) expand(%)+2*z; /* expand this and add 2*z to both sides */
                                       2
    (%o16)                            z  + 1 > 0
    (%i17) %,pred;
    (%o17)                               true

Debe tenerse cuidado con el uso de paréntesis que incluyan desigualdades; si se escribe `(A > B) + (C = 5)` el resultado es `A + C > B + 5`, pero `A > B + C = 5` es un error sintáctico y `(A > B + C) = 5` es una cosa completamente diferente.

Ejecútese `disprule (all)` para ver la lista completa de las reglas definidas.

Maxima preguntará al usuario cuando desconozca el signo de una cantidad que multiplica a una desigualdad.

Los fallos más comunes son:

    eq: a > b;
    2*eq;
    % - eq;

Otro problema es el producto de una desigualdad por cero. Si se escribe `x*some_inequality` y Maxima pregunta por el signo de `x` y se responde que vale `zero` (o `z`), el programa devuelve `x*some_inequality` sin hacer uso de la información de que `x` es 0. En tal caso se debería escribir `ev (%, x: 0)`, ya que la base de datos sólo será utilizada para fines comparativos y no para evaluar `x`.

El usuario puede apreciar que las respuestas son más lentas al cargarse este paquete, ya que el simplificador deberá examinar más reglas que cuando no se hace uso del paquete, por lo que puede ser conveniente borrar estas reglas cuando ya no se haga uso de ellas. Ejecútese `kill (rules)` para eliminar todas las reglas (incluidas las definidas por el usuario); también es posible eliminar parte de ellas o utilizar `remrule` sobre una reglas específica.

Nótese que si se carga este paquete después de haber definido otras reglas de igual nombre,se borrarán las antiguas. Las reglas de este paquete son: `*rule1`, ..., `*rule8`, `+rule1`, ..., `+rule18`, debiéndose encerrar entre comillas el nombre de la reglas para referenciarse a ellas, como en `remrule ("+", "+rule1")` para eliminar la primera regla sobre `"+"`, o `disprule ("*rule2")` para mostrar la definición de la segunda regla multiplicativa.

Siguiente: Paquete rducon, Previous: Paquete functs, Subir: simplification [Índice general][Índice]