Next: Package rducon, Previous: Package functs, Up: simplification [Contents][Index]
The ineq
package contains simplification rules
for inequalities.
Example session:
(%i1) load("ineq")$ tellsimp: warning: rule will treat '+ ' as noncommutative and nonassociative. tellsimp: warning: rule will treat '+ ' as noncommutative and nonassociative. tellsimp: warning: rule will treat '+ ' as noncommutative and nonassociative. tellsimp: warning: rule will treat '+ ' as noncommutative and nonassociative. tellsimp: warning: rule will treat '+ ' as noncommutative and nonassociative. tellsimp: warning: rule will treat '+ ' as noncommutative and nonassociative. tellsimp: warning: rule will treat '+ ' as noncommutative and nonassociative. tellsimp: warning: rule will treat '+ ' as noncommutative and nonassociative.
(%i2) a>=4; /* a sample inequality */ (%o2) a >= 4 (%o3) b + a > c + 4 (%o4) 7 x < 7 y (%o5) - 2 x <= - 6 z 2 (%o6) 1 <= a + 1 (%o8) 2 x < 3 x (%o9) a >= b (%o10) a + 3 >= b + 3 (%o11) a >= b (%o12) a >= c - b (%o13) b + a >= c (%o14) (- c) + b + a >= 0 (%o15) c - b - a <= 0 2 (%o16) (z - 1) > - 2 z 2 (%o17) z + 1 > 0 (%o18) true
(%i19) (b>c)+%; /* add a second, strict inequality */
Be careful about using parentheses
around the inequalities: when the user types in (A > B) + (C = 5)
the
result is A + C > B + 5
, but A > B + C = 5
is a syntax error,
and (A > B + C) = 5
is something else entirely.
Do disprule (all)
to see a complete listing
of the rule definitions.
The user will be queried if Maxima is unable to decide the sign of a quantity multiplying an inequality.
The most common mis-feature is illustrated by:
(%i1) eq: a > b; (%o1) a > b
(%i2) 2*eq; (%o2) 2 (a > b)
(%i3) % - eq; (%o3) a > b
Another problem is 0 times an inequality; the default to have this
turn into 0 has been left alone. However, if you type
X*some_inequality
and Maxima asks about the sign of X
and you
respond zero
(or z
), the program returns X*some_inequality
and not use the information that X
is 0. You should do ev (%, x: 0)
in such
a case, as the database will only be used for comparison purposes
in decisions, and not for the purpose of evaluating X
.
The user may note a slower response when this package is loaded, as
the simplifier is forced to examine more rules than without the
package, so you might wish to remove the rules after making use of
them. Do kill (rules)
to eliminate all of the rules (including any
that you might have defined); or you may be more selective by
killing only some of them; or use remrule
on a specific rule.
Note that if you load this package after defining your own
rules you will clobber your rules that have the same name. The
rules in this package are:
*rule1
, ..., *rule8
,
+rule1
, ..., +rule18
,
and you must enclose the rulename in quotes to refer to it, as
in remrule ("+", "+rule1")
to specifically remove the first rule on "+"
or disprule ("*rule2")
to display the definition of the second multiplicative rule.
Next: Package rducon, Previous: Package functs, Up: simplification [Contents][Index]