sen1 at math.msu.edu sen1 at math.msu.edu
Tue Jun 5 17:00:36 CDT 2007

```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.
>
> (%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
>
> 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
>>        (eq (sign* (sub (cadr xlhs) 1)) '\$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                |
---------------------------------------------------------------------------
```