ΠΡΑΚΤΙΚΟΣ Ο ΗΓΟΣ ΓΙΑ ΤΗ MATHEMATICA



Σχετικά έγγραφα
ΤΟΜΟΣ Α : Συμβολικός Προγραμματισμός

Παρουσίαση του Mathematica

Πρώτη επαφή με το μαθηματικό πακέτο Mathematica

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

Εισαγωγή στο Πρόγραμμα Maxima


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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

Εισαγωγή στην Αριθμητική Ανάλυση

Εργαστήριο Μαθηματικής Ανάλυσης Ι. Εισαγωγή στη Matlab Βασικές Συναρτήσεις-Γραφικές παραστάσεις. Πανεπιστήμιο Θεσσαλίας. Σχολή Θετικών Επιστημών

Εισαγωγή στη Matlab Βασικές Συναρτήσεις

2.3 Επιπλέον συναρτήσεις για δισδιάστατα γραφικά

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών

Σχήµα 4.1: Εισαγωγή βρόγχου while-loop.

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Συμβολικές Γλώσσες Προγραμματισμού με το MATHEMATICA.

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

2. Δισδιάστατα γραφικά

ΣΕΙΡΕΣ TAYLOR. Στην Ενότητα αυτή θα ασχοληθούµε µε την προσέγγιση συναρτήσεων µέσω πολυωνύµων. Πολυώνυµο είναι κάθε συνάρτηση της µορφής:

Ηλεκτρονικοί Υπολογιστές

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Σχήµα 5.1: Εισαγωγή της δοµής formula node στο Block Diagram.

Συμβολικές Γλώσσες Προγραμματισμού με το MATHEMATICA.

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

Σχήµα 6.1: Εισαγωγή της εντολής Read From Spreadsheet File στο Block Diagram.

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

1. Εισαγωγή στο Sage.

Κεφάλαιο 6 Παράγωγος

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

3. Τρισδιάστατα γραφικά

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση-

3 ο Εργαστήριο Μεταβλητές, Τελεστές

a = 10; a = k; int a,b,c; a = b = c = 10;

επιµέλεια Θοδωρής Πιερράτος

Κεφάλαιο Πέµπτο: Η Εξάσκηση

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Σχήµα 3.1: Εισαγωγή shift register σε βρόγχο for-loop.

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Ομάδα Γ. Ο υπολογιστής ως επιστημονικό εργαλείο. ε την COMPUTATION MEETS KNOWLEDGE

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

4.1 Πράξεις με Πολυωνυμικές Εκφράσεις... 66

o AND o IF o SUMPRODUCT

Σύντοµος Οδηγός της Qbasic. Πέρδος Αθανάσιος Καθηγητής Πληροφορικής

for for for for( . */

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

Geogebra. Μακρή Βαρβάρα. Λογισµικό Geogebra

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

A2. ΠΑΡΑΓΩΓΟΣ-ΚΛΙΣΗ-ΜΟΝΟΤΟΝΙΑ

EΞΩΤΕΡΙΚΑ ΑΡΧΕΙΑ ΕΙΣΑΓΩΓΗ Ε ΟΜΕΝΩΝ

9.2 Μελετώντας τρισδιάστατα γραφικά στο επίπεδο Oi sunartήseiv Contour Plot kai DensityPlot

Κεφάλαιο 5ο: Εντολές Επανάληψης

Γνωρίστε το Excel 2007

ΠΡΑΚΤΙΚΟΣ Ο ΗΓΟΣ MATLAB

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Μιγαδική ανάλυση Μέρος Α Πρόχειρες σημειώσεις 1. Μιγαδικοί αριθμοί. ΤΕΤΥ Εφαρμοσμένα Μαθηματικά Μιγαδική Ανάλυση Α 1

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ

Εγχειρίδιο Χρήστη. Μεταφρασμένο από την Τραχανοπούλου Θεοδώρα.

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

3) το παράθυρο Πίνακας τιμών όπου εμφανίζονται οι τιμές που παίρνουν οι παράμετροι

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

Κεφάλαιο 3 ΠΑΡΑΓΩΓΟΣ. 3.1 Η έννοια της παραγώγου. y = f(x) f(x 0 ), = f(x 0 + x) f(x 0 )

ΑΕΝ / ΑΣΠΡΟΠΥΡΓΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΑΥΤΟΜΑΤΙΣΜΟΥ. Σημειώσεις για τη χρήση του MATLAB στα Συστήματα Αυτομάτου Ελέγχου

Βασικά στοιχεία στο Matlab

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ

Τυπικές χρήσεις της Matlab

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Δ/νση Β /θµιας Εκπ/σης Φλώρινας Κέντρο ΠΛΗ.ΝΕ.Τ. Λογάριθµοι ΛΟΓΑΡΙΘΜΟΙ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΛΟΓΑΡΙΘΜΟΥΣ

Εκπαιδευτικό λογισµικό µονοβάθµιου ταλαντωτή Educational Single Degree Of Freedom Software. ESDOFsoftware

Διαδικασιακός Προγραμματισμός

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 17

Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

Μαθηματικός Ορισμός Διδιάστατου Χώρου (R 2 )

ΜΙΓΑ ΙΚΟΣ ΛΟΓΙΣΜΟΣ ΚΑΙ ΟΛΟΚΛ. ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΙ ΓΡΑΠΤΕΣ ΕΞΕΤΑΣΕΙΣ ΙΑΝΟΥΑΡΙΟΥ 2010 ΛΥΣΕΙΣ ΤΩΝ ΘΕΜΑΤΩΝ. =. Οι πρώτες µερικές u x y

ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΕΛΛΗΝΙΚΟ ΑΝΟΙKΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Γνωριµία µε τη Microsoft Access

Εισαγωγή στην Tcl. Τί είναι η Tcl;

Ηλεκτρονικοί Υπολογιστές I

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Έναρξη Τερματισμός του MatLab

ΑΛΓΕΒΡΑ Β ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ MATLAB

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

ΔΕΙΓΜΑ ΠΡΙΝ ΤΙΣ ΔΙΟΡΘΩΣΕΙΣ - ΕΚΔΟΣΕΙΣ ΚΡΙΤΙΚΗ

Επίλυση Γραµµικών Συστηµάτων

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Μαθηματική Εισαγωγή Συναρτήσεις

Αριθµητική Ολοκλήρωση

Transcript:

ΓΕΩΡΓΙΟΣ ΘΕΟ ΩΡΟΥ Τµήµα Φυσικής Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης ΧΡΙΣΤΙΝΑ ΘΕΟ ΩΡΟΥ Μαθηµατικός ΠΡΑΚΤΙΚΟΣ Ο ΗΓΟΣ ΓΙΑ ΤΗ MATHEMATICA ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Θεσσαλονίκη 004

Copyright Γ. Θεοδώρου, Χρ. Θεοδώρου, 004

3 ΠΡΟΛΟΓΟΣ Η θεαµατική ανάπτυξη των τεχνολογιών πληροφορικής τείνει να επιφέρει µια ολοκληρωτική οικονοµική και κοινωνική µεταβολή, η κατάληξη της οποίας θα είναι η κοινωνία των πληροφοριών. Οι νέες τεχνολογίες παρέχουν την δυνατότητα επίλυσης σηµαντικών προβληµάτων της κοινωνίας και δηµιουργούν συνεχώς πολυάριθµα νέα επαγγέλµατα και θέσεις εργασίας. Μέσα σε αυτό το γρήγορα µεταβαλλόµενο περιβάλλον, τα Πανεπιστήµια πρέπει να προσαρµόζουν συνεχώς το εκπαιδευτικό τους πρόγραµµα ώστε να ανταποκρίνεται στις σύγχρονες ανάγκες της κοινωνίας και ταυτόχρονα να παρέχουν τις καλύτερες προϋποθέσεις στους αποφοίτους των, αφενός για να διεκδικήσουν µε αξιώσεις µια θέση εργασίας και αφετέρου για να έχουν τα απαραίτητα εφόδια ώστε να µπορούν να παρακολουθούν τις γρήγορες εξελίξεις της επιστήµης και της τεχνολογίας. Οι τεχνολογίες της πληροφορικής έχουν επιφέρει επίσης µια δραµατική αλλαγή στην εκπαίδευση, και ο τρόπος διδασκαλίας έχει επηρεασθεί σηµαντικά από τις τεχνολογίες αυτές. Ο παραδοσιακός π.χ. τρόπος διδασκαλίας της φυσικής, στον οποίο αντιµετωπίζονται προβλήµατα φυσικής που µπορούν να επιλυθούν µε αυστηρό µαθηµατικό τρόπο, έχει συµπληρωθεί έτσι ώστε να αντιµετωπίζονται και προβλήµατα των οποίων η λύση µπορεί να προσεγγισθεί µόνο αριθµητικά µε τη χρήση ηλεκτρονικών υπολογιστών. Επίσης, µε τα υπάρχοντα προγράµµατα γραφικών υπάρχει η δυνατότητα γραφικής αναπαράστασης των αποτελεσµάτων, παρέχοντας έτσι µια εποπτική εικόνα που βοηθά στη σύνδεση της λύσης µε τη φυσική πραγµατικότητα. Συνέπεια των απαιτήσεων αυτών είναι το γεγονός ότι το Υπουργείο Παιδείας δαπανά σηµαντικά ποσά για την επιµόρφωση των ήδη υπηρετούντων εκπαιδευτικών σε τεχνολογίες χρήσης της πληροφορικής στην εκπαιδευτική διαδικασία. Βασικό συστατικό των απαιτουµένων δεξιοτήτων πληροφορικής είναι η γνώση µιας σύγχρονης γλώσσας προγραµµατισµού. Από τις υπάρχουσες γλώσσες, οι πιο εύχρηστες είναι οι λεγόµενες συµβολικές, οι οποίες παρέχουν τη δυνατότητα

4 εκτέλεσης τόσο αλγεβρικών όσο και αριθµητικών υπολογισµών, και παρέχουν στο χρήστη ένα ιδιαίτερα φιλικό περιβάλλον εργασίας. Τα στοιχεία αυτά τις καθιστούν ιδιαίτερα ελκυστικές για εισαγωγή στην εκπαιδευτική διαδικασία. Για τους λόγους αυτούς όλο και περισσότερα από τα καινούργια διδακτικά Πανεπιστηµιακά βιβλία των Θετικών επιστηµών αξιοποιούν µια από τις συµβολικές γλώσσες προγραµµατισµού για την ανάπτυξη του αντικειµένου τους, και οι γλώσσες αυτές θα γίνουν, στο άµεσο µέλλον, ένα βασικό εργαλείο Πανεπιστηµιακής εκπαίδευσης. Μια από της ευρέως χρησιµοποιούµενες γλώσσες συµβολικού προγραµµατισµού είναι και η Mathematica. Η γλώσσα αυτή έχει αναπτυχθεί από Θεωρητικό Φυσικό, τον S. Wolfram, είναι ιδιαίτερα διαδεδοµένη στους κλάδους των Μαθηµατικών και της Φυσικής, και είναι κατάλληλη για αξιοποίηση στην εκπαίδευση των Φυσικών. Στο παρόν φυλλάδιο γίνεται µια εισαγωγή στα βασικά σηµεία της συµβολικής αυτής γλώσσας. Στο πρώτο κεφάλαιο του φυλλαδίου παρουσιάζονται τα εισαγωγικά βήµατα στη λειτουργία της Mathematica. Παρουσιάζονται επίσης οι τρόποι εκτέλεσης των βασικών αριθµητικών και αλγεβρικών πράξεων, ο τρόπος χρήσεως των εσωτερικών συναρτήσεων του προγράµµατος, ο τρόπος αξιοποίησης των εντολών που υπάρχουν στις παλέτες, και τέλος εισάγεται η έννοια της λίστας που είναι ένα από τα βασικότερα εργαλεία της Mathematica. Στο δεύτερο κεφάλαιο παρουσιάζονται οι τρόποι εκτέλεσης βασικών υπολογισµών, δηλαδή του υπολογισµού ορίων, παραγώγων και ολοκληρωµάτων συναρτήσεων, αναπτυγµάτων σε σειρά, ο υπολογισµός ριζών και ελαχίστων συναρτήσεων, όπως και η λύση αλγεβρικών εξισώσεων. Στο τρίτο κεφάλαιο γίνεται µια εισαγωγή στα δισδιάστατα και τρισδιάστατα γραφικά συναρτήσεων και δεδοµένων, και παρουσιάζονται οι βασικές εντολές διαµόρφωσης µιας γραφικής παράστασης. Στο τέταρτο κεφάλαιο γίνεται µια εισαγωγή στις πράξεις µε πίνακες, στη λύση γραµµικών συστηµάτων, και στον υπολογισµό ιδοτιµών και ιδιοσυναρτήσεων τετραγωνικών πινάκων. Στο πέµπτο και έκτο κεφάλαιο παρουσιάζονται τα βασικά σηµεία των µεθόδων προγραµµατισµού της Mathematica - συναρτησιακού και διαδικαστικού προγραµµατισµού.

5 Στο έβδοµο κεφάλαιο παρουσιάζονται βασικά στοιχεία διαχείρισης της Mathematica. Παρουσιάζονται τρόποι εισαγωγής και εξαγωγής δεδοµένων και γραφικών παραστάσεων, εντοπισµού συντακτικών λαθών, και τέλος παρουσιάζονται εντολές ελέγχου της λειτουργίας και της απόδοσης του προγράµµατος. Στο όγδοο κεφάλαιο παρουσιάζεται µια συστηµατική παρουσίαση των εντολών διαχείρισης µιας λίστας, και στο ένατο κεφάλαιο γίνεται περαιτέρω διερεύνηση των γραφικών της Mathematica. Στο δέκατο κεφάλαιο παρουσιάζονται τρόποι διαχείρισης δεδοµένων. Συγκεκριµένα παρουσιάζονται οι εντολές για τη προσαρµογή και τη παρεµβολή δεδοµένων. Επίσης παρουσιάζονται οι εντολές υπολογισµού του διακριτού µετασχηµατισµού Fourier. Στο ενδέκατο κεφάλαιο παρουσιάζονται οι εντολές για τη λύση διαφορικών εξισώσεων, και τέλος στο παράρτηµα παρουσιάζονται επιλεκτικά µερικές επιπλέον εντολές της Mathematica. Θεσσαλονίκη, Ιούνιος 004 Γιώργος Θεοδώρου Χριστίνα Θεοδώρου

6 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ... ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ.... Εισαγωγή.... Βασικές πράξεις...3.3 Ακριβή και προσεγγιστικά αποτελέσµατα...5.4 Μαθηµατικές σταθερές...7.5 Εσωτερικές συναρτήσεις...8.6 Πράξεις µε αλγεβρικές παραµέτρους...0.7 ιαγραφή τιµών και παραµέτρων....8 Σύνθετες εντολές...3.9 Σύµβολα και πράξεις από τις παλέτες...4.0 Λίστες - Πίνακες...7. Εντολή Table...8. Συντακτική αντικατάσταση...3.3 Εντολές διαχείρισης...3 ΚΕΦΑΛΑΙΟ...35 ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΡΑΦΙΚΑ...35. ισδιάστατες γραφικές παραστάσεις...35.. Συνένωση σχηµάτων...37.. Γραφική παράσταση παραµετρικής καµπύλης...39..3 Γραφική παράσταση λίστας...40. Τρισδιάστατες γραφικές παραστάσεις...4

7.. Γράφηµα µε ισοϋψείς (ContourPlot)...4.. Γράφηµα πυκνότητας (DensityPlot)...44.3 Επιµέλεια γραφικών...45 ΚΕΦΑΛΑΙΟ 3...55 ΑΝΑΛΥΣΗ ΜΕ ΤΗ MATHEMATICA...55 3. Υπολογισµός αθροισµάτων και γινοµένων...55 3. Όριο συνάρτησης...57 3.3 Παράγωγος...59 3.4 Αόριστο ολοκλήρωµα...60 3.4. Απλό ολοκλήρωµα...60 3.4. Πολλαπλό ολοκλήρωµα...6 3.5 Ορισµένο ολοκλήρωµα...6 3.5. Απλό ολοκλήρωµα...63 3.5. Πολλαπλό ολοκλήρωµα...64 3.5.3 Ολοκλήρωµα µε συνθήκες...65 3.6 Ανάπτυγµα σε σειρά...66 3.7 Υπολογισµός ρίζας συνάρτησης...67 3.8 Προσδιορισµός ακρότατων µιας συνάρτησης...70 3.9 Λύσεις εξισώσεων και συστηµάτων...7 3.9. Λύσεις εξισώσεων...7 3.9. Λύσεις συστηµάτων...74 3.0 Επαλήθευση λύσης...76 ΚΕΦΑΛΑΙΟ 4...77 ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡA ΜΕ ΤΗ MATHEMATICA...77 4. Πράξεις µε πίνακες...77 4. Λύσεις γραµµικών συστηµάτων...80 4.3 Ιδιοτιµές και Ιδιοανύσµατα...8 4.3. Ιδιοτιµές τετραγωνικού πίνακα...8 4.3. Ιδιοανύσµατα τετραγωνικού πίνακα...8 3.4.3 Ιδιοτιµές και ιδιοανύσµατα τετραγωνικού πίνακα...8 3.4.4 Επαλύθεση ιδιοτιµών - ιδιοανυσµάτων...83

8 ΚΕΦΑΛΑΙΟ 5...85 ΣΥΝΑΡΤΗΣΙΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ...85 5. Ορισµός συνάρτησης...85 5. Ανώνυµες (καθαρές) συναρτήσεις...90 5.3 Ανάθεση µε ή χωρίς αναβολή...9 5.4 Συντακτική αντικατάσταση µε ή χωρίς αναβολή...93 5.5 Συµβολισµός παραγώγου...94 5.6 Συναρτήσεις µε συνθήκες...95 5.6. Στο είδος της µεταβλητής...95 5.6. Στις περιοχές τιµών της µεταβλητής...96 5.6.3 Στις αρχικές τιµές παραµέτρων...98 5.7 Αναδροµικές συναρτήσεις...99 5.8 Επαναληπτικοί υπολογισµοί...0 ΚΕΦΑΛΑΙΟ 6...07 ΙΑ ΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ...07 6. Εντολές ελέγχου ροής...08 6.. Εντολή If...08 6.. Εντολή Which...0 6. Επαναληπτικές εντολές - Βρόχοι... 6.. Εντολή Do... 6.. Εντολή For...4 6..3 Εντολή While...7 6.3 Εντολές ελέγχου...8 6.3. Εντολή Continue...8 6.3. Εντολή Break...9 6.3.3 Εντολή Label...9 6.3.4 Εντολή Goto...9 6.4 Λογικοί Τελεστές...0 6.4. Λογικός τελεστής And ( && )...0 6.4. Λογικός τελεστής Or ( )... 6.4.3 Λογικός τελεστής Not (! )... 6.5 Τοπικές µεταβλητές...

9 6.6 Ασκήσεις...4 ΚΕΦΑΛΑΙΟ 7...9 ΙΑΧΕΙΡΙΣΗ ΤΗΣ MATHEMATICA...9 7. Προσέγγιση αριθµητικών τιµών...9 7. Εκτύπωση αποτελέσµατος στην οθόνη...3 7.3 Έξοδος αποτελεσµάτων...3 7.4 Έξοδος σχήµατος...3 7.5 Είσοδος δεδοµένων...3 7.6 Εντοπισµός συντακτικού λάθους...33 7.7 ιαµόρφωση φύλλου εργασίας...34 7.8 Εντολές ελέγχου του προγράµµατος...34 ΚΕΦΑΛΑΙΟ 8...37 ΙΑΧΕΙΡΙΣΗ ΛΙΣΤΑΣ...37 8. Τροποποίηση λίστας...38 8. Χαρακτηριστικά λίστας...4 8.3 Επίδραση συνάρτησης σε λίστα...4 8.3. Εντολή Map...43 8.3. Εντολή Apply...45 8.4 Προγραµµατισµός µε τη χρήση λίστας...46 8.5 ιαχείριση πίνακα...49 ΚΕΦΑΛΑΙΟ 9...53 ΓΡΑΦΙΚΑ...53 9. Ηµιλογαριθµικές και λογαριθµικές γραφικές παραστάσεις...53 9. Αποτύπωση πειραµατικών σφαλµάτων στο γράφηµα...55 9.3 Ιστογράµµατα...57 9.4 Γραφικές παραστάσεις πεπλεγµένων συναρτήσεων...59 9.5 Πολικά διαγράµµατα...6 9.6 Γραφική αναπαράσταση διανυσµατικών πεδίων...63 9.7 Γραφικές παραστάσεις σε σφαιρικές συντεταγµένες...64 9.8 Παραµετρικές καµπύλες και επιφάνειες σε τρεις διαστάσεις...65 9.9 Κινούµενα γραφικά...67

0 ΚΕΦΑΛΑΙΟ 0...69 ΠΕΡΙΓΡΑΦΗ ΑΡΙΘΜΗΤΙΚΩΝ Ε ΟΜΕΝΩΝ...69 0. ιαχείριση δεδοµένων...70 0. Στατιστική περιγραφή δεδοµένων...73 0.. Μέση τιµή...74 0.. ιακύµανση...75 0..3 Τυπική απόκλιση...75 0.3 Προσαρµογή δεδοµένων (Fitting)...76 0.4 Παρεµβολή (Interpolation)...8 0.5 ιακριτός µετασχηµατισµός Fourier...86 ΚΕΦΑΛΑΙΟ...9 ΛΥΣΕΙΣ ΙΑΦΟΡΙΚΩΝ ΕΞΙΣΩΣΕΩΝ...9. Αναλυτική λύση...9. Αριθµητική λύση...97.3 Εφαρµογή...99 ΚΕΦΑΛΑΙΟ...03 ΗΜΙΟΥΡΓΙΑ ΕΞΩΤΕΡΙΚΩΝ ΠΑΚΕΤΩΝ...03. Περιβάλλον εργασίας...03. Ιδιότητες διευθύνσεων...05.. ιεύθυνση από εντολή Begin...05.. ιεύθυνση από εντολή BeginPackage...07..3 Φωλιασµένες διευθύνσεις...09.3 ηµιουργία εξωτερικών πακέτων...0.4 Παράδειγµα... ΠΑΡΑΡΤΗΜΑ...3 ΒΙΒΛΙΟΓΡΑΦΙΑ...7

. Εισαγωγή ΚΕΦΑΛΑΙΟ ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ. Εισαγωγή Μετά από την αλµατώδη ανάπτυξη των ηλεκτρονικών υπολογιστών και την ευρεία χρήση τους σε όλα σχεδόν τα πεδία, καθίσταται πλέον επιτακτική η γνώση µιας τουλάχιστον σύγχρονης γλώσσας προγραµµατισµού. Η επιλογή της γλώσσας αυτής είναι µια διαδικασία για την οποία υπάρχουν πολλές και αντικρουόµενες απόψεις. Η απάντηση στο ερώτηµα αυτό καθορίζεται σε µεγάλο βαθµό και από το επιστηµονικό πεδίο στο οποίο θα χρησιµοποιηθεί η γλώσσα αυτή. Μια σύγχρονη, και ταυτόχρονα εισαγωγική γλώσσα προγραµµατισµού, που απευθύνεται στους Φυσικούς, και γενικότερα στο κλάδο των Θετικών επιστηµών, θα πρέπει να έχει τη δυνατότητα εκτέλεσης τόσο αλγεβρικών όσο και αριθµητικών υπολογισµών, και να παρέχει στο χρήστη ένα ιδιαίτερα φιλικό περιβάλλον εργασίας. Μια τέτοια γλώσσα θα γίνει ελκυστική στο σύνολο σχεδόν των φοιτητών του κλάδου, και όχι µόνο σε µια µικρή µειονότητα που έχει ιδιαίτερο ενδιαφέρον σε υπολογιστές, και θα τους παρέχει ένα ουσιαστικό εργαλείο για µαθηµατικό χειρισµό προβληµάτων που θα αντιµετωπίσουν τόσο στη διάρκεια των σπουδών, όσο και στη µετέπειτα σταδιοδροµία τους. Μια τέτοια γλώσσα είναι η Mathematica. Η Mathematica είναι µια από τις πιο εξελιγµένες γλώσσες συµβολικού προγραµµατισµού. Έχει τη δυνατότητα εκτέλεσης αριθµητικών αλλά και αλγεβρικών υπολογισµών, και παρέχει στο χρήστη ένα πλήρες πακέτο γραφικών για οπτική παρουσίαση των αποτελεσµάτων. Κατ αρχήν, στη Mathematica υπάρχει µια πολύ µεγάλη ποικιλία εσωτερικών συναρτήσεων για εκτέλεση συγκεκριµένων

ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ υπολογισµών, που προσφέρονται για άµεση χρήση. Πρέπει όµως να τονισθεί ότι η Mathematica δεν είναι απλώς µια συλλογή έτοιµων προγραµµάτων, αλλά µια πλήρης γλώσσα προγραµµατισµού, στην οποία υπάρχει η δυνατότητα ανάπτυξης νέων συναρτήσεων και προγραµµάτων, που δεν έχουν εκ των προτέρων προβλεφθεί, για την εκτέλεση υπολογισµών της επιλογής του χρήστη. Τέλος, ένα από τα βασικά χαρακτηριστικά της Mathematica είναι ότι παρέχει στο χρήστη ένα ιδιαίτερα φιλικό περιβάλλον εργασίας. Τα παραπάνω στοιχεία είναι αυτά που καθιστούν τη Mathematica ιδιαίτερα ελκυστική για εισαγωγή στην εκπαίδευση. Σκοπός του παρόντος βιβλίου είναι να ενηµερώσει τον αναγνώστη για τις δυνατότητες και τη χρησιµότητα της Mathematica, και να τον βοηθήσει στην εκµάθηση των βασικών της σηµείων. Η έκδοση που θα παρουσιαστεί είναι αυτή που εγκαθίσταται στο λειτουργικό σύστηµα των WINDOWS. Οι εκδόσεις της Mathematica που εγκαθίστανται πάνω σε άλλα λειτουργικά συστήµατα λειτουργούν σε γενικές γραµµές µε παρόµοιο τρόπο. Εκκίνηση του προγράµµατος: Η εκκίνηση της Mathematica γίνεται µε διπλό πάτηµα του αριστερού πλήκτρου του «ποντικιού» πάνω στο αντίστοιχο εικονίδιο. Με την εκκίνηση του προγράµµατος, φορτώνεται το πρόγραµµα διαχείρισης (editor) της Mathematica. Μέσα στο φύλο εργασίας του προγράµµατος αυτού γράφονται όλες οι εντολές, δίνεται η εντολή εκτέλεσης τους, και εµφανίζονται τα αποτελέσµατα των πράξεων. Το κυρίως πρόγραµµα της Mathematica, που εκτελεί τους υπολογισµούς, είναι ο πυρήνας (kernel), ο οποίος φορτώνεται αυτόµατα µε την εκτέλεση της πρώτης εντολής. Τα αποτελέσµατα των υπολογισµών εµφανίζονται στο φύλλο εργασίας, αλλά ταυτόχρονα διατηρούνται και στη µνήµη του πυρήνα. Έξοδος από το πρόγραµµα: Η έξοδος από το πρόγραµµα γίνεται µε την επιλογή, µε το αριστερό πλήκτρο του «ποντικιού», της εντολής File του µενού και κατόπιν της εντολής Exit της πινακίδας που θα εµφανιστεί, είτε µε ταυτόχρονο πάτηµα των πλήκτρων Alt F4 του πληκτρολογίου. Όταν µε το πρόγραµµα έχουν εκτελεστεί πράξεις, τότε στη διαδικασία εξόδου από αυτό ο υπολογιστής θα ρωτήσει εάν θέλουµε να σώσουµε το φύλλο εργασίας σε ένα αρχείο. Εάν απαντήσουµε

. Βασικές πράξεις 3 καταφατικά (Yes), τότε µας καθοδηγεί στον ορισµό του ονόµατος του αρχείου και της διεύθυνσης που θα γίνει η αποθήκευση.. Βασικές πράξεις Οι βασικές πράξεις στη Mathematica, και τα σύµβολα (τελεστές) που χρησιµοποιούνται για την εκτέλεση τους, είναι οι παρακάτω: Αριθµητικοί Πράξη Τελεστές Πράξη τελεστές σύγκρισης + συν == Ίσον (σύγκριση) - πλην < µικρότερο * επί < = µικρότερο ή ίσον / δια > µεγαλύτερο ^ δύναµη > = µεγαλύτερο ή ίσον = Ίσον (αντικατάσταση)!= όχι ίσο! παραγοντικό Με τους αριθµητικούς τελεστές εκτελούνται οι γνωστές από την αριθµητική πράξεις, ενώ µε τους τελεστές σύγκρισης γίνεται διερεύνηση σχέσεων µεταξύ δύο ποσοτήτων. (Προσοχή, ο τελεστής σύγκρισης της ισότητας δηλώνεται µε διπλό ίσον, ==. Η σηµασία του και ο τρόπος χρήσης του θα παρουσιαστούν σε επόµενα κεφάλαια). Παρουσίαση του τρόπου χρήσης των παραπάνω τελεστών, µαζί µε παραδείγµατα εφαρµογής των, θα γίνει παρακάτω. Αφού γράψουµε µια εντολή, χρησιµοποιώντας τους παραπάνω τελεστές, για την εκτέλεση της πατάµε ταυτόχρονα Shift Enter, π.χ. +7 Shift Enter Η εντολή Enter από µόνη της συνεπάγεται αλλαγή γραµµής και συνέχιση της εντολής στην επόµενη γραµµή. Μετά την εκτέλεση της εντολής εµφανίζεται στην οθόνη το παρακάτω µήνυµα In[]:= +7

4 ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ Out[]=9 ηλαδή η Mathematica δίνει το αποτέλεσµα, και ταυτόχρονα αριθµεί τις εντολές εισόδου και τα αποτελέσµατα εξόδου. Με παρόµοιο τρόπο έχουµε τη δυνατότητα να εκτελέσουµε όλες τις µαθηµατικές πράξεις, όπως π.χ. In[]:=8-3 Out[]=5 In[3]:=4*6 Out[3]=4 In[4]:=4/6 Out[4]=4 In[5]:=^3 Out[5]=8 Με τους τελεστές σύγκρισης γίνεται σύγκριση µεταξύ δύο ποσοτήτων, και το αποτέλεσµα της πράξης αυτής είναι True (ορθό) ή False (λαθεµένο). Παραδείγµατα εφαρµογής τελεστών σύγκρισης είναι τα παρακάτω: In[6]:= >7 Out[6]=False In[7]:= <=7 Out[7]= True In[8]:=^3==8 Out[8]=True In[9]:=^3!=8 Out[9]= False Όταν µια εντολή τελειώνει µε το σύµβολο του Αγγλικού αλφαβήτου ;, τότε η εντολή εκτελείται αλλά το αποτέλεσµα της δεν εµφανίζεται στη οθόνη, +7; Shift Enter In[0]:= +7;

.3 Ακριβή και προσεγγιστικά αποτελέσµατα 5 Η επιλογή αυτή είναι πολύ χρήσιµη σε περιπτώσεις που το αποτέλεσµα είναι εκτεταµένο και δεν θέλουµε να εµφανιστεί στην οθόνη, όπως π.χ. στη περίπτωση ενός πίνακα µεγάλων διαστάσεων. Με τη Mathematica µπορούµε επίσης να εκτελούµε πράξεις µε ακεραίους, ρητούς, δεκαδικούς και µιγαδικούς αριθµούς. Το σύµβολο για τη µιγαδική µονάδα,, είναι το κεφαλαίο Ι. Σε µια εντολή µπορούµε να χρησιµοποιούµε παρενθέσεις, ( ), και µαθηµατικά σύµβολα, µε τον τρόπο που αυτά χρησιµοποιούνται στην Άλγεβρα, π.χ. In[]:= 3 + 5 + (/3) + ( ) 38 Out[]=. 3 In[]:=(5+7*I)/(+3*I) 3 I Out[]= 3 3 Σηµειώστε ότι στις εντολές In[] και In[] το αποτέλεσµα δίνεται επακριβώς, υπό µορφή ρητού κλάσµατος, και όχι σε µορφή προσεγγιστικού δεκαδικού αριθµού..3 Ακριβή και προσεγγιστικά αποτελέσµατα Σε όλα τα παραδείγµατα της προηγούµενης παραγράφου τα αποτελέσµατα ήταν ακριβή, χωρίς καµιά αριθµητική προσέγγιση. Όταν σε µια έκφραση, όπως στις προηγούµενες, υπάρχουν µόνο ακέραιοι και ρητοί αριθµοί, και αλγεβρικά σύµβολα όπως θα δούµε παρακάτω, τότε η Mathematica εκτελεί τις πράξεις επακριβώς και δίνει το αποτέλεσµα χωρίς καµιά προσέγγιση. Εκτός από την επιλογή αυτή, η Mathematica έχει τη δυνατότητα να εκτελεί αριθµητικές πράξεις µε προσεγγιστικό τρόπο, και να δίνει το αποτέλεσµα σε µορφή δεκαδικού αριθµού. Ο τρόπος αυτός εκτέλεσης εφαρµόζεται αυτόµατα όταν σε µια εντολή υπάρχουν και δεκαδικοί αριθµοί, π.χ. In[]:=3+ 5 + (.0 / 3) + (^) Out[]=.6667

6 ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ In[]:=(5.0+7*I)/(+3*I) Out[]=.3846-0.07693 I Προσοχή: Σηµειώστε ότι το σύµβολο της υποδιαστολής είναι, σύµφωνα µε τον διεθνή συµβολισµό, η τελεία και όχι το κόµµα. Εκτός από τη προηγούµενη περίπτωση, το αποτέλεσµα µιας πράξης δίνεται πάντα αριθµητικά όταν η πράξη αυτή έχει τη µορφή Ν[expression], π.χ. In[3]:= N[3 + 5 + (/3) + ( ) ] Out[3]=.6667. Το σύµβολο Ν στη παραπάνω εντολή είναι πάντα κεφαλαίο, δηλώνει Numeric, και αποτελεί εσωτερική συνάρτηση. Στη Mathematica, το όρισµα µιας συνάρτησης τοποθετείται µέσα σε αγκύλες. Αυτός είναι ο συνηθισµένος τρόπος εκτέλεσης µιας συνάρτησης, Function[argument] και συνεπάγεται τον υπολογισµό της συνάρτησης Function µε όρισµα το argument. Ένας άλλος τρόπος εκτέλεσης της ίδιας εντολής είναι ο παρακάτω argument //Function και δηλώνει ότι η έκφραση argument που βρίσκεται αριστερά του συµβόλου // αποτελεί το όρισµα της συνάρτησης Function. Με βάση το δεύτερο αυτό τρόπο γραφής η εντολή In[3] γίνεται In[4]:= 3 + 5 + (/3) + ( ) //N Out[4]=.6667. Η Mathematica εκτελεί τις πράξεις µε ακρίβεια 6 ψηφίων (ο αριθµός των ψηφίων που εµφανίζονται στη οθόνη είναι γενικά µικρότερος και καθορίζεται από τον χρήστη). Μπορούµε όµως να αυξήσουµε την ακρίβεια µε την οποία θα εκτελεστεί µία πράξη µε την εντολή Ν[expression, n]

.4 Μαθηµατικές σταθερές 7 όπου n ο αριθµός των ψηφίων µε τα οποία ζητείται να γίνει η πράξη αυτή, µε το n υποχρεωτικά µεγαλύτερο του 6. Π.χ. η εντολή In[5]:=N[/3, 30] Out[5]=0.333333333333333333333333333333 υπολογίζει το π µε ακρίβεια 30 ψηφίων. Όταν το n είναι µικρότερο του 6, τότε η εντολή εκτελείται µε ακρίβεια 6 δεκαδικών ψηφίων. Όπως αναφέραµε παραπάνω, η Mathematica αριθµεί τις εντολές εισόδου και εξόδου χρησιµοποιώντας το συµβολισµό In[n] και Out[n] αντίστοιχα, µε n τον αριθµό της εντολής. Επειδή έτσι οι εντολές αριθµούνται, µπορούµε να χρησιµοποιήσουµε µια προηγούµενη εντολή, εισόδου ή εξόδου, και να την περιλάβουµε ως µέρος µιας καινούργιας, γράφοντας π.χ. In[n], όπου n ο αριθµός της εντολής αυτής, π.χ. In[6]:= In[4] +.7 Out[6]=4.3667. Επίσης µπορούµε να χρησιµοποιήσουµε το αποτέλεσµα µιας προγενέστερης εντολής δίνοντας %n, ή Out[n], µε n τον αριθµό εξόδου του αποτελέσµατος αυτού, In[7]:=%6 -.7 Out[7]=.6667. Εάν το χρησιµοποιούµενο αποτέλεσµα είναι της αµέσως προηγούµενης εντολής, τότε µπορούµε να το καλέσουµε και µε την εντολή %, και της προ-προηγούµενης µε την %%. Εάν το αποτέλεσµα µιας εντολής είναι αλγεβρικό, µπορούµε να το µετατρέψουµε σε αριθµητικό, δίνοντας την εντολή Ν[%n] ή %n // Ν..4 Μαθηµατικές σταθερές Η Mathematica αναγνωρίζει τις συνηθισµένες µαθηµατικές σταθερές και τις αναπαριστά µε σύµβολα, π.χ.

8 ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ Pi, δηλώνει τον αριθµό π 3.459... Ε, τη βάση των νεπερίων (φυσικών) λογαρίθµων, e.78888459... Ι, τη µιγαδική µονάδα, I = Degree, Infinity, το π/80, που είναι ο παράγοντας µετατροπής µοιρών σε ακτίνια συµβολίζει το άπειρο. Οι σταθερές αυτές εισάγονται στις πράξεις µε τα αντίστοιχα σύµβολα, χρησιµοποιώντας πάντα το Αγγλικό αλφάβητο, In[]:= Pi^ + I*E^3 // N Out[]= 9.8696 + 0.0855 I. In[]:=Exp[]-E^ Out[]=0 In[3]:=N[Pi, 40] Out[3]=3.4596535897933846643383795088497.5 Εσωτερικές συναρτήσεις Στη Mathematica υπάρχει µια πολύ µεγάλη σειρά εσωτερικών συναρτήσεων που µπορούν να χρησιµοποιηθούν για εκτέλεση πράξεων, δηλώνοντας το αντίστοιχο όνοµα και καθορίζοντας το όρισµά τους. Από αυτές, οι πιο συνηθισµένες είναι οι εξής: Sqrt[x] Τετραγωνική ρίζα, x Log[x] Exp[x] Cos[x], Sin[x], Tan[x] ArcCos[x], ArcSin[x], ArcTan[x] Cosh[x], Sinh[x], Tanh[x] ArcCosh[x], ArcSinh[x], ArcTanh[x] Λογαριθµική συνάρτηση (Νεπέριος λογάριθµος του x) Εκθετική συνάρτηση, x e Τριγωνοµετρικές συναρτήσεις Αντίστροφες τριγωνοµετρικές συναρτήσεις Υπερβολικές συναρτήσεις Αντίστροφες υπερβολικές συναρτήσεις

.5 Εσωτερικές συναρτήσεις 9 Re[z], Im[z] Πραγµατικό και φανταστικό µέρος ενός µιγαδικού αριθµού, z Arg[z] Όρισµα µιγαδικού αριθµού Abs[z] Απόλυτη τιµή µιγαδικού αριθµού Conjugate[z.] Συζυγής µιγαδικού αριθµού Max[x, y, ] Επιλέγει τον µεγαλύτερο από τους αριθµούς {x, y, } Min[x, y, ] Επιλέγει τον µικρότερο από τους αριθµούς {x, y, } Mod[x, y] Υπολογίζει το υπόλοιπο της διαίρεσης του x δια του y. Οι εσωτερικές συναρτήσεις αρχίζουν πάντα µε κεφαλαίο γράµµα, και το όρισµα τους τοποθετείται µέσα σε αγκύλες. In[]:=Sqrt[4]*Log[7]/Exp[3] Out[]=( Log[7]) / [e^3) In[]:=Sqrt[4]*Log[7]/Exp[3]//N Out[]=0.9376 In[3]:= Sqrt[.]*Log[7]*Sin[.8]/(Exp[.0]*Re[.3 + I*5]) Out[3]= 0.0555834 Επίσης το όρισµα των τριγωνοµετρικών συναρτήσεων πρέπει να δίνεται σε ακτίνια. Σε περίπτωση όµως που η γωνία δίνεται σε µοίρες, πρέπει να πολλαπλασιάζεται µε τον παράγοντα µετατροπής, Degree, για να µετατρέπεται σε ακτίνια, π.χ. In[4]:=Cos[π/4] Out[4]= In[5]:=Cos[45 Degree] Out[5]=

0 ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ Προσοχή: Η Mathematica ξεχωρίζει τα µικρά από τα κεφαλαία γράµµατα, που συνεπάγεται ότι όταν κεφαλαία γράµµατα µιας εντολής γίνουν µικρά (και αντίστροφα) τότε η εντολή αυτή δεν είναι αναγνωρίσιµη από τη Mathematica και δεν εκτελείται, π.χ. η εντολή log[.5] είναι διαφορετική από την Log[.5], και δεν υπάρχει ως εσωτερική συνάρτηση. Άσκηση. Υπολογίστε τις αριθµητικές τιµές των ποσοτήτων α) cos(3π/) ε) sinh(8) β) arcsin(/3) στ) log( π ) γ) 3 00 ζ) 50 + sin(45 ) δ) π 00 η) tan(π/5) Άσκηση. Υπολογίστε τις ακριβείς τιµές των ποσοτήτων α) cos(3π/) δ) cos(π/0) β) tan(π/5) ε) cos(75 ) γ) 3 00 στ) tan(75 ) Άσκηση.3 Υπολογίστε τις παρακάτω ποσότητες µε ακρίβεια 00 σηµαντικών ψηφίων α) cos(3π/) ε) cos(π/0) β) tan(π/5) στ) cos(75 ) γ) 3 00 ζ) tan(75 ) δ) π 00 η) 50 + sin(45 ).6 Πράξεις µε αλγεβρικές παραµέτρους Στη Mathematica, όπως και στην άλγεβρα, µπορούµε να κάνουµε πράξεις µε αλγεβρικά σύµβολα (παραµέτρους). Το όνοµα µιας αλγεβρικής παραµέτρου

.6 Πράξεις µε αλγεβρικές παραµέτρους µπορεί να περιέχει ένα ή περισσότερα γράµµατα ή αριθµούς, αλλά το πρώτο στοιχείο πρέπει απαραίτητα να είναι ή γράµµα ή το σύµβολο $. Επίσης µέσα στο όνοµα δεν επιτρέπεται να περιλαµβάνονται κενά, τα δε ονόµατα πρέπει απαραιτήτως να χωρίζονται µεταξύ τους µε κάποιο από τα σύµβολα των πράξεων (+, -, *, /,...) ή το κενό. Το κενό αντιστοιχεί σε πολλαπλασιασµό, π.χ. η εντολή height width ισοδυναµεί µε το γινόµενο height*width, ενώ η συνεχόµενη παράθεση heightwidth αντιστοιχεί στο όνοµα µιας νέας µεταβλητής, της heightwidth, και όχι στο γινόµενο των δυο προηγούµενων µεταβλητών. In[]:=name*Sin[]*Sqrt[]/Cos[4] Out[]= name Sec[4] Sin[] In[]:=name*Sin[]*Sqrt[]/Cos[4] // N Out[]=-.96734 name Μια αλγεβρική παράµετρος µπορεί να είναι σε αφηρηµένη µορφή οπότε δεν έχει συγκεκριµένη αριθµητική τιµή, µπορεί όµως να της αποδοθεί και αριθµητική τιµή, και αυτό γίνεται µε το σύµβολο της ανάθεσης, που είναι το σύµβολο της ισότητας, =, και την εντολή name = value µε value τη τιµή που αποδίδεται στη παράµετρο name. In[3]:= a = 3. Out[3]= 3. Ο ορισµός αυτός έχει σα συνέπεια η παράµετρος name να αντικαθίσταται στη µνήµη µε την αριθµητική τιµή που της αποδίδεται και η οποία χρησιµοποιείται στη θέση της παραµέτρου σε όλες τις επόµενες εντολές, In[4]:= a^ -. Out[4]= 8.6 Η αριθµητική αυτή τιµή µπορεί, µε τη βοήθεια µιας καινούργιας εντολής, να αλλάξει, ή ακόµα και να διαγραφεί.

ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ.7 ιαγραφή τιµών και παραµέτρων Η αριθµητική τιµή µιας αλγεβρικής παραµέτρου µπορεί να διαγραφεί από τη µνήµη του υπολογιστή µε την εντολή name =. ή την εντολή Clear [name] µε name το όνοµα της αλγεβρικής παραµέτρου την αριθµητική τιµή της οποίας θέλουµε να διαγράψουµε. Μετά τη διαγραφή αυτή, η παράµετρος παραµένει στη µνήµη, αλλά χωρίς να έχει αριθµητική τιµή. Π.χ. In[]:= a =. ή In[]:= Clear[a] Μπορούµε επίσης να διαγράψουµε τις τιµές όλων των αλγεβρικών παραµέτρων από τη µνήµη του υπολογιστή µε την εντολή ClearAll[ Global`* ] Προσοχή: το σύµβολο ` είναι ο ανάποδος τόνος που βρίσκεται στο ίδιο πλήκτρο µε το σύµβολο ~). Με τις παραπάνω εντολές γίνεται διαγραφή της αριθµητικής τιµής µιας παραµέτρου, χωρίς η παράµετρος αυτή να διαγράφεται από τη µνήµη του υπολογιστή. Μια πιο δραστική διαδικασία είναι η πλήρης διαγραφή της παραµέτρου από τη µνήµη του υπολογιστή, και αυτό γίνεται µε την εντολή Remove[name] Π.χ. In[3]:= Remove[a] Μπορούµε επίσης να διαγράψουµε όλες τις παραµέτρους µε την εντολή Remove[ Global`* ]

.8 Σύνθετες εντολές 3 Τέλος µπορούµε να διαγράψουµε τα πάντα από τη µνήµη του υπολογιστή, ξεφορτώνοντας τον πυρήνα της Mathematica, µε την εντολή Kernel Quit_Kernel Local. Μετά από αυτή την εντολή µπορούµε να ξαναρχίσουµε την εκτέλεση των πράξεων. Για να ξαναδηµιουργηθούν όµως όλα τα δεδοµένα στη µνήµη του πυρήνα πρέπει να ξανατρέξουµε το πρόγραµµα από την αρχή..8 Σύνθετες εντολές Μια σύνθετη εντολή έχει προς εκτέλεση περισσότερα από ένα ανεξάρτητα µέρη (επιµέρους εντολές). Σε µια τέτοια περίπτωση οι επιµέρους εντολές εισάγονται η µία µετά την άλλη σε διαδοχικές γραµµές, πατώντας ενδιάµεσα Enter για αλλαγή της γραµµής. Μετά τη συµπλήρωση όλων των επί µέρους εντολών, δίνεται η εντολή εκτέλεσης (Shift Enter), In[]:=a = Sin[.7] Enter b = Log[7.] Enter c = Sqrt[7.73] Enter d = Im[7. + I 8.3] Shift Enter Out[]=0.99665 Out[]=3.9953 Out[3]=.7809 Out[4]=8.3 Οι επιµέρους εντολές µπορούν επίσης να γραφούν στην ίδια γραµµή, χρησιµοποιώντας ως µεταξύ τους διαχωριστικό το Αγγλικό σύµβολο ;, π.χ. In[5]:= a = Sin[.7]; b = Log[7.]; c = Sqrt[7.73]; d = Im[7. + I*8.3] Shift Enter Out[6]=8.3 Στη παραπάνω περίπτωση το µόνο αποτέλεσµα που εµφανίζεται στην οθόνη είναι το τελευταίο, d=8.3, διότι οι προηγούµενες εντολές τελειώνουν µε ; και έτσι τα αποτελέσµατα τους δεν εµφανίζονται.

4 ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ.9 Σύµβολα και πράξεις από τις παλέτες Για να εκτελεστεί µια πράξη στη Mathematica, θα πρέπει να δοθεί η αντίστοιχη εντολή µε τη σωστή σύνταξη. Στην αντίθετη περίπτωση το πρόγραµµα απαντά µε διαγνωστικά µηνύµατα που σκοπό έχουν να µας διευκολύνουν να εντοπίσουµε το συντακτικό λάθος. Για να αποφεύγονται τέτοια λάθη και να γίνει πιο εύχρηστο το πρόγραµµα, έχουν συνταχθεί παλέτες, που περιέχουν µερικές από τις πιο χρήσιµες εντολές, όπως και µερικά από τα σύµβολα που µπορούν να χρησιµοποιηθούν για τη σύνταξη µιας συγκεκριµένης εντολής. Οι παλέτες αυτές έχουν συγκεντρωθεί στο µενού File Palettes, και κάθε µια έχει το δικό της τίτλο. Επιλέγοντας µια συγκεκριµένη παλέτα µε τη βοήθεια του «ποντικιού», προκαλούµε την εµφάνιση στη οθόνη των εντολών που αυτή περιέχει. Πολύ χρήσιµες από τις παλέτες είναι η παλέτες AlgebraicManipulation και BasicInput. Για εξοικείωση θα περιγράψουµε τη χρήση της πρώτης από αυτές, οι υπόλοιπες χρησιµοποιούνται µε παρόµοιο τρόπο. Οι εντολές που έχουν συγκεντρωθεί στη παλέτα AlgebraicManipulation σκοπό έχουν να απλοποιήσουν αλγεβρικές εκφράσεις. Η εκτέλεση από τη παλέτα µιας τέτοιας εντολής γίνεται µε την επιλογή, µε το «ποντίκι», της έκφρασης στην οποία θέλουµε να την εφαρµόσουµε και κατόπιν τη κλήση της εντολής αυτής από τη παλέτα. Οι επιλογές που υπάρχουν αφορούν τις περιπτώσεις: Expand: Η εντολή αυτή αναπτύσσει τα γινόµενα και τις δυνάµεις που υπάρχουν σε µια έκφραση, π.χ. In[]:= Expand[(x+y)^] ( Η ίδια εντολή µπορεί να δοθεί και ως εξής (x+y)^//expand ) Out[]= x + xy + y Πολλές φορές όµως η έκφραση (a+x)^ υπάρχει ήδη στο φύλλο εργασίας σαν αποτέλεσµα µιας προηγούµενης πράξης. Στη περίπτωση αυτή δεν χρειάζεται να πληκτρολογήσουµε ξανά την εντολή για να εκτελέσουµε το ανάπτυγµα, µπορούµε απλούστατα να επιλέξουµε µε το «ποντίκι» την έκφραση που θέλουµε να αναπτύξουµε και να καλέσουµε την εντολή Expand από τη παλέτα. Factor: Παραγοντοποιεί µια συγκεκριµένη έκφραση, π.χ.

.9 Σύµβολα και πράξεις από τις παλέτες 5 In[]:= Factor[%] Out[]= ( x + y) Το ίδιο αποτέλεσµα το παίρνουµε µαυρίζοντας την έξοδο Out[] και καλώντας την εντολή Factor από τη παλέτα. Together: Αθροίζει αλγεβρικά κλάσµατα και απλοποιεί κοινούς παράγοντες µεταξύ αριθµητή και παρανοµαστή. In[3]:= Together[/(x + ) + x/(x^ - )] + x Out[3]= ( + x)( + x) Apart: Χωρίζει ένα αλγεβρικό κλάσµα σε άθροισµα µερικών κλασµάτων µε απλούστερους παρανοµαστές. In[4]:= Apart[%] 3 Out[4]= + ( + x ) ( + x) Cancel: Απλοποιεί κοινούς παράγοντες µεταξύ αριθµητή και παρανοµαστή σε ένα αλγεβρικό κλάσµα. In[5]:= Cancel[(x^ + 4x)/(x^ - x) + (x^ + 3x - 4)/(x^ -)] 4 + x 4 + x Out[5]= + + x + x Simplify: Εκτελεί µια σειρά από αλγεβρικούς µετασχηµατισµούς στη συγκεκριµένη έκφραση και επιστρέφει το απλούστερο αποτέλεσµα In[6]:=Simplify[8 + 39 x + 9 x^ + 9 x^3 + x^4] Out[6]=(3 + x)^ ( + 3 x + x^). FullSimplify: Παρόµοια εντολή µε την Simplify αλλά εκτελεί µια µεγαλύτερη οµάδα µετασχηµατισµών. In[7]:=FullSimplify[8 + 39 x + 9 x^ + 9 x^3 + x^4] Out[7]= ( + x) ( + x) (3 + x)^.

6 ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ TrigExpand: Αναπτύσσει τριγωνοµετρικές συναρτήσεις χρησιµοποιώντας τριγωνοµετρικές ταυτότητες. In[8]:=TrigExpand[Sin[ArcTan[t]]] t Out[8]= + t TrigFactor: Παραγοντοποιεί τριγωνοµετρικές συναρτήσεις. In[9]:=TrigFactor[Cos[x] Cos[y] Sin[x] - Sin[x]^ Sin[y]] Out[9]= Cos[x + y] Sin[x] TrigReduce: Απλοποιεί τριγωνοµετρικές συναρτήσεις. In[0]:=TrigReduce[Cos[x] Cos[y] - Sin[x] Sin[y]] Out[0]= Cos[x+y] ExpToTrig: Μετατρέπει όρους µε µιγαδικούς εκθέτες σε τριγωνοµετρικούς όρους. In[]:=ExpToTrig[I (Exp[-I z]- Exp[I z])/] Out[]= Sin[z] TrigToExp: Μετατρέπει τριγωνοµετρικούς όρους σε όρους µε µιγαδικούς εκθέτες. In[]:= TrigToExp[ArcTanh[x]] Out[]= Log [ x] + Log[ + x] Άσκηση.4 Χρησιµοποιώντας τη Mathematica υπολογίστε τα τριγωνοµετρικά αναπτύγµατα των συναρτήσεων: α) sin( x ± y) δ) cot( x ± y) β) cos( x ± y) ε) sin( 4x ) γ) tan( x ± y) στ) cos( 4x )

.0 Λίστες - Πίνακες 7 Άσκηση.5 Χρησιµοποιώντας τη Mathematica αποδείξτε τις σχέσεις: α) cos ( x ) + sin ( x) = 4 4 β) cos ( x ) + sin ( x) + sin (x) = 4 4 γ) cos (x) - 6 cos (x) sin (x) + sin (x) - sin(4 x) = 0.0 Λίστες - Πίνακες Η λίστα είναι ένα πολύ βασικό εργαλείο της Mathematica, και µια από τις πολλές χρησιµότητες της είναι για την εισαγωγή δεδοµένα σε ένα υπολογισµό ή για την αποθήκευση αποτελεσµάτων. Στη Mathematica, η λίστα είναι ισοδύναµη µε ένα µαθηµατικό πίνακα. Για να ορίσουµε µια λίστα χρησιµοποιούµε άγκιστρα, { }, µέσα στα οποία βάζουµε τα στοιχεία της, χωρισµένα µε κόµµατα. Η ακόλουθη έκφραση In[]:= lista = {a,., {x, y}, Sqrt[], I, Sin[x]} Out[]= {a,., {x, y},, i, Sin[x]} είναι µια λίστα, η οποία έχει το όνοµα lista και περιλαµβάνει αριθµούς, σύµβολα, εσωτερικές λίστες κ.λ.π. Μια µονοδιάστατη λίστα δεν περιέχει εσωτερικές λίστες. Η δισδιάστατη λίστα αντιπροσωπεύει ένα δισδιάστατο πίνακα, κάθε γραµµή της οποίας τοποθετείται µέσα σε ξεχωριστά, εσωτερικά άγκιστρα. Η λίστα In[]:= a = {{x, y, I}, {., Sqrt[3], Cos[.7]}} Out[]={{x, y, i}, {., 3, 0.968}} αντιπροσωπεύει ένα πίνακα 3. Τα στοιχεία µιας λίστας χαρακτηρίζονται µε δείκτες, που δηλώνουν τη γραµµή και τη στήλη, όπως χαρακτηρίζονται και τα στοιχεία ενός αλγεβρικού πίνακα. Στη Mathematica οι δείκτες (i, j) µιας λίστας τοποθετούνται µέσα σε διπλές αγκύλες, π.χ. το a[[i, j]] δηλώνει το στοιχείο (i, j) του πίνακα. Για µονοδιάστατους πίνακες έχουµε ένα µόνο δείκτη, π.χ. lista[[i]]. Μπορούµε να τυπώσουµε στην οθόνη το στοιχείο (i, j) του πίνακα a δίνοντας την

8 ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ εντολή a[[i, j]]. Μπορούµε επίσης να τροποποιήσουµε τη τιµή του στοιχείου αυτού µε την εντολή: a[[i, j]] = νέα τιµή Μπορούµε να αναπαραστήσουµε µια λίστα a µε τη συνηθισµένη µορφή πίνακα µε την εντολή In[3]:=TableForm[a] ή την ισοδύναµη a//tableform ή τη µορφή αλγεβρικού πίνακα µε την εντολή In[4]:=MatrixForm[a] ή την ισοδύναµη a//matrixform Ένα πίνακα µπορούµε επίσης να τον δηµιουργήσουµε χρησιµοποιώντας το βασικό µενού, πηγαίνοντας στο Input και επιλέγοντας το Create Table/Matrix/Palette. Ο πίνακας τότε εµφανίζεται µε τη παραδοσιακή του µορφή, στον οποίο κάνουµε τις κατάλληλες επιλογές, µπορούµε π.χ. να συµπληρώσουµε τα στοιχεία του. Επίσης, οι γραµµές του πίνακα αυτού µπορούν να αυξηθούν µε ταυτόχρονο πάτηµα Control Enter, ενώ οι στήλες µε Control, (Control µαζί µε κόµµα). Για να διαγράψουµε µια γραµµή ή στήλη, την µαυρίζουµε µε το «ποντίκι» και πατάµε Delete. Άσκηση.6 ηµιουργήστε πίνακες διαστάσεων 3 4, 4 4, 0, και 5 3, επιλέγοντας τα στοιχεία τους µε τυχαίο τρόπο.. Εντολή Table Στη προηγούµενη παράγραφο είδαµε πως να καθορίσουµε ένα πίνακα, ορίζοντας τα στοιχεία του ένα προς ένα. Όταν όµως οι αριθµητικές τιµές των στοιχείων του πίνακα α καθορίζονται από µια συνάρτηση, τότε µπορούµε να δηµιουργήσουµε τον πίνακα αυτό χρησιµοποιώντας την εντολή Table. Για παράδειγµα, εξετάζοντας τη περίπτωση ενός δισδιάστατου πίνακα, όπου τα στοιχεία

. Εντολή Table 9 του a[[i, j]] καθορίζονται από µια συνάρτηση f[i, j], µπορούµε να τον ορίσουµε µε την εντολή a = Table[ f[i, j],{i,, imax}, {j,, jmax} ] Η λίστα {i,, imax}, στην εντολή Table, δηλώνει ότι ο δείκτης i παίρνει όλες τις ακέραιες τιµές από το µέχρι imax. Ο γενικότερος συµβολισµός είναι {i, imin, imax, δi}, και δηλώνει ότι το i µεταβάλλεται από imin στο imax µε βήµα δi. Η παραπάνω εντολή δηµιουργεί τον πίνακα {{f[, ], f[, ], }, {f[, ], f[, ], }, }. Η εντολή Table εύκολα γενικεύεται για λίστες περισσοτέρων διαστάσεων. Παράδειγµα: Ένας δισδιάστατος πίνακας, µε στοιχεία που δίνονται από τη σχέση ( i + j) /, µπορεί να δηµιουργηθεί µε την εντολή: In[]:=ta = Table[(i + j)/.0, {i,, 3}, {j,, 5}] Out[]={{.,.5,.,.5, 3.}, {.5,.,.5, 3., 3.5}, {.,.5, 3., 3.5, 4.}} Άσκηση.7 ηµιουργήστε πίνακες διαστάσεων 3 4, 4 4, 0, και 5 3 που τα στοιχεία τους να δίνονται από τη συνάρτηση (α) sin( i j), και (β) i j. Μια άλλη περίπτωση που συχνά συναντάµε είναι αυτή που τα στοιχεία κάθε στήλης του πίνακα καθορίζονται µε διαφορετική συνάρτηση. Τότε ο πίνακας µπορεί να ορισθεί µε εντολή a = Table[{ f[i], f[i],... fn[i]}, {i,, i max } ] Η εντολή αυτή δηµιουργεί τον πίνακα {{f[], f[], }, {f[], f[], }, } π.χ. In[]:=ta = Table[{i, Sqrt[i] // N, Sin[0.3 i]}, {i,, 3}] Out[]= {{,., 0.955}, {,.44, 0.56464}, {3,.7305, 0.78337}}

30 ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ Άσκηση.8 ηµιουργήστε πίνακες διαστάσεων 3, και 0, που τα στοιχεία της πρώτης στήλης να δίνονται από τη σχέση i / 0, και της δεύτερης από τη σχέση (α) sin( i ), και (β) i, µε i το δείκτη που δηλώνει τη σειρά του πίνακα. Κενός πίνακας: Είδαµε παραπάνω διάφορους τρόπους ταυτόχρονης δηµιουργίας και καθορισµού των στοιχείων ενός πίνακα. Τα στοιχεία του πίνακα αυτού µπορούν κατόπιν να τροποποιηθούν. Μια λεπτοµέρεια που πρέπει να έχουµε υπόψη είναι ότι στη Mathematica (όπως και σε πολλές άλλες γλώσσες προγραµµατισµού) δεν επιτρέπεται να δώσουµε τιµές στα στοιχεία ενός πίνακα, προτού αυτός οριστεί. ηλαδή, προτού οριστεί ο πίνακας Α, η εντολή καθορισµού ενός στοιχείου, π.χ. In[3]:=Α[[]] =. δίνει ως αποτέλεσµα το παρακάτω διαγνωστικό From In[3]:=Set::"noval": "Symbol A in part assignment does not have an immediate value." Out[3]=. χωρίς να ορίζεται το στοιχείο αυτό. Ένας τρόπος για να ξεπεραστεί το πρόβληµα αυτό είναι να ορίσουµε πρώτα ένα κενό πίνακα A και µετά να καθορίσουµε τις τιµές των στοιχείων του. Η εντολή δηµιουργίας ενός δισδιάστατου κενού πίνακα, διαστάσεων n m, είναι Table[Null, {n}, {m}] Ένας κενός πίνακας 3 3 δηµιουργείται µε εντολή In[4]:=A = Table[Null, {3}, {3}] Out[4]={{Null, Null, Null}, {Null, Null, Null}, {Null, Null, Null}}. Τα στοιχεία του πίνακα αυτού µπορούν να καθοριστούν σε επόµενο στάδιο.

. Συντακτική αντικατάσταση 3. Συντακτική αντικατάσταση Όπως είδαµε παραπάνω, µε την εντολή ανάθεσης x = x0 ο υπολογιστής αποθηκεύει την τιµή x0 στη θέση του x και την χρησιµοποιεί σε όλες τις επόµενες πράξεις που περιέχουν x. Συναντάµε όµως συχνά περιπτώσεις όπου θέλουµε να εκτελέσουµε ένα µόνο υπολογισµό µε µια συγκεκριµένη τιµή της παραµέτρου x, π.χ. να υπολογίσουµε τη συνάρτηση f[x] για x = x0, χωρίς όµως να θέλουµε η τιµή αυτή του x να µείνει στη µνήµη του υπολογιστή. Ο υπολογισµός αυτός γίνεται µε την εντολή της συντακτικής αντικατάστασης, και τη χρήση του τελεστή /. f[x] /. x x0 Μπορούµε επίσης να χρησιµοποιήσουµε τη παραπάνω διαδικασία για περισσότερες παραµέτρους, χρησιµοποιώντας τη λίστα αντικατάστασης a={x x0, y y0,...}, και εκτελώντας τον υπολογισµό µε την εντολή f[x, y,...] /. {x x0, y y0,...} ή f[x, y, ] /. a Παραδείγµατα: In[]:= Sin[0.x] /. x -> Pi Out[]= 0.30907 In[]:= x^ y /. {x ->, y -> } Out[]=.3 Εντολές διαχείρισης Βοήθεια: Μέσα από τη σελίδα εργασίας µπορούµε να ζητήσουµε βοήθεια για το τρόπο εκτέλεσης µιας συνάρτησης ή µιας εντολής, δίνοντας την εντολή?name η??name, όπου name το όνοµα της συνάρτησης ή εντολής για την οποία ζητάµε βοήθεια (η εντολή??name, µε δύο ερωτηµατικά, παρέχει περισσότερες πληροφορίες). In[]:=?Log "Log[z] gives the natural logarithm of z (logarithm to base e).

3 ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ Log[b, z] gives the logarithm to base b." Η Mathematica διαθέτει επίσης εκτεταµένο ηλεκτρονικό βοήθηµα που περιγράφει τη χρήση της. Το βοήθηµα αυτό εµφανίζεται σε ξεχωριστό παράθυρο, πατώντας το πλήκτρο F. Στο παράθυρο αυτό υπάρχει τόσο αλφαβητικό ευρετήριο όσο και πίνακας περιεχοµένων. Σηµειώστε ότι τα παραδείγµατα που υπάρχουν στο παράθυρο βοήθειας µπορούν να εκτελεστούν µέσα σε αυτό, καθώς και να τροποποιηθούν και να εκτελεστούν. Η εξάσκηση µε τα παραδείγµατα αυτά είναι µια πολύ καλή διαδικασία εκµάθησης της Mathematica. Εισαγωγή σχολίων: Στο φύλλο εργασίας µπορούµε να εισαγάγουµε σχόλια. Ένας τρόπος να γίνει αυτό είναι να τοποθετηθεί το κείµενο µέσα σε παρενθέσεις µε αστεράκι: (* σχόλιο *), το οποίο για τη Mathematica δεν είναι εκτελέσιµο. Καθένα από τα διπλά αυτά σύµβολα, (* και *), είναι εσωτερικές εντολές και πρέπει να διαχωρίζονται από το εσωτερικό κείµενο µε κενά. In[]:=^3 (* τρίτη δύναµη του *) Out[]=8 Ένας άλλος τρόπος είναι µε την εντολή Format Style Text η οποία ορίζει ότι η είσοδος που ακολουθεί είναι µη εκτελέσιµο κείµενο. ιακοπή εκτέλεσης: Μπορούµε να διακόψουµε την εκτέλεση µιας εντολής πατώντας ταυτόχρονα Alt. Μερικές φορές όµως δηµιουργείται εµπλοκή, και η εκτέλεση µιας εντολής δεν διακόπτεται µε τον τρόπο αυτό. Σ αυτή τη περίπτωση µπορούµε να διακόψουµε την εκτέλεση, και να ξεκολλήσουµε το σύστηµα, χωρίς να βγούµε από τη Mathematica, µε το να ξεφορτώσουµε τον πυρήνα της Mathematica δίνοντας από το µενού την εντολή Kernel Quit_Kernel Local. Μετά από αυτό µπορούµε να ξαναρχίσουµε την εκτέλεση των πράξεων. Επισηµαίνεται ότι µε τη παραπάνω διαδικασία δεν σβήνεται το φύλλο εργασίας, και έτσι διασώζονται όλες οι εντολές που έχουν γραφτεί σ αυτό, όµως σβήνουν όλα τα δεδοµένα που υπάρχουν στη µνήµη του υπολογιστή, και για να ξαναδηµιουργηθούν πρέπει να ξανατρέξουµε το πρόγραµµα από την αρχή.

.3 Εντολές διαχείρισης 33 Συνολική εκτέλεση του προγράµµατος: Μπορούµε να εκτελέσουµε το σύνολο των εντολών που υπάρχουν στο φύλλο εργασίας δίνοντας από το µενού την εντολή Kernel Evaluation Evaluate Notebook. ιαγραφή αποτελεσµάτων: Μπορούµε να διαγράψουµε όλα τα αποτελέσµατα των υπολογισµών από το φύλλο εργασίας, και να κρατήσουµε µόνο τις εντολές εισόδου, δίνοντας από το µενού την εντολή Kernel Delete All Output. Η εντολή αυτή είναι χρήσιµη στη διαδικασία αποθήκευσης του φύλλου εργασίας. Σε πολλές περιπτώσεις δεν ενδιαφερόµαστε να αποθηκεύσουµε τα αποτελέσµατα των υπολογισµών, οπότε για να εξοικονοµήσουµε αποθηκευτικό χώρο µπορούµε να διαγράψουµε τα αποτελέσµατα και να αποθηκεύσουµε µόνο τις εντολές του προγράµµατος. Αποθήκευση φύλλου εργασίας: Η αποθήκευση του φύλλου εργασίας γίνεται µε πάτηµα του αριστερού πλήκτρου του «ποντικιού» πάνω στην εντολή File του µενού και κατόπιν πάνω στην εντολή Save as της πινακίδας που θα εµφανιστεί και που µας καθοδηγεί στον ορισµό του ονόµατος του αρχείου και της διεύθυνσης που θα αποθηκευθεί. Το φύλλο εργασίας αποθηκεύεται µε την κατάληξη.nb (notebook).

34 ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ

. ισδιάστατες γραφικές παραστάσεις 35 ΚΕΦΑΛΑΙΟ ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΡΑΦΙΚΑ Οι γραφικές παραστάσεις είναι ένας απλός και εποπτικός τρόπος απόδοσης αποτελεσµάτων, που µας βοηθά να κατανοήσουµε καλύτερα το φαινόµενο που περιγράφουν τα δεδοµένα. Η Mathematica διαθέτει ένα πλήρες και εύχρηστο πακέτο γραφικών, µε το οποίο µπορούµε να αποδώσουµε γραφικά τόσο συναρτήσεις µιας και δύο µεταβλητών, όσο και αριθµητικά δεδοµένα. Στο παρόν κεφάλαιο θα κάνουµε µια εισαγωγή στη χρήση του πακέτου αυτού, αφήνοντας πιο προχωρηµένα θέµατα για το κεφάλαιο 9.. ισδιάστατες γραφικές παραστάσεις Χρησιµοποιώντας τη Mathematica µπορούµε να αποδώσουµε γραφικά συναρτήσεις µιας µεταβλητής. Η εντολή για τη δισδιάστατη γραφική παράσταση µιας συνάρτησης f (x) είναι η παρακάτω Plot[f[x], {x, xmin, xmax}] και δίνει τη γραφική παράσταση της συνάρτησης αυτής στο διάστηµα (xmin, xmax). Παράδειγµα: Η γραφική παράσταση της συνάρτησης x sin(x), στο διάστηµα (0, 4π), δίνεται από την εντολή

36 ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΡΑΦΙΚΑ In[]:=g = Plot[Sqrt[x]*Sin[x], {x, 0, 4Pi}] - 4 6 8 0 - -3 Υπάρχει επίσης η δυνατότητα ταυτόχρονης αναπαράστασης πολλών συναρτήσεων µέσα στο ίδιο σχήµα, και αυτό γίνεται µε την εντολή Plot[{f[x], f[x],...}, {x, xmin, xmax}] µε (f(x), f(x),...) συναρτήσεις µιας ανεξάρτητης µεταβλητής, που καθορίζουν τις αντίστοιχες καµπύλες. Παράδειγµα: In[]:=g = Plot[{Sin[x], Cos[x]}, {x, 0, 4Pi}]

. ισδιάστατες γραφικές παραστάσεις 37 0.5 4 6 8 0-0.5 -.. Συνένωση σχηµάτων Σχήµατα που έχουν ήδη δηµιουργηθεί, π.χ. τα σχήµατα g, g,..., µπορούν να συνενωθούν σε ένα µε την εντολή Show[g, g,...] Παράδειγµα: Τα σχήµατα g και g των παραπάνω παραδειγµάτων, µπορούν να συνενωθούν σ ένα µε την εντολή In[3]:=Show[g, g]

38 ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΡΑΦΙΚΑ 4 6 8 0 - - -3 ή να εµφανισθούν υπό µορφή πίνακα γραφηµάτων, GraphicsArray, το ένα δίπλα στο άλλο, µε την εντολή Show[GraphicsArray[{g, g,...}]] Π.χ. In[4]:=Show[GraphicsArray[{g, g}]] 0.5 - - 4 6 8 0-0.5 4 6 8 0-3 -

. ισδιάστατες γραφικές παραστάσεις 39 Άσκηση. ηµιουργήστε τις γραφικές παραστάσεις, στο διάστηµα (-5, 5), των παρακάτω συναρτήσεων, (α) ξεχωριστά για τη κάθε µια συνάρτηση, και (β) ανά δύο µαζί: α) x 3 cos(x), δ) tan(x), β) x 4-3x, ε) sin(x)/x, γ) x+ sin(π x), στ) x +3x+5... Γραφική παράσταση παραµετρικής καµπύλης Μερικές φορές η εξίσωση µιας καµπύλης δίνεται σε παραµετρική µορφή, µε τις συντεταγµένες x και y να δίνονται ως συναρτήσεις µιας ανεξάρτητης µεταβλητής, της t, π.χ. ως (x(t), y(t)). Τότε η εντολή για τη γραφική της παράσταση είναι ParametricPlot[{x[t], y[t]}, {t, tmin, tmax}] Παράδειγµα: Η γραφική παράσταση της παραµετρικής καµπύλης (cos(t), sin(t)), στο διάστηµα (0, π), δίνεται παρακάτω, In[5]:=ParametricPlot[{Cos[t], Sin[t]}, {t, 0, Pi}] 0.5 - -0.5 0.5-0.5 -

40 ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΡΑΦΙΚΑ Άσκηση. ηµιουργήστε τις γραφικές παραστάσεις, στο διάστηµα {-5, 5}, των παρακάτω παραµετρικών καµπυλών: α) {t, t 3 cos(t)}, δ) {t, t +3t+5}, β) {t, t 4-3t }, ε) {t-0.5 sin(t), -0.5 cos(t)}. γ) {t, t+ sin(π t)}, στ)...3 Γραφική παράσταση λίστας Στη περίπτωση που τα δεδοµένα {x i, y i } δίνονται σε µορφή δισδιάστατης λίστας µε δύο στήλες, a={{x, y}, {x, y}, {xn, yn}}, µε τη πρώτη στήλη να δίνει τις τιµές των τετµηµένων, x i, και τη δεύτερη των τεταγµένων, y i, τότε η εντολή για τη γραφική τους αναπαράσταση είναι ListPlot[a] Παράδειγµα: Χρησιµοποιώντας την εντολή Table, δηµιουργούµε ένα πίνακα µε δεδοµένα, π.χ. In[6]:=a = Table[{i, Sin[0. i]}, {i, 0, 0, 0.}]; που αντιπροσωπεύουν συντεταγµένες σηµείων της καµπύλης sin(0.x), στο διάστηµα (0, 0). Τα δεδοµένα αυτά αποδίδονται γραφικά µε την εντολή In[7]:=ListPlot[a]

. Τρισδιάστατες γραφικές παραστάσεις 4 0.8 0.6 0.4 0. 4 6 8 0 Σχόλιο: Στη περίπτωση που στη λίστα παρέχονται µόνο οι συντεταγµένες {yi}, σε µορφή µονοδιάστατου πίνακα, a={y, y, yn}, τότε µε την εντολή ListPlot[a] εκτελείται η γραφική παράσταση των σηµείων, a={{, y}, {, y}, {n, yn}}, αποδίδεται δηλαδή στο σηµείο yi η τετµηµένη xi=i. Άσκηση.3 ηµιουργήστε πίνακες µε δύο στήλες που αντιπροσωπεύουν σηµεία, στο διάστηµα (0, 5), µε βήµα 0., των παρακάτω συναρτήσεων, και κάντε τις αντίστοιχες γραφικές παραστάσεις: α) x 3 cos(x), δ) tan(x), β) x 4-3x, ε) sin(x)/(x+), γ) x+ sin(π x), στ) x +3x+5.. Τρισδιάστατες γραφικές παραστάσεις Στη Mathematica έχουµε τη δυνατότητα να αποδώσουµε γραφικά συναρτήσεις δύο µεταβλητών. Στις τρισδιάστατες αυτές γραφικές παραστάσεις οι δύο άξονες αποδίδουν τις τιµές των δύο µεταβλητών και ο τρίτος τη τιµή της συνάρτησης. Η εντολή για τη τρισδιάστατη αυτή γραφική παράσταση είναι

4 ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΡΑΦΙΚΑ Plot3D[f[x, y], {x, xmin, xmax}, {y, ymin, ymax}] που εκτελεί τη γραφική παράσταση της συνάρτησης f(x,y) στη δισδιάστατη περιοχή ( x min, x max) ( y min, y max). Παράδειγµα: Η γραφική παράσταση της συνάρτησης cos(x y) δίνεται παρακάτω, µε την εντολή: In[]:= Plot3D[Cos[x y], {x, 0, Pi}, {y, 0, Pi}] 0.5 0-0.5-0 3 4 6 0.. Γράφηµα µε ισοϋψείς (ContourPlot) Σε ένα τρισδιάστατο γράφηµα, η επιφάνεια µπορεί να περιγραφεί και µε σµήνος από ισοϋψείς καµπύλες, οι οποίες συνδέουν σηµεία της επιφάνειας µε την ίδια τιµή της συνάρτησης. Η προβολή στο επίπεδο xy των καµπυλών αυτών δηµιουργεί ένα δισδιάστατο σχήµα, που αποκαλείται γράφηµα µε ισοϋψείς (ContourPlot). Η εντολή για τη χάραξη της γραφικής αυτής παράστασης είναι:

. Τρισδιάστατες γραφικές παραστάσεις 43 ContourPlot[f[x, y], {x, xmin, xmax}, {y, ymin, ymax}] Παράδειγµα: Γράφηµα µε ισοϋψείς της καµπύλης cos(x y) δίνεται παρακάτω, In[]:=ContourPlot[Cos[x y], {x,0, Pi}, {y, 0, Pi}, PlotPoints 80] 3.5.5 0.5 0 0 3 4 5 6 Στο παραπάνω γράφηµα δίνονται οι ισοϋψείς καµπύλες, µαζί µε µια µεταβολή της σκίασης ανάλογα µε το «υψόµετρο» των σηµείων, δηλαδή περιοχές µε χαµηλότερες τιµές της συνάρτησης σκιάζονται µε πιο σκούρο χρώµα. Μπορούµε να απενεργοποιήσουµε την επιλογή της σκίασης µε την εντολή ContourShading False, όπως π.χ. γίνεται στο παρακάτω γράφηµα, In[3]:=ContourPlot[Cos[x y], {x,0, Pi}, {y, 0, Pi}, PlotPoints 80, ContourShading False]

44 ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΡΑΦΙΚΑ 3.5.5 0.5 0 0 3 4 5 6.. Γράφηµα πυκνότητας (DensityPlot) Τα γραφήµατα πυκνότητας είναι παρόµοια µε αυτά µε ισοϋψείς, µόνο που αντί να χαράσσονται ισοϋψείς, δίνεται µια µεταβολή της σκίασης ανάλογα µε το «υψόµετρο» των σηµείων, δηλαδή περιοχές µε χαµηλότερες τιµές της συνάρτησης σκιάζονται µε πιο σκούρο χρώµα. Η εντολή για την εκτέλεση των γραφηµάτων αυτών είναι: DensityPlot[f[x, y], {x, xmin, xmax}, {y, ymin, ymax}] In[4]:=DensityPlot[Cos[x y], {x,0, Pi}, {y, 0, Pi}, PlotPoints 80, Mesh False]

.3 Επιµέλεια γραφικών 45 3.5.5 0.5 0 0 3 4 5 6 Άσκηση.4 ηµιουργήστε τόσο τις τρισδιάστατες γραφικές παραστάσεις, όσο και τα γραφήµατα µε ισοϋψείς (CountorPlots) και πυκνότητας (DensityPlots), των παρακάτω συναρτήσεων α) sin(x+y), στη περιοχή {0, π}, {-π, π} β) x sin(y)+y cos(x), στη περιοχή {0, π}, {-π, π}, γ) sin(x) cos(y), στη περιοχή {0, π}, {-π, π}..3 Επιµέλεια γραφικών Υπάρχει η δυνατότητα διαµόρφωσης, µέσα από την εντολή Plot, µιας γραφικής παράστασης. Για το σκοπό αυτό υπάρχουν παράµετροι που οι τιµές τους καθορίζουν τη µορφή του σχήµατος. Οι προκαθορισµένες τιµές των παραµέτρων αυτών τυπώνονται µε την εντολή Options[Plot], όπως φαίνεται παρακάτω:

46 ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΡΑΦΙΚΑ Options@PlotD :AspectRatio, Axes Automatic, GoldenRatio AxesLabel None, AxesOrigin Automatic, AxesStyle Automatic, Background Automatic, ColorOutput Automatic, Compiled True, DefaultColor Automatic, Epilog 8<, Frame False, FrameLabel None, FrameStyle Automatic, FrameTicks Automatic, GridLines None, ImageSize Automatic, MaxBend 0., PlotDivision 30., PlotLabel None, PlotPoints 5, PlotRange Automatic, PlotRegion Automatic, PlotStyle Automatic, Prolog 8<, RotateLabel True, Ticks Automatic, DefaultFont $DefaultFont, DisplayFunction $DisplayFunction, FormatType $FormatType, TextStyle $TextStyle> Ο χρήστης έχει τη δυνατότητα να αλλάξει τις τιµές των παραµέτρων αυτών, µε επιλογή µέσα από την εντολή Plot: Plot[f[x], {x, xmin, xmax}, Option->{ }] Με Option το όνοµα της παραµέτρου τη τιµή της οποίας θέλουµε να τροποποιήσουµε, και µε τη καινούργια τιµή να τοποθετείται µέσα στα άγκιστρα. Θα παρουσιάσουµε εδώ µερικές πολύ χρήσιµες περιπτώσεις διαµόρφωσης σχήµατος για δισδιάστατες γραφικές παραστάσεις. Πληροφορίες για τις υπόλοιπες µπορείτε να βρείτε στο αρχείο Help της Mathematica ή σε εγχειρίδια. Καθορισµός του εύρους των αξόνων. Το εύρος του άξονα y καθορίζεται µε εντολή PlotRange {ymin, ymax}, π.χ. In[]:=fg=Plot[Tan[x], {x, 0, 4Pi}, PlotRange -> {-, }]

.3 Επιµέλεια γραφικών 47.5 0.5-0.5 4 6 8 0 - -.5 - Εάν θέλουµε ο άξονας y να καλύπτει όλες τις τιµές που προκύπτουν από τη γραφική παράσταση, δίνουµε την εντολή PlotRange All. In[]:=fg=Plot[x^ Sin[x], {x, 0, 4Pi}, PlotRange -> All] Μπορούµε επίσης να καθορίσουµε ταυτόχρονα και το εύρος του x-άξονα και του y-άξονα χρησιµοποιώντας την εντολή PlotRange {{xmin, xmax}, {ymin, ymax}}. Καθορισµός αριθµού σηµείων. Η Mathematica χρησιµοποιεί ένα προκαθορισµένο αριθµό σηµείων για τη δηµιουργία µιας γραφικής παράστασης. Ο αριθµός αυτός µπορεί να τυπωθεί µε την εντολή PlotPoints/.Options[Plot]. Ο παραπάνω αριθµός δεν είναι πάντα επαρκής για τη κατάλληλη παρουσίαση κάθε γραφικής παράστασης, και υπάρχει η δυνατότητα αλλαγής του µε την εντολή PlotPoints number. Για παράδειγµα θα δώσουµε τη γραφική παράσταση του σχήµατος που εκτελέστηκε στη παράγραφο., εντολή In[], µε τη χρήση τώρα 50 σηµείων, In[3]:=fg3=Plot3D[Cos[x y], {x, 0, Pi}, {y, 0, Pi}, PlotPoints -> 50]

48 ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΡΑΦΙΚΑ 0.5 0-0.5-0 3 4 6 0 Σχετικό µήκος αξόνων: Μπορούµε να καθορίσουµε το σχετικό µήκος των αξόνων µε την εντολή AspectRatio n/m, όπου n/m είναι ο επιθυµητός λόγος y/x, π.χ. In[4]:=fg4=Plot[x^ Sin[x], {x, 0, 4Pi}, AspectRatio-> /.5] 50 5-5 -50-75 -00-5 4 6 8 0 ιαγραφή των αξόνων: Η διαγραφή των αξόνων γίνεται µε την εντολή Axes False, π.χ. In[5]:=fg5=Plot[x^ Sin[x], {x, 0, 4Pi}, Axes -> False]

.3 Επιµέλεια γραφικών 49 Περίγραµµα σχήµατος: Το σχήµα τοποθετείται µέσα σε πλαίσιο µε την εντολή Frame True, π.χ. In[6]:=fg6=Plot[x^ Sin[x], {x, 0, 4Pi}, Frame -> True] 50 5 0-5 -50-75 -00-5 0 4 6 8 0 Τίτλος αξόνων: Ο καθορισµός του τίτλου των αξόνων γίνεται µε την εντολή AxesLabel { x-label, y-label }, π.χ. In[7]:=fg7=Plot[0 t, {t, 0, 0}, AxesLabel -> {"time", "velocity"}]

50 ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΡΑΦΙΚΑ velocity 00 80 60 40 0 4 6 8 0 time Τίτλος σχήµατος: Μπορούµε να ορίσουµε το τίτλο του σχήµατος µε την εντολή PlotLabel Title of the Figure, π.χ. In[8]:=fg8=Plot[0 t, {t, 0, 0}, PlotLabel -> "Velocity vs time"] 00 Velocity vs time 80 60 40 0 4 6 8 0 Αρχή αξόνων: Η εντολή αυτή καθορίζει τις συντεταγµένες του σηµείου τοµής των αξόνων. Η εντολή είναι AxesOrigin {x0, y0}, π.χ. In[9]:=fg9=Plot[0 t, {t, 0, 0}, AxesOrigin -> {0, 0}]