question about 'is', 'compare'



Actually, I don't know if Maple or Mathematica has inequality
solvers.

Anyone know?

TIA,
  -sen

look for some kindOn Tue, 5 Jun 2007, sen1 at math.msu.edu wrote:

> Hi Stavros,
>  Thanks for the code.
>
> I called it 'sdiff.lisp'
>
> Here is what I get.
>
> (%i1) load("sdiff");
> (%o1)                            ./sdiff.lisp
> (%i2) assume(x > 2);
> (%o2)                               [x > 2]
> (%i3) is (x^2 > 3);
> (%o3)                                true
> (%i4) is (x^3 > 7);
> (%o4)                                true
> (%i5) assume(y < 3);
> (%o5)                               [y < 3]
> (%i6) is (y < x^2);
> (%o6)                               unknown
>
>
> So, it solves the immediate problem of x^2 > 3, but not one in which
> one adds other variables.
>
> Actually, what would really be nice is to have an 'inequality solver'
> which works at least for several linear, quadratic, and cubic polynomial inequalities
> (and, OK, quartic, too!).
>
> I realize that this may be a low priority, but does it at least seem
> possible?
>
> TIA,
>  -sen
>
>
> On Tue, 5 Jun 2007, Stavros Macrakis wrote:
>
>> I *did* attach the file, but for some reason it is not appearing -- gmail
>> glitch?
>>
>> Anyway, here it is in line:
>>
>> (defun signdiff-special (xlhs xrhs)
>> (when (or (and (numberp xrhs) (minusp xrhs)
>>        (not (atom xlhs)) (eq (sign* xlhs) '$pos))
>>                   ; e.g. sign(a^3+%pi-1) where a>0
>>       (and (mexptp xlhs)
>>        ;; e.g. sign(%e^x-1) where x>0
>>        (eq (sign* (caddr xlhs)) '$pos)
>>        (or (and
>>             ;; Q^Rpos - S, S<=1, Q>1
>>             (memq (sign* (sub 1 xrhs)) '($pos $zero $pz))
>>             (eq (sign* (sub (cadr xlhs) 1)) '$pos))
>>            (and
>>             ;; Qpos ^ Rpos - Spos => Qpos - Spos^(1/Rpos)
>>             (eq (sign* (cadr xlhs)) '$pos)
>>             (eq (sign* xrhs) '$pos)
>>             (eq (sign* (sub (cadr xlhs)
>>                     (power xrhs (div 1 (caddr xlhs)))))
>>             '$pos))))
>>       (and (mexptp xlhs) (mexptp xrhs)
>>        ;; Q^R - Q^T, Q>1, (R-T) > 0
>>        ;; e.g. sign(2^x-2^y) where x>y
>>        (alike1 (cadr xlhs) (cadr xrhs))
>>        (eq (sign* (sub (cadr xlhs) 1)) '$pos)
>>        (eq (sign* (sub (caddr xlhs) (caddr xrhs))) '$pos)))
>>   (setq sign '$pos minus nil odds nil evens nil)
>>   t)
>> )
>>
>
>

-- 
  ---------------------------------------------------------------------------
  | Sheldon E. Newhouse            |    e-mail: sen1 at math.msu.edu           |
  | Mathematics Department         |       				   |
  | Michigan State University      | telephone: 517-355-9684                |
  | E. Lansing, MI 48824-1027 USA  |       FAX: 517-432-1562                |
  ---------------------------------------------------------------------------