Function: InequalitySolve  (Reduce)                                                                     Ναζλίδης Ανδρέας

Clear["Global`*"]

Περιγραφή

Στην mathematica 7 που χρησιμοποιώ εγώ η συνάρτηση InequalitySolve έχει αντικατασταθεί από τη συνάρτηση Reduce.
Η σύνταξη της συνάρτησης InequalitySolve σε προηγούμενες εκδόσεις της mathematica ήταν

InequalitySolve[expr,vars] 

όπου η έκφραση (expr) ήταν μία ανίσωση ή και εξίσωση και vars οι ανεξάρτητες μεταβλητές αυτής.
Η σύνταξη της συνάρτησης Reduce είναι 

Reduce[expr,vars,dom] 

όπου expr αποτελεί πάλι μία εξίσωση ή ανίσωση , vars είναι οι ανεξάρτητες μεταβλητές αυτής και το όρισμα dom μπορεί να είναι είτε πραγματικές (Reals) είτε ακέραιες (Integers) είτε μιγαδικές (Complexes) τιμές των ανεξάρτητων μεταβλητών. 
Η συνάρτηση Reduce μας δίνει λύσεις των εξισώσεων, ανισώσεων ή συστημάτων αυτών με τη χρήση λογικών τελεστών σε μία πιο απλοποιημένη μορφή. Χρησιμοποιεί του λογικούς τελεστές και (&&) και ή (||) και μας δείχνει για ποιες τιμές των ανεξάρτητων μεταβλητών έχει λύση η εξίσωση-ανίσωση ή το σύστημα αυτών. Αν δεν υπάρχει λύση τότε η Reduce επιστρέφει τιμή False. Με το όρισμα dom αναφερόμαστε σε πραγματικές, ακέραιες ή μιγαδικές τιμές των ανεξάρτητων μεταβλητών.
Όταν εμφανίζεται ο λογικός τελεστής και (&&) σημαίνει ότι οι δύο συνθήκες δεξιά και αριστερά του τελεστή θα πρέπει να ισχύουν ταυτόχρονα ώστε να ικανοποιείται η εξίσωση ή η ανίσωση ή οποιοδήποτε σύστημα αυτών. Όταν εμφανίζεται ο λογικός τελεστής ή (||) στην λύση τότε η εξίσωση-ανίσωση ή το σύστημα αυτών θα ικανοποιείται όταν ισχύει τουλάχιστον μία από τις συνθήκες δεξιά και αριστερά του τελεστή, δηλαδή όταν ισχύει είτε η μία είτε η άλλη.
Τα παραδείγματα που χρησιμοποίησα εδώ είναι πολύ απλά αλλά δείχνουν κάποιες δυνατότητες της Reduce. Με τον ίδιο τρόπο μπορεί η συνάρτηση να χρησιμοποιηθεί και για πιο περίπλοκα συστήματα εξισώσεων και ανισώσεων επιστρέφοντας  τη λύση με τον ίδιο τρόπο.

Παράδειγμα 1

Η συνάρτηση x^2 - 1 .

Plot[(x^2)-1,{x,-5,5}]

Αν θέλουμε θετικές λύσεις της  συνάρτησης για ακέραιες τιμές του x τότε θα πρέπει αυτό να είναι μεγαλύτερο ίσο του 2 ή μικρότερο ίσο του -2 και όχι του ένα γιατί θέλουμε ακέραιες τιμές.

Reduce[x^2 - 1>0,x,Integers]

Για  πραγματικές τιμές θα πρέπει το x να είναι μικρότερο του -1 ή μεγαλύτερο του 1 για θετικές λύσεις.

Reduce[x^2 - 1>0,x,Reals]

Για αρνητικές λύσεις της συνάρτησης θα είναι

Reduce[x^2 -1<0,x,Integers]

Reduce[x^2 -1<0,x,Reals]

Παράδειγμα 2

Η συνάρτηση (x-1)^2 + (y-1)^2 = 1 που είναι κύκλος με κέντρο το (1,1) και ακτίνα 1.

Αν θέλουμε σημεία που να βρίσκονται μέσα στον κύκλο για πραγματικές τιμές των x,y τότε η σύνταξη θα είναι.

Reduce[(x-1)^2 + (y-1)^2 <1,{x,y},Reals]

Αν θέλουμε σημεία που να βρίσκονται μέσα τον κύκλο για ακέραιες τιμές των x,y τότε θα είναι το κέντρο του κύκλου διότι όλα τα υπόλοιπα σημεία δεν είναι ακέραιες τιμές.

Reduce[(x-1)^2 + (y-1)^2 <1,{x,y},Integers]

Παράδειγμα 3

Αν έχουμε το σύστημα των ανισώσεων 0<x<2 , 1<x<4 τότε ικανοποιούνται ταυτόχρονα όταν 1<x<2.

Reduce[{0<x<2,1<x<4},x]

Αν όμως έχουμε το σύστημα x<1 και x>3 τότε η Reduce θα επιστρέψει τιμή False διότι δεν μπορούν να ικανοποιούνται ταυτόχρονα.

Reduce[{x<1,x>3},x]

Παράδειγμα 4

Παρακάτω η Reduce μας δίνει για ποιες πραγματικές τιμές του x το ημίτονο έχει θετικές, μηδενικές και αρνητικές τιμές .

Plot[Sin[x],{x,-10,10}]

Reduce[Sin[x]>0,x,Reals]

Reduce[Sin[x] == 0,x,Reals]

Reduce[Sin[x]<0,x,Reals]

Αν έχουμε ως σύστημα όμως τις δύο ανισώσεις (θετικές και αρνητικές τιμές μαζί)  θα πάρουμε την τιμή False.

Reduce[{Sin[x]<0,Sin[x]>0},x]

Αν θέλουμε σε ένα συγκεκριμένο διάστημα π.χ. για 0<x<10 τότε θα πάρουμε την εξής λύση.

Reduce[{Sin[x]>0,0<x<10},x,Reals]

Reduce[{Sin[x]<0,0<x<10},x,Reals]

Reduce[{Sin[x] == 0,0<x<10},x,Reals]

Παράδειγμα 5

Η συνάρτηση Cos(x)/x.

Plot[Cos[x]/x,{x,-10,10}]

Ελέγχουμε πρώτα για ποιες τιμές του x (θετικές) έχει η συνάρτηση θετικές και αρνητικές τιμές.

Reduce[{Cos[x]/x>0,0<x<10},x,Reals]

Reduce[{Cos[x]/x<0,0<x<10},x,Reals]

Στην συνέχεια κάνουμε το ίδιο για αρνητικές τιμές του x αντίστοιχα.

Reduce[{Cos[x]/x>0,-10<x<0},x,Reals]

Reduce[{Cos[x]/x<0,-10<x<0},x,Reals]

Και τέλος βλέπουμε ποιές είναι οι ρίζες της συνάρτησης στο διάστημα -10<x<10.

Reduce[{Cos[x]/x==0,-10<x<10},x,Reals]