Κεφάλαιο Γραφικές απεικονίσεις. 4.1 Γραφικά στις δύο διαστάσεις Σχεδιάζοντας συμβολικές εκφράσεις και συναρτήσεις

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

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

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

Συνήθεις Διαφορικές Εξισώσεις Ι Ασκήσεις - 09/11/2017. Άσκηση 1. Να βρεθεί η γενική λύση της διαφορικής εξίσωσης. dy dx = 2y + x 2 y 2 2x

b proj a b είναι κάθετο στο

Ανασκόπηση-Μάθημα 12 Συναρτήσεις πολλών μεταβλητών-καμπύλες-πολικές συντεταγμένες

Εργασία 2. Παράδοση 20/1/08 Οι ασκήσεις είναι βαθμολογικά ισοδύναμες

α) f(x(t), y(t)) = 0,

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

Οδηγίες για το Geogebra Μωυσιάδης Πολυχρόνης Δόρτσιος Κώστας

Μερικές Διαφορικές Εξισώσεις

ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΜΑΘΗΜΑΤΙΚΑ Β ΓΥΜΝΑΣΙΟΥ. ΜΕΡΟΣ 1ο ΑΛΓΕΒΡΑ

ΑΝΑΛΥΣΗ ΙΙ- ΜΗΧΑΝΟΛΟΓΟΙ ΜΗΧΑΝΙΚΟΙ ΦΥΛΛΑΔΙΟ 1/2012

14 η εβδομάδα (26/01/2017) Έγιναν οι ασκήσεις 28, 29 και 30. Έγινε επανάληψη στη Θεωρία Καμπυλών και στη Θεωρία Επιφανειών.

ΚΕΦΑΛΑΙΟ 3 ο ΣΥΝΑΡΤΗΣΕΙΣ, ΤΡΙΓΩΝΟΜΕΤΡΙΑ( FUNCTIONS,TRIGONOMETRY)

Συνήθεις Διαφορικές Εξισώσεις Ι Ασκήσεις - 19/10/2017. Ακριβείς Διαφορικές Εξισώσεις-Ολοκληρωτικοί Παράγοντες. Η πρώτης τάξης διαφορική εξίσωση

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

Κεφάλαιο 5 ΔΙΔΙΑΣΤΑΤΑ ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ. Ενα αυτόνομο δυναμικό σύστημα δύο διαστάσεων περιγράφεται από τις εξισώσεις

Γενικά Μαθηματικά ΙΙ

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

Γ. Ν. Π Α Π Α Δ Α Κ Η Σ Μ Α Θ Η Μ Α Τ Ι Κ Ο Σ ( M S C ) ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΛΥΜΕΝΕΣ ΑΣΚΗΣΕΙΣ. ΠΡΟΓΡΑΜΜΑ: Σπουδές στις Φυσικές Επιστήμες

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

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

ΛΥΣΕΙΣ 6. a2 x 2 y 2. = y

Η συνάρτηση y = αχ 2. Βρέντζου Τίνα Φυσικός Μεταπτυχιακός τίτλος: «Σπουδές στην εκπαίδευση» ΜEd

ΜΑΘΗΜΑΤΙΚΑ ΙΙ ιδάσκων : Ε. Στεφανόπουλος 12 ιουνιου 2017

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

ΚΕΦΑΛΑΙΟ 3 Ο 3.2 Η ΕΝΝΟΙΑ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΚΑΙ Η. (Σ) όπου α, β, α, β, είναι οι

Βασικές Γνώσεις Μαθηματικών Α - Β Λυκείου

1.1. Διαφορική Εξίσωση και λύση αυτής

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8

2.2.7 Τίτλος στη γραφική παράσταση

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

ΑΝΑΛΥΣΗ ΙΙ- ΜΗΧΑΝΟΛΟΓΟΙ ΜΗΧΑΝΙΚΟΙ ΦΥΛΛΑΔΙΟ 1/ Στον Ευκλείδειο χώρο ορίζουμε τις νόρμες: 0 2 xx, που ισχύει.

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

Λύσεις στο Επαναληπτικό Διαγώνισμα 2

Λύσεις στο επαναληπτικό διαγώνισμα 3

1 ΘΕΩΡΙΑΣ...με απάντηση

Συνήθεις Διαφορικές Εξισώσεις Ι ΣΔΕ Bernoulli, Riccati, Ομογενείς. Διαφορικές Εξισώσεις Bernoulli, Riccati και Ομογενείς

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

Μαθηματικά και Φυσική με Υπολογιστές

ισδιάστατοι μετασχηματισμοί ΚΕΦΑΛΑΙΟ 4: ισδιάστατοι γεωμετρικοί μετασχηματισμοί

ΠΑΡΑΔΕΙΓΜΑΤΑ ΘΕΜΑ Β. 2x 1. είναι Τότε έχουμε: » τον χρησιμοποιούμε κυρίως σε θεωρητικές ασκήσεις.

Εφαρμοσμένα Μαθηματικά

ΕΝΟΤΗΤΑ 1: ΟΡΙΣΜΟΣ ΠΕΔΙΟ ΟΡΙΣΜΟΥ ΠΡΑΞΕΙΣ ΣΥΝΑΡΤΗΣΕΩΝ ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ ΒΑΣΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ ΛΥΜΕΝΑ ΘΕΜΑΤΑ ΘΕΜΑ Α

MAΘΗΜΑΤΙΚΑ. κριτήρια αξιολόγησης B ΓΥΜΝΑΣΙΟΥ. Πέτρος Μάρκος

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΤΜΗΜΑ. Μαθηματικά 2. Σταύρος Παπαϊωάννου

website:

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

Αριθμητική Επίλυση Συνήθων Διαφορίκών Εξισώσεων 3ο Εργαστήριο 27/03/2015 1

Διαφορικές Εξισώσεις.

Σημειωματάριο Δευτέρας, 6 Νοε. 2017

ΠΡΟΒΛΗΜΑΤΑ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ

Κλασικη ιαφορικη Γεωµετρια

x 2 + y 2 + z 2 = R 2.

Διαφορικός Λογισμός πολλών μεταβλητών

Ημερολόγιο μαθήματος

,, δηλαδή στο σημείο αυτό παρουσιάζει τη μέγιστη τιμή της αν α < 0 2α 4α και την ελάχιστη τιμή της αν α > 0. β Στο διάστημα,

Κεφάλαιο 11 ΣΥΝΤΗΡΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Επανεξέταση του αρμονικού ταλαντωτή

ΚΕΦΑΛΑΙΟ 1 ΣΤΟΙΧΕΙΑ ΑΠΟ ΤΗ ΙΑΝΥΣΜΑΤΙΚΗ ΑΝΑΛΥΣΗ

y 1 (x) f(x) W (y 1, y 2 )(x) dx,

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

ΠΕΡΙΕΧΟΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΟΡΘΟΓΩΝΙΩΝ ΣΥΝΤΕΤΑΓΜΕΝΩΝ...23 ΑΠΟΛΥΤΗ ΤΙΜΗ. ΑΝΙΣΟΤΗΤΕΣ...15 ΚΕΦΑΛΑΙΟ 3 ΕΥΘΕΙΕΣ...32 ΚΕΦΑΛΑΙΟ 4 ΚΥΚΛΟΙ...43

Ιωάννης Σ. Μιχέλης Μαθηματικός

Περιεχόμενα. Κεφάλαιο 1 ΣΥΣΤΗΜΑΤΑ ΣΥΝΤΕΤΑΓΜΕΝΩΝ ΣΕ ΜΙΑ ΕΥΘΕΙΑ Οι συντεταγμένες ενός σημείου Απόλυτη τιμή...14

από t 1 (x) = A 1 x A 1 b.

δίου ορισμού, μέσου του τύπου εξαρτημένης μεταβλητής του πεδίου τιμών που λέγεται εικόνα της f για x α f α.

Τι είναι βαθμωτό μέγεθος? Ένα μέγεθος που περιγράφεται μόνο με έναν αριθμό (π.χ. πίεση)

ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ. Όταν θα έχετε ολοκληρώσει τη μελέτη αυτού του κεφαλαίου, θα πρέπει να μπορείτε: Να κάνετε πράξεις με συναρτήσεις.

ΚΕΦΑΛΑΙΟ 1ο: ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ ΕΝΟΤΗΤΑ 3: ΟΡΙΑ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ

2 η ΕΡΓΑΣΙΑ Παράδοση

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Συστήματα συντεταγμένων

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

Λύση: Η δύναμη σε ρευματοφόρο αγωγό δίνεται από την

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

Εισαγωγή στις Φυσικές Επιστήμες ( ) Ονοματεπώνυμο Τμήμα ΘΕΜΑ 1. x x. x x x ( ) + ( 20) + ( + 4) = ( + ) + ( 10 + ) + ( )

Κεφάλαιο 1 o Εξισώσεις - Ανισώσεις

ΓΥΜΝΑΣΙΟ ΚΑΣΤΕΛΛΑΝΩΝ ΜΕΣΗΣ ΑΛΓΕΒΡΑ

Μαθηματική Ανάλυση ΙI

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

Η Γεωμετρία της Αντιστροφής Η βασική θεωρία. Αντιστροφή

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Παράδειγμα «Ημίτονο και ζωγραφική!»: Έχει δει στα μαθηματικά τη γραφική παράσταση της συνάρτησης του ημιτόνου; Σας θυμίζει κάτι η παρακάτω εικόνα;

Σύντομος οδηγός αναφοράς Για Windows Έκδοση 4.0

(a) = lim. f y (a, b) = lim. (b) = lim. f y (x, y) = lim. g g(a + h) g(a) h g(b + h) g(b)

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

Διαφορικές Εξισώσεις.

Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

5ο Μάθημα Αλγόριθμοι Σχεδίασης Βασικών Σχημάτων

n xt ( ) ( x( t),..., x( t)) U n, , i 1,..., n. Έτσι, η εξέλιξη του συστήματος των χημικών ουσιών διέπεται από το σύστημα των διαφορικών εξισώσεων:

Καρτεσιανές συντεταγμένες Γραφική παράσταση συνάρτησης

ΓΕΝΙΚΕΣ ΑΣΚΗΣΕΙΣ 4. [ ] z, w. 3 f x, x 1,3 όπου 3 μιγαδικοί των οποίων οι εικόνες

1.1 Βασικές Έννοιες των Διαφορικών Εξισώσεων

Ανασκόπηση-Μάθημα 32 Εύρεση Εμβαδού μέσω του Θεωρήματος Green- -Κυκλοφορία και εξερχόμενη ροή διανυσματικού πεδίου

II.6 ΙΣΟΣΤΑΘΜΙΚΕΣ. 1. Γραφήματα-Επιφάνειες: z= 2. Γραμμική προσέγγιση-εφαπτόμενο επίπεδο. 3. Ισοσταθμικές: f(x, y) = c

Θέση και Προσανατολισμός

v y = 12x 2 y + 4y v(x, y) = 6x 2 y 2 + y 4 + y + c(x). f(z) = u(z, 0) + iv(z, 0) = z + i(z 4 + c), f(z) = iz 4 + z i.

Transcript:

Κεφάλαιο 4 4. Γραφικές απεικονίσεις Η γραφική απεικόνιση ενός μαθηματικού αντικειμένου είναι ένα από τα ισχυρότερα εργαλεία ενός ΣΣΥ. Τα περισσότερα ΣΣΥ έχουν ένα δικό τους σύστημα γραφικών για να σχεδιάζουν καμπύλες ή/και επιφάνειες. Αυτές οι ρουτίνες γραφικών είναι γραμμένες ειδικά για το κάθε ΣΣΥ. Όμως στην κοινότητα των ΣΣΥ έχουν αναπτυχθεί ορισμένα εξειδικευμένα συστήματα γραφικών που δεν συνδέονται με κάποιο συγκεκριμένο ΣΣΥ. Γενικότερα, είναι δυνατόν να συνδέσουμε οποιοδήποτε εξειδικευμένο σύστημα γραφικών με ένα οποιοδήποτε ΣΣΥ ορίζοντας συναρτήσεις που υπολογίζουν ένα σύνολο σημείων από μια λίστα εξισώσεων και τιμών, και να χρησιμοποιήσουμε αυτό το σύνολο ως είσοδο στο σύστημα γραφικών για την γραφική αναπαράσταση των αποτελεσμάτων μας. Στα αρχικά στάδια των ΣΣΥ αυτή μάλιστα ήταν η μέθοδος για να πάρει κανείς μια γραφική αναπαράσταση των δεδομένων του ή της λύσης ενός μαθηματικού προβλήματος. Στο πέρασμα του χρόνου όμως, κι επειδή τα ΣΣΥ χρησιμοποιούνται πλέον και ως εκπαιδευτικά εργαλεία, όλα τα ΣΣΥ έχουν ένα δικό τους, έμφυτο, σύστημα γραφικών. Το Sage χρησιμοποιεί ως κύρια συστήματα γραφικών τα: matplotlib, ένα πανίσχυρο σύστημα γραφικών για την Python, openmath, μια γλώσσα αποτίμησης που προσδιορίζει ένα μαθηματικό αντικείμενο σε σημαντικό επίπεδο, gnuplot, ένα εξειδικευμένο σύστημα γραφικών που δεν είναι συνδεδεμένο με κάποιο συγκεκριμένο ΣΣΥ. Για παράδειγμα, καλείται από το Maxima (απόγονος του MACSYMA) για να απεικονίσει γραφικά τα αριθμητικά αποτελέσματα της επίλυσης συστημάτων διαφορικών εξισώσεων, surf, την βιβλιοθήκη γραφικών του Singular (ενός εξειδικευμένου ΣΣΥ για την αλγεβρική γεωμετρία), με την βοήθεια της οποίας σχεδιάζονται επίπεδες καμπύλες και τρισδιάστατες επιφάνειες. 4.1 Γραφικά στις δύο διαστάσεις 4.1.1 Σχεδιάζοντας συμβολικές εκφράσεις και συναρτήσεις Στο Sage δεν υπάρχει διαφορά στην σύνταξη των εντολών που παράγουν ένα γραφικό ανάμεσα σε εκφράσεις και συναρτήσεις. Για παράδειγμα, η γραφική παράσταση μιας συμβολικής έκφρασης είναι

In [1]: var('x') ekf = exp(-x^2) plotexp = plot(ekf, -4, 4,thickness=2) plotexp.show(figsize=3) Ας πολλαπλασιάσουμε την έκφραση με μια συνάρτηση, και το αποτέλεσμα ας το δηλώσουμε σε μια συνάρτηση f(x), και τέλος ας δούμε την γραφική παράσταση της f(x) ως συνάρτηση In [2]: f(x) = ekf*sin(x^3) plotfun = plot(f, -4, 4,thickness=2,color='green') plotfun.show(figsize=4) Μπορούμε να δούμε την γραφική παράσταση και των δυο προηγούμενων εκφράσεων παρέα, στο ίδιο γραφικό, απλά με μια υπέρθεση των γραφικών αντικειμένων με το σύμβολο της πρόσθεσης + In [3]: (plotexp+plotfun).show(figsize=4)

Στην περίπτωση που η συνάρτηση έχει ανωμαλίες, όπως για παράδειγμα πόλους, το Sage έχει την δυνατότητα τόσο για να εντοπίζει τους πόλους, όσο και να παραγάγει μια αξιοπρεπή γραφική παράσταση της συνάρτησης. Ας δούμε την γραφική παράσταση της υπερβολής y x = 1. In [4]: yper = plot(1/x, -2, +2, ymin = -4, ymax = 4, thickness=2); yper.show(figsize=4) Στο παραπάνω γραφικό περιορίσαμε την μεταβλητή y να παίρνει ελάχιστες τιμές (ymin) και μέγιστες τιμές (ymax), γιατί η ύπαρξη του x στον παρανομαστή y = 1 δίνει στην y πάρα πολύ μεγάλες θετικές και αρνητικές x τιμές, καθώς το x παίρνει τιμές κοντά στο 0 από δεξιά και αριστερά, αντίστοιχα. Επιπλέον, παρατηρήστε ότι το Sage προεπιλεγμένα μας σχεδιάζει και την ασύμπτωτο, δηλαδή τον y άξονα (x=0). Για να μην μας εμφανίζει την ασύμπτωτο το Sage, δίνουμε μέσα στο όρισμα της εντολής plot την επιλογή detect_poles=true. Η αντίθετη επιλογή είναι detect_poles=false. Τις ίδιες επιλογές μπορούμε να εκμεταλλευτούμε για να σχεδιάζουμε την γραφική παράσταση συναρτήσεων που ορίζονται κατά διαστήματα όπως, για παράδειγμα, την συνάρτηση εφαπτομένης y = tan x, η οποία ορίζεται στην ένωση των ανοικτών π π διαστημάτων της μορφής ( + k π, + k π), με k Z. 2 2 In [5]: ef = plot(tan, -3*pi+pi/2, +3*pi-pi/2, ymin=-12, ymax=12, detect_poles = True,thickness=2); ef.show(figsize=4)

4.1.2 Επίπεδες αλγεβρικές καμπύλες Μια ελλειπτική καμπύλη είναι μια επίπεδη αλγεβρική καμπύλη που ορίζεται από μια εξίσωση της μορφής f(x, y) = y 2 + x 3 + a x + b = 0, και η οποία δεν έχει ιδιομορφίες. Δηλαδή, δεν υπάρχει σημείο p = (x, y) της καμπύλης με f(p) = 0 και f f f p = (, ) = 0. x y p Γεωμετρικά αυτό σημαίνει ότι μια ελλειπτική καμπύλη δεν έχει κορυφές (cusps), ή κόμβους (nodes), δηλαδή σημεία που τέμνεται με τον εαυτό της. Με το Sage μπορούμε να πάρουμε την γραφική παράσταση τριών αντιπροσωπευτικών μελών της παραπάνω οικογένειας ελλειπτικών καμπυλών με την εντολή implicit_plot. In [6]: var('x, y') ell1 = y^2 - x^3 + x ell2 = y^2 - x^3 + x - 1 ell3 = y^2 - x^3 + x + 1 p1 = implicit_plot(ell1, (x, -3, 3), (y, -3, 3),color='blue') p2 = implicit_plot(ell2, (x, -3, 3), (y, -3, 3),color='red' ) p3 = implicit_plot(ell3, (x, -3, 3), (y, -3, 3),color='violet') Ακόμα καλύτερα, χρησιμοποιώντας τις περιεκτικές λίστες της Python, μπορούμε να σχεδιάσουμε κάποια αντιπροσωπευτικά μέλη της οικογένειας των ελλειπτικές καμπυλών y 2 = x 3 x + b, στο ίδιο γραφικό, επιβάλλοντας στην παράμετρο b να διατρέξει τις τιμές σε μια λίστα της αρεσκείας μας. In [7]: pp = sum([implicit_plot(y^2 - x^3 + x - n, (x, -3, 3), (y, -3, 3), color=rainbow(9)[-n+4],linewidth=0.8) for n in [-4..4]]) Επιπλέον, μπορούμε να θέσουμε τα δυο γραφικά μας να αποτελούν τις συνιστώσες ενός διανύσματος γραφικών με την εντολή graphics_array, ή γενικότερα ενός πίνακα, και να τα προβάλλουμε το ένα δίπλα στο άλλο, όπως παρακάτω In [8]: mygraphicsarray = graphics_array([p1+p2+p3,pp]) mygraphicsarray.show(figsize=6,ticks=[[],[]],axes=false)

Παρατηρήστε ότι η ελλειπτική καμπύλη y 2 = x 3 x αποτελείται από την ένωση μιας κλειστής και μιας ανοικτής καμπύλης (σημειώνονται με μπλε χρώμα στο αριστερό γραφικό και με τυρκουάζ στο δεξί). Επίσης, στο δεξί γραφικό κάθε μια ελλειπτική καμπύλη έχει το δικό της χρώμα, το οποίο διαλέξαμε κατάλληλα με την επιλογή color, δίνοντας τιμές που αντιστοιχούν σε όλα χρώματα του ουράνιου τόξου, από το ερυθρό μέχρι το ιώδες. 4.1.3 Γραφική απεικόνιση πινάκων Στο Sage μπορούμε να απεικονίσουμε μεγάλους πίνακες σε ένα γραφικό. Για παράδειγμα, ας παραγάγουμε έναν τυχαίο τετραγωνικό 50x50 πίνακα με στοιχεία που είναι 0 ή 1. Με την εντολή matrix_plot το Sage απεικονίζει τα στοιχεία του πίνακα με μαύρο ή λευκό, ανάλογα αν το στοιχείο είναι 1 ή 0, αντίστοιχα. In [9]: dim = 50 rm = Matrix(dim, dim, [GF(2).random_element() for k in range(dim*dim)]) plotrm = matrix_plot(rm,figsize=3); plotrm.show() Τέτοιες απεικονίσεις μεγάλων σε μέγεθος πινάκων έχουν μεγάλες εφαρμογές στην Γενετική. Για παράδειγμα, βοηθούν στην αναπαράσταση γενετικών αλληλεπιδράσεων και σε ποιο βαθμό η παρουσία μιας μετάλλαξης διαμορφώνει τον φαινότυπο μιας δεύτερης μετάλλαξης. Σε μια τέτοια διαδικασία οι γραμμές κι οι στήλες του πίνακα αναφέρονται στις πρωτεΐνες και τα στοιχεία του πίνακα αν άλλαξε, ή όχι, η αλληλουχία των αμινοξέων τους. 4.1.4 Καμπύλες σε παραμετρική και πολική μορφή Στο Sage, μπορούμε να απεικονίσουμε δισδιάστατες καμπύλες που δίνονται σε παραμετρική μορφή με την εντολή parametric_plot, όπου οι συνιστώσες της δηλώνονται σε μορφή λίστας, δηλαδή σε αγκύλες In [10]: var('t') par = parametric_plot([cos(t) + 3 * cos(t/9), sin(t) - 3 * sin(t/9)], (t, 0,18*pi), fill = True, aspect_ratio=1); par.show(figsize=3.5)

Επίσης, με την εντολή polar_plot μπορούμε να απεικονίζουμε στο xy-επίπεδο δισδιάστατες καμπύλες που μας δίνονται σε πολική μορφή, δηλαδή r = f(θ). Για παράδειγμα, η σπείρα του Fermat δίνεται από την σχέση r = ± θ. Στο Sage μπορούμε να αναπαραστήσουμε γραφικά την καμπύλη αυτή δίνοντας In [11]: fer1 = polar_plot(sqrt(t), (t, 0, 4*pi), color='black', thickness=2,plot_points=450); fer1.show(figsize=3.5) Επιπλέον μπορούμε να απεικονίσουμε στο ίδιο γραφικό και τους δυο κλάδους της καμπύλης, θέτοντας τους να αποτελούν στοιχεία μιας λίστας, και σημειώνοντας τις δυο καμπύλες με διαφορετικό χρώμα, αντίστοιχα. In [12]: fer2 = polar_plot([sqrt(t),-sqrt(t)], (t, 0, 4*pi), color=['red','green'], thickness=2,plot_points=450); fer2.show(figsize=3.5) 4.1.5 Απεικόνιση σημείων από δεδομένα Ορισμένες φορές επιθυμούμε να σχεδιάσουμε μόνο ορισμένα σημεία που αντιστοιχούν σε κάποια δεδομένα που βρήκαμε από την επίλυση ενός προβλήματος. Έχοντας αφετηρία την ακολουθία αριθμών του Fibonacci ας δούμε διάφορους τρόπους που μπορούμε να απεικονίσουμε σημεία με το Sage. Η ακολουθία Fibonacci προσεγγίζεται αρκετά καλά (για n 5) από την ακολουθία πραγματικών αριθμών 1 F n =. 5 ( 1 + 5 n 2 ) Στο Sage, συμβολικά άρα και ακριβώς, η ακολουθία Fibonacci είναι καταχωρημένη στην ακολουθία fibonacci_sequence

In [13]: print fibonacci_sequence(6); print list(fibonacci_sequence(6)) print list(enumerate(fibonacci_sequence(6))) <generator object fibonacci_sequence at 0x7fbbf1d8a780> [0, 1, 1, 2, 3, 5] [(0, 0), (1, 1), (2, 1), (3, 2), (4, 3), (5, 5)] Ας ορίσουμε λοιπόν μια λίστα από ζευγάρια της μορφής (n, f(n)), όπου f(n) η παραπάνω προσεγγιστική τιμή F n της ακολουθίας Fibonacci που αντιστοιχεί στο n, την οποία την καταχωρούμε στην λίστα asymptotic, ενώ τους ακριβείς όρους της ακολουθίας Fibonacci τους καταχωρούμε στην λίστα fib In [14]: fib = list(enumerate(fibonacci_sequence(6))) f(n)=(1/sqrt(5))*((1+sqrt(5))/2)^n asymptotic = [(i, f(i)) for i in range(6)] print fib; print asymptotic [(0, 0), (1, 1), (2, 1), (3, 2), (4, 3), (5, 5)] [(0, 1/5*sqrt(5)), (1, 1/10*sqrt(5)*(sqrt(5) + 1)), (2, 1/20*sqrt(5)*(sqrt(5) + 1)^2), (3, 1/40 *sqrt(5)*(sqrt(5) + 1)^3), (4, 1/80*sqrt(5)*(sqrt(5) + 1)^4), (5, 1/160*sqrt(5)*(sqrt(5) + 1)^5 )] Στο παρακάτω δεν απεικονίζουμε γραφικά μόνο τις δυο λίστες σημείων, αλλά χρησιμοποιούμε και διάφορες επιλογές που είναι διαθέσιμες στο Sage και βοηθούν στην καλύτερη εποπτεία του γραφικού, όπως για παράδειγμα σημειώνουμε με διαφορετικά σημαδάκια τα σημεία από κάθε λίστα In [15]: fib_plot=scatter_plot(fib, facecolor='red',marker='o',markersize=40) asy_plot = line(asymptotic, marker='d',color='black',thickness=2) show(fib_plot+asy_plot, aspect_ratio=1,figsize=4)

4.1.6 Ισοσταθμικές καμπύλες και διαγράμματα πυκνότητας Οι ισοσταθμικές καμπύλες είναι πολύ χρήσιμες στην μοντελοποίηση και για να απεικονίζουμε επιφάνειες στις δυο διαστάσεις. Για παράδειγμα, ας απεικονίσουμε την συνάρτηση με την εντολή contout_plot του Sage f(x, y) = y 2 x 3 x + 1, In [16]: f(x,y)=y^2-x^3-x+1 cf = contour_plot(f, (x,-pi,pi), (y,-pi,pi),figsize=4); cf.show(figsize=3.5) Το αποτέλεσμα είναι ένα γραφικό με διάφορες αποχρώσεις του γκρι που δηλώνουν τον τρόπο που η συνάρτηση f(x, y) αλλάζει τιμές από αρνητικές (σκούρο χρώμα) προς θετικές (ανοικτό χρώμα), καθώς τα σημεία (x, y) διατρέχουν το τετράγωγο [ π, π] [ π, π]. Μπορούμε να αλλάζουμε χρώματα, να δηλώνουμε περιγράμματα, τις ισοσταθμικές καμπύλες, καθώς και πολλά άλλα ακόμη. Όταν το γραφικό είναι αρκετά περίπλοκο μια χρήσιμη επιλογή που μας διαθέτει το Sage είναι δίπλα στο γραφικό να έχουμε και μια στήλη που αναγράφει τις τιμές της f(x, y), οι οποίες αντιστοιχούν οι διάφορες αποχρώσεις. In [17]: cfbar = contour_plot(f, (x,-pi,pi), (y,-pi,pi),colorbar=true,labels=true); cfbar.show(figsize=3.5) Το παρακάτω γραφικό, χωρίς επιπλέον επεξηγήσεις, δείχνει διάφορες άλλες επιλογές που μας δίνει το Sage για να διαμορφώσουμε ένα δικό μας γραφικό με την εντολή contout_plot

In [18]: cf3 = contour_plot(f, (x,-pi,pi), (y,-pi,pi), contours=[-4,0,4], fill=false,cmap='cool', labels=true, label_inline=true, label_fmt={-4:"low", 0:"medium", 4: "hi"}, label_colors='black') cf3.show(figsize=3.5) Τα διαγράμματα πυκνότητας είνα παρόμοια με τα διαγράμματα των ισοσταθμικών καμπυλών με την διαφορά ότι τους λείπουν τα διακριτά χωρία των διαφορετικών αποχρώσεων. Υλοποιούνται με την εντολή density_plot. Στο παρακάτω σχεδιάζουμε την ίδια f(x, y) με την τελευταία εντολή In [19]: x,y = var('x,y') denf = density_plot(f, (x, -pi, pi), (y, -pi, pi)); denf.show(figsize=3,ticks=[[],[]],axes=false) Για να γίνει αντιληπτή η διαφορά μεταξύ της contour_plot και της density_plot με τις παρακάτω εντολές σχεδιάζουμε στο ίδιο γραφικό, μόνο τις ισοσταθμικές καμπύλες με την contour_plot και υπερθέτουμε το γραφικό που δημιουργήσαμε με την εντολή density_plot. In [20]: conf_nofill = contour_plot(f,(x,-pi,pi),(y,-pi,pi), fill=false,labels=true,label_inline=true,cmap='jet') (conf_nofill + denf).show(figsize=3.5)

Μπορούμε να δούμε τις διάφορες επιλογές που μας δίνουν οι εντολές γραφικών και αν θέλουμε να αλλάξουμε τις προεπιλεγμένες επιλογές του Sage, όπως παρακάτω In [21]: print contour_plot.options {'labels': False, 'linestyles': None, 'region': None, 'axes': False, 'plot_points': 100, 'linew idths': None, 'colorbar': False, 'contours': None, 'aspect_ratio': 1, 'legend_label': None, 'fr ame': True, 'fill': True} In [22]: contour_plot.options["fill"]=false In [23]: print contour_plot.options {'labels': False, 'linestyles': None, 'region': None, 'axes': False, 'plot_points': 100, 'linew idths': None, 'colorbar': False, 'contours': None, 'aspect_ratio': 1, 'legend_label': None, 'fr ame': True, 'fill': False} In [24]: con_mine = contour_plot(f,(x,-2,2),(y,-2,2)); con_mine.show(figsize=3.5) Επαναφέρουμε όλες τις δικές μας επιλογές στις προκαθορισμένες επιλογές του Sage με την εντολή In [25]: contour_plot.reset(); print contour_plot.options {'labels': False, 'linestyles': None, 'region': None, 'axes': False, 'plot_points': 100, 'linew idths': None, 'colorbar': False, 'contours': None, 'aspect_ratio': 1, 'legend_label': None, 'fr ame': True, 'fill': False} 4.2 Διανυσματικά πεδία, πεδία διευθύνσεων και ροές Ένα από τα κυριότερα εργαλεία που μας παρέχει το Sage για την ποιοτική μελέτη των διαφορικών εξισώσεων και των δυναμικών συστημάτων, είναι η γραφική απεικόνιση διανυσματικών πεδίων στις δυο και τρεις διαστάσεις. Επιπλέον, μας παρέχει γραφική απεικόνιση των πεδίων διευθύνσεων στο επίπεδο, και την ροή του διανυσματικού πεδίου, δηλαδή τις καμπύλες στις οποίες τα διανυσματικά πεδία είναι εφαπτόμενα σε κάθε σημείο τους. Για παράδειγμα ας θεωρήσουμε το διανυσματικό πεδίο v = ( y, x).

Η ροή, ή οι ολοκληρωτικές καμπύλες του v βρίσκονται ολοκληρώνοντας το σύστημα των συνήθων διαφορικών εξισώσεων (ΣΔΕ) dx dt dy = y, = x, ( ) dt όπου t η παράμετρος της καμπύλης. Πολλαπλασιάζοντας την πρώτη ΣΔΕ με x(t), και την δεύτερη με y(t) και προσθέτοντας κατά μέλη παίρνουμε dx dy 1 d x + y = 0 ( + ) = 0 ( + ) = 0 + =. dt dt 2 dt x2 y 2 d dt x2 y 2 x 2 y 2 c 2 όπου c R, η σταθερή ολοκλήρωσης. Δηλαδή, οι ολοκληρωτικές καμπύλες του v είναι μια οικογένεια ομόκεντρων κύκλων με κέντρο το σημείο (0, 0) και ακτίνα c. Για να δούμε στο Sage το διανυσματικό πεδίο σε διάφορα σημεία του xy-επιπέδου χρησιμοποιούμε την εντολή plot_vector_field In [26]: var('x,y') vf = plot_vector_field((-y,x),(x,-1,1),(y,-1,1),aspect_ratio=1); Με την εντολή polar_plot σχεδιάζουμε διάφορα μέλη της μονοπαραμετρικής οικογένειας των ολοκληρωτικών καμπυλών (κύκλων) In [27]: var('theta') int_curv = sum([polar_plot( c, (theta,0, 2*pi),plot_points=270) \ for c in [0..1,step=sqrt(0.02)]]) και προβάλλουμε τα δυο γραφικά το ένα δίπλα στο άλλο θέτοντάς τα σε ένα διάνυσμα γραφικών και στο τέλος μαζί το ένα πάνω στο άλλο In [28]: vec_array = graphics_array([vf,int_curv,int_curv+vf]) vec_array.show(figsize=7,ticks=[[],[]]) Διαιρώντας το σύστημα των ΣΔΕ ( ) κατά μέλη παίρνουμε την ΣΔΕ dy x =. dx y Το Sage μας δίνει την δυνατότητα να σχεδιάσουμε το πεδίο διευθύνσεων της παραπάνω ΣΔΕ σε διάφορα σημεία του επιπέδου. Για παράδειγμα

In [29]: df = plot_slope_field(-x/y, (x,-1,1),(y,-1,1),aspect_ratio=1) vec_array = graphics_array([df,int_curv,int_curv+df]) vec_array.show(figsize=7,ticks=[[],[]]) Δεν είναι πάντα εφικτό να βρούμε τις ολοκληρωτικές καμπύλες ενός δοσμένου διανυσματικού πεδίου, ή ισοδύναμα ενός συστήματος ΣΔΕ ή μιας διαφορικής εξίσωσης, σε κλειστή μορφή. Σε αυτές τις περιπτώσεις το Sage μας δίνει την δυνατότητα να έχουμε μια γραφική απεικόνιση των ολοκληρωτικών καμπυλών μέσω της εντολής streamline_plot. Για παράδειγμα ας θεωρήσουμε το διανυσματικό πεδίο v = ( 1 x 2 + y, 1 + x y 2 ). Για να βρούμε τις ολοκληρωτικές καμπύλες του v, θα πρέπει να ολοκληρώσουμε το παρακάτω σύστημα ΣΔΕ x = 1 x 2 + y, y = 1 + x y 2 d, =, d t ή ισοδύναμα να λύσουμε την ΣΔΕ dy 1 + x y = 2. dx 1 x 2 + y Με μια πρώτη ματιά δεν είναι καθόλου προφανές πως θα μπορούσαμε να ολοκληρώσουμε την παραπάνω ΣΔΕ. Το Sage όμως μας επιτρέπει να έχουμε μια γρήγορη ποιοτική εικόνα του πεδίου διευθύνσεων, καθώς και της ροής του v, όπως δείχνουν τα ακόλουθα σχήματα In [30]: x, y = var('x y') str = streamline_plot((-1-x^2+y, 1+x-y^2), (x,-3,3), (y,-3,3), aspect_ratio=1,density=1,plot_points=20) vp1 = plot_slope_field((1+x-y^2)/(-1-x^2+y), (x,-3,3), (y,-3,3),aspect_ratio=1) vec_array_2 = graphics_array([vp1,str,vp1+str]) vec_array_2.show(figsize=7,ticks=[[],[]])

4.3 Άλλα δισδιάστατα γραφικά Το Sage μας δίνει μια πληθώρα άλλων γραφικών απεικονίσεων που οι σημειώσεις αυτές όλες μαζί δεν φτάνουν για να τις περιγράψουν. Ενδεικτικά αναφέρουμε μερικές από αυτές: Aπεικονίσεις μιγαδικών αριθμών, μέσω της εντολής complex_plot. Απεικονίσεις χωρίων, που είναι χρήσιμες όταν θέλουμε να βρούμε τα χωρία στα οποία ισχύουν ή όχι ανισώσεις. Τα γραφικά αυτά υλοποιούνται με την εντολή region_plot. Γεωμετρικών σχημάτων, όπως σημείων, ευθειών, διανυσμάτων, κύκλων, δίσκων, τομέων δίσκων, πολυγώνων και πολλά άλλα γεωμετρικά σχήματα. Σας προτρέπω να ρίξετε μια ματιά στην αντίστοιχη ιστοσελίδα των διδιάστατων γραφικών του Sage (εδώ (http://doc.sagemath.org/html/en/reference/plotting/index.html)) όπου θα βρείτε πάρα πολλά παραδείγματα κι εφαρμογές. Αν δεν μπορείτε να υλοποιήσετε αυτό που θέλετε με τις εντολές του Sage, ή για κάποιον λόγο δεν σας αφήνει ικανοποιημένους το Sage με το γραφικό που θέλετε να απεικονίσετε, μπορείτε πάντα να χρησιμοποιήσετε το Sage σε συνδυασμό με την ολοκαίνουρια έκδοση (Ιανουάριος 2017) της πανίσχυρης βιβλιοθήκης γραφικών matplotlib, εδώ (http://matplotlib.org/examples/index.html). 4.4 Γραφικά σε τρεις και περισσότερες διαστάσεις Το Sage διαθέτει τρισδιάστατες εκδόσεις όλων των βασικών εντολών γραφικών απεικονίσεων στις δυο διαστάσεις για την γραφική απεικόνιση καμπυλών, επιφανειών, γεωμετρικών σχημάτων κ.α. στις τρεις διαστάσεις. Σας παραπέμπω στην αντίστοιχη σελίδα βοήθειας του Sage (εδώ (http://doc.sagemath.org/html/en/reference/plot3d/index.html)). Ενδεικτικά μόνο ας δούμε μια τέτοια επιφάνεια In [31]: var('x y z') T = RDF(golden_ratio) F = 2 - (cos(x+t*y) + cos(x-t*y) + cos(y+t*z) + cos(y-t*z) + cos(z-t*x) + cos(z+t*x)) r = 4.77 plt3d = implicit_plot3d(f, (x,-r,r), (y,-r,r), (z,-r,r), plot_points=40, color='darkkhaki'); plt3d.show(viewer='tachyon',figsize=4)

Αξίζει να αναφερθεί ότι το Sage υλοποιεί όλους τους βασικούς μετασχηματισμούς στις τρεις διαστάσεις, οι οποίοι χρησιμοποιούνται πιο συχνά στην ανάλυση επιφανειών, όπως οι κυλινδρικές κι οι σφαιρικές συντεταγμένες. Εδώ θα επικεντρωθούμε σε μια άλλη ενδιαφέρουσα εφαρμογή του Sage και ειδικότερα, στον τρόπο που μπορούμε να χρησιμοποιήσουμε τον χρωματισμό για να έχουμε εποπτεία σε περισσότερες διαστάσεις. Οι διάφοροι χρωματισμοί δίνονται με την εντολή color_maps. Γι' αρχή ας πάρουμε την λωρίδα του Möbius, κι ας την σχεδιάσουμε χωρίς χρωματισμό In [32]: from sage.plot.plot3d.parametric_surface import MoebiusStrip ms = MoebiusStrip(3,1,plot_points=250,color='brown') Αν τρέξετε την παραπάνω εντολή το αποτέλεσμα δεν είναι και πολύ διαφωτιστικό. Ας εφαρμόσουμε τώρα χρωματισμό στην λωρίδα με την μέθοδο color_maps από την οικογένεια χρωμάτων PiYG, κι ας αλλάξουμε λίγο την οπτική γωνία που βλέπουμε την λωρίδα, με την μέθοδο rotatex, rotaty, rotatez. In [33]: cm = colormaps.piyg def c(x,y): return abs(cos(x*y)**2) mob = MoebiusStrip(3,1,plot_points=200,\ color=(c,cm)).rotatex(-pi/15).rotatey(pi/10).rotatez(-pi/20) Το αποτέλεσμα είναι πολύ πιο διαφωτιστικό, κι αξίζει να σώσουμε το γραφικό σε ένα αρχείο για μελλοντική χρήση. In [34]: mob.save('mob.png', figsize=6, frame=false, viewer='tachyon') Κλείνουμε το κεφάλαιο αυτό με μια γραφική απεικόνιση λίγο διαφορετική από αυτές που έχουμε δει μέχρι τώρα. Θα απεικονίσουμε σε ένα "τετραδιάστατο" γραφικό, την τετραγωνική ρίζα ενός μιγαδικού αριθμού. Ας θεωρήσουμε το ζευγάρι των μιγαδικών αριθμών (z, w) C C, και μια εξίσωση που συνδέει τα z, w μεταξύ τους, για παράδειγμα την Η εξίσωση αυτή ορίζει την τετραγωνική ρίζα του z = x + iy. Δηλαδή, ορίζουμε την τετραγωνική ρίζα του z, να είναι το σύνολο των μιγαδικών αριθμών w = u + i v, έτσι ώστε w 2 = z. Στόχος μας είναι να απεικονίσουμε γραφικά τους πραγματικούς αριθμούς (u, v) σε συνάρτηση των (x, y). Αλλά πως να απεικονίσουμε γραφικά ένα αντικείμενο, ας το ονομάσουμε R, στον R 4 ; Η ιδέα είναι λοιπόν τρεις από τις τέσσερις πραγματικές μεταβλητές να διατρέχουν τον συνηθισμένο R 3, ενώ η τέταρτη μεταβλητή να απεικονίζεται στην επιφάνεια R, με χρώμα! z = w 2. Κατ'αρχήν ας βρούμε τις εξισώσεις που συνδέουν τα (x, y) και (u, v), μεταξύ τους. Χωρίζουμε την εξίσωση z = w 2 σε φανταστικό και πραγματικό μέρος

In [35]: u, v = var('u,v') w = u + I*v z = w^2 x = real_part(z) y = imag_part(z) Επειδή το Sage δεν ξέρει αν οι u, v είναι πραγματικοί αριθμοί, το βοηθάμε εμείς In [36]: D = {real_part(u):u, imag_part(u):0, real_part(v):v, imag_part(v):0} xx = x.subs(d) yy = y.subs(d) print xx print yy u^2 - v^2 2*u*v Επιλέγουμε το ύψος της επιφάνειας R να περιγράφεται από το πραγματικό μέρος του μιγαδικού w, οπότε η R περιγράφεται σε παραμετρική μορφή, από τα (x, y, u). Το φανταστικό μέρος του w, δηλαδή το v, θα το απεικονίσουμε πάνω στην R, χρωματίζοντάς την κατάλληλα. Επιπλόν, μετασχηματίζουμε τα (u, v) σε πολικές συντεταγμένες (r, θ) για να πάρουμε ένα πιο εποπτικό γραφικό. In [37]: r, theta = var('r,theta') polikes = {u:r*cos(theta), v:r*sin(theta)} Rx = xx.subs(polikes).trig_reduce() Ry = yy.subs(polikes).trig_reduce() print Rx; print Ry r^2*cos(2*theta) r^2*sin(2*theta) Τέλος απεικονίζουμε γραφικά την επιφάνεια R με την εντολή του Sage parametric_plot3d, In [38]: R = parametric_plot3d((rx, Ry, r*cos(theta)), (r, 0, 1), (theta, 0, 2*pi),\ adaptive=true).rotatex(pi/10).rotatey(-pi/10).rotatez(pi); R.show(zoom=1.2, figsize=4, viewer='tachyon')

Η διαφορά του χρωματισμού στην μεταβλητή v, μπορεί να υλοποιηθεί θέτοντας την συνάρτηση v = r sin θ, ως όρισμα στην επιλογή color. Αν επιλέξετε ως viewer στην εντολή show τον jsmol, δηλαδή τρέξετε Rcol.show(zoom=1, figsize=5, viewer='jsmol') έχετε την δυνατότητα να περιστρέψετε την επιφάνεια R και να την περιεργαστείτε. Θα διαπιστώσετε, όπως φαίνεται στο παρακάτω σχήμα, ότι η επιφάνεια R αποτελείται από δυο φύλλα, και περνάμε από το ένα φύλλο στο άλλο κατά μήκος μιας τομής (ευθείας). Μια τέτοια επιφάνεια ονομάζεται επιφάνεια Riemann. In [39]: cm = colormaps.coolwarm def c(r,theta): return r*sin(theta) Rcol = parametric_plot3d((rx, Ry, r*cos(theta)), (r, 0, 1), (theta, 0, 2*pi),\ adaptive=true,color=(c,cm))