Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell...

66
Εισαγωγή στο Mathematica Author: Michalis Xenos Revision 1.0 - Greece, 17/03/2003

Transcript of Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell...

Page 1: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

Εισαγωγή στο Mathematica

Author: Michalis Xenos Revision 1.0 - Greece, 17/03/2003

Page 2: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

2

Τι είναι το MATHΕMAΤΙCA

Το ΜΑΤΗΕΜATICA είναι ένα πακέτο συμβολικής άλγεβρας, δηλαδή ένα

πρόγραμμα που μπορεί να κάνει αλγεβρικές πράξεις, όπου το αποτέλεσμα δεν είναι

κατ' ανάγκη αριθμός.

Έτσι, ενώ πολλά προγράμματα μπορούν να κάνουν αριθμητικές πράξεις, όπως για

παράδειγμα,

2(3 -5)

-4

με το ΜΑΤΗΕΜΑTICA μπορούμε να εκτελέσουμε την ίδια πράξη αλλά και

επιπλέον,

2(3x -5x)

-4x

(αποτέλεσμα όχι καθαρός αριθμός) ή ακόμα,

[2(3x -5y)]3

8(3x -5y)3

και μπορούμε τώρα να βρούμε και το ανάπτυγμα του,

Expand[8(3x -5y)3]

216x3 -1080x

2y + 1800xy

2 -1000y

3

ή και το αόριστο ολοκλήρωμα του ως προς x (θεωρώντας το y σαν σταθερά),

dx5y)-8(3x 3

54x4 -360x

3y + 900x

2y

2 -1000xy

3

Περιβάλλον εκτέλεσης εντολών.

Με τα έντονα γράμματα-αριθμούς έχουμε μία εντολή που δίνουμε στο περιβάλλον

του ΜΑΤΗΕΜΑTICA (Γραμμή In) ενώ με τα κανονικά γράμματα-αριθμούς είναι το

αποτέλεσμα που παίρνουμε (Γραμμή Out).

Τα σύμβολα In [ 1] : = και Out [ 1 ]= βγαίνουν αυτόματα από το περιβάλλον του

ΜΑΤΗΕΜΑTICA και δεν δίνονται ποτέ από το χρήστη. Κάθε In [ 1 ] : = αποτελεί

και ένα πυρήνα, μία ομάδα εντολών ( cell) για το ΜΑΤΗΕΜΑTICA. Ένα cell μπορεί

να αποτελείται από μία ή από πολλές εντολές.

Για να βρούμε το αποτέλεσμα της πράξης 4a + 8a θα πρέπει να γράψουμε στο

περιβάλλον του ΜΑΤΗΕΜΑTICA 4a + 8a και μετά κρατώντας το πλήκτρο Shift να

πατήσουμε και το πλήκτρο Enter. Μπορούμε να έχουμε το ίδιο αποτέλεσμα από το

ΜΑΤΗΕΜΑTICA πατώντας μόνο το πλήκτρο Enter που βρίσκεται στην κάτω δεξιά

γωνία του πληκτρολογίου ("αριθμητικό" μέρος του πληκτρολογίου). Ασφαλώς αυτός

ο δεύτερος τρόπος είναι απλούστερος αφού χρησιμοποιούμε μόνο ένα πλήκτρο για να

προκαλέσουμε το ΜΑΤΗΕΜΑTICA να εκτελέσει την εντολή, παρά ο πρώτος που

χρειάζεται συνδυασμό δύο πλήκτρων. Αν γράψουμε μία εντολή και πατήσουμε μόνο

το πλήκτρο Enter στο "κεντρικό" μέρος του πληκτρολογίου περνάμε σε νέα γραμμή

στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή στο ίδιο cell. Αν μετά

πατήσουμε το "αριθμητικό" Enter, τότε θα εκτελεστούν και οι δύο εντολές, που

δώσαμε στο ίδιο cell, ταυτόχρονα.

Για παράδειγμα μπορούμε σε ένα cell να έχουμε τις εντολές με τα αντίστοιχα τους

αποτελέσματα, όπως παρακάτω:

Page 3: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

3

In[1]: = 4a + 8a

3a -2a

Out[1]= 12 a

Out[1]= a

Μπορούμε όμως, κάθε πράξη να την δίνουμε σε ξεχωριστό cell, όπως για

παράδειγμα:

In[2]: = 4a + 8a

Out[2]= 12a

Ιn[3]: = 6 + 8

Out[3]= 14

In[4]:= Ιn[2] * Out[3]

Out[4]= l68a

Παρατηρούμε ότι κάθε cell έχει την δική του αρίθμηση για να μπορούμε, αν θέλουμε,

να αναφερθούμε σ' αυτό, όπως κάναμε στο In[4]:= όπου εκτελέσαμε

πολλαπλασιασμό (αυτό σημαίνει το σύμβολο *) μεταξύ των δύο προηγουμένων cells.

Η διόρθωση μιας πράξης στο ΜΑΤΗΕΜΑTICA είναι εύκολη υπόθεση. Αν για

παράδειγμα αντί για 4a + 8a , θέλουμε το αποτέλεσμα της πράξης 4a + 7a, δεν

έχουμε παρά να πάμε με το "ποντίκι" μπροστά από το 8 και να πατήσουμε το

αριστερό του πλήκτρο. Έτσι έχουμε μεταφέρει κάθε επόμενη μας ενέργεια στο

σημείο αυτό. Πατάμε το πλήκτρο Delete οπότε σβήνεται ο αριθμός 8 και γράφουμε

τον αριθμό 7. Τέλος πατάμε το "αριθμητικό" Enter και έχουμε αμέσως το αποτέλεσμα

της πράξης 4α + 7α.

Εισαγωγή κειμένου σε (φύλλο εργασίας του ΜΑΤΗΕΜΑTICA).

Στο φύλλο εργασίας του ΜΑΤΗΕΜΑTICA μπορούμε να εισάγουμε κείμενο, στα

Αγγλικά ή στα Ελληνικά (ή και σε άλλες γλώσσες), σχολιάζοντας τις εντολές που

δίνουμε ή βάζοντας τίτλο ή υπότιτλο στην εργασία που κάνουμε. Mπoρoύμε επίσης

να αλλάξουμε το μέγεθος το στυλ ή και το χρώμα του κειμένου. Συνολικά μπορούμε

να αλλάξουμε την παρουσίαση ενός φύλλου εργασίας αν αυτό πρόκειται να

παρουσιαστεί με κάποιο μηχάνημα προβολής σε οθόνη ή αν σκοπεύουμε να το

χρησιμοποιήσουμε για μια ειδική εκτύπωση κλπ.

Όλα αυτά επιτυγχάνονται από το Menu και από την δυνατότητα επιλογής του

Format. Από εκεί ότι μπορούμε να επιλέξουμε το Style, οπότε αν θέλουμε να

εισάγουμε τίτλο θα πρέπει να επιλέξουμε το Title. Τώρα είμαστε έτοιμοι να

γράψουμε τον τίτλο που επιθυμούμε. Αν θέλουμε αυτός να είναι στα Ελληνικά θα

πρέπει πριν αρχίσουμε να γράφουμε, να γυρίσουμε το πληκτρολόγιο στα Ελληνικά με

Shift και. Alt, και μετά να πάμε στο Format και στο Font και να επιλέξουμε κάποια

γραμματοσειρά που να έχει Ελληνικά όπως την ArialGreek ή την

TimesNewRomanGreek ή την CourierNewGreek και γενικά όποια γραμματοσειρά

προσφέρεται από τον υπολογιστή μας που έχει κατάληξη Greek. Αν στη συνέχεια

θελήσουμε να εισάγουμε κείμενο δεν έχουμε παρά να επιλέξουμε από το Format και

το Style την επιλογή Text. Την επιλογή του Text μπορούμε να την επιτύχουμε και αν

πατήσουμε τα πλήκτρα Alt + 7.

Γενικά τις πιο πολλές επιλογές που κάνουμε με το "ποντίκι" μπορούμε να τις

πετύχουμε και με την χρήση των πλήκτρων. Όταν υπάρχει αυτή η δυνατότητα, αυτό

σημειώνεται δίπλα σε κάθε επιλογή. Για παράδειγμα για να γράψουμε έναν τίτλο

Page 4: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

4

γίνεται και με τα πλήκτρα Alt + 1, ενώ για υπότιτλο θα πρέπει να πατήσουμε τα

πλήκτρα Alt + 2, κλπ.

Όταν ολοκληρώσουμε το κείμενο που θέλουμε, μπορούμε να επιλέξουμε μία λέξη (ή

ένα μέρος του κειμένου), και να την μετατρέψουμε σε έντονα γράμματα, πατώντας

Ctrl + B ή πηγαίνοντας πάλι στο Format και στο Face και επιλέγοντας το Bold. Με

τον ίδιο τρόπο μπορούμε να μετατρέψουμε σε πλάγια (Italic) ή να υπογραμμίσουμε

(Underline) λέξεις από το κείμενο μας. Η επιλογή μιας λέξης γίνεται με το "ποντίκι"

κρατώντας συνέχεια το αριστερό πλήκτρο του και σαρώνοντας την λέξη από το

πρώτο γράμμα μέχρι το τελευταίο της. Θα παρατηρήσουμε ότι η λέξη τότε θα

αποκτήσει μαύρο φόντο.

Αν θέλουμε μπορούμε να αλλάξουμε το μέγεθος μιας λέξης, αν την επιλέξουμε και

πάμε στο Format και στο Size και από εκεί δώσουμε το μέγεθος που επιθυμούμε.

Ολόκληρο το κείμενο μπορούμε να το ευθυγραμμίσουμε όλο αριστερά ή όλο δεξιά ή

να το κεντράρουμε με την επιλογή του Text Alignment πάλι μέσα από το Format.

Έτσι μπορούμε να επιλέξουμε έναν τίτλο και να τον κεντράρουμε με την επιλογή

Format →Text Alignment →Align Center.

Το χρώμα μιας λέξης ή ολόκληρου του κειμένου μπορεί να αλλάξει αν επιλέξουμε τη

λέξη ή το κείμενο που θέλουμε και πάμε στην επιλογή Text Color που βρίσκεται και

αυτή μέσα στην δυνατότητα Format, και εκεί διαλέξουμε το χρώμα της αρεσκείας

μας. Υπάρχει η δυνατότητα να αλλάξουμε το φόντο σε ένα κείμενο ή σε μία εντολή ή

σε ένα σχήμα, από την επιλογή Background Color μέσα από το Format. Η εκτύπωση

του φύλλου εργασίας στο χαρτί, επιτυγχάνεται αν πάμε στο Menu και στην επιλογή

File. Από εκεί επιλέγουμε την εντολή Print και στο παράθυρο που θα ανοίξει,

επιλέγουμε τον εκτυπωτή που είναι συνδεδεμένος με τον υπολογιστή μας.

Οι βασικές πράξεις στο ΜΑΤΗΕΜΑTICA

Οι πέντε βασικές αριθμητικές λειτουργίες στο ΜΑΤΗΕΜΑTICA ορίζονται ως εξής:

Πίνακας 1. Οι πέντε βασικές αριθμητικές λειτουργίες του

ΜΑΤΗΕΜΑTICA

Ειδικά για τον πολλαπλασιασμό σημειώνουμε ότι μπορεί να πραγματοποιηθεί ακόμα

και με κενό (space) στη θέση του συμβόλου *, για παράδειγμα 5_3 (ας

συμφωνήσουμε από δω και στο εξής να συμβολίζουμε με _ ένα κενό). Όταν

χρησιμοποιούμε παρενθέσεις δεν είναι απαραίτητα τα ισοδύναμα για τον

πολλαπλασιασμό * ή space, π.χ. x(y-2) σημαίνει x*(y -2). Τέλος το 3x σημαίνει 3*x.

Προσοχή όμως x3 ή xy είναι ονόματα μεταβλητών για το ΜΑΤΗΕΜΑTICA και

ΔΕΝ σημαίνει x*3 ή x*3 αντίστοιχα.

Τονίζουμε επίσης ότι a^3b σημαίνει (a^3)b και ΟXI a^(3b) αφού το

ΜΑΤΗΕΜΑTICA εκτελεί πρώτα τις υψώσεις σε δυνάμεις και μετά τους

πολλαπλασιασμούς. Θα δούμε τη σειρά των πράξεων με περισσότερες λεπτομέρειες

Πράξη Σύμβολο Παράδειγμα.

Πρόσθεση + 5+3

Αφαίρεση - 5-3

Πολλαπλασιασμός * 5*3

Διαίρεση / 5/3

Ύψωση σε δύναμη ^ 5^3

Page 5: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

5

παρακάτω. Ας δούμε τα παραδείγματα του πιο πάνω πίνακα πώς εμφανίζονται στο

περιβάλλον του ΜΑΤΗΕΜΑTICA.

In[5]:= 5+3

Out[5]= 8

In[6]:= 5-3

Out[6]= 2

In[7]: = 5*3

Out[7]= 15

Το ίδιο αποτέλεσμα παίρνουμε αν αντί του συμβόλου *, αφήσουμε ένα κενό μεταξύ

του 5 και του 3. Ακόμα μπορούμε να δώσουμε:

In[8]: = 5/3

Out[8]= 3

5

In[9]: = 5^3

Out[9]= 125

Παρατηρούμε στην πράξη της διαίρεσης ότι το ΜΑΤΗΕΜΑTICA διατηρεί την

κλασματική μορφή στο αποτέλεσμα. Αυτό συμβαίνει για να έχει το αποτέλεσμα με τη

μεγαλύτερη δυνατή ακρίβεια και όχι κάποια προσέγγιση του ( αν κάνει μια διαίρεση

που δεν είναι τέλεια το αποτέλεσμα είναι μια προσέγγιση του πηλίκου). Με αυτόν τον

τρόπο, διατηρώντας το πηλίκο, αν χρειαστεί αργότερα να το χρησιμοποιήσει σε άλλες

πράξεις, δε θα χάσει ακρίβεια.

Αν για κάποιο λόγο όμως θέλουμε το αποτέλεσμα της διαίρεσης σε δεκαδική μορφή,

μπορούμε να του δώσουμε την εντολή,

In[10]: = N[5/3]

Out[10]= 1.66667

και αν το θέλουμε με περισσότερα δεκαδικά πρέπει να γράψουμε:

In[11]: = N[5/3, 20]

Out[11]= 1.6666666666666666667

Σύμβολα και πράξεις μέσω παλέτας

Αξίζει να σημειώσουμε ότι μπορούμε να δώσουμε τα σύμβολα της ύψωσης σε

δύναμη (και όχι μόνο αυτά βέβαια) από έτοιμη παλέτα που έχει το περιβάλλον του

ΜΑΤΗΕΜΑTICA. Αν πάμε, στο Menu και στην επιλογή File και από εκεί στην

επιλογή Palettes και έπειτα στην επιλογή BasicInput, θα παρουσιαστεί η παλέτα. Με

το "ποντίκι" μπορούμε τώρα να επιλέξουμε όποιο σύμβολο μας εξυπηρετεί.

Σειρά εκτέλεσης των πράξεων.

Πρώτα απ' όλα θα έχουμε υπ' όψιν μας ότι όταν χρειάζεται να υπολογίσουμε μία

αριθμητική παράσταση, οι πράξεις εκτελούνται με σειρά προτεραιότητας, δηλαδή

πρώτα οι υψώσεις σε δυνάμεις, μετά οι πολλαπλασιασμοί και οι διαιρέσεις (ότι

πρωτοσυναντήσει με φορά από αριστερά προς τα δεξιά) και τέλος οι προσθέσεις και

οι αφαιρέσεις. Αυτή τη σειρά μπορούμε να την παραβιάσουμε χρησιμοποιώντας

παρενθέσεις γνωρίζοντας ότι σ' αυτή τη περίπτωση το ΜΑΤΗΕΜΑTICA εκτελεί τις

πράξεις από τη πιο μικρή παρένθεση προς τη πιο μεγάλη.

Page 6: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

6

Για παράδειγμα.

In [14] = 5/8^2 * 3 -4

Out[14]=64

241

Εδώ που δεν έχουμε παρέμβει εμείς, το ΜΑΤΗΕΜΑTICA εκτελεί τις πράξεις με τη

σειρά:

8^2 = 64

5/64 = 5/64

(5/64)*3=15/64

15/64-4=-241/64

Αν βάλουμε παρενθέσεις τότε η σειρά ελέγχεται από εμάς, όπως στα επόμενα

παραδείγματα:

In[15]:= (5/8)^2*3 -4

Out[15]= 64

181

Εδώ πρώτα εκτελεί την πράξη της διαίρεσης μέσα στη παρένθεση και μετά την

ύψωση στη δύναμη. Ακολουθεί ο πολλαπλασιασμός και τέλος η αφαίρεση.

In[16]:=5/8^(2*3)-4

Out[16]= 262144

1048571

Στη περίπτωση αυτή εκτελεί πρώτα τον πολλαπλασιασμό στη παρένθεση, και μετά

την ύψωση στη δύναμη. Ύστερα εκτελεί την διαίρεση και τέλος την αφαίρεση.

In[17]:= 5/(8^(2*3)-4)

Out[l7]=52428

1

Εδώ εκτελεί τις πράξεις μέσα στη πιο μικρή παρένθεση, μετά στη μεγαλύτερη και

τέλος εκτελεί την διαίρεση.

In[l8]:= 5/8^2-(3-4)

Out[18]=64

5

Στο τελευταίο παράδειγμα, κάνει την αφαίρεση στη παρένθεση, μετά την ύψωση στη

δύναμη και τελειώνει με την διαίρεση και τον πολλαπλασιασμό. Φαίνεται λοιπόν

καθαρά πως μπορούμε να ελέγξουμε απόλυτα τις πράξεις με τη χρήση των

παρενθέσεων.

Page 7: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

7

Διαφορά ακεραίου και πραγματικού αριθμού.

Ένα άλλο σημείο που θα πρέπει να προσέξουμε είναι η διαφορά που υπάρχει μεταξύ

των πραγματικών και των ακεραίων αριθμών όταν το ΜΑΤΗΕΜΑTICA εκτελεί τις

πράξεις. Έτσι το 3 το αντιμετωπίζει σαν τον αριθμό με την ακριβή ακέραια τιμή 3,

ενώ το 3. (με την τελεία) δηλώνει τον πραγματικό αριθμό που έχει προσεγγιστικά το

ίδιο μέγεθος όπως ο αριθμός 3 και αντιμετωπίζεται διαφορετικά. Το παρακάτω

παράδειγμα δείχνει αυτή τη διαφορά. Αν θέλουμε να βρούμε την τετραγωνική ρίζα

του 3. και του 3, δίνουμε την έτοιμη συνάρτηση της τετραγωνικής ρίζας του

ΜΑΤΗΕΜΑTICA που είναι Sqrt[x] (το S κεφαλαίο) ή την από την παλέτα.

In[19]: = .3

Out[19]= 1.73205

Το ΜΑΤΗΕΜΑTICA έδωσε το προσεγγιστικό αποτέλεσμα για την √3 με 6

σημαντικά ψηφία (βλέπουμε 6 αν και το ΜΑΤΗΕΜΑTICA δουλεύει με 16

σημαντικά ψηφία αν δεν απαιτήσουμε εμείς να δουλέψει διαφορετικά), ενώ

In[20]:= 3

Out[20]= 3

Εδώ έχουμε το ΜΑΤΗΕΜΑTICA να δίνει το αποτέλεσμα της ρίζας ακριβώς. Η

απάντηση πάλι με 3 δεν σημαίνει ότι το ΜΑΤΗΕΜΑTICA δεν υπολόγισε την ρίζα,

αλλά απλά κάνει ότι και εμείς στο χαρτί όπου τη ρίζα 3 την γράφουμε 3 και όχι σε

δεκαδική (άρα προσεγγιστική) μορφή.

Οι εντολές Ν και %.

Αν θέλουμε προσεγγιστικά το αποτέλεσμα της 3 που βρήκαμε πριν, τότε δίνουμε

In[21]:= % // Ν

Out[21]= 1.73205

όπου με το σύμβολο % δηλώνουμε το τελευταίο αποτέλεσμα που έχει βγάλει το

ΜΑΤΗΕΜΑTICA δηλαδή το Out[20]= στη συγκεκριμένη περίπτωση, ενώ η

σύνταξη των //Ν (πάλι το Ν με κεφαλαίο) μετά την εισαγόμενη παράσταση,

υποχρεώνει το ΜΑΤΗΕΜΑTICA να βρει αριθμητικά (προσεγγιστικά) το

αποτέλεσμα. Με 30 σημαντικά ψηφία ακρίβεια το αποτέλεσμα είναι:

In [22]: = Ν[ 3 , 30]

Out[22]= 1.73205080756887729352744634151

Προσέξτε όμως για τον πραγματικό 3.

In[23]:= N[ 3 . ,30]

Out[23]= 1.73205

δεν έχουμε την ίδια ακρίβεια αφού το ΜΑΤΗΕΜΑTICA αγνοεί την απαίτηση μας για

30 σημαντικά ψηφία σε πράξη με πραγματικό αριθμό και παρουσιάζει το αποτέλεσμα

με 6 σημαντικά ψηφία. Αν θέλουμε οποιοδήποτε αποτέλεσμα με 30 σημαντικά ψηφία

τότε δίνουμε τον πραγματικό αριθμό 3 με 30 ψηφία οπότε

Page 8: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

8

In [ 24]:= Ν [ 000000000000000000000000000000.3 , 30 ]

Out[24l= 1.73205080756887729352744634151

υποχρεώνουμε το ΜΑΤΗΕΜΑTICA να δουλέψει με την ακρίβεια που του ζητάμε και

μάλιστα περιττεύει το Ν.

In[25]:= 000000000000000000000000000000.3

Out[25]= 1.73205080756887729352744634151

Το σύμβολο %, που χρησιμοποιήσαμε λίγο παραπάνω για να καλέσουμε το τελευταίο

αποτέλεσμα του ΜΑΤΗΕΜΑTICA μπορεί να χρησιμοποιηθεί περισσότερες από μία

φορά αν θέλουμε να καλέσουμε το προτελευταίο (%% ) ή το n προηγούμενο

αποτέλεσμα (%% ...% n φορές), αποφεύγοντας έτσι να ξαναγράφουμε μεγάλα

αποτελέσματα τα οποία θέλουμε να χρησιμοποιήσουμε. Για παράδειγμα,

In[26]:= Sqrt[81]

Out[26]= 9

In[27]:= % + 1

Out[27]= 10

In[28]: = %% -1

Out[28]= 8

Το Out [ ] ισοδυναμεί με το % ενώ το Out [-n] ισοδυναμεί με το %%... %% n φορές.

Προσοχή τo n% δε σημαίνει n βήματα πίσω αλλά το τελευταίο % αποτέλεσμα

πολλαπλασιασμένο επί n. Το %n σημαίνει το αποτέλεσμα του Out [n] .

Για παράδειγμα:

In[29]:= 3+5

Out[29]= 8

αν θέλουμε να προσθέσει μία μονάδα στο προηγούμενο αποτέλεσμα, δίνουμε

In[30]:= %+1

Out[30]= 9

ή αν θέλουμε να προσθέσει το 3 στο προ-προηγούμενο αποτέλεσμα, πρέπει να

δώσουμε:

In[31]: = %% + 3

Out[31]= 11

Παρατήρηση: Η χρήση του % θέλει μεγάλη προσοχή. Πρέπει να ελέγχουμε την

αρίθμηση των εντολών In και Out ώστε να είμαστε σίγουροι ότι με τη χρήση του

συμβόλου % θα χρησιμοποιήσουμε το επιθυμητό προηγούμενο αποτέλεσμα

Πολλές φορές το ΜΑΤΗΕΜΑTICA όταν παρουσιάζει πολύ μεγάλους ή πολύ

μικρούς αριθμούς χρησιμοποιεί τον επιστημονικό συμβολισμό, δηλαδή ένα

Page 9: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

9

πραγματικό μέρος του αριθμού επί την κατάλληλη δύναμη του 10. Έτσι για

παράδειγμα

In[32]:= N[123123123123x + 567567567x]

Out [32] = 1. 23691 1110 x

ή ένα μικρό αριθμό τον παρουσιάζει

In[33]: = 0.00000123123

Out[33]= 1.23123 610

Έτοιμες σταθερές και συναρτήσεις στο ΜΑΤΗΕΜΑTICA

Ο πίνακας που ακολουθεί δείχνει μερικές από τις έτοιμες σταθερές και συναρτήσεις

που διαθέτει το ΜΑΤΗΕΜΑTICA και που μπορούμε να χρησιμοποιούμε,

προσέχοντας οι συναρτήσεις (συμβολισμός εντολών) να ξεκινάνε με κεφαλαίο

γράμμα καθώς επίσης και οι παρενθέσεις που τις ακολουθούν να είναι αγκύλες, π.χ. για το ημx γράφουμε Sin[x], όχι Sin(x).

Μαθηματική έννοια Συμβολισμός

στο MATHEMATICA

Συμβολισμός

με χρήση παλέτας

π = 3.1415926 Pi π

e=2.7182818... Ε e

1-i I i

Άπειρο Infinity ∞

Μοίρα Degree π/180

Τετραγωνική ρίζα Sqrt[x]

Νιοστή ρίζα x x^(1/n)

Απόλυτη τιμή x Abs[x] Abs[■]

Φυσικός λογάριθμος x Log[x] Log[■]

Φυσικός λογάρ. X με βάση a Log[a,x] Log[a,x]

Εκθετική συνάρτηση xe Exp[x] Exp[■]

Παραγοντικό nΝ n! n!

Ημίτονο x Sin[x] Sin[■]

Συνημίτονο x Cos[x] Cos[■]

Εφαπτομένη x Tan[x] Tan[■]

Συνεφαπτoμένη x Cot[x] Cot[■]

Τέμνουσα x Sec[x] Sec[■]

Συντέμνουσα x Csc[x] Csc[■]

Αντίστροφο Ημίτονο x ArcSin[x] ArcSin[■]

Υπερβολικό Ημίτονο x Sinh[x] Sinh[■]

Αντιστρ. Υπερβ. Ημίτονο x ArcSinh[x] ArcSinh[■]

Συνάρτηση )(xf )(xf )(xf

Αόριστο ολοκ. dxxf )( Integrate[ )(xf ,x] ■d■

Ορισμένο ολοκ. b

adxxf )( Integrate[ )(xf ,{x,α,b}]

■d■

Παράγωγος dy/dx D[y,x] ■

Μέγιστο των x, y, … Max[x, y, … ] Max[x, y, … ]

Page 10: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

10

Ελάχιστο των x, y, … Min[x, y, … ] Min[x, y, … ]

Όριο συνάρτησης Limit[ )(xf ,x→x0] Limit[■,■→■]

Πίνακας 2 x 2 {{α, b}. {c. d}}

Πίνακας 2. Πίνακας σταθερών και συναρτήσεων

Σημειώνουμε ότι όλα τα τόξα των τριγωνομετρικών συναρτήσεων που

χρησιμοποιούμε στο ΜΑΤΗΕΜΑTICA είναι εκφρασμένα σε ακτίνια. Ας δώσουμε

μερικά παραδείγματα:

1) Να βρεθεί το αποτέλεσμα από τις πράξεις:

5

!85

714

Απάντηση:

In[34]:= N[(14-7)/(Abs[-5] *81))^(1/5)]

Out[34]= 0.128269

2) Να βρεθεί το όριο της συνάρτησης,

xx

xxy

sin

sin

όταν το x→ ∞.

Απάντηση:

In[35]: = Limit[(x+Sin[x])/(x-Sin[x]), x→Infinity]

Out[35]= 1

Το βέλος, δίνεται με συνδυασμό του - (μείον) και του > (μεγαλύτερο) ή το έτοιμο

βέλος από την παλέτα BasicInput.

Πράξεις σε μαθηματικές εκφράσεις

Το ΜΑΤΗΕΜΑTICA διαθέτει την εντολή Simplify. Η εντολή αυτή είναι μια

"περίεργη" εντολή αφού προσπαθεί να βρει τον απλούστερο τύπο της έκφρασης. Το

Simplify προσπαθεί να μειώσει την έκφραση σε μορφή με όσο το δυνατόν λιγότερα

στοιχεία. Για παράδειγμα η έκφραση

2

31

2

3

3

1

απλοποιείται με την εντολή Simplify, ως εξής:

In[36]:= Simplify[%]

Page 11: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

11

Out[36]= 336

332

και ακόμα περισσότερο με την εντολή:

In[37]:= FullSimplify[%]

Out[37]= 3

8

3

13

Σχετικές εντολές με την Simplify είναι και οι ακόλουθες., θεωρώντας Α μία

μαθηματική έκφραση, έχουμε:

Σύνταξη Μαθηματική έννοια

Expand[A] Αναπτύσσει τα γινόμενα και τις δυνάμεις της Α

ExpandAll[A] Εφαρμόζει την Expand παντού

Factor[A] Μαζεύει σε γινόμενα πρώτων παραγόντων την Α

Together[A] Μαζεύει τους όρους της Α σε ένα κοινό παρανομαστή

Apart[A] Αναλύει την Α σε άθροισμα απλών κλασμάτων

Collect[A,x] Βγάζει κοινούς παράγοντες με δυνάμεις του x

Coefficient[A,x] Δίνει τους όρους που έχουν συντελεστή το x

Exponent[A,x] Βρίσκει την μέγιστη δύναμη του x στην Α

Part[A,n] ή A[[n]] Νιοστός όρος της Α

Numerator[A] Αριθμητής της Α

Denominator[A] Παρανομαστής της Α

Πίνακας 3

Τα παρακάτω παραδείγματα διευκρινίζουν τις πιο πάνω εντολές του

ΜΑΤΗΕΜΑTICA. Δίνουμε την εντολή,

In[38]:= Expand[(a+b)3]

Out[38]= a3+3a

2b+3ab

2+b

3

οπότε βλέπουμε ότι η Expand αναπτύσσει την ταυτότητα (α + b)3.Αν τώρα δώσουμε,

Ιn[39]: = Factor[%]

Out[39]= (a+b)3

παρατηρούμε ότι το προηγούμενο ανάπτυγμα μετατρέπεται σε γινόμενο. Η εντολή

Factor δουλεύει βασικά αντίστροφα από την Expand. Για να αναπτύξουμε το (x+1)4,

δίνουμε αντίστοιχα την εντολή:

In[40]:= Expand[(x+l)4)]

Out[40]= 1+4x+6x2+4x

3+x

4

Παρατηρήστε ότι το ΜΑΤΗΕΜΑTICA. παρουσιάζει το πολυώνυμο σε αύξουσες

δυνάμεις της μεταβλητής. Αν θέλουμε να παρουσιαστεί έτσι όπως συνηθίζουμε

Page 12: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

12

δηλαδή με την αντίστροφη φορά, θα πρέπει να το δηλώσουμε με την εντολή

TraditionalForm,

In [41] = Expand[(x+1)4] / / TraditionalForm

Out[41]= x4+4x

3+6x

2+4x+l

Οι δύο κάθετες σημαίνουν να εκτελεστεί ότι υπάρχει αριστερά τους με την

προϋπόθεση να εφαρμοστεί ότι ορίζεται δεξιά από αυτές. Έστω ότι έχουμε την

έκφραση,

2

3

42

12

xx

xx

και θέλουμε να την αναπτύξουμε. Θα δώσουμε την εντολή:

In[42]:= Expand[ 2

3

42

12

xx

xx]

)2()4()2()4(

5

)2()4(

6

)2()4(

4

)2()4(

8

2

4

2

3

2

2

22

xx

x

xx

x

xx

x

xx

x

xx

Out[42]

Εδώ βλέπουμε ότι δεν αναλύονται οι παρανομαστές, πράγμα που γίνεται με την

εντολή,

In[43]:= ExpandAll[42]

32

4

32

3

32

2

3232

103232103232

5

103232

6

103232

4

103232

8

xxx

x

xxx

x

xxx

x

xxx

x

xxx Out[43]

ενώ με την εντολή,

In[44]:= Together[%]

Out[44]=32

432

103232

5648

xxx

xxxx

δημιουργεί ένα κλάσμα με τον κοινό παρανομαστή. Η εντολή,

In[45]:= Numerator[%]

Out[45]= 432 5648 xxxx

επιλέγει τον αριθμητή του κλάσματος και η εντολή,

In[46]:= Denominator[%%]

Out[46]= 32103232 xxx

Page 13: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

13

επιλέγει τον παρανομαστή του-κλάσματος. Μια πολύ χρήσιμη εντολή για την

διάσπαση ενός κλάσματος πολυωνυμικών συναρτήσεων, σε άθροισμα απλούστερων

κλασμάτων είναι,

In[47]:= Apart[%%%]

Out[47]= xxxx

2

16

4

108

)4(

32415

2

όπου έσπασε το κλάσμα που είχαμε στο αποτέλεσμα Out [44]=. Άλλο παράδειγμα

ανάπτυξης έκφρασης υψωμένης σε ακέραιη δύναμη,

In[48]:= Expand[(2x+4y-3)3]

Out[48]= 322232 6496144481441088365427 yxyyyxxyyxxx

όπου αναπτύσσει το (2x+4y-3)3. Η εντολή,

In[49]:= Coefficient [%, x]

Out[49]= 29614454 yy

Παρουσιάζει μόνο τους όρους της έκφρασης που έχουν για παράγοντα το x. Έχουμε

τώρα τη δυνατότητα με την εντολή

In[50]:= Part[%%,3]

Out[50]= -36x2

να επιλέξουμε μόνο τον τρίτο όρο της έκφρασης ή με την εντολή,

In[51]:= Exponent[%%%,x]

Out[51]= 3

να βρούμε τη μεγαλύτερη δύναμη του χ που παρουσιάζεται στην μαθηματική

έκφραση. Αν τώρα έχουμε το κλάσμα,

ba

babbaa

3223 33

και θέλουμε να το απλοποιήσουμε, θα πρέπει να δώσουμε,

Ιn[52]:= Simplify[ba

bbabaa

3223 *3*3]

Out[52]= 2)( ba

όπου όπως φαίνεται η εντολή "μαζεύει" πρώτα τον αριθμητή σε (α-b)3 και μετά

απλοποιεί το κλάσμα.

Ενδιαφέρον έχει και το επόμενο παράδειγμα. Έστω ότι έχουμε την έκφραση 2a

όπου αν δώσουμε την εντολή,

Page 14: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

14

In[53]:= Expand[ 2a ]

Out[53]= 2a

παρατηρούμε ότι δεν απλοποιεί, σωστά, τη ρίζα με το τετράγωνο αφού δεν του

έχουμε δηλώσει ότι το α>0. Αν θέλουμε να το απλοποιήσει θεωρώντας το α>0, τότε

του δίνουμε:

In[54]:= ΡowerΕxpand[2a ]

Out[54]= α

και τώρα απλοποιεί τη ρίζα με το τετράγωνο. Προσοχή η εντολή ΡowerΕxpand

όποτε χρησιμοποιείται, θεωρεί τις μεταβλητές θετικές πραγματικές ποσότητες.

Αν έχουμε τριγωνομετρικές συναρτήσεις και πάλι οι ανωτέρω εντολές δουλεύουν,

όπως για παράδειγμα,

In [55]:= Factor[Tan[x]3-Sin[x]

3]

Out[55]= -(Sin[x]-Tan[x]) (Sin[x]2+Sin[x] Tan[x] +Tan[x]

2)

όπου η Factor εντολή δουλεύει χωρίς κανένα πρόβλημα.

Αν θέλουμε να δουλέψουμε τις ανωτέρω εντολές χρησιμοποιώντας έτοιμη παλέτα θα

πρέπει να επιλέξουμε τη παλέτα AlgebraicManipulation που περιέχει αυτές τις

εντολές.

Ορισμός σταθεράς

Για τον ορισμό μιας σταθεράς αρκεί αριστερά από το = να δώσουμε το όνομα της

αρεσκείας μας ξεκινώντας με γράμμα (αποφεύγοντας κενά και ειδικά σύμβολα όπως

*, &, Λ, % κ.λ.π.), και δεξιά από το ίσον την σταθερά. Π.χ.

In[56]:= x =9

Out[56]= 9

οπότε από εδώ και στο εξής το ΜΑΤΗΕΜΑTICA γνωρίζει το x σαν τον αριθμό 9 και

όπου θα το συναντάει θα βάζει αυτή τη τιμή γι' αυτό. Έτσι,

In[57]:= x

Out[57]= 3

βρίσκει την τετραγωνική ρίζα του. Ακόμα μπορούμε να κάνουμε πράξεις με άλλες

σταθερές.

In[58]:= 15-x

Out[58]= 6

Στη περίπτωση βέβαια που ορίσουμε λίγο αργότερα (από λάθος ή όχι),

In[59]:=x=10

Out[59]= 10

Page 15: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

15

τότε ξεχνάει τον παλιό ορισμό και θυμάται από εδώ και όποτε συναντήσει το x, τη

νέα του τιμή.

Εδώ να επισημάνουμε ότι το ΜΑΤΗΕΜΑTICA. θυμάται. το x=10 ακόμα και. αν

σβήσουμε τις εντολές που το περιέχουν. Ακόμα και αν κλείσουμε τη "σελίδα" που

γράφουμε τις εντολές και ανοίξουμε μία νέα, πάλι. θα θυμάται τον ορισμό του x. Δύο

τρόποι υπάρχουν για να το ξεχάσει. Πρώτον αν κλείσουμε το ΜΑΤΗΕΜΑTICA και.

το ξανά ανοίξουμε και. δεύτερον αν χρησιμοποιήσουμε την εντολή Clear.

In[60]:= Clear[x]

In[61]:= x

Out[61]= x

όπως βλέπουμε το x το επιστρέφει. σαν μεταβλητή και όχι σαν 10.

Με την εντολή Clear μπορούμε ταυτόχρονα να σβήσουμε από τη μνήμη του

ΜΑΤΗΕΜΑTICA πολλούς Ορισμούς μεταβλητών αφού η σύνταξη της μας το

επιτρέπει CIear[xl,x2,x3,...]

Ορισμός συνάρτησης

Αν θέλουμε να ορίσουμε τη συνάρτηση xxxf 3)( 2 , θα πρέπει να γράψουμε,

In[62]:= f [x_] : = x2-3x

προσέχοντας τρία πράγματα.

Πρώτον η μεταβλητή (ή οι μεταβλητές) μπαίνουν σε αγκύλες και όχι σε

παρενθέσεις.

Δεύτερον δεξιά από κάθε μεταβλητή βάζουμε το σύμβολο "_" (το σύμβολο

αυτό προκύπτει από τον συνδυασμό Shift+μείων(-)

Τρίτον αντί για ίσον έχουμε ": =".

Εδώ αξίζει να κάνουμε μια σημαντική παρατήρηση που θα μας φανεί χρήσιμη

αργότερα. Αν δώσουμε τον ορισμό της συνάρτησης όπως, μόλις, είπαμε

In[63]:= f[x_] := x2-3x

και χωρίς την άνω και κάτω τελεία,

In [64] : = f [x_] = x2 -3x

Out[64]= -3x+x2

δεν θα έχουμε κάνει κανένα λάθος. Και οι δύο είναι αποδεκτοί από το

ΜΑΤΗΕΜΑTICA. Παρατηρούμε όμως, ότι στην πρώτη περίπτωση το

ΜΑΤΗΕΜΑTICA δεν απαντά με εντολή Out, όπως κάνει στη δεύτερη περίπτωση

που μας δίνει σε Out την συνάρτηση. Ο λόγος είναι ότι στην πρώτη περίπτωση το

ΜΑΤΗΕΜΑTICA δεν υπολογίζει το δεξιό μέλος της συνάρτησης τη στιγμή που το

γράφουμε, ενώ στη δεύτερη περίπτωση το υπολογίζει. Στη πρώτη περίπτωση

υπολογίζει τη συνάρτηση μόνο όταν την καλέσουμε με το όνομα της. Για παράδειγμα

αν θέλουμε την αριθμητική τιμή της συνάρτησης για x = 2, τότε αυτόματα μόλις

γράψουμε f[2] ανατρέχει στον ορισμό της συνάρτησης, "διαβάζει" τον τύπο της και

μετά υπολογίζει την αριθμητική της τιμή. Και οι δύο ορισμοί είναι σωστοί.

Page 16: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

16

Γιατί να υπάρχουν δύο ορισμοί; Ο λόγος είναι ότι ορισμένες φορές ο πρώτος ορισμός

είναι απαραίτητος για τη σωστή αντιμετώπιση ορισμένων προβλημάτων. Για

παράδειγμα έστω πως έχουμε την μεταβλητή x = 1 και τη συνάρτηση f(x)= x2 –4x + 3

και θέλουμε την αριθμητική της τιμή f(2).

Αν δώσουμε τις εντολές,

In[65]: = x = 1;

In[66]:= f[x_] =x2-4x+3 ,

Out[66]= 0

ορίσαμε το x με 1 (με το ερωτηματικό στο τέλος της εντολής αποτρέψαμε το

ΜΑΤΗΕΜΑTICA, να τυπώσει το Out του x = l) και την συνάρτηση f(x).

Παρατηρούμε όμως ότι κατά τον ορισμό της συνάρτησης το ΜΑΤΗΕΜΑTICA

αντικατέστησε το x ίσον με 1 και έτσι η συνάρτηση μας ουσιαστικά είναι ή σταθερή

συνάρτηση f(x) = 0. Έτσι επιχειρήσουμε να βρούμε την αριθμητική της τιμή f[2] με

την εντολή,

In[67]:= f[2]

Out[68]= 0

παίρνουμε, όπως είναι φυσικό, την τιμή 0. Αν όμως ορίσουμε την συνάρτηση με τον

πρώτο ορισμό,

In[69]:= x = l;

In[70]:= f[x_]:=x2-4x+3

παρατηρούμε ότι δεν γίνεται καμία αντικατάσταση του x = 1 στην συνάρτηση, οπότε

αν δώσουμε την εντολή,

In[71]:= f[2]

Out[71]= -1

παίρνουμε τη σωστή απάντηση για την αριθμητική τιμή f(2).

Είναι επίσης σημαντικό να προσέχουμε ότι αν γράψουμε f = x2-3x, τότε απλά έχουμε

δώσει στην έκφραση x2-3x την ονομασία f. Δηλαδή για το ΜΑΤΗΕΜΑTICA f[x] και

f είναι διαφορετικές έννοιες. Το f[x] δηλώνει συνάρτηση, ενώ το f είναι το όνομα

κάποιας μεταβλητής.

Έστω μία συνάρτηση με το τυχαίο όνομα antist, που θα βρίσκει τον αντίστροφο ενός

αριθμού. Για τον ορισμό της συνάρτησης δίνουμε την εντολή,

In[72]:= antist[x_] :=x

1

και αν θέλουμε να βρούμε τον αντίστροφο του 23, δίνουμε την εντολή,

In[73]:= antist[23]

Out[73]=23

1

και αν θέλουμε την δεκαδική προσέγγιση του πηλίκου, την εντολή:

Page 17: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

17

In[74]:= Ν[%]

Out[74]= 0,0434783

Αν θέλουμε πάντα να έχουμε το αποτέλεσμα σε δεκαδική μορφή, μπορούμε από την

αρχή στον ορισμό να δώσουμε,

In[75]:= antist[x_] :=Ν[x

1]

οπότε κάθε φορά που θα ζητάμε τον αντίστροφο ενός αριθμού,

In[76]:= antist[23]

Out[76]= 0.0434783

Τα παραπάνω ισχύουν ακόμα και αν αντί για αριθμό ή μεταβλητή χειριζόμαστε

κάποια μαθηματική έκφραση,

In[77]:= antist[z2-3z+5]

Out[77]=235

1

zz

Συνάρτηση με πολλαπλό τύπο

Για τον ορισμό συναρτήσεων με πολλαπλό τύπο μπορούμε να χρησιμοποιήσουμε την

εντολή Which[συνθήκη 1, τύπος 1, συνθήκη 2, τύπος 2, ...]. Η έκφραση αυτή

δηλώνει ότι εάν ικανοποιείται η συνθήκη 1 τότε η μορφή της συνάρτησης θα είναι ο

τύπος 1, ενώ εάν ικανοποιείται η συνθήκη 2 τότε η συνάρτηση θα δίνεται από τον

τύπο 2 κ.ο.κ. Έστω ότι θέλουμε να ορίσουμε και να σχεδιάσουμε από το –π/2 έως το

2π, τη συνάρτηση

0),cos(

0,1)(

2

xx

xxxf

Για τον ορισμό της συνάρτησης δίνουμε την εντολή,

In[78]:= f[x_] :=Which[x<0, x2+1,x≥0,Cos[x]]

ενώ για την γραφική της απεικόνιση, την εντολή:

In[79] := Plot[f[x], {x, -π/2, 2*π}]

2 4 6

-1

1

2

3

Out[79]= -Graphics-

Page 18: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

18

Ένας άλλος τρόπος, για να ορίσουμε συνάρτηση με πολλαπλό τύπο, είναι ο

ακόλουθος

In [80] : = f [x_] : = x2 + 1/; x < 0

f [x_] : = Cos[x] /; x≥0

και παίρνουμε ακριβώς το ίδιο αποτέλεσμα για τον ορισμό της συνάρτησης. Τα δύο

σύμβολα /; (χωρίς κενό μεταξύ τους) χωρίζουν τον τύπο της συνάρτησης από την

συνθήκη. Χρήσιμα σύμβολα στους ορισμούς συναρτήσεων πολλαπλών μορφών (και

όχι μόνο) είναι τα ακόλουθα:

Μαθηματική έννοια Συμβολισμός Συμβολισμός από παλέτα

Ισότητα = = = =

Μεγαλύτερο από > >

Μεγαλύτερο από ή ίσο με >= ≥

Μικρότερο από < <

Μικρότερο από ή ίσο με s <= ≤

Όχι ίσο με (διάφορο) ! = ≠

Όχι ! !

Και && &&

Ή II ΙΙ

Πίνακας 4 Χρήσιμα σύμβολα στους ορισμούς συναρτήσεων πολλαπλών μορφών.

Τονίζεται ότι στα διπλά σύμβολα (π.χ. ΙΙ, &&) δεν υπάρχει ενδιάμεσο κενό. Επίσης, η

ισότητα στο ΜΑΤΗΕΜΑTICA συμβολίζεται με διπλό = =, σε αντιδιαστολή με το

μονό = που σημαίνει αντικατάσταση.

Τρόποι αντικατάστασης τιμών σε εκφράσεις.

Υπάρχουν δύο τρόποι αντικατάστασης τιμών σε εκφράσεις. Ο πρώτος τρόπος, που

ήδη αναφέρθηκε, είναι να ορίσουμε τιμή στη μεταβλητή της μαθηματικής έκφρασης

και να ξαναγράψουμε το όνομα της έκφρασης. Π.χ. εάν έχουμε τη μαθηματική

έκφραση a= x2 -5x+ 2 και θέλουμε να βρούμε τη τιμή της a για x = 3, δεν έχουμε

παρά να γράψουμε:

In[81]:= a = x2-5x+2

Out[81]= 2-5x+x2

In[82]:= x = 3

Out[82]= 3

In[83]: = a

Out[83]= -4

Ο δεύτερος τρόπος είναι να χρησιμοποιήσουμε την εντολή ReplaceAll, ο ισοδύναμος

συμβολισμός της οποίας είναι "/." . Το ίδιο παράδειγμα γίνεται τώρα (αφού πρώτα

καθαρίσουμε από τη μνήμη του ΜΑΤΗΕΜΑTICA. τις παλιές τιμές για το a και το x):

In[84]: = Clear[a,x]

Page 19: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

19

In[85]:= a = x2-5x+2

Out[85]= 2-5x + x2

In[86]:= a/.x → 3

Out[86]= -4

Υπάρχει όμως μια σημαντική διαφορά σ' αυτούς τους δύο τρόπους αντικατάστασης.

Όταν χρησιμοποιούμε τον πρώτο τρόπο η τιμή της a αλλάζει και πλέον το

ΜΑΤΗΕΜΑTICA ταυτίζει το a με το -4. Με τον δεύτερο τρόπο αντικατάστασης

παίρνουμε την αριθμητική τιμή της a για x = 3 χωρίς όμως ούτε το a ούτε το x να

ταυτίζονται με τις τιμές -4 και 3 αντίστοιχα. Αν δηλαδή γράψουμε a και x το

ΜΑΤΗΕΜΑTICA θα μας επιστρέψει τις ονομασίες των μεταβλητών και όχι τις

τιμές -4 και 3.

In[87]= a

Out[87]= 2-5x+x2

In[88]:= x

Out[88]= x

Όρια

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

Limit όπως την ορίσαμε στον πίνακα 2. Για παράδειγμα αν θέλουμε να υπολογίσουμε

το όριο της συνάρτησης f(x) = 2x + 3 όταν το x → 2, δίνουμε,

In[89]:= Limit[2x+3,x→2]

Out[89]= 7

ή για το όριο της συνάρτησης f(x) = 79

23

x

x όταν x → ∞ :

In[90]: = Limit[79

23

x

x, x→ ∞]

Out[90]=3

1

Στη περίπτωση που ζητάμε να βρούμε πλευρικά όρια το ΜΑΤΗΕΜΑTICA μας δίνει

τη δυνατότητα αυτή χρησιμοποιώντας την ίδια εντολή αλλά με την παράμετρο

Direction μέσα στην αγκύλη της. Η σύνταξη τώρα της εντολής είναι:

Limit[f[x] , x→a , Direction →1] και ισοδυναμεί με το limx→a- f(x) ενώ

Limit[f[x] , x→a , Direction →-1] ισοδυναμεί με το limx→a+ f(x)

Έστω η συνάρτηση, f(x) =

x

1

23

1

για την οποία ζητάμε να βρούμε το όριο της, όταν

x → 0.

Από αριστερά το όριο είναι,

Page 20: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

20

In[91] : = Limit [

x

1

23

1

, x→0, Direction → 1]

Out[91] = 3

1

ενώ από δεξιά,

In[92]:= Limit[

x

1

23

1

, x→0, Direction → -1]

Out[92]= 0

άρα το όριο της δοθείσας συνάρτησης δεν υπάρχει.

Προσοχή Όταν δεν χρησιμοποιούμε την παράμετρο Direction, το ΜΑΤΗΕΜΑTICA

χρησιμοποιεί από μόνο του την κατεύθυνση Direction → - l. Έτσι αν γράψουμε,

Ιn[93]:= Limit[

x

1

23

1

, x →0]

Out[93]= 0

θα καταλήξουμε στο λάθος συμπέρασμα ότι. το όριο της συνάρτησης υπάρχει και

ισούται με 0. Στην περίπτωση που το όριο είναι. πολύπλοκο, το ΜΑΤΗΕΜΑTICA

αδυνατεί να το υπολογίσει. αναλυτικά και επιστρέφει. στην έξοδο του το όριο

ανέπαφο με σχόλια.

Παράδειγμα: Να αποδειχθεί ότι το όριο της συνάρτησης f(x) = !x

e x

όταν το x→ ∞,

είναι. το μηδέν.

In[94]:= Limit[!x

ex

,x→ ∞]

Series :: “esss”:Essential singularity encountered in Gamma[x

1+1+0[x]

3]

Series :: “esss”:Essential singularity encountered in Gamma[x

1+1+0[x]

3]

Series :: “esss”:Essential singularity encountered in Gamma[x

1+1+0[x]

3]

General :: “stop”: Further output of Series :: “esss” will be suppressed during this

calculation

Out[94]= Limit[!x

e x

,x→ ∞]

Η λύση σ' αυτή τη περίπτωση είναι να ζητήσουμε από το ΜΑΤΗΕΜΑTICA. να

προσπαθήσει. να το βρει αριθμητικά (χρησιμοποιώντας αριθμητικές τεχνικές). Γι'

αυτό με την εντολή,

In[95]:= «NumericalMath`NLimit`

Page 21: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

21

καλούμε το πακέτο NLimit για αριθμητική εύρεση του ορίου. Η μονή ανάποδη

απόστροφος βρίσκεται., συνήθως μαζί με το πλήκτρο ~ (πάνω αριστερά στο

πληκτρολόγιο) και. δεν βάζουμε την μονή απόστροφο που είναι. στο ίδιο πλήκτρο με

τις διπλές αποστρόφους. Για να βρεθεί λοιπόν το όριο της προηγούμενης παράστασης

δίνουμε:

In[96]:= NLimit[!x

ex

,x→ ∞]

Out[96]= 0.

Όταν θέλουμε να βρούμε πολύπλοκα όρια μιας συνάρτησης (όταν x→α), καλό είναι

να βρίσουμε, αν αυτό είναι δυνατό, αριθμητικές τιμές της συνάρτησης για x κοντά

στο α, ώστε να βλέπουμε τι τιμές παίρνει η f (ελπίζοντας έτσι ότι θα «δούμε» το

όριο). Έστω ότι θέλουμε να βρούμε το όριο της συνάρτησης f(x) =x

xSin ][.

Ονομάζουμε αρχικά τη συνάρτηση f,

In[97]:= f = x

xSin ][

Out[97]:= x

xSin ][

Βρίσκουμε κατόπιν την τιμή της f για διάφορα x κοντά στο 0,

In[98]:= f/.x→ {0.1, -0.1, 0.01, -0.01}

Out[98] = 0.998334, 0.998334, 0.999983, 0.999983

In[99]: = Plot[f,{x,-2π,2π}]

-6 -4 -2 2 4 6

-0.2

0.2

0.4

0.6

0.8

1

Out[99]= -Graphics-

Από το γράφημα βλέπουμε καθαρά ότι για τιμές του x κοντά στο 0, η f τείνει στο 1.

Με την εντολή Limit η f αποδεικνύεται ότι πράγματι έχει όριο τη μονάδα.

In[100]: = Limit[f, x→0]

Out[100]= 1

Παράγωγοι Η παραγώγιση της συνάρτησης f(x) ως προς x μπορεί να γίνει, όπως ήδη έχουμε

αναφέρει, με την εντολή D[f[x],x]. Μπορούμε όμως να γράψουμε και f΄[x] και να

έχουμε το ίδιο αποτέλεσμα. Ο τόνος στην παράγωγο είναι στο ίδιο πλήκτρο μαζί με

τις διπλές αποστρόφους κοντά στο πλήκτρο Enter. Για την παράγωγο n τάξης η

Page 22: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

22

εντολή είναι D[f[x],{x,n}]. Για παράδειγμα αν έχουμε την συνάρτηση f(x) = 3x2 + 5x

και ζητάμε την δεύτερη παράγωγό της ως προς x, γράφουμε,

In[101] := D[3x2 + 5x, x]

Out[l01]= 5 + 6x

Oπότε βρίσκουμε την πρώτη παράγωγο, και με την επόμενη εντολή την δεύτερη

παράγωγο

In[l02] := D[%,x]

Out[102]= 6

Επίσης το ΜΑΤΗΕΜΑTICA βρίσκει απευθείας τη δεύτερη παράγωγο με την εντολή:

In[l03]: = D[3x2 + 5x, {x, 2}]

Out[l03J= 6

ή αλλιώς:

In[104]: = f[x_] := 3x2 + 5x

In[105]:= f΄΄[x]

Out[105] = 6

Χρησιμοποιώντας το σύμβολο " □■" από την παλέτα Basiclnput, θα έχουμε για την

πρώτη παράγωγο:

In[l06]:= x (3x2+5x)

Out[106]= 5+ 6x

ενώ για τη δεύτερη:

In[107]:= x %

Out[107] = 6

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

γράφουμε στον δείκτη του μέσα σε παρένθεση την ανεξάρτητη μεταβλητή και την

τάξη της παραγώγισης.

In[108]:= {x,2}(3x2 +5x)

Out[l08]= 6

Αν ονομάσουμε την πρώτη παράγωγο f1

In [109] := f1 = D [ f [x] , x]

Out[109] = 5 + 6x

μπορούμε να σχεδιάσουμε την συνάρτηση με την παράγωγό της.

In[110] := Plot[{f[x], f1}, {x, -2, 2}]

Page 23: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

23

-2 -1 1 2

-5

5

10

15

20

Out[110]= -Graphics-

Αν θέλουμε τη σχεδίαση των δύο συναρτήσεων χωρίς τη βοήθεια της f1, δίνουμε την

εντολή:

In[111] := Plot[Evaluate[{f[x],D[f[x], x]}],{x, -2, 2}]

-2 -1 1 2

-5

5

10

15

20

Out[111]= -Graphics-

Έστω τώρα η συνάρτηση της παραγώγου f(x)= (x3)΄. Την ορίζουμε με την εντολή

In[112]:= f[x_] := D[x3, x]

οπότε, η f(2) βρίσκεται με την εντολή:

In[113] := f[2]

General : : “ivar”: 2 is not a valid variable

Out[113]= 28

Παρατηρούμε ότι το ΜΑΤΗΕΜΑTICA δεν βρίσκει την αριθμητική τιμή και

διαμαρτύρεται γιατί δεν έχει μεταβλητή για να κάνει την παραγώγιση. Αντιθέτως, αν

δώσουμε τον ορισμό της f χωρίς τις άνω και κάτω τελείες:

In[114]:= f[x_] = D[x3,x]

Out[114]= 3x2

τότε για την αριθμητική τιμή,

In[115]: = f[2]

Out[115]= 12

δεν υπάρχει κανένα πρόβλημα. Η διαφορά αυτή οφείλεται στη διαφορετικότητα των

δύο ορισμών, για τον ορισμό των συναρτήσεων. Με τον πρώτο ορισμό, το

ΜΑΤΗΕΜΑTICA δεν υπολογίζει την παράγωγο την ίδια στιγμή του ορισμού. Θα

υπολογίσει την παράγωγο, όταν καλέσουμε την συνάρτηση f, πράγμα που γίνεται

Page 24: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

24

όταν του ζητήσουμε την αριθμητική τιμή. Όμως τότε έχει ήδη αντικαταστήσει το x με

το 2 και έτσι όταν επιχειρεί να βρει την παράγωγο δεν βρίσκει την ανεξάρτητη

μεταβλητή x, αλλά τον αριθμό 2, και διαμαρτύρεται.

Ολοκληρώματα

Με την εντολή Integrate, μπορούμε να υπολογίσουμε αόριστα ή ορισμένα

ολοκληρώματα αφού θυμηθούμε την σύνταξη της σχετικής εντολής:

Integrate[f[x], x] υπολογίζει το αόριστο ολοκλήρωμα dxxf )( ενώ

Integrate[f[x], {x,a,b}] υπολογίζει το ορισμένο ολοκλήρωμα b

a

dxxf )(

Μερικά παραδείγματα

Έστω η συνάρτηση f(x) = 3x2 και ζητούμε το αόριστο ολοκλήρωμα της ως προς x.

Ιn[116] := Integrate [3x2 , x]

Out [116]= x3

ή χρησιμοποιώντας το σύμβολο του ολοκληρώματος από την παλέτα BasicInput :

In[117] := dxx2

3

Out[117]= x3

Για το ορισμένο ολοκλήρωμα της ίδιας συνάρτησης, με όρια 1 και 2 έχουμε:

In[118]:= Integrate[3x2, {x, l, 2}]

Out[118]= 7

ή από την παλέτα

In[119] : = 2

1

23 dxx

Out(119]= 7

Στην περίπτωση που το ΜΑΤΗΕΜΑTICA αποτυγχάνει να υπολογίσει ή χρησιμοποιεί

άλλα βοηθητικά ολοκληρώματα, για να υπολογίσει ένα ορισμένο ολοκλήρωμα,

μπορούμε να προσπαθήσουμε να επιλύσουμε αριθμητικά δίνοντας την εντολή

NIntegrate αντί για την Integrate.

Υπολογισμός του ορισμένου ολοκληρώματος 1

0

2 )sin( dxx

In[120] := 1

0

2][ dxxSin

Out[120] = 2

FresnelS [

2]

Βλέπουμε δηλαδή ότι το ΜΑΤΗΕΜΑTICA δίνει αποτέλεσμα χρησιμοποιώντας το

ολοκλήρωμα FresnelS(z), ( z

dttzC0

2 )2/cos()( ) ενώ η αριθμητική ολοκλήρωση

δίνει αμέσως το αποτέλεσμα:

Page 25: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

25

In[121] := NIntegrate[Sin[x2], {x, 0, 1}]

Out[121] = 0.310268

Παράδειγμα συνδυασμού παραγώγου και ολοκληρώματος. Να βρεθεί το μήκος τόξου

της καμπύλης y = x3/2

από x = 0 έως x = 5

Ως γνωστόν το μήκος τόξου ΑΒ μιάς καμπύλης y = f(x), όπου η f(x) και η παράγωγος

της είναι συνεχείς συναρτήσεις στο διάστημα α≤x≤b, δίνεται από τη σχέση

s= ab

ds = dxdx

dyb

a

2

1

Άρα σχεδιάζοντας την συνάρτηση για να δούμε το τόξο, του οποίου το μήκος ζητάμε,

θα έχουμε,

In[122]:= Plot[x3/2

, {x, 0, 5}]

1 2 3 4 5

2

4

6

8

10

Out[122]= -Graphics-

και το ζητούμενο τόξο θα είναι:

In[123] := s=

5

0

22

3

],[1 dxxxD

Out[123]= 27

335

Να υπολογισθεί το ολοκλήρωμα της ποσότητας

2))('(1 xh όταν h(x)=sin(x+xsin(x)), στο διάστημα [0, 2π].

Δίνουμε την εντολή,

In[124] := h[x_ ] :=Sin[x + x + Sin[x]]

για τον ορισμό της συνάρτησης και από την παλέτα δίνουμε για το ορισμένο

ολοκλήρωμα την εντολή:

In[125]:= 2

0

2][1 dxxh΄

Παρατηρούμε ότι το ΜΑΤΗΕΜΑTICA δεν δίνει αποτέλεσμα, αλλά έχει με κίτρινο

χρώμα τη δεξιά αγκύλη του cell, που περιέχει το ολοκλήρωμα, και πάνω αριστερά

Page 26: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

26

στο φύλλο εργασίας, γράφει Running...και δίπλα το όνομα του φύλλου εργασίας.

Αυτό σημαίνει ότι το ΜΑΤΗΕΜΑTICA συνεχίζει να προσπαθεί να υπολογίσει το

ολοκλήρωμα που του έχουμε ζητήσει. Λόγω της δυσκολίας υπολογισμού του

ολοκληρώματος, χρειάζεται να διακόψουμε την προσπάθεια υπολογισμού.

Πηγαίνουμε στο menu και στην επιλογή Kernel, και επιλέγουμε από αυτήν την

εντολή Abort Evaluation. To ΜΑΤΗΕΜΑTICA θα σταματήσει την προσπάθεια

υπολογισμού του ολοκληρώματος και θα απαντήσει:

Out[125]= $Aborted

Γενικά σε κάθε περίπτωση, που το ΜΑΤΗΕΜΑTICA «χαθεί» σε υπολογισμούς για

οποιδήποτε (π.χ. δώσαμε λάθος δεδομένα και συνεπώς ο υπολογισμός είναι χωρίς

νόημα), μπορούμε να διακόπτουμε τους υπολογισμούς με την εντολή Abort

Evaluation. Το ίδιο αποτέλεσμα έχουμε με το συνδυασμό των πλήκτρων Alt και την

τελεία

In[126]:= NIntegrate[ 2))('(1 xh , {x,0,2π}]

Out[126] = 10.6374

Οπότε βρίσκουμε το αποτέλεσμα με αριθμητική ολοκλήρωση.

Σειρές

Με τη χρήση της εντολής Sum μπορούμε , να αθροίσουμε ένα πεπερασμένο πλήθος

όρων μιας έκφρασης. Η σύνταξη της εντολής είναι:

Sum[έκφραση, {n, n0. n1 }] και ισοδυναμεί με το

1

0

n

nn

Για παράδειγμα ζητάμε το

10

1

4

n

n :

In[127]: = Sum[n4, {n, l, 10}]

Out[127]= 25333

ή αν χρησιμοποιήσουμε την παλέτα,

In[128]: =

10

1

4

n

n

Out[128]= 25333

Άλλο παράδειγμα με το πάνω όριο να είναι το άπειρο.

In[l29]:= Sum[!

1

n {n, 0, ∞}]

Out[l29]= e

Αν θέλουμε να έχουμε το αποτέλεσμα προσεγγιστικά, μπορούμε να δώσουμε,

Page 27: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

27

In[l30]: = NSum[!

1

n,{n, 0, ∞}]

Out[l30] = 2.71828

Σειρά Taylor και Διωνυμικό Ανάπτυγμα

Αν έχουμε μία συνάρτηση f(x) για την οποία υπάρχουν οι παράγωγοι της

f΄(x), f΄΄(x), ..., f(n)

(x) και είναι συνεχείς στο κλειστό διάστημα [α, b] και υπάρχει η

f(n+1)

(x) στο ανοικτό διάστημα (α, b), τότε η f(x) μπορεί να υπολογισθεί από τη σχέση,

n

nn

Raxn

xfax

xfaxafafxf

)(

!

)(...)(

!2

)())(()()(

)(2

όπου το Rn λέγεται υπόλοιπο και δίνεται από την σχέση,

),(,)()!1(

)( 1)1(

xaaxn

fR n

n

n

.

Συχνά ο τύπος αυτός λέγεται τύπος του Taylor για την f(x) και χρησιμοποιείται για να

την προσεγγίζουμε με ένα πολυώνυμο, οπότε το Rn λέγεται σφάλμα της προσέγγισης.

Αν το 0lim

nn

R τότε η σειρά που προκύπτει λέγεται σειρά Τaylor, για την f(x) στο

σημείο x = α. Αν α = 0 η σειρά λέγεται σειρά Maclaurin.

Η εντολή Series, μας οδηγεί στην εύρεση της σειράς Taylor της συνάρτησης. Η

σύνταξη της είναι: Series[συνάρτηση, (x,a,n}] και δίνει το ανάπτυγμα γύρω από το a

με n όρους.

ΙΊαραδείγματα.

In[131]: = Series[Sin [x], {x, 0, 8}]

Out[l3l]= 9753

][50401206

xOxxx

x

όπου το 9][xO σημαίνει ότι η σειρά δεν έχει εκτιμήσει τους όρους ένατης τάξης και

πάνω. Αν θέλουμε να παραλείπεται αυτός ο συμβολισμός δεν έχουμε παρά να

γράψουμε:

In[l32]:= Normal[%]

Out[l32J=50401206

753 xxxx

Ομοίως για τη συνάρτηση cos(x) θα έχουμε,

In[l33]:= Series[Cos[x], {x, 0, 8}]

Out[l33]= 98642

][40320720242

1 xOxxxx

Και για την ex θα έχουμε ότι

In[l34]:= Series[ex, {x, 0, 8}]

Page 28: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

28

Out[l34]= 98765432

][4032050407201202462

1 xOxxxxxxx

x

Η εντολή Series δουλεύει και για συναρτήσεις δύο μεταβλητών

In[135]: = Series[Sin[x*y], {x, 0, 7}, {y, 0, 7}]

Out[135] = 8787

585

383

8 ][][5040

][120

][6

)][( yOxyOy

xyOy

xyOy

xyOy

Για να βρούμε το διωνυμικό ανάπτυγμα χρησιμοποιούμε πάλι την εντολή Series. Η

σύνταξη της τώρα είναι: Series[συνάρτηση, (x, 0, n}] και δίνει το διωνυμικό

ανάπτυγμα γύρω από το 0 με n όρους.

Παραδείγματα

In[136]: = Series[(x+y)4, {x, 0, 4}]

Out[136] = 5432234 ][464 xOxyxxyxyy

In[136]: = Normal[%]

Out[136] = 432234 464 xyxxyxyy

Διωνυμικό ανάπτυγμα μπορούμε εύκολα να υπολογίσουμε με την εντολή Expand.

Σχεδιάζοντας με το MATHEMATICA στο επίπεδο

Η εντολή Plot Υπάρχουν αρκετές εντολές και συνεπώς πολλοί τρόποι να σχεδιάσουμε μια εικόνα

δυο διαστάσεων στο MATHEMATICA. Για τις συναρτήσεις όμως μιας μεταβλητής ,

η μόνη εντολή που χρειαζόμαστε είναι η Plot:

Plot[f[x], {x,a,b}]

όπου x είναι η μεταβλητή στον οριζόντιο άξονα, που θα μεταβληθεί από το a έως το

b. Aν θέλουμε να σχεδιάσουμε τη συνάρτηση f(x) = sinx στο διάστημα από -2π έως

2π, αρκεί να δώσουμε την εντολή:

In [137]: = Plot [Sin [x], {x, -2π, 2π}]

-6 -4 -2 2 4 6

-1

-0.5

0.5

1

Out[137]= -Graphics-

Page 29: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

29

Όπως παρατηρούμε, το MATHEMATICA ρυθμίζει αυτόματα το διάστημα κίνησης

της μεταβλητής στον κάθετο άξονα. Στην περίπτωση όμως που εμείς θέλουμε να ορί-

σουμε αρχή και τέλος στον άξονα αυτό, μπορούμε να συμπληρώσουμε την πιο πάνω

εντολή με την επιλογή PlotRange:

In [138]: =Plot[Sin[x], {x, -2π, 2π}, PlotRange→{-5, 5}]

-6 -4 -2 2 4 6

-4

-2

2

4

Out[138]= -Graphics-

Ομοίως:

In[139]:= Plot[Cos[x]5 , {x, -2π, 2π}]

-6 -4 -2 2 4 6

-0.2

-0.1

0.1

0.2

In[139]= -Graphics-

Και

In [140]:= Plot[Cos[x]5, {x.-2π, 2π}, PlotRange→All]

-6 -4 -2 2 4 6

-1

-0.5

0.5

1

Out[140]= -Graphics-

Αν θέλουμε να έχουμε την ίδια αναλογία και στους δύο άξονες ή κάποια

συγκεκριμένη αναλογία μεταξύ των δύο αξόνων, τότε κάνουμε χρήση της εντολής

AspectRatio:

Ιn[142]:= Plot[Sin[x], {x,-2π, 2π}, AspectRatio→1/5]

Page 30: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

30

-6 -4 -2 2 4 6

-1

-0.5

0.5

1

Out[142]= -Graphics-

οπότε έχουμε πενταπλάσιο το μήκος του άξονα των x από αυτόν των y.

Πολλές φορές η χρήση της εντολής αυτής επιβάλλεται για να έχουμε λεπτομερέστερη

παρουσίαση της εικόνας, όπως φαίνεται στο παρακάτω παράδειγμα.

Ιn[143]: = Plot [ Cos [x], {x, 0, 30π}]

20 40 60 80

-1

-0.5

0.5

1

Out[143]= -Graphics-

Αν χρησιμοποιήσουμε τώρα την εντολή AspectRatio, παίρνουμε,

In [144]: = Plot [Cos [x], {x,0, 30π}], AspectRatio→0.2]

20 40 60 80

-1

-0.5

0.5

1

Out[144]= -Graphics-

όπου η γραφική παράσταση στη δεύτερη περίπτωση είναι ασφαλώς πιο "ευπαρουσί-

αστη".

Υπάρχει η δυνατότητα η AspectRatio, να πάρει και τη τιμή Automatic οπότε η

γραφική Παράσταση αποκτά μια διαφορετική μορφή:

In[145]:= Plot[x, {x, -1, 1}]

-1 -0.5 0.5 1

-1

-0.5

0.5

1

Out[145]= -Graphics-

και με την επιλογή της AspectRatio:

Page 31: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

31

In[146]:= Plot[x, {x, -1, 1}, AspectRatio→ Automatic]

-1 -0.5 0.5 1

-1

-0.5

0.5

1

Out[146]= -Graphics-

Φαίνεται καθαρά ότι μόνο στη δεύτερη περίπτωση η διχοτόμος είναι σωστά σχεδια-

σμένη, έχει δηλαδή την κλίση πού πρέπει. Η Automatic είναι χρήσιμη παράμετρος

κυρίως όταν θέλουμε να δούμε «σωστά» γωνίες και κύκλους (έτσι αποφεύγουμε να

βλέπουμε τους κύκλους σαν ελλείψεις). Στη περίπτωση που θέλουμε να σχεδιάσουμε

περισσότερες από μία συναρτήσεις ταυτόχρονα, πρέπει να προσέξουμε δυο σημεία.

Πρώτον, το σύνολο των συναρτήσεων να είναι μέσα σε αγκύλες { } και δεύτερον οι

συναρτήσεις να χωρίζονται μεταξύ τους με κόμματα. Π.χ.:

In [147]: = Plot[{Sin[x], Cos[x] , x3 } , {x, -2π, 2π}]

-6 -4 -2 2 4 6

-4

-2

2

4

Out[147]= -Graphics-

όπου σχεδιάσαμε το sinx το cosx και το x3 στο διάστημα [-2π, 2π].

Εισαγωγή Σχολίων

Αν για κάποιο λόγο θέλουμε να βάλουμε σχόλια στην εικόνα θα πρέπει να χρησιμο-

ποιήσουμε την εντολή PlotLabel, μέσα στη Plot, αρκεί να μην ξεχνάμε τα σχόλια

αυτά να είναι μέσα σε διπλές αποστρόφους " ".

Συνεχίζοντας το προηγούμενο παράδειγμα:

In[148] : =Plot[{Sin [x], Cos[x], x3}, {x, ~2π, 2π} ,

PlotLabel → "Figure of sinx, cosx and x3" ]

Page 32: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

32

-6 -4 -2 2 4 6

-4

-2

2

4

Figure of sinx , cosx and x3

Out[148]= -Graphics-

οπότε θα έχουμε τον τίτλο που ορίσαμε μέσα στις αποστρόφους. Το μέγεθος των

γραμμάτων μπορούμε να το αλλάξουμε με το συνδυασμό των εντολών StyleForm

και FontSize. Έτσι αν για παράδειγμα θέλουμε να μεγαλώσουμε τα γράμματα του

τίτλου που βάλαμε, θα πρέπει να δώσουμε την εντολή:

In[149]: = Plot[ {Sin [x], Cos[x], x3 } , {x, -2π, 2π} ,

PlotLabel → StyleForm[ "Figure of sinx, cosx and x3",

Fontsize → 18]]

-6 -4 -2 2 4 6

-4

-2

2

4

Figure of sinx, cosx and x3

Out[149]= -Graphics-

Βέβαια μπορούμε να αλλάξουμε, αν θέλουμε, και την γραμματοσειρά (font) στα

σχόλια μέσω της εντολής FontForm. Π.χ.

In[150]: = Plot [ {Sin [x], Cos[x], x3 }, {x, -2π, 2π}, PlotLabel →

FontForm [ " Figure of sinx, cosx and x2 ",

{"Times - Boldltalic"/ 22}]]

-6 -4 -2 2 4 6

-4

-2

2

4

Figure of sinx, cosx and x3

Out[150]= -Graphics-

για να χρησιμοποιήσει, αντί της γραμματοσειράς Courier που χρησιμοποιεί το

MATHEMATICA, την Times σε έντονο και πλάγιο τύπο και σε μέγεθος 22. Πιο

Page 33: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

33

συνηθισμένη απαίτησή μας, είναι η τοποθέτηση συμβόλων στους άξονες. Στη

περίπτωση αυτή πρέπει να δώσουμε την εντολή AxesLabel, πάλι μέσα στην Plot,

όπως παρακάτω:

In[151]: =Plot[{Sin[x], Cos[x], x3 } , {x, -2π, 2π} , AxesLabel → {"x", "y"}]

-6 -4 -2 2 4 6x

-4

-2

2

4

y

Out[l51]= -Graphics-

προσέχοντας μέσα στις αγκύλες της AxesLabel να βάζουμε τις διπλές αποστρόφους.

Στο πρώτο ζευγάρι βάζουμε το σχόλιο για τον οριζόντιο άξονα ενώ στο δεύτερο

ζευγάρι βάζουμε το σχόλιο για τον κατακόρυφο.Aν προσπαθήσουμε να βάλουμε και

τίτλο και σύμβολα στους άξονες, τότε το σύμβολο στον κατακόρυφο άξονα θα πέσει

πάνω στον τίτλο. Για να αποφεύγουμε αυτό το πρόβλημα, θα πρέπει να ορίζουμε

εμείς την θέση του τίτλου σε όποια θέση του σχήματος θέλουμε. Οι εντολές που θα

πρέπει να χρησιμοποιούμε, για να ελέγχουμε τη θέση του τίτλου, είναι οι Epilog και

Text. Π.χ.:

In [152]: = Plot[{Sin[x], Cos[x], x3}, {x, -2π, 2π}, AxesLabel → {"x", "y"},

Epilog→{Text["Figure of sinx and x2", {0, 3}] } ];

-6 -4 -2 2 4 6x

-4

-2

2

4

y

Figure of sinx , cosx and x3

όπου με τους αριθμούς {0, 3}, έχουμε ορίσει τις συντεταγμένες του κέντρου (πλάτος,

ύψος) του τίτλου. Την γραμματοσειρά και το μέγεθος των αριθμών των αξόνων

μπορούμε να τα αλλάξουμε με χρήση της εντολής DefaultFont. Αν στο προηγούμενο

παράδειγμα θέλουμε να βάλουμε τους αριθμούς με τη γραμματοσειρά Times και

έντονους στο μέγεθος 16, θα πρέπει να δώσουμε την εντολή:

In [153]: = Plot[{Sin[x], Cos [x], x2}, {x, -2π, 2π}, DefaultFont→

{"Times - Bold", 16} ]

6 4 2 2 4 6

4

2

2

4

Out[153]= -Graphics-

Page 34: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

34

Στη περίπτωση που μας ζητείται π.χ. η γραφική παράσταση της συνάρτησης f(x) =

cos3 x να γίνει μέσα σε πλαίσιο, μπορούμε να το πετύχουμε με την εντολή Frame,

ενώ αν θέλουμε να βάλουμε μέσα στο πλαίσιο κάθετες και οριζόντιες γραμμές θα

πρέπει να συμπληρώσουμε την πιο πάνω εντολή και με την GridLines, δηλαδή:

In[154]: = Plot [Cos [x]3, {x, 0, 2π}, Frame → True, GridLines →Αutomatic]

0 1 2 3 4 5 6

-1

-0.5

0

0.5

1

Out[154]= -Graphics-

Τις γραμμές, το MATHEMATICA, τις σχεδιάζει με χρώμα μπλε και πάνω στις κύριες

υποδιαιρέσεις των αξόνων του. Αν εμείς επιθυμούμε τις κατακόρυφες ή τις οριζόντιες

γραμμές να τις φέρνει σε συγκεκριμένες θέσεις, δεν έχουμε παρά να δηλώσουμε

αυτές τις θέσεις μέσα στις GridLines, τοποθετημένες σε αποστρόφους. Σ' αυτή την

περίπτωση, η εντολή Plot θα πρέπει να περιέχει την επιλογή της GridLines στη

μορφή:

In[155]: = …GridLines→{{π/2, π, 3π/2, 2π, 5π/2}, Automatic}…

Η εντολή PlotStyle.

Πολλές φορές θα χρειαστεί να σχεδιάσουμε περισσότερες από μία συναρτήσεις στους

ίδιους άξονες. Σ' αυτές τις περιπτώσεις, γεννιέται η απαίτησή μας να έχουμε τη κάθε

συνάρτηση διαφορετικά σχεδιασμένη για να ξεχωρίζουν αμέσως. Βέβαια μπορούμε

να αλλάζουμε το χρώμα σε κάθε συνάρτηση και έτσι να διακρίνουμε τις καμπύλες

που παράγονται από τις διάφορες συναρτήσεις. Η λύση είναι να δίνουμε συνεχείς ή

διακεκομμένες γραμμές ή αποχρώσεις του μαύρου χρώματος ή διαφορετικό πάχος σε

κάθε συνάρτηση για να ξεχωρίζουν μεταξύ τους. Έστω ότι μας ζητείται να

σχεδιάσουμε, στο ίδιο σχήμα, τις συναρτήσεις,

f(x) = cosx και g(x) = x3

στο διάστημα [-2, 2].

Ένας τρόπος είναι να σχεδιάσουμε πρώτα την f(X),

Ιn[156]:=Plot [Cos[x]3 , {x, -2, 2}]

-2 -1 1 2

0.2

0.4

0.6

0.8

1

Out[156]= -Graphics-

Page 35: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

35

και μετά με χρήση της εντολής Dashing μέσω της PlotStyle, να σχεδιάσουμε την

g(x) διακεκομμένη,

In [157] : =Plot[Sin[x]3, {x, -2, 2} , PlotStyle →Dashing [{0.02, 0.03}]]

-2 -1 1 2

-1

-0.5

0.5

1

Out [157]= -Graphics-

όπου οι αριθμοί μέσα στις αγκύλες της Dashing δηλώνουν ο μεν πρώτος το μήκος του

στίγματος, ο δε δεύτερος το μήκος της απόστασης μεταξύ δύο διαδοχικών στιγμάτων.

Και οι δύο αριθμοί πρέπει να είναι πραγματικοί και να κυμαίνονται μεταξύ του 0 και

1 (όσο πλησιάζουμε στην μονάδα τόσο μεγαλύτερα γίνονται τα μήκη των στιγμάτων

και τόσο μεγαλύτερες οι αποστάσεις μεταξύ τους). Αν τυχόν παραλείψουμε τον ένα

από τους δύο αριθμούς, η εντολή Dashing θα εξακολουθεί να δουλεύει θεωρώντας

ότι ο αριθμός που έχουμε γράψει θα δηλώνει και το μήκος του στίγματος και το

μήκος της απόστασης μεταξύ των στιγμάτων, θα είναι δηλαδή ισοδύναμο με το να

γράφουμε δύο φορές μέσα στην Dashing τον ίδιο αριθμό. Mε την εντολή Show,

μπορούμε να δείξουμε τις δύο προηγούμενες γραφικές παραστάσεις μαζί:

In[158]:= Show[%, %%]

-2 -1 1 2

-1

-0.5

0.5

1

Out[158]= -Graphics-

Βέβαια έχουμε τρία σχήματα (γραφικά αποτελέσματα) ενώ πολύ πιθανόν να μας

ενδιαφέρει μόνο το τελευταίο. Υπάρχει η δυνατότητα όμως με την εντολή Display-

Function να μην επιτρέπουμε να παρουσιάζονται οι γραφικές παραστάσεις που

δεν μας ενδιαφέρουν. Έτσι αν δεν θέλουμε να φαίνονται τα ενδιάμεσα βήματα μέχρι

τo τελικό σχήμα, δεν έχουμε παρά να δώσουμε τις τρεις προηγούμενες εντολές ως

εξής:

In [159]: =Plot[Cos[x]3 ,{x, -2, 2} , DisplayFunction → Identity]

Out[159]= -Graphics-

In[160]:= Plot [Sin[x]3, {x,-2, 2},

Page 36: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

36

PlotStyle →Dashing [{0.02, 0.03}], DisplayFunction →Identity]

Out[160]= -Graphics-

In[161]:= Show[%, %%, DisplayFunction→ $DisplayFunction]

-2 -1 1 2

-1

-0.5

0.5

1

Out[161]= -Graphics-

Μπορούμε επίσης αν θέλουμε να αλλάξουμε την αρχή των αξόνων με την εντολή

AxesOrigin. Π.χ. αν ως αρχή των αξόνων θέλουμε το (1, 0.5) μπορούμε να

γράψουμε:

In[162]: =Plot [Sin[x], {x, 0, 2π} , AxesOrigin → (1, 0.5}]

0 2 3 4 5 6

-1

-0.5

0

1

Out [162]= -Graphics-

Αν μας ζητηθεί στον οριζόντιο άξονα να αντικαταστήσουμε τους αριθμούς με τα

υποπολλαπλάσια και τα πολλαπλάσια του π, θα πρέπει να κάνουμε χρήση της

εντολής Ticks η σύνταξη της οποίας είναι:

Ticks→{{οριζόντιος άξονας}, {κατακόρυφος άξονας}}.

In [163] : =Plot [Sin [x] , {x, 0, 2π}, Ticks→

{{0, π/2, π, 3π/2, 2π}, Automatic}]

2 3 3 2

-1

-0.5

0.5

1

Out[163]= -Graphics-

Page 37: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

37

παίρνουμε το επιθυμητό αποτέλεσμα, βάζοντας σε ζευγάρια από άγκιστρα, τη θέση

στον άξονα που θα μπει το νέο σύμβολο, μετά κόμμα και κατόπιν το ίδιο το σύμβολο

(μέσα σε αποστρόφους το τελευταίο), επιλέγοντας για τη συγκεκριμένη περίπτωση το

σύμβολο του π από την παλέτα Basiclnput. Εδώ αφήσαμε τον κατακόρυφο άξονα να

γίνει αυτόματα. Αν θέλουμε να ορίσουμε και σ' αυτόν ποια ticks να μπουν, θα πρέπει

η εντολή να γίνει,

In [164]: =Plot [Sin [x] , (x, 0, 2π} , DefaultFont → {"Symbol", 14}, Ticks→{{0,

π/2, π, 3π/2, 2π}, {-0.5, 0.5}}]

Out[164]= -Graphics-

όπου βάλαμε μόνο όσους αριθμούς θέλαμε να υπάρχουν στον άξονα και μάλιστα

αλλάξαμε και τη γραμματοσειρά σε Symbol μεγέθους 14 για όλα τα σύμβολα και

τους αριθμούς. Αν δηλαδή δίνουμε μόνο θέσεις των ticks θα μπαίνουν μόνο αυτά. Αν

δίνουμε εκτός από τις θέσεις και νέα σύμβολα (μέσα σε αποστρόφους), τότε αντι-

καθίστανται οι παλιοί αριθμοί, με τα νέα σύμβολα.

Επιγραφή σε γραφική παράσταση. Πολλές φορές η μορφή της εικόνας δύο ή περισσότερων γραφικών παραστάσεων στο

ίδιο σχήμα, απαιτεί να έχουμε κάποιο σχόλιο για να φαίνεται ποια καμπύλη είναι

αυτή με τη συνεχή γραμμή και ποια με τη διακεκομμένη, χωρίς να είμαστε υποχρε-

ωμένοι να πηγαίνουμε στην εντολή PlotStyle για να δούμε πως έχουμε ρυθμίσει τις

γραμμές των συναρτήσεων.

Αν για παράδειγμα έχουμε να σχεδιάσουμε μαζί τις συναρτήσεις ex και x

e στο ίδιο

σχήμα, θα πρέπει να δώσουμε την πρώτη (που εδώ έχουμε ονομάσει p1) από τις πιο

κάτω εντολές:

In [165]:=p1=Plot[{ex, x

e},{x, 0.5}, DisplayFunction→Identity];

In[166]: =p2 = Plot[{ex, x

e}, {x, 0.5},

PlotStyle→{{}, Dashing [{0.02}]}, Display Function→Identity];

Show [GraphicsArray[{p1,p2}]]

1 2 3 4 5

20406080

100120140

1 2 3 4 5

20406080

100120140

Page 38: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

38

Out[166]= -GraphicsArray-

Σ' αυτή τη περίπτωση παίρνουμε το αριστερό σχήμα από τις πιο πάνω γραφικές πα-

ραστάσεις. Αν σχεδιάσουμε τη μία με διακεκομμένη γραμμή, και την άλλη με

συνεχή, θα πρέπει να δώσουμε τη δεύτερη εντολή (με την ονομασία p2), οπότε

παίρνουμε τη δεξιά εικόνα. Πρέπει όμως να ανατρέξουμε στις επιλογές της εντολής

Plot για να δούμε ποια από τις δύο είναι η συνεχής και ποια η διακεκομμένη. Στη

συγκεκριμένη περίπτωση δώσαμε τις εντολές Show και GraphicsArray για να

παρουσιάσουμε δίπλα-δίπλα τις δύο γραφικές παραστάσεις, που είχαμε ονομάσει p1

και p2, αφού πρώτα είχαμε μεριμνήσει με την εντολή DisplayFunction, να μην

αφήσουμε να τυπωθούν μία-μία οι εικόνες τους. Για να εισάγουμε σχόλια για τη

μορφή των γραμμών σε ένα σχήμα, θα πρέπει πρώτα να φορτώσουμε το σχετικό

πακέτο του MATHEMATICA με την ονομασία Legend:

In[167]: = Needs["Graphics`Legend"]

και μετά να δώσουμε την εντολή PlotLegend. Θυμίζουμε ότι η μονή ανάποδη από-

στροφος βρίσκεται στο πλήκτρο μαζί με το σύμβολο ~. Ισοδύναμη εντολή με την

Needs είναι και η:

In[168]:= « Graphics`Legend`

χωρίς τις διπλές αποστρόφους. Μέσα στις αγκύλες της εντολής PlotLegend δίνουμε

την ονομασία της κάθε συνάρτησης ξεχωριστά (χωρίζοντας την κάθε μία από την

επόμενη της, με κόμμα) οπότε κάθε μία από αυτές, αυτόματα στο σχήμα, θα

συνοδεύεται από μία λεζάντα-επιγραφή που θα περιέχει το όνομα της συνάρτησης

καθώς και τη μορφή της γραμμής της (συνεχής, διακεκομμένη, παχιά, λεπτή,

έγχρωμη κ.λ.π.). Για να εφαρμόσουμε αυτά που προαναφέραμε, στις συναρτήσεις του

πιο πάνω παραδείγματος μας, γράφουμε τις εντολές,

In [169] : = p3 = Plot [{ex, x

e}, {x, 0, 5}, Plot Style→{{}, Dashing [{0.02}]},

PlotLegend→{ex, x

e}, DisplayFunction→Identity] ;

In [170]: = p4= Plot[{ex, x

e}, {x, 0, 5),PlotStyle→{{ },Dashing[{0.02}]},

Ρlot Legend→{ex, x

e}, LegendPosition→ {-0.5, 0},

LegendSize→ {0.6, 0.4}, LegendLabel→"plot of",

LegendBackground→RGBColor [ 1, 1, 0],

DisplayFunction→Identity];

Show[GraphicsArray [{p3, p4}]]

1 2 3 4 5

20406080

100120140

x

x

1 2 3 4 5

20406080

100120140

x

xPlot of

Out [170]= -GraphicsArray-

Page 39: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

39

οπότε βλέπουμε τη λεζάντα όπως μπαίνει αυτόματα από το MATHEMATICA στην

κάτω αριστερή γωνία (αριστερό σχήμα, πρώτη εντολή με την ονομασία p3). Με την

δεύτερη εντολή (ονομασία p4), ορίσαμε τη θέση της λεζάντας με την εντολή

LegendPosition, το μέγεθος της με την εντολή LegendSize, δώσαμε τίτλο στη

λεζάντα με την εντολή LegendLabel και τέλος ορίσαμε το χρώμα στο χώρο της

λεζάντας με την εντολή LegendBackground. Με τον τρόπο αυτό, πήραμε το δεξιό

σχήμα. Όταν ορίζουμε εμείς τη θέση της λεζάντας, θα πρέπει να παίρνουμε υπόψη

μας ότι οι συντεταγμένες της είναι με αρχή το κέντρο του σχήματος, και οι άκρες του

σχήματος τρέχουν από το -1 έως το 1. Δηλαδή η κάτω αριστερή γωνία του σχήματος

μας θεωρείται το σημείο (-1, -1) και η άνω δεξιά το (1, 1). Συνηθίζουμε λοιπόν, για

να έχουμε τη λεζάντα κοντά στο σχήμα μας, να βάζουμε συντεταγμένες που να

κυμαίνονται από το -1 έως το 1. Στην οθόνη μας θα βλέπουμε το φόντο στη δεξιά

λεζάντα, του παραπάνω σχήματος, σε κίτρινο χρώμα αφού έτσι το ορίσαμε με την

επιλογή της RGBColor.

Λογαριθμικοί άξονες

Αν θέλουμε ο κάθετος άξονας να είναι λογαριθμικός, τότε θα πρέπει να

αντικαταστήσουμε την εντολή Plot με την εντολή LogPlot. Η εντολή αυτή

συντάσσεται όπως η Plot, αλλά χρειάζεται πριν, να φορτώσουμε το πακέτο

Graphics. Έτσι δίνουμε:

In [171] : = Needs ["Graphics `Graphics` "]

και μετά χρησιμοποιούμε τις ίδιες εντολές όπως πριν, αντικαθιστώντας την Plot με

LogPlot και χωρίς την επιλογή για τη δημιουργία λεζάντας. Φροντίζουμε με την

Εντολή DisplayFunction να απαγορεύουμε την εμφάνιση των σχημάτων κατά την

στιγμή της δημιουργίας τους από τις εντολές Plot.

In [172]:= p5 =LogPlot[{ex, x

e}, {x, 0, 5},

PlotStyle→{{}, Dashing [{0.02}]}, DisplayFunction→Identity];

In [173]:= p6 = LogPlot[{ex, x

e }, {x, 1, 5},

PlotStyle →{{}, Dashing[{0 .02}]}, DisplayFunction →Identity];

In [174] := p7 = LogPlot[{ex, x

e}, {x, 1, 5}, PlotStyle →{{}, Dashing[{0.02}]},

GridLines →Automatic, DisplayFunction →Identity];

Show[GraphicsArray[{p5, p6}]]

Show[{p7}, DisplayFunction →$DisplayFunction]

0 1 2 3 4 5

1. 106

0.00010.01

1

100

1 2 3 4 512

51020

50100

Out[174]= -GraphicsArray-

Page 40: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

40

1 2 3 4 5

1

2

5

10

20

50

100

Out[174]= -Graphics-

Αριστερά έχουμε σχεδιάσει τις συναρτήσεις από το 0 έως το 5, ενώ δεξιά από το 1

έως το 5. Ο κάθετος άξονας και στις δύο γραφικές παραστάσεις είναι σε λογαριθμική

κλίμακα. Στην τρίτη εικόνα, όπου έχουμε χρησιμοποιήσει την εντολή GridLines,

βλέπουμε σαν σε λογαριθμικό χαρτί την γραφική παράσταση των συναρτήσεων. Στην

περίπτωση που θέλουμε να έχουμε και στους δύο άξονες λογαριθμική κλίμακα,

τότε θα πρέπει να κάνουμε χρήση της εντολής LogLogPIot .

Γραφική παράσταση παραμετρικών εξισώσεων

Έστω πως θέλουμε να σχεδιάσουμε τις παραμετρικές εξισώσεις:

x = f(t) και y = g(t) με t την παράμετρο.

Η σχετική εντολή είναι:

In[175]:= ParametricPlot[{f[t],g[t]}, {t, a, b}]

όταν το t[a,b], αφού πρώτα έχουμε φροντίσει οι συναρτήσεις να είναι ορισμένες από

πριν ή διαφορετικά να τις ορίσουμε μέσα στις αγκύλες { ).

Παραδείγματα

• Να γίνει η γραφική παράσταση των παραμετρικών εξισώσεων:

x = t2 και y = t + 1 όταν το t[-2, 2]

In[176]:= ParametricPlot [{t2, t+1}, {t, -2, 2}, AxesLabel →{"x", "y"}]

1 2 3 4

x

-1

1

2

3

y

Out [176 ]= -Graphics-

δίνει τη ζητούμενη γραφική παράσταση. Παρατηρούμε ότι οι άξονες της γραφικής

παράστασης είναι x για τον οριζόντιο και y για τον κατακόρυφο.

Page 41: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

41

• Ομοίως, να γίνει η γραφική παράσταση του κύκλου (ακτίνας 2) μέσω των

παραμετρικών εξισώσεων:

x=2cost και y= 2sint, όταν t [0, 2π]

Ιη[177]: = ParametricPlot[{2Cos[t], 2Sin[t]}, {t, 0, 2π}, AspectRatio→Automatic]

-2 -1 1 2

-2

-1

1

2

Out[177]= -Graphics-

• Να σχεδιαστούν οι δύο προηγούμενες γραφικές παραστάσεις για t [0,2π], με μία

εντολή ParametricPlot

Η εντολή σε αυτήν την περίπτωση ακολουθεί ακριβώς την ίδια σύνταξη για δύο

ομάδες παραμετρικών εξισώσεων, δηλαδή:

In[178]:= ParametricPlot[{{t2, t + 1}, {2Cos[t], 2Sin[t]}}, {t, 0, 2π},

PlotRange→{{-2, 4}, {-2, 4}}, AspectRatio -> Automatic]

-2 -1 1 2 3 4

-2

-1

1

2

3

4

Out[178]= -Graphics-

οπότε έχουμε στο διάστημα που μας ορίστηκε τη συνολική γραφική παράσταση. Εδώ

παρατηρούμε ότι με την εντολή PlotRange μπορούμε να ορίζουμε όχι μόνο το

διάστημα στον κάθετο άξονα αλλά και στον οριζόντιο.

Γραφική παράσταση σε πολικές συντεταγμένες.

Είναι γνωστό ότι η θέση ενός σημείου A(x,y) ενός επιπέδου, ως προς ένα σημείο Ο

του επιπέδου μπορεί να προσδιορισθεί ακόμη, από την απόσταση r = OA και τη

Page 42: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

42

γωνία t που σχηματίζει η ημιευθεία ΟΑ με κάποια σταθερή ημιευθεία ΟΧ του

επιπέδου. Οι αριθμοί (r, t) καλούνται πολικές συντεταγμένες. Σε κάθε ζεύγος τέτοιων

αριθμών αντιστοιχεί ένα και μόνο ένα σημείου του επιπέδου. Το αντίστροφο,

προφανώς, δεν ισχύει. Η πολική καμπύλη r = f(t), αποτελείται από τα σημεία που

ικανοποιούν την εξίσωση της. Οι σχέσεις που συνδέουν τις καρτεσιανές με τις

πολικές συντεταγμένες είναι οι: x = r cost και y = r sint.

Παραδείγματα

Η πολική εξίσωση r = at (Σπείρα του Αρχιμήδη)

Ζητείται η γραφική παράστασή της σε πολικές συντεταγμένες όταν α = 2 (μέγεθος

σπείρας) και t [0,2π].

Φορτώνουμε το πακέτο Graphics με την εντολή:

In [179]:= Needs["Graphics`Graphics`"]

προσέχοντας τις διπλές αποστρόφους " ", καθώς και την μονή ανάποδη απόστροφο.

Το πακέτο αυτό περιέχει και την απαραίτητη εντολή PolarPlot, που συντάσσεται

όπως και η Plot. Έτσι αν δώσουμε την εντολή:

In [180]: = PolarPlot[2t, {t, 0, 2π}, AxesLabel→{"t","r"}];

-5 5 10

t

-8

-6

-4

-2

2

x

παίρνουμε τη γραφική παράσταση της σπείρας του Αρχιμήδη σε πολικές συντεταγ-

μένες. Αν θέλουμε μπορούμε να σχεδιάσουμε την ίδια συνάρτηση χωρίς τη χρήση της

PolarPlot, αλλά με την εντολή ParametricPlot, που αναφέραμε προηγουμένως,

αντιμετωπίζοντας την πολική εξίσωση με τις ισοδύναμες της παραμετρικές εξισώσεις

x = r(t) cost και y = r(t) sint. Έτσι αν δώσουμε τις εντολές:

Ιn[181]:= r[t_] := 2t

ParametricPlot [{r [t] * Cos [t] , r[t] * Sin[t] }, {t, 0, 2π}]

-5 5 10

t

-8

-6

-4

-2

2

x

Out[181]= -Graphics-

και παίρνουμε το ίδιο αποτέλεσμα.

Page 43: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

43

Άλλο παράδειγμα σε πολικές συντεταγμένες είναι το τρίφυλλο που δίνεται

από τη σχέση

r = a cos 3t

όταν α είναι το μέγεθος του τρίφυλλου. Αν στη θέση του 3 έχουμε n, ένα περιττό

αριθμό, αυτός δηλώνει το πλήθος των φύλλων.

Η γραφική παράσταση του προκύπτει από την εντολή, για α = 1,

In [182] : = PolarPlot [Cos [3t] , {t, 0, 2π} ]

-0.5 -0.25 0.25 0.5 0.75 1

-0.75

-0.5

-0.25

0.25

0.5

0.75

Out[182]= -Graphics-

είναι η παραπάνω εικόνα πάντα σε πολικές συντεταγμένες.

Να γίνει η γραφική παράσταση τετράφυλλων με τέσσερα διαφορετικά

χρώματα εναλλάξ, όταν η πολική εξίσωση που δίνει το τετράφυλλο είναι,

r = a cos 2t

(ή r = a sin 2t για να έχει κλίση 45 μοιρών), με α το μέγεθος του φύλλου.

In [183]:= PolarPlot[{Cos[2t], Sin[2t], 3Cos[2t]/4, 3 Sin[2t]/4}, {t, 0, 2π},

PlotStyle→{RGBColor [1, 0, 0] , RGBColor [0, 0, 1] ,

RGBColor [0, 1,1], RGBColor [1, 0, 1]}]

-1 -0.5 0.5 1

-1

-0.5

0.5

1

Out[183]= -Graphics-

δίνει τη ζητούμενη γραφική παράσταση. Η πρώτη τετράδα, με τη σειρά που έχουμε

βάλει τις συναρτήσεις, δημιουργεί πρώτα το έξω κόκκινο τετράφυλλο, μετά το έξω

μπλε με κλίση 45 μοιρών, κατόπιν το αμέσως μικρότερο μπλε και τέλος το μικρότερο

κόκκινο με κλίση 45 μοιρών. Ομοίως η επόμενη τετράδα δημιουργεί τα επόμενα

Page 44: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

44

τέσσερα εσωτερικά τετράφυλλα. Αναλυτικά για τα χρώματα σε μία γραφική παρά-

σταση, γίνεται αναφορά στη συνέχεια του κειμένου.

Γραφική παράσταση πεπλεγμένης συνάρτησης

Έστω πως έχουμε την πεπλεγμένη συνάρτηση F(x,y)=0, της οποίας ζητάμε τη γρα-

φική της παράσταση. Η εντολή του MATHEMATICA που χρησιμοποιούμε γι' αυτή

τη περίπτωση είναι η ImplicitPlot. Συντάσσεται όπως η Plot, απαιτεί όμως πριν, να

φορτώσουμε το πακέτο ImplicitPlot .

Για παράδειγμα αν θέλουμε να σχεδιάσουμε τη συνάρτηση,

x2 + y

2=25

στο διάστημα που το x παίρνει τιμές από το —6 έως το 6, δεν έχουμε παρά να

δώσουμε τις εντολές:

In[184] : = Needs["Graphics `ImplicitPlot`"];

In[185]:=ImplicitPlot [x2 + y

2 == 25, {x, -6, 6}]

-4 -2 2 4

-4

-2

2

4

Out [185]= -Graphics-

Προσοχή χρειάζεται ώστε να μην ξεχνάμε τη διπλή ισότητα (χωρίς κενό μεταξύ

τους), όταν δίνουμε την πεπλεγμένη εξίσωση μέσα στην ImplicitPlot.

Χρώμα στη γραφική παράσταση

Τα γράμματα RGB είναι τα αρχικά των λέξεων του κόκκινου του πράσινου και του

μπλε. Για να πάρουμε τα βασικά αυτά χρώματα αρκεί να δώσουμε RGBColor[1,0,0],

RGBColor[0,l,0], RGBColor[0,0,l] αντίστοιχα. Οι τρεις αριθμοί μέσα στις αγκύλες

πρέπει να είναι πραγματικοί και να κυμαίνονται από το 0 έως το 1. Ο συνδυασμός

αυτών των αριθμών σημαίνει στην ουσία την μίξη των βασικών αυτών χρωμάτων.

Έτσι αν δώσουμε για παράδειγμα RGBColor[0.6, 0.8, 0.9] θα έχουμε ανοιχτό μπλε, ή

αν δώσουμε RGBColor[1, 0.4, 0.7] θα πάρουμε ροζ χρώμα.

Αν λοιπόν μας ζητηθεί να σχεδιάσουμε τις συναρτήσεις,

f(x) = sin x,

g(x) = cos 2x και

h(x) = 2

xcos x +

2

1

με κάθε συνάρτηση να έχει διαφορετικό χρώμα, θα πρέπει να δώσουμε την εντολή,

Page 45: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

45

In [186]:=Plot[{ Sin[x] , Cos [2 * x] , 2

x* Cos [x]+

2

1},

{x, -2π, 2π}, PlotRange→{-1.5, 2.2},

PlotStyle→{RGBColor [1, 0,0], RGBColor[0, 1,0], RGBColor[0,0,1]}]

-6 -4 -2 2 4 6

-1.5

-1

-0.5

0.5

1

1.5

2

Out[186]= -Graphics-

όταν με κόκκινο σχεδιάσαμε την f(x), με πράσινο την g(x) και με μπλε την h(x).

Λύσεις εξισώσεων

1) Όταν έχουμε εξίσωση με μόνο άγνωστο τη μεταβλητή x και το MATHEMATICA

δεν χρειάζεται να κάνει χρήση αντίστροφης συνάρτησης για να λύσει ως προς χ, τότε

βρίσκει τη λύση και με την εντολή:

Ιη[187]:= Solve[f[x] ==0]

2) Λύνεται η εξίσωση x2 = -1; Το MATHEMATICA με την εντολή

In[188]:= Solve[x2 == -1, x]

Out[188]={(x→-i}, {x→ i}}

απαντάει ότι λύνεται στο μιγαδικό επίπεδο.

3) Να λυθεί η εξίσωση τετάρτου βαθμού x4 - x

2 = 1 + x. Πάλι με την εντολή Solve θα

έχουμε

In [189]: = Solve [x4 – x

2 = = 1 + x, x]

x 1 , x1

3

1

3

29

2

3 93

2

1 31

3

1

229 3 93

1 3

,

x1

3

1

61 3

29

2

3 93

2

1 31

61 3

1

229 3 93

1 3

,

x1

3

1

61 3

29

2

3 93

2

1 31

61 3

1

229 3 93

1 3

και οι λύσεις είναι δύο πραγματικές και δύο μιγαδικές συζυγείς. Αν θέλουμε το

αποτέλεσμα αριθμητικά θα πρέπει να δώσουμε:

Ιη[190] : = Ν[%]

Out [190] = {{x→-1.}, {x→l.46557},

{x→ -0.232786 + 0.792552 i}, {x→ -0.232786 - 0.792552 i}}

Out[189]=

Page 46: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

46

Συστήματα εξισώσεων. Στη περίπτωση που έχουμε σύστημα εξισώσεων, η εντολή Solve διατηρεί την ίδια

σύνταξη με τη διαφορά τώρα ότι τόσο τις εξισώσεις όσο και τους αγνώστους θα

πρέπει να τους έχουμε μέσα σε άγκιστρα { }.

1) Να λυθεί το σύστημα:

3x + 5x = 2

2x – 3y = 3

In[191] : = Solve [{3x + 5y == 2, 2x - 3y == 3), {x, y)]

Out[191]=

}19

5,

19

21{ yx

λύνει το σύστημα για τους αγνώστους x και y.

2) Να βρεθούν οι λύσεις του συστήματος:

2x2 - 3y = 7

3x + 4y = -1

Η Solve δίνει τις λύσεις

In[192] : = Solve [{2x2 - 3y == 7, 3x + 4y == -1), {x, y}]

881916

1x,881311

64

1y

,881916

1x,

16

8813

16

11

4

1y Out[192]

όπου κάθε ζευγάρι λύσεων το παρουσιάζει μέσα σε άγκιστρα. Αν θέλουμε το απο-

τέλεσμα σε δεκαδική μορφή πρέπει να δώσουμε:

In[193]:=N[%]

Out[193]= {{y→ -1.21945, x→ 1.2926}, {y → 1 . 5632 , x→-2 . 4176 } }

3) Να λυθεί το σύστημα:

3x + 2=1

6x + 4=1

Με την ίδια εντολή για το νέο σύστημα έχουμε:

In [194]: = Solve [{3x+ 2 == 1, 6x + 4 == 1), {x, y}]

Out [194]= { }

Η απάντηση { } από το MATHEMATICA σημαίνει ότι το σύστημα δεν έχει λύση.

4) Έστω οι παραμετρικές εξισώσεις:

αx2 + by

2 = 2

x = ky

Page 47: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

47

Να λυθεί το σύστημα. Και εδώ η Solve,

In [195]:= Solve [{a *x2+b*y

2 -2==0, x==k*y}, {x, y) ]

Out[195]=

2222 akb

2y,

akb

k2x,

akb

2y,

akb

k2x

δίνει την απάντηση με τις παραμέτρους στη λύση.

5) Ας προσπαθήσουμε να λύσουμε τώρα με την Solve μία πολυωνυμική εξίσωση

πέμπτου βαθμού. Έστω η εξίσωση:

3x5 + 3x

4 – 2x

3 + 4x

2 - 1 = 0.

Ορίζουμε τη συνάρτηση και με την εντολή Solve προσπαθούμε να τη λύσουμε,

In [196]:= f[x_]: = 3x5 + 3x

4 – 2x

3 + 4x

2 - 1

Solve [f[x] == 0, x]

Out [196] = {{x→Root[-l + 4#12 - 2 #l

3 +· 3#l

4 + 3 #1

5&, 1]},

{x→Root[-l + 4 #12 - 2 #1

3 + 3 #1

4 + 3 #1

5&, 2]} ,

{x→ Root[-l + 4#12 - 2 #1

3 + 3#l

4 + 3#l

5&, 3]},

{x→ Root[-l + 4 #12 - 2 #1

3 + 3#l

4 + 3#1

5&, 4]},

{x-»Root[-l + 4 #12 - 2 #1

3 + 3 #1

4 + 3#1

5&, 5] }}

όπου κανείς δεν καταλαβαίνει τι εννοεί το MATHEMATICA με αυτή την απάντηση

Μήπως και η εξίσωση δεν έχει λύση και το MATHEMATICA απαντάει με αυτό το

τρόπo; Αν κάνουμε τη γραφική παράσταση της εξίσωσης ίσως έχουμε την απάντηση.

Έτσι δίνουμε,

Ιn[197] : = Plot [f [x] , {x, -2, 1), PlotRange→{-8, 8}]

-2 -1.5 -1 -0.5 0.5 1

-8

-6

-4

-2

2

4

6

8

Out[197] = -Graphics-

και βλέπουμε ότι η εξίσωση έχει τρεις τουλάχιστο πραγματικές ρίζες. Οι άλλες δύο

μπορεί να είναι κάπου μακρύτερα από το διάστημα που σχεδιάσαμε ή μπορεί να είναι

μιγαδικές λύσεις (και μάλιστα συζυγείς).

Αριθμητική επίλυση.

Γίνεται λοιπόν φανερό ότι το MATHEMATICA δεν μπορεί αναλυτικά να λύσει την

εξίσωση. Αν όμως αντί της εντολής Solve δώσουμε την εντολή NSolve, η οποία

συντάσσεται όπως και η Solve, τότε:

In [198]: = NSolve [f[x] == 0, x]

Page 48: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

48

Out [198] ={{x→-1.76893}, {x→-0. 438492}, {x→0. 356916 - 0. 862115 i},

{x→0.356916 + 0.8621151i},{x→0.493595}}

παίρνουμε τις πέντε λύσεις. Η NSolve εντολή έλυσε προσεγγιστικά, με αριθμητικό

τρόπο (χρησιμοποιώντας καθαρά αριθμητικές τεχνικές) την εξίσωση. Και στα

συστήματα η NSolve δουλεύει με επιτυχία, όπως για παράδειγμα στο σύστημα:

x3 +y= 0

y3 – 2xy = -3

In [199]: =NSolve[{x3 + y==0, y

3-2x*y

3 + 3==0}, {x, y} ]

Out[199] = {{x→0.0737138 + 1.4439 i, y→0.460644 + 2.98677 i},

{x→0.0737138-1.4439i, y→0.460644-2.98677i},

{x→-0.357509 + 1.07719i, y→-l.1988 + 0.836871i},

{x→-0.357509 - 1.07719 i, y→-1.1988 -0.836871i},

{x→0. 710051-0. 766759i, y→0. 894371 + 0. 708942i},

{x→0. 710051 + 0.766759i, y→0. 894371-0. 708942i},

{x→-0.926255 -0.402821i, y→0.343785 + 0.971435i},

{x→-0.926255+ 0.402821i, y→0. 343785-0.971435i},

{x→1., y→-1.}}

εκεί που η Solve αποτυγχάνει.

Ισοδύναμες εντολές της NSolve[ ] είναι και οι N[Solve[ ] ] και Solve[ ] // Ν. Έστω

τώρα πως έχουμε να λύσουμε την εξίσωση:

x2 - sinx - 3 = 0

Πριν χρησιμοποιήσουμε κάποια εντολή του MATHEMATICA ας τη σχεδιάσουμε για

να πάρουμε μία εικόνα από τις λύσεις της. Δίνουμε λοιπόν την εντολή:

In [200] : = Plot [x5 - Sin[x] - 3, {x, -5, 5}]

-4 -2 2 4

5

10

15

20

Out[200]= -Graphics-

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

λύσουμε με την εντολή Solve θα πάρουμε,

Ιη[201]: = Solve[x3 - Sin[x] - 3 == 0, x]

Solve :: "tdep": The equations appear to involve the variables to be solved for in an

essentially non-algebraic way.

Out[201]= Solve[-3 + x2 – Sin[x] ==0, x]

Page 49: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

49

δηλαδή δεν μπορεί να λυθεί με αυτή την εντολή. Αν προσπαθήσουμε να τη λύσουμε

αριθμητικά μέσω της NSolve το αποτέλεσμα είναι το ίδιο, χωρίς δηλαδή επιτυχία:

In [202] : = NSolve[x3 -Sin [x] -3 == 0,x]

Solve :: "tdep": The equations appear to involve the variables to be solved for in an

essentially non-algebraic way.

Out [202]= NSolve [ -3 + x2 – Sin[x] == 0, x]

Υπάρχει όμως στο MATHEMATICA η εντολή FindRoot, η οποία επίσης δουλεύει

αριθμητικά, με την προϋπόθεση όμως να της δώσουμε κάποια τιμή κοντά στη λύση

για να ξεκινήσει. Εμείς όμως γνωρίζουμε που βρίσκονται περίπου οι λύσεις (στο -2

και +2) από την γραφική παράσταση της συνάρτησης. Έτσι αν δώσουμε την εντολή,

In [203] : = FindRoot [x2 - Sin[x] - 3 == 0, {x, -2}]

Out[203]= {x→-1.41831}

παίρνουμε τη λύση που βρίσκεται κοντά στο -2. Εδώ, μετά την δήλωση της εξίσωσης,

δίνουμε μέσα σε { } την ανεξάρτητη μεταβλητή x να πάρει την αρχική τιμή -2. To

MATHEMATICA με αυτή την αρχική προσέγγιση, ξεκινάει μία αριθμητική μέθοδο

(βελτιωμένη Newton-Raphson) και προσπαθεί να βρει τη λύση. Η εντολή στο παρά-

δειγμα μας δούλεψε και βρέθηκε η λύση. Ομοίως αν ξεκινήσουμε από το +2,

Ιn[204]:=FindRoot [x2 - Sin[x] - 3 == 0, {x, 2}]

Out [204]={x→1.97932}

θα βρούμε και τη δεύτερη λύση.

Στη περίπτωση που για κάποιο λόγο θέλουμε το αποτέλεσμα με διπλή από ότι

συνήθως, ή γενικά μεγαλύτερη ακρίβεια, θα πρέπει να χρησιμοποιήσουμε την εντολή

WorkingPrecision. Έτσι αν συμπληρώσουμε την ανωτέρω εντολή και δώσουμε,

Ιn[205]:=FindRoot [x2 - Sin[x] - 3 == 0, {x, 2}, WorkingPrecision→ 45]

Out[205]={ x → 1.97932014655621146033574971398847445211664215}

θα πάρουμε τη ρίζα με ακρίβεια 45 σημαντικών ψηφίων. Η FindRoot δουλεύει και

με δύο εξισώσεις και συνεπώς με δύο αρχικές συνθήκες, μία για την κάθε μεταβλητή.

Επαλήθευση λύσεων

Αν θέλουμε να επαληθεύσουμε τη λύση που βρήκαμε, θα πρέπει να την αντικατα-

στήσουμε στην εξίσωση που έχουμε και να δούμε αν την μηδενίζει. Γενικά αν έχουμε

μια μαθηματική έκφραση και θέλουμε να αντικαταστήσουμε μια τιμή στην

μεταβλητή, μπορούμε να δώσουμε:

In [206]: = x2 + 3/. x →1

Out[206]= 4

όπου το x πήρε την τιμή 1 και έτσι η αριθμητική τιμή της μαθηματικής έκφρασης

έγινε 4. Ο συμβολισμός /. σημαίνει "αντικατέστησε" και το → σημαίνει "με".

Αν θέλουμε να βάλουμε δύο τιμές στο x και να πάρουμε τις αντίστοιχες αριθμητικές

τιμές της μαθηματικής έκφρασης, θα δώσουμε:

Page 50: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

50

Ιn[207]:=x2 + 3/.{{x→1}, {x→2}}

Out[207]={4,7}

προσέχοντας να βάζουμε σωστά τα άγκιστρα μετά το "/.". Στη περίπτωση που έχουμε

δύο μεταβλητές, η εντολή παραμένει η ίδια, όπως στο παρακάτω παράδειγμα.

In[208]: = yx /. {x→1},{y→3}

Out[208]=2

Αν και σ' αυτή τη περίπτωση θέλουμε να έχουμε δύο ζευγάρια τιμών στα x και y, θα

πρέπει να δώσουμε,

In[209] : = yx / .{{x→l,y→3}, {x→4,y→5}}

Out[209]={2, 3}

Έτσι μπορούμε να επαληθεύσουμε την λύση από την παρακάτω εξίσωση

In[210]: = h[x_]:= x2+2x-3

Solve[h[x] == 0,x]

Out[210] = {{x→-3},{x→1}}

In[211]: = h[x]/. {{x→-3},{x→1}}

Out[211] = {0,0}

Πίνακες, Ορίζουσες, Ιδιοτιμές και Ιδιοδιανύσματα

Ο ορισμός πίνακα στο MATHEMATICA γίνεται με δύο τρόπους. Γράφοντας

In[212]: = a = {{-2,3,-1}, {4,-3,1}}

Out[212] = {{-2,3,-1}, {4,-3,1}}

In[213]: = MatrixForm[a]

Out[213] =

1

1

3

3

4

2

η για άλλο πίνακα

In[214]: = b = {{-1,2,-4}, {2,1,1-31},{-4,-2,7}}//MatrixForm

Out[214] =

724

312

421

.

Ή υπάρχει και η δυνατότητα δημιουργίας ενός πίνακα, μέσω της παλέτας BasicInput

και το σχετικό εικονίδιο. Όπως επίσης και από το βασικό μενού του

MATHEMATICA να επιλέξουμε Input και να επιλέξουμε την επιλογή Create

Table/Matrix/Palette. Μπορούμε να κάνουμε πράξεις μεταξύ των πινάκων

In[215]: =a+a//MatrixForm

Page 51: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

51

Out[215] =

2

2

6

6

8

4

In[216]: =b-b//MatrixForm

Out[216] =

000

000

000

In[217]: =a.b//MatrixForm

Out[217] =

0

8

3

1

14

12

Για παράδειγμα ο πίνακας που έχει τα στοιχεία του πίνακα Β υψωμένα στο

τετράγωνο είναι

In[218]: =b2//MatrixForm

Out[218] =

49416

914

1641

Ενώ αν θέλουμε το τετράγωνο του πίνακα Β θα κάνουμε χρήση της εντολής

MatrixPower, έτσι θα έχουμε

In[219]: =MatrixPower[b,2]//MatrixForm

Out[219] =

712428

321112

30821

Ο μοναδιαίος πίνακας 3x3 μπορεί να οριστεί με την εντολή

In[220]: =IdentityMatrix[3]//MatrixForm

Out[220] =

100

010

001

Ο ανάστροφος πίνακας του πίνακα a ορίζεται ως εξής

In[221]: =Transpose[a]//MatrixForm

Out[221] =

1

3

4

1

3

2

Ενώ ο αντίστροφος του πίνακα a ορίζεται ως εξής

In[222]: =Inverse[a]//MatrixForm

Page 52: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

52

Out[222] =

1205

11

5

23

5

25

2

5

6

5

1

Για να βρούμε τις ιδιοτιμές και τα ιδιοδιανύσματα ενός πίνακα χρησιμοποιούμε τις

εντολές Eigenvalues[a], Eigenvectors[a], για παράδειγμα

In[223]: = c =

x

x

xx

300

00

122

CharacteristicPolynomial[a, λ]

Eigenvalues[c]

Eigenvectors[c]

Out[223] = {{x, 2x, 1}, {0, x2, 0}, {0, 0, 3x}}

3x4-3x

2λ-4x

3λ+3xλ

2+x

2-λ

3

{x, 3x, x

2}

{{1, 0, 0}, {x2

1, 0, 1}, {

x1

2, 1, 0}}

Ραβδογράμματα και Κυκλικά διαγράμματα

Υποθέτουμε ότι έχουμε μια λίστα σημείων a, την οποία θέλουμε να παραστήσουμε

σε ραβδόγραμμα ή κυκλικό διάγραμμα

In[224]: = a = {2, 6, 7, 12, 8, 7, 15, 10, 3, 20, 18}

Out[224] ={2, 6, 7, 12, 8, 7, 15, 10, 3, 20, 18}

Φορτώνουμε το πακέτο Graphics του MATHEMATICA

In[225]: = <<Graphics`Graphics`

Δίνουμε την εντολή BarChart για την δημιουργία ραβδογράμματος

In[226]: = BarChart[a]

1 2 3 4 5 6 7 8 9 10 11

5

10

15

20

Out[226] = -Graphics-

Δίνοντας τώρα την εντολή BarChart όπως φαίνεται παρακάτω

Page 53: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

53

In[227]: = BarChart[a, BarStyle→{GrayLevel[0.6]},

GridLines→Automatic, Frame→True]

1 2 3 4 5 6 7 8 9 1011

0

5

10

15

201 2 3 4 5 6 7 8 9 1011

Out[227] = -Graphics-

το MATHEMATICA μας δίνει το ραβδόγραμμα με τις μπάρες σε γκρίζα απόχρωση,

μέσα σε πλαίσιο και με οριζόντιες και κάθετες γραμμές (GridLines). Εισάγοντας την

λίστα b όπως παρακάτω

In[228]: = b = {1, 10, 3, 20, 15, 2, 1, 5, 4, 18, 6}

Out[228] ={1, 10, 3, 20, 15, 2, 1, 5, 4, 18, 6}

και δίνοντας την εντολή BarChart με την παρακάτω μορφή

In[229]: =BarChart[a, b,

BarLabels→{“1991”, “1992”, “1993”, “1994”, “1995”, “1996”,

“1997”, “1998”, “1999”, “2000”, “2001”}, Frame→True,

FrameLabel→{“Χρονια”, “Ποσότητα”}]

1991 1992 1993 1995 1996 1997 1998 1999 2000 2001 2002

Χ ό

0

5

10

15

20

Πό

1991 1992 1993 1995 1996 1997 1998 1999 2000 2001 2002

Out[229] = -Graphics-

παίρνουμε ένα ραβδόγραμμα που περιέχει και τις δύο λίστες, στον οριζόντιο άξονα

αναπαριστούμε τα χρόνια, ενώ στον κατακόρυφο την ποσότητα. Για να βάλουμε

λεζάντες στο σχήμα μας πρέπει να έχουμε ενεργοποιήσει το πλαίσιο (Frame→True).

Για την δημιουργία τώρα κυκλικού διαγράμματος δίνουμε στο MATHEMATICA την

εντολή PieChart.

In[230]: = PieChart[a]

Page 54: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

54

12

3

456

7

89

10

11

Out[230] = -Graphics-

Λέγοντας μέσα στο κυκλικό διάγραμμα PieExploded→All ή PieExploded→{{8,

0.5}, {5, 0.5}} μας ανοίγει την πίτα σε κάθε κομμάτι ή σε επιλεγμένα κομμάτια.

In[231]: = PieChart[a, PieExploded→All]

PieChart[a, PieExploded→{{8, 0.5}, {5, 0.5}}, PieLabels→{“91”,

“92”, “93”, “94”, “95”, “96”, “97”, “98”, “99”, “00”, “01”}]

12

3

456

7

8

9

10

11

Out[231] = -Graphics-

9192

93

94

95

96

97

98 9900

01

Out[232] = -Graphics-

Με την εντολή PieLabels→{“a1”, “a2”, …}, μπορούμε να βάζουμε σχόλια σε κάθε

κομμάτι της πίτας όπως φαίνεται παραπάνω.

Page 55: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

55

Συναρτήσεις πολλών μεταβλητών

Όρια. Για να βρούμε το όριο σε συνάρτηση με πολλές μεταβλητές οδηγούμε το

MATHEMATICA, όπως συμβαίνει όταν λύνουμε σχετικά προβλήματα στο χαρτί.

Για παράδειγμα αν θέλουμε να δείξουμε ότι η συνάρτηση

)0,0(),(,0

)0,0(),(,),( 22

22

yx

yxyx

yx

yxf

Δεν είναι συνεχής στο σημείο (0, 0), βρίσκουμε ξεχωριστά τα διαδοχικά όρια

In[233]: = Limit[Limit[22

22

yx

yx

, y→0], x→0]

Out[233] = 1

In[234]: = Limit[Limit[22

22

yx

yx

, x→0], y→0]

Out[234] = -1

Και αφού είναι διαφορετικά, το όριο δεν υπάρχει, άρα η f(x, y) δεν είναι συνεχής στο

(0, 0).

Μερικές Παράγωγοι

Η μερική παραγώγιση στο MATHEMATICA, γίνεται μέσω της γνωστής εντολής

D[συνάρτηση, μεταβλητή] ή μέσω των έτοιμων εντολών ■ και , ■ από την

παλέτα BasicInput.

Παραδείγματα

Να υπολογισθούν οι μερικές παράγωγοι ως προς x και y, πρώτης τάξης της

συνάρτησης

xyyxyxf 453),( 23

αυτό γίνεται μέσω της εντολής

In[235]: = D[ xxyyx ,45323 ]

Out[235] = yx 49 2

ή ισοδύναμα

In[236]: = )453(23

xyyxx

Out[236] = yx 49 2

όμοια για την παράγωγο ως προς y, μπορούμε να γράψουμε

Page 56: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

56

In[237]: = )453(23

xyyxy

Out[237] = yx 104

Για τον υπολογισμό της δεύτερης τάξης παραγώγου ως προς x της συνάρτησης

f(x, y) = sin(2x + 5y) γράφουμε

In[238]: = ]52[}2,{ yxSinx

Out[238] = ]52[4 yxSin

ή ακόμα μπορούμε να γράψουμε

In[239]: = ]52[, yxSinxx

Out[239] = ]52[4 yxSin

ή ακόμα μπορούμε να γράψουμε

In[240]: = }]2,{],52[[ xyxSinD

Out[240] = ]52[4 yxSin

και οι τρεις παραπάνω εκφράσεις είναι ισοδύναμες. Για να εκφράσουμε την δεύτερη

μερική παράγωγο ως προς x ως προς y της συνάρτησης f(x, y), δηλαδή την xy

f

2

γράφουμε

In[241]: = ],],52[[ yxyxSinD

Out[241] = ]52[10 yxSin

Ολικό Διαφορικό

Το ολικό διαφορικό μιας συνάρτησης f δίνεται από την σχέση

dyy

fdx

x

fdf

Και συμβολίζετια στο MATHEMATICA σαν εντολή ως Dt[f[x1, x2, x3, …]]. Για

παράδειγμα, έστω ότι θέλουμε να υπολογίσουμε το ολικό διαφορικό της συνάρτησης

f(x, y) = sin(xy) γράφουμε

In[242]: = ]]*[[ yxSinDt

Out[242] = ])[][]([ yxDtxyDtxyCos

Πολλαπλά ολοκληρώματα

Για τον υπολογισμό πολλαπλού ολοκληρώματος χρησιμοποιώ την εντολή

Integrate[f(x1, x2, x3, … ), {x1, a, b}, {x2, c, d}, {x3, e, g}, …] όπως και στο απλό

ορισμένο ολοκλήρωμα. Για παράδειγμα

In[243]: = y*x:_]y_,x[f2

Integrate[f[x, y], {x, 1, 2}, {y, 2-x, x }

Page 57: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

57

2

1

x

x2dydx]y,x[f

Out[243] = 120

193

120

193

Για τον υπολογισμό του τριπλού ολοκληρώματος

S

dxdydz)zyx(

στο χωρίο S που ορίζεται από τα επίπεδα x = 0, y = 0, z = 0 και x + y +z = 1 θα ήταν

καλό να κάνουμε μια τρισδιάστατη γραφική παράσταση για την εύρεση τον ορίων

ολοκλήρωσης. Θα αναπαραστήσουμε στην z = 1 – x – y για να δούμε που αυτή

τέμνει τους άξονες x και y.

In[244]: = Plot3D[1-x-y, {x, 0, 1}, {y, 0, 1}, AxesLabel→{x, y, z}, ViewPoint→

{1.3, -1.8, 0.7}, PlotRange→{0, 1}, PlotPoints→20]

0

0.25

0.5

0.75

1

x

00.25

0.50.75

1y

0

0.25

0.5

0.75

1

z

0

0.25

0.5

0.75

1

x

00.25

0.50.75

1y

Out[244] = -SurfaceGraphics-

οπότε τώρα μπορούμε να υπολογίσουμε εύκολα το τριπλό ολοκλήρωμα αφού τα όρια

ολοκλήρωσης φαίνονται εύκολα από το παραπάνω σχήμα

In[245]: =

1

0

x1

0

yx1

0dzdydx)zyx(

Out[245] = 8

1

Τρισδιάστατες γραφικές παραστάσεις Η βασική εντολή του MATHEMATICA για τρισδιάστατες απεικονίσεις είναι η

εντολή Plot3D. Έτσι αν έχουμε μια συνάρτηση δύο μεταβλητών, η εντολή που θα

μας δώσει την γραφική παράσταση της στις τρεις διαστάσεις είναι η

In[246]: = Plot3D[f[x, y], {x, a, b}, {y, c, d}]

Παράδειγμα. Να γίνει γραφική παράσταση της f(x, y) = xy2cos

2x

In[247]: = f[x_, y_] : = x*y2*Cos[x]

2

Plot3D[f[x, y], {x, -2, 2}, {y, 1, 3}]

Page 58: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

58

-2-1

0

1

21

1.5

2

2.5

3

-202

-2-1

0

1

2 Out[247] = -SurfaceGraphics-

Για να αλλάξουμε την θέση του σχήματος στην εντολή Plot3D μπορούμε από το

Input στην εντολή 3DViewPointSelector να επιλέξουμε την γωνία που θέλουμε να

δούμε το σχήμα μας και να πατήσουμε Paste για να πάρουμε την νέα θέση

απεικόνισης. Για παράδειγμα επιλέγοντας ένα νέο σημείο απεικόνισης από το αρχικό

(ViewPoint→{-2.614, 2.554, 0.579}) το σχήμα απεικονίζεται όπως φαίνεται

παρακάτω

In[248]: = Plot3D[f[x, y], {x, -2, 2}, {y, 1, 3}, ViewPoint→{-2.614, 2.554, 0.579}]

-2-1

01

2 11.5

22.5

3

-2

0

2

-2-1

01

2

-2

0

2

Out[248] = -SurfaceGraphics-

ένας πιο εύκολος τρόπος από αυτόν με την εντολή ViewPoint είναι ο παρακάτω.

Αρχικά φορτώνουμε το πακέτο RealTime3D. Έπειτα κάνουμε το γραφικό με την

εντολή Plot3D και έπειτα με το ποντίκι μπορούμε να περιστρέφουμε το σχήμα μας

In[249]: = << RealTime3D`

Plot3D[f[x, y], {x, -2, 2}, {y, 1, 3}]

Out[249] = -SurfaceGraphics-

Page 59: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

59

Με την εντολή PlotPoints αυξάνουμε τα σημεία της γραφικής παράστασης ανά

κατεύθυνση (το MATHEMATICA βάζει 15 σημεία για κάθε κατεύθυνση), έτσι

έχουμε αν του δώσουμε 40 σημεία σε κάθε κατεύθυνση το εξής σχήμα

In[250]: = Plot3D[f[x, y], {x, -2, 2}, {y, 1, 3}, PlotPoints→40]

-2

-1

0

1

21

1.5

2

2.5

3

-2

0

2

-2

-1

0

1

2 Out[250] = -SurfaceGraphics-

Αν δεν θέλουμε να αναπαριστάτε το πλέγμα των σημείων στην γραφική μας

παράσταση τότε δίνουμε την παρακάτω εντολή

In[251]: = Plot3D[f[x, y], {x, -2, 2}, {y, 1, 3}, PlotPoints→40, Mesh→False]

-2

-1

0

1

21

1.5

2

2.5

3

-2

0

2

-2

-1

0

1

2 Out[251] = -SurfaceGraphics-

Τέλος αν δεν θέλουμε και τους άξονες στην τρισδιάστατη γραφική μας παράσταση

δίνουμε την παρακάτω εντολή

In[252]: = Plot3D[f[x, y], {x, -2, 2}, {y, 1, 3}, PlotPoints→40, Mesh→False,

Axes→None]

Out[252] = -SurfaceGraphics-

Page 60: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

60

Δίνουμε τώρα την συνάρτηση 22

22

yx

)yxsin()y,x(g

και ζητάμε να βρούμε την

γραφική της παράσταση

In[253]: = g[x_, y_] : = 22

22

yx

]yx[Sin

Plot3D[g[x, y], {x, -8, 8}, {y, -8, 8}, PlotPoints→40]

-5

0

5

-5

0

5-0.2

00.20.4

-5

0

5

Out[253] = -SurfaceGraphics-

Παρατηρούμε ότι το MATHEMATICA μας κόβει στο πάνω μέρος την γραφική

παράσταση της g(x, y), για να ξεπεράσουμε το πρόβλημα αυτό εισάγουμε την εντολή

PlotRange όπως φαίνεται παρακάτω. Με την εντολή αυτή ορίζουμε εμείς τα όρια του

άξονα που σχεδιάζει το MATHEMATICA από μόνο του δηλαδή τον z.

In[254]: = Plot3D[g[x, y], {x, -8, 8}, {y, -8, 8}, PlotPoints→40, PlotRange→All]

-5

0

5

-5

0

50

0.5

1

-5

0

5

Out[254] = -SurfaceGraphics-

Τέλος με την εντολή BoxRatios κανονικοποιούμε το κουτί μέσα στο οποίο θα

σχεδιαστεί το τρισδιάστατο γράφημα της συνάρτησης μας

In[255]: = Plot3D[g[x, y], {x, -8, 8}, {y, -8, 8}, PlotPoints→40, PlotRange→All,

BoxRatios→{1, 1, 1}]

Page 61: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

61

-5

0

5

-5

0

5

0

0.5

1

-5

0

5

-5

0

5

Out[255] = -SurfaceGraphics

Ισοϋψείς επιφάνειες

Η ContourPlot είναι μια άλλη εντολή του MATHEMATICA που μας δίνει την

δυνατότητα να δούμε τις ισοϋψείς μιας επιφάνειας, δηλαδή τον τοπογραφικό χάρτη

της συνάρτησης. Έτσι παίρνουμε τη γραφική παράσταση των καμπυλών με σταθερά

ύψη κατά μήκος της επιφάνειας. Για την ίδια συνάρτηση g(x, y) με το προηγούμενο

παράδειγμα έχουμε

In[256]: = p1 = ContourPlot[g[x, y], {x, -8, 8}, {y, -8, 8}, PlotPoints→40,

PlotRange→All, DisplayFunction→Identity];

p2 = ContourPlot[g[x, y], {x, -8, 8}, {y, -8, 8}, PlotPoints→40,

PlotRange→All, ContourShading→False, Contours→15,

DisplayFunction→Identity];

p3 = ContourPlot[g[x, y], {x, -8, 8}, {y, -8, 8}, PlotPoints→40,

ContourLines→False, PlotRange→All,

DisplayFunction→Identity];

p4 = ContourPlot[g[x, y], {x, -8, 8}, {y, -8, 8}, PlotPoints→40,

PlotRange→All, ColorFunction→Hue,

DisplayFunction→Identity];

Show[GraphicsArray[{p1, p2, p3, p4}]]

-7.5 -5-2.5 0 2.5 5 7.5

-7.5

-5

-2.5

0

2.5

5

7.5

-7.5-5-2.5 0 2.5 5 7.5

-7.5

-5

-2.5

0

2.5

5

7.5

-7.5 -5-2.5 0 2.5 5 7.5

-7.5

-5

-2.5

0

2.5

5

7.5

-7.5 -5-2.5 0 2.5 5 7.5

-7.5

-5

-2.5

0

2.5

5

7.5

Out[256] = -SurfaceGraphics

Εξισώσεις σε κυλινδρικές και σφαιρικές συντεταγμένες

Αρκετές φορές μια επιφάνεια περιγράφεται από κυλινδρικές ή σφαιρικές

συντεταγμένες. Για παράδειγμα έστω η συνάρτηση z = 2))t2sin(r(4 , όπου r είναι

Page 62: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

62

η οριζόντια απόσταση του σημείου από τον άξονα των z και t η οριζόντια γωνία από

τον άξονα των x. Αρχικά φορτώνουμε το παρακάτω πακέτο

In[257]: = <<Graphics`ParametricPlot3D`

CylindricalPlot3D[ 2])t2[Sin*r(4 , {r, 0, 2}, {t, 0, 2Pi, Pi/30},

PlotRange→All, ViewPoint→{1, -2, 1}]

-2-1

01

2

-2-1

01

2

0.5

1

1.5

2

-2-1

01

2

-2-1

01

2

Out[257] = -Graphics3D-

Αν μας δοθεί μια επιφάνεια σε σφαιρικές συντεταγμένες, όπως για παράδειγμα η

r = 3cost sint, όπου r είναι η απόσταση στον χώρο, του σημείου από την αρχή των

αξόνων, t η οριζόντια γωνία από τον άξονα των x και p (εδώ δεν εισέρχεται άμεσα

στον τύπο της επιφάνειας) η κατακόρυφη γωνία από τον άξονα των z

In[258]: = SphericalPlot3D[3Cos[t] Sin[t], {t, 0, Pi/2}, {p, 0, 3Pi/2}]

-1-0.5

0

0.51

-1

-0.5

0

0.5

1

00.25

0.5

0.75

1

-1-0.5

0

0.51

Out[258] = -Graphics3D-

Πακέτα έτοιμων σχημάτων

Το MATHEMATICA διαθέτει πολλές εντολές και πακέτα για τρισδιάστατες

απεικονίσεις. Θα δώσουμε ενδεικτικά μερικές εντολές από δύο πακέτα με έτοιμα

σχήματα χωρίς περισσότερες λεπτομέρειες

In[259]: = <<Graphics`Shapes`

a1 = Show[Graphics3D[Sphere[]],DisplayFunction→Identity];

a2 = Show[Graphics3D[Cone[]],DisplayFunction→Identity];

a3 = Show[Graphics3D[Cylinder[]],DisplayFunction→Identity];

a4 = Show[Graphics3D[DoubleHelix[]],DisplayFunction→Identity];

a5 = Show[Graphics3D[Torus[]],DisplayFunction→Identity];

Show[GraphicsArray[{a1, a2, a3, a4, a5}]]

Page 63: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

63

Out[259] = -GraphicsArray-

In[260]: = <<Graphics`Polyhedra`

a6 = Show[Polyhedron[Dodecahedron],DisplayFunction→Identity];

a7 = Show[Polyhedron [Icosahedron],DisplayFunction→Identity];

a8 = Show[Polyhedron [Octahedron],DisplayFunction→Identity];

a9 = Show[Polyhedron [Great Dodecahedron],DisplayFunction→

Identity];

a10 = Show[Polyhedron[Great Icosahedron],DisplayFunction→

Identity];

Show[GraphicsArray[{a6, a7, a8, a9, a10}]]

Out[260] = -GraphicsArray-

Λύση διαφορικών εξισώσεων

Το MATHEMATICA είναι ένα ισχυρό εργαλείο για την μελέτη Διαφορικών

εξισώσεων (Δ.Ε.) και μπορεί να βρει αναλυτικές η αριθμητικές λύσεις μιας Δ.Ε.,

καθώς και επίσης να μας δώσει την γραφική παράσταση των λύσεων της Δ.Ε. Η

εντολή για την λύση Δ.Ε. είναι η DSolve και συντάσσεται παρόμοια με την Solve

In[261]: = DSolve[equation, y[x], x]

Παραδείγματα. Να βρεθεί η γενική λύση της Δ.Ε. 0yy

In[262]: = DSolve[y΄[x] + y[x] == 0, y[x], x]

Out[262] = ]}}1[Ce]x[y{{ x

Με C[1] το MATHEMATICA συμβολίζει την αυθαίρετη σταθερά της ολοκλήρωσης.

Το σύμβολο του τόνου, για την παραγώγιση, βρίσκεται στο πλήκτρο μαζί με τις

διπλές αποστρόφους κοντά στο Enter. Ομοίως για την λύση της Δ.Ε. 0yy2y

In[263]: = DSolve[y΄΄[x] + 2y΄[x] + y[x] == 0, y[x], x]

Out[263] = ]}}2[Cxe]1[Ce]x[y{{ xx

Το αποτέλεσμα αυτή την φορά, έχει δύο αυθαίρετες σταθερές αφού έχουμε Δ.Ε.

δεύτερης τάξης.

Page 64: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

64

Διαφορική εξίσωση με αρχικές συνθήκες

Στην περίπτωση που έχουμε μια Δ.Ε. με αρχικές ή συνοριακές συνθήκες, τότε η

DSolve συντάσσεται

In[264]: = DSolve[{equation, conditions}, y[x], x]

Όπου με equation συμβολίζεται η Δ.Ε., με conditions τις συνθήκες που μας έχουν

δοθεί και με y[x], x την εξαρτημένη και την ανεξάρτητη μεταβλητή αντίστοιχα. Για

παράδειγμα να λυθεί η Δ.Ε. 0yy με 2)0(y . Η εντολή, όπως αναφέρθηκε

προηγουμένως δίνει την μερική λύση που τώρα δεν περιέχει σταθερά ολοκλήρωσης

In[265]: = DSolve[{y΄[x] + y[x] == 0, y[0] == 2}, y[x], x]

Out[265] = }}e2]x[y{{ x

Ας δούμε τώρα ένα παράδειγμα με δύο συνθήκες. Να λυθεί η Δ.Ε. x3ey2yy

όταν 2)1(y και 2)1(y . Με την DSolve παίρνουμε

In[266]: = DSolve[{y΄΄[x] - y΄[x] + 2y[x] == e3x

, y[1] == 2, y΄[1] == 2}, y[x], x]

Out[266] = )}}e3e4e16ee8(e12

1]x[y{{ x42x33x363x2

Γραφική παράσταση της λύσης

Αν θέλουμε να έχουμε εκτός από την λύση της Δ.Ε. και την γραφική παράσταση

κάποιων μερικών λύσεων από τη γενική λύση της διαφορικής τότε ακολουθούμε την

παρακάτω διαδικασία

In[267]: = s = DSolve[y΄[x] + x

]x[y == Cos[x

2], y[x], x]

p = y[x] /. s[[1]]

q = Table[ p /. C[1] → i, {i, -5, 5}]

Plot[Evaluate[q], {x, 0, 5}]

Out[267] =

x2

]x[Sin

x

]1[C]x[y

2

x2

]x[Sin

x

]1[C 2

x2

]x[Sin

x

5,

x2

]x[Sin

x

4,

x2

]x[Sin

x

3,

x2

]x[Sin

x

2,

x2

]x[Sin

x

1,

x2

]x[Sin

,x2

]x[Sin

x

1,

x2

]x[Sin

x

2,

x2

]x[Sin

x

3,

x2

]x[Sin

x

4,

x2

]x[Sin

x

5

222222

22222

Page 65: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

65

1 2 3 4 5

-4

-2

2

4

- Graphics -

Αριθμητική επίλυση διαφορικών εξισώσεων

Όταν το MATHEMATICA αδυνατεί να λύσει μια Δ.Ε., υπάρχει η δυνατότητα μέσω

της εντολής NDSolve να βρούμε μια αριθμητική προσέγγιση της λύσης σε ένα

ορισμένο διάστημα του x [a, b], όταν ‘εχουμε μια ή περισσότερες αρχικές

συνθήκες για την διαφορική εξίσωση. Η εντολή συντάσσεται

In[268]: = ΝDSolve[{equation, conditions}, y[x], {x, a, b}]

Δίνουμε την εντολή NDSolve για αριθμητική λύση της Δ.Ε. )xycos(y για την

οποία το MATHEMATICA αδυνατεί να δώσει αποτέλεσμα με την εντολή DSolve. Η

λύση δίνεται με την βοήθεια της InterpolatingFunction που αντιπροσωπεύει μια

προσεγγιστική συνάρτηση της οποίας οι τιμές βρίσκονται από παρεμβολή

In[269]: = s1 = ΝDSolve[{y΄[x] == Cos[x*y[x], y[0.5] == 1}, y[x], {x, 0, 10}]

Out[269] = ]}}x[].}},10.,0[{{ningFunctioInterpolat]x[y{{

In[270]: = f[x_] : = y[x] /. s1[[1]]

Table[f[x], {x, 0, 10, 0.2}]

Plot[f[x], {x, 0, 10}]

0.516263, 0.715668, 0.909195, 1.08388, 1.22092, 1.30372, 1.32721,

1.2992, 1.23412, 1.14651, 1.04827, 0.948275, 0.852828, 0.765989, 0.689822,

0.624723, 0.569934, 0.524084, 0.485608, 0.453045, 0.425158, 0.40097,

0.379729, 0.360871, 0.343971, 0.328707, 0.314829, 0.302142, 0.290488,

0.279739, 0.269788, 0.260546, 0.251936, 0.243893, 0.236363, 0.229294,

0.222647, 0.216382, 0.210467, 0.204873, 0.199574, 0.194548, 0.189772,

0.185228, 0.1809, 0.176773, 0.172832, 0.169066, 0.165461, 0.162009, 0.1587

2 4 6 8 10

0.2

0.4

0.6

0.8

1

1.2

Out[271] = - Graphics -

Out[270] =

Page 66: Εισαγωγή στο Mathematicamaik/Mathimata/Mathematica_draft.pdf · στο ίδιο cell και είμαστε έτοιμοι να γράψουμε δεύτερη εντολή

66

Βιβλιογραφία Κ. Παπαδάκης, Εισαγωγή στο Mathematica, Εκδότης: Τζιόλα, ISBN: 960-8050-81-2, 2002. Wolfram Mathematica 9 Documentation: http://reference.wolfram.com/mathematica/guide/Mathematica.html