Χάρης Παναγόπουλος Καθηγητής Φυσικής, Π.Κ

Σχετικά έγγραφα
Παρουσίαση του Mathematica

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

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

Homework#13 Trigonometry Honors Study Guide for Final Test#3

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

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

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


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

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

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

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

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


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

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

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

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

ΑΣΚΗΣΕΙΣ: ΟΡΙΑ ΚΑΙ ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΕΩΝ

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

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

dx cos x = ln 1 + sin x 1 sin x.

website:

ProapaitoÔmenec gn seic.

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

1 Σύντομη επανάληψη βασικών εννοιών

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

Να υπολογίζουμε τους τριγωνομετρικούς αριθμούς οξείας γωνίας. Τη γωνία σε κανονική θέση και τους τριγωνομετρικούς αριθμούς γωνίας σε κανονική θέση.

ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΗ ΦΥΣΙΚΗ

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ. ΚΕΦΑΛΑΙΟ 1 Γνωριμία με τη Mathematica 11. ΚΕΦΑΛΑΙΟ 2 Βασικές αρχές 34. ΚΕΦΑΛΑΙΟ 3 Λίστες 74. ΚΕΦΑΛΑΙΟ 4 Δισδιάστατα γραφικά 101

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

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

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

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

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

Αριθμητική Ανάλυση και Εφαρμογές

ΦΥΣ Διάλ Άλγεβρα. 1 a. Άσκηση για το σπίτι: Διαβάστε το παράρτημα Β του βιβλίου

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

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

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

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

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

2. Οι νόµοι της κίνησης, οι δυνάµεις και οι εξισώσεις κίνησης

SMART Notebook Math Tools

και εδώ:

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


Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος

α. y = y x 2 β. x + 5x = e x γ. xy (xy + y) = 2y 2 δ. y (4) + xy + e x = 0 η. x 2 (y ) 4 + xy + y 5 = 0 θ. y + ln y + x 2 y 3 = 0 d 3 y dy + 5y

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

Γρήγορη Εκκίνηση. Όταν ξεκινήσετε το GeoGebra, εμφανίζεται το παρακάτω παράθυρο:

(i) f(x, y) = xy + iy (iii) f(x, y) = e y e ix. f(z) = U(r, θ) + iv (r, θ) ; z = re iθ

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

Επίλυση Δ.Ε. με Laplace

Αριθμητική παραγώγιση εκφράσεις πεπερασμένων διαφορών

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

Άσκηση 3 Υπολογισμός του μέτρου της ταχύτητας και της επιτάχυνσης

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

Γραφήματα οικογένειας παραβολών

ΦΥΣΙΚΗ. Α Λυκείου 14/ 04 / 2019 ΘΕΜΑ Α.

Προτεινόμενο διαγώνισμα Φυσικής Α Λυκείου

E = 1 2 k. V (x) = Kx e αx, dv dx = K (1 αx) e αx, dv dx = 0 (1 αx) = 0 x = 1 α,

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών. HY-112: Φυσική Ι Χειµερινό Εξάµηνο 2016 ιδάσκων : Γ. Καφεντζής. εύτερη Σειρά Ασκήσεων - Λύσεις.

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

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

ΦΥΣ Διαλ Σήμερα...? q Λογισμό μεταβολών (calculus of variations)

SMART Notebook 11.1 Math Tools

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

SPSS Statistical Package for the Social Sciences

ΑΝΑΛΥΣΗ 2. Μ. Παπαδημητράκης.

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

ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΦΥΣΙΚΗΣ 2019

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

Κεφάλαιο 2. Διανύσματα και Συστήματα Συντεταγμένων

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

ΣΥΝΤΗΡΗΤΙΚΕΣ ΔΥΝΑΜΕΙΣ

2.1 Αριθμητική επίλυση εξισώσεων

Κεφάλαιο 3. Κίνηση σε δύο διαστάσεις (επίπεδο)

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Τριγωνοµετρική (ή πολική) µορφή µιγαδικού αριθµού. Έστω z = x+ yi ένας µη µηδενικός µιγαδικός αριθµός και OM

ΜΕΜ251 Αριθμητική Ανάλυση

ΛΧ1004 Μαθηματικά για Οικονομολόγους

ΑΤΕΙ ΠΕΙΡΑΙΑ/ ΣΤΕΦ 3//7/2013 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΑΠΑΝΤΗΣΕΙΣ ΓΡΑΠΤΗΣ ΕΞΕΤΑΣΗ ΣΤΗ ΦΥΣΙΚΗ

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ ΠΡΩΤΟ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΣΥΝΟΛΩΝ ΚΑΙ ΣΥΝΔΥΑΣΤΙΚΗΣ ΑΝΑΛΥΣΗΣ

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου

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

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

1 Η ΠΡΟΟΔΟΣ. Ενδεικτικές λύσεις κάποιων προβλημάτων. Τα νούμερα στις ασκήσεις είναι ΤΥΧΑΙΑ και ΟΧΙ αυτά της εξέτασης

Περιεχόμενα. Λίγα λόγια για τους συγγραφείς

dy df(x) y= f(x) y = f (x), = dx dx θ x m= 1

f(x) = 2x+ 3 / Α f Α.

Μέϑοδοι Εφαρμοσμένων Μαϑηματιϰών (ΜΕΜ 274) Φυλλάδιο 2

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

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

ΤΡΙΒΗ ΟΛΙΣΘΗΣΗΣ ΣΕ ΚΕΚΛΙΜΕΝΟ ΕΠΙΠΕΔΟ ( ΜΕ ΤΗΝ ΚΛΑΣΣΙΚΗ ΜΕΘΟΔΟ Ή ΤΟ MULTILOG )

Transcript:

MATHEMATICA 16/9/2017 Σύντομες σημειώσεις Χάρης Παναγόπουλος Καθηγητής Φυσικής, Π.Κ. 22892832 haris@ucy.ac.cy Tί είναι η Mathematica ; Πρόγραμμα για κάθε λογής μαθηματικούς υπολογισμούς Αριθμητικές πράξεις Αλγεβρικές / Τριγωνομετρικές πράξεις Παράγωγοι, ολοκληρώματα Λύση εξισώσεων (αλγεβρικών, διαφορικών) Χειρισμός πινάκων και διανυσμάτων Στατιστική ανάλυση Γραφήματα πολλών ειδών Έχει κάποια κοινά στοιχεία με προγράμματα όπως: Matlab, Maple, όμως διαθέτει περισσότερες δυνατότητες για συμβολικές/αλγεβρικές πράξεις και πολύ μεγαλύτερη ποικιλία εφαρμογών. Επινοήθηκε από τον Stephen Wolfram, περί το 1988. Η πιο πρόσφατη έκδοση (version) είναι η 11 η. Website: www.wolfram.com Δωρεάν δοκιμή 15 ημερών Μειωμένη τιμή για μη επαγγελματίες: 310 + VAT Μειωμένη τιμή για φοιτητές: 140 + VAT

[Αν έχετε παλιότερη έκδοση (από την 7η και μετά) οι διαφορές δεν είναι ουσιώδεις: Βελτίωση κάποιων πολύπλοκων ολοκληρωμάτων Μεγαλύτερη ποικιλία σε γραφήματα Μενού πιο φιλικό προς τον χρήστη Καλύτερη επίλυση κάποιων διαφορικών εξισώσεων ] Ξεκινάμε το πρόγραμμα κάνοντας κλικ στο εικονίδιο: Εναλλακτικά, ανοίγουμε ένα τερματικό παράθυρο από το εικονίδιο: και πληκτρολογούμε την εντολή: mathematica & : Ανοίγει γραφικό περιβάλλον, με παράθυρα και μενού. Πολύ φιλικό προς το χρήστη (user friendly). ή math & : Ανοίγει μη γραφικό περιβάλλον. Λιγότερο φιλικό προς το χρήστη, αλλά: ελαφρώς πιο γρήγορο η διαδικασία που ακολουθήθηκε φυλάγεται με πιο ευανάγνωστο τρόπο (για μελλοντική χρήση, διορθώσεις) [Αν θα δώσουμε την εντολή math, τότε συμφέρει να τη

δώσουμε όχι από συνηθισμένο τερματικό παράθυρο, αλλά από ένα τερματικό που θα ανοίξουμε μέσα από το λεκτικό επεξεργαστή emacs, δίδοντας στην emacs την εντολή: "ESC-X shell". Με αυτό τον τρόπο θα μπορούμε να ανατρέξουμε όλα τα πεπραγμένα μας, και να τα σώσουμε σε αρχείο.] Μια συνοπτική εισαγωγή/tutorial βρίσκεται στο μενού: Documentation [ή Help Wolfram Documentation ] Εκεί ψάξτε τις λέξεις Virtual Book και μετά: Virtual Book Introduction Getting Started Αν δεν ανοίξει αυτομάτως φύλλο εργασίας notebook (ανάλογα με την έκδοση που χρησιμοποιούμε), τότε από το μενού επιλέγουμε: New Document Notebook [ Ιστοσελίδα https://www.wolframalpha.com/ Δωρεάν εκτέλεση εντολών της Mathematica Δεν απαιτείται ο σωστός τρόπος γραφής εντολών Δεν μπορεί να γραφεί ολοκληρωμένο πρόγραμμα Η εκτέλεση των εντολών έχει μικρές καθυστερήσεις ]

Πρώτες Δοκιμές Δοκιμάζουμε τις εντολές: 1+2 [SHIFT+ENTER για να εκτελεστεί η εντολή] a + b + a Παρατηρούμε ότι οι εντολές που δίνουμε απαριθμούνται: In[1], In[2], κλπ. Παρομοίως και για τα αποτελέσματα των εντολών: Out[1], Out[2], κλπ. % + a ("%" το αμέσως προηγούμενο αποτέλεσμα, "%%" το προ-προηγούμενο, "%%%", "%2" το δεύτερο αποτέλεσμα, κλπ) %1 + %% (* Hi! *) (Χρησιμοποίουμε τα σύμβολα "(*" και "*)" για σχόλια) a = 3 ; (Δίδει την τιμή 3 στη μεταβλητή a. Βάζουμε ; αν δε θέλουμε να δούμε το αποτέλεσμα) %2 (Το αποτέλεσμα 2 δίδεται τώρα με την δεδομένη τιμή του a) cut/copy/paste : γίνονται όπως και στο περιβάλλον Windows, με τα πλήκτρα: CTRL-X CTRL-C CTRL-V Μπορείτε επίσης να διορθώσετε μια προηγούμενη εντολή και να την δώσετε εκ νέου. Η διορθωμένη εντολή θα αποκτήσει νέο αριθμό! Η παλιά εντολή και το αποτέλεσμά της, δε θα φαίνονται πλέον στην οθόνη, άλλα μένουν αποθηκευμένες στη μνήμη. Αλλάξτε, π.χ., την εντολή In[2], με όποιον τρόπο θέλετε, και αργότερα πληκτρολογήστε In[2]. Τι θα συμβεί;

Ορισμός συναρτήσεων Παράδειγμα: f[x_] := 2x + a ή g[x_] = 2x + a Προσοχή: Το όρισμα σε αγκύλες! [ ] Underscore "_" σημαίνει οποιοδήποτε όρισμα. Το "=" σημαίνει άμεση ανάθεση τιμής, ενώ το ":=" σημαίνει «καθυστερημένη» ανάθεση. Δοκιμάστε: f[2], g[2], f[y], f[4f[z]],... Θέστε a = 5 και ξαναδοκιμάστε f[2], g[2]. Τι παρατηρείτε; Δοκιμάστε επίσης τους ορισμούς: h1[a_] = a + 1 και: h2[a_] := a + 1 Τι τιμή νομίζετε ότι θα πάρουν οι h1[2] και h2[2]; 2+1=3 ή μήπως 5+1=6; Δοκιμάστε το! Συνήθως οι ορισμοί συναρτήσεων χρησιμοποιούν την καθυστερημένη ανάθεση τιμής! g[a_,b_] := a^2 b^3 Συνάρτηση δύο, τριών,..., μεταβλητών

Μερικές «εγγενείς» συναρτήσεις της Mathematica Υπάρχουν χιλιάδες εγγενείς συναρτήσεις στη Mathematica. Γνωστές τόσο οι αριθμητικές τιμές όσο και οι ιδιότητές τους! Σύμβαση: αρχίζουν όλες με κεφαλαίο γράμμα. Sqrt[ ], Log[ ], Exp[ ], Abs[ ], Sign[ ] Sin[ ], Cos[ ], Tan[ ], ArcSin[ ], Sinh[ ], Cosh[ ], Tanh[ ], ArcSinh[ ] Υπάρχουν επίσης εγγενείς σταθερές, όπως: Pi ( = π = 3.14159...) Ε ( = e = 2.71828...) I ( = i, i 2 = - 1) Infinity ( = ) Degree ( = 2π/360, μοίρες σε ακτίνια) Δοκιμές: Sin[Pi/4], Sin[30 Degree], Sqrt[8], Sqrt[8.] Η εντολή Ν (numerical value) N[%] (Αριθμητική τιμή του πιο πάνω αποτελέσματος) Ν[Pi, 500] (Αριθμητική τιμή του "π", 500 δεκαδικά ψηφία!) Ασκήσεις: Να υπολογιστούν, σε ακριβή και προσεγγιστική μορφή 20 ψηφίων, οι ποσότητες: 50!, sin(π/2), 3+ 5, tan -1 (3), cos(π/6), e iπ/12 H Mathematica κάνει απλοποιήσεις, αλλά όχι προσεγγίσεις (εκτός αν το ζητήσουμε)!

Παράγωγοι - Ολοκληρώματα D[g[x,y], x] Παράγωγος ως προς τη μεταβλητή x D[g[x,y], {x,2}] 2η παράγωγος (προσέξτε το άγκιστρο! { }) Δοκιμές: D[g[x,y],y], D[Sin[x]/x, x], D[D[g[x,y],y],y] Integrate[f[y], y] Ολοκλήρωση αναλυτικά, αν είναι εφικτό Δοκιμές: Integrate[Sin[x]^2, x] Integrate[Sqrt[x^5+1] Log[x^2+1], x] Integrate[x^2 Exp[-b x], {x, 0, Infinity}] NIntegrate[f[x], {x, 3, 5}] Ολοκλήρωση αριθμητική στο διάστημα 3<x<5 (προσέξτε τις αγκύλες [ ] και το άγκιστρο { }!!) Δοκιμές: NIntegrate[Sqrt[x^2+1], {x, 3, 5}] (Δίνει μόνο 6 ψηφία. Η εντολή Ν[%, 20] δε βοηθά!) NIntegrate[Sqrt[x^2+1], {x, 3, 5}, WorkingPrecision -> 30] ή SetAccuracy[NIntegrate[Sqrt[x^2+1], {x, 3, 5}], 30] (όχι εξ ίσου ακριβές...) Αθροίσματα Sum[f[x], {x, 2, 5}] ( = f(2)+f(3)+f(4)+f(5) ) Sum[f[x], {x, 1, 8, 2}] ( = f(1)+f(3)+f(5)+f(7) ) Δοκιμές: Sum[x^2, {x, 1, n}], Sum[1/n^2, {n, 1, Infinity}] Sum[(n^2+1)^(-5/4), {n, 1, Infinity}]

Ασκήσεις: Υπολογίστε σε κλειστή ή αριθμητική μορφή (με 20 σημαντικά ψηφία): dx x 4 cos(kx), 0 dx (1/n!), n=3 Απλοποιήσεις εκφράσεων Factor[x^6-1] Expand[%] TrigExpand[Sin[b+c]] Simplify[%] FullSimplify[%] 1 (x 2 +a 2 ) 3, n=0 n 4 (n!) 2, 2 1 dx (x 2 +2) 1/3, 10 n=0 (n 4 +1) d 2 dx ( x 2 sinx ), (Παραγοντοποίηση) (Ανάπτυγμα εκφράσεων) (Τριγωνομετρικά αναπτύγματα) («Απλοποιεί» την έκφραση) (Δοκιμάζει ακόμα περισσότερες απλοποιήσεις) Πληροφορίες για συναρτήσεις/σταθερές/σύμβολα?sin (πληροφορίες για τη συνάρτηση sin)??sin (περισσότερες πληροφορίες για τη sin)?*sin* (κατάλογος όλων των αντικειμένων που περιέχουν στό όνομά τους τα 3 συνεχόμενα γράμματα "Sin") Χρήσιμες γενικές εντολές Quit Έξοδος από το πρόγραμμα File Save Σώζει όλο το "notebook" σ'ένα αρχείο τύπου.nb Save["mynewfile.m", f, g] Σώζει τους ορισμούς των f, g σ'ένα αρχείο << mynewfile.m Διαβάζει ό,τι είχαμε σώσει σ'ένα αρχείο

Αντικαταστάσεις In[5] := (1 + x + y)^2 %5 /. x -> 1 Αντικαθιστά το x με το 1 %5 /. {x -> 1} Ίδιο αποτέλεσμα όπως πριν %5 /. {x -> y, y -> 2} Ταυτόχρονη αντικατάσταση %5 /. x -> y /. y -> 2 Ετερόχρονη αντικατάσταση %5 /. {{x -> 1}, {x -> 2, y -> 3}} Λίστα 2 αντικαταστάσεων Με άγκιστρα {} η Mathematica συμβολίζει λίστες {a, b, c}, ή λίστες από λίστες {{a, b}, c, {d, e, {f, g}}}, κ.ο.κ. Λύση πολυωνυμικών εξισώσεων Solve[x^3-2x^2-23x + 60 ==0, x] Λύνει πολυωνυμικές εξισώσεις. Προσέξτε το "=="! Είναι ισότητα, όχι ανάθεση τιμής Η απάντηση: Μια λίστα από τις δυνατές λύσεις με μορφή αντικατάστασης: Out[9] = {{x -5}, {x 3}, {x 4}} %9[[2]] Το 2 ο στοιχείο της πιο πάνω λίστας: {x 3} Προσέξτε τις διπλές αγκύλες! f[x] /. %9 Θέτει σε εφαρμογή καθεμιά αντικατάσταση στη λίστα Δοκιμή: Να βρεθεί η τιμή της έκφρασης x 3 + 5 όταν το x είναι η πρώτη από τις λύσεις της πιο πάνω εξίσωσης: x^3 + 5 /. %9[[1]]

Μόνο μέχρι 4 ου βαθμού εξισώσεις λύνονται σε κλειστή μορφή! (Θεώρημα της Άλγεβρας) Δοκιμή: Solve[x^4-5x^3 + 2x^2-3x + 1 == 0, x] Για υψηλότερου βαθμού εξισώσεις; Αριθμητική επίλυση NSolve[x^11 + x^4 + 8==0, x] NSolve[x^11 + x^4 + 8==0, x, WorkingPrecision -> 20] Λύση άλλων αλγεβρικών εξισώσεων FindRoot[Cos[x]-Tan[x]==0, {x, 2.8}] Αριθμητική λύση τυχαίας αλγεβρικής εξίσωσης, ξεκινώντας από κάποια αρχική τιμή, π.χ. x=2.8 Αλλάζοντας την αρχική τιμή μπορεί να οδηγηθούμε σε κάποια άλλη από τις λύσεις που επιδέχεται η εξίσωση Συστήματα αλγεβρικών εξισώσεων Solve[{x^2+y==1, x-y==5},{x,y}] Σύστημα (λίστα) 2 εξισώσεων, ως προς τις άγνωστες x, y FindRoot[{Cos[x] == Sin[y], x^2 + y ==2}, {{x, 2}, {y, 7}}] Σύστημα εξισώσεων με αρχικές τιμές των αγνώστων x, y

Απλά γραφήματα Plot[Sin[1/x], {x, 0.1, 5}] Γράφημα μιας συνάρτησης. Τα όρια του x είναι σε λίστα Plot[{Sin[1/x], Cos[x^2]}, {x, 0.1, 5}] Απεικόνιση 2 συναρτήσεων στο ίδιο γράφημα Export[ grafima.pdf, %] Σώζει το πιο πάνω γράφημα σ'ένα αρχείο pdf, με όνομα grafima.pdf {{0.5, 3.1}, {0.8, 2.9}, {1.3, 2.8}, {2.2, 1.5}} Λίστα από σημεία (x,y) ListPlot[%, Joined->True] Γραφική παράσταση της πιο πάνω λίστας (Υπάρχουν πάρα πολλές επιλογές όπως το Joined, για χρώματα, άξονες, κλίμακα, τίτλους, tickmarks, κλπ. π.χ. PlotRange -> {0, 2}, AspectRatio -> 3 ) ParametricPlot[{Sin[t], 2Cos[t]}, {t, 0, 2 Pi}] Γράφημα των σημείων (x,y), όπου: x(t) = sin(t), y(t) = 2 cos(t), και 0 < t < 2π Plot3D[Sqrt[1 - x^2 - y^2], {x, -2, 2}, {y, -2, 2}] 3-διάστατο γράφημα z(x, y) = 1 x 2 y 2 από όποια οπτική γωνία επιθυμούμε! [Για ακόμα πιο εξειδικευμένα σχέδια υπάρχουν λογισμικά όπως CAD (Computer Aided Design). Όμως είναι πολύ πιο ακριβά, και περιορίζονται μόνο σε σχέδια.]

Λίστες Table[k^3,{k, 1, 10}] Δημιουργεί μια λίστα τιμών του k 3 f[a_] := a + 1 f /@ %% Η f δρά σε κάθε στοιχείο της λίστας Έστω ότι: Out[8] = {{0.5, 3.1}, {0.8, 2.9}, {1.3, 2.8}, {2.2, 1.5}} Τότε: %8[[3]] θα δώσει: {1.3, 2.8} %8[[4,1]] θα δώσει: 2.2 Table[%8[[i,2]], {i,4}] θα δώσει: {3.1, 2.9, 2.8, 1.5} Table[{i, %8[[i,2]]}, {i,4}] θα δώσει: {{1, 3.1}, {2, 2.9}, {3, 2.8}, {4, 1.5}} Στη Mathematica κάθε έκφραση είναι ή ένα άτομο (π.χ. 38, a, Pi) ή μια λίστα! Κάθε λίστα αποτελείται από μια κεφαλή και από 0 ή περισσότερα στοιχεία. Π.χ. a+b+c αντιστοιχεί σε: Plus[a,b,c] (κεφαλή: Plus, στοιχεία: a,b,c) {a,b,c} αντιστοιχεί σε: List[a,b,c] (κεφαλή: List, στοιχεία: a,b,c) a^2 αντιστοιχεί σε: Power[a,2] (κεφαλή: Power, στοιχεία: a,2) Η εντολή: <νέα κεφαλή> @@ <έκφραση> αντικαθιστά την κεφαλή της έκφρασης με τη νέα κεφαλή, π.χ. Times @@ (a+b+c) δίνει a*b*c

Επίλυση διαφορικών εξισώσεων Σε κλειστή μορφή (όπου είναι δυνατόν!), π.χ. DSolve[y'[x] == x, y[x], x] Λύνει την εξίσωση: dy/dx = x Άγνωστη: y(x), Ανεξάρτητη μεταβλητή: x Απάντηση: {{y[x] -> x^2/2 + C[1]}} (C[1]: σταθερά) DSolve[y'[x] == x^2 + y[x]^2, y[x], x] DSolve[y''[x] == - 4 y[x], y[x], x] (δύσκολη!!) Λύνει την: d 2 y/dx 2 = - 4 y Απάντηση: {{y[x] -> C[1] Cos[2 x] + C[2] Sin[2 x]}} όπου C[1], C[2]: σταθερές, προσδιορίζονται από αρχικές συνθήκες DSolve[{y''[x] == -4 y[x], y[0] == 1, y'[0] == 5}, y[x], x] Τώρα δώσαμε και αρχικές συνθήκες. Απάντηση: {{y[x] -> (4 Cos[2 x] + 3 Sin[2 x]) / 2}}

Αριθμητική επίλυση (δίδοντας και αρχικές συνθήκες), π.χ. NDSolve[{y'[x] == 1/(x^2 + y[x]^4), y[1]==0}, y[x], {x,1,2}] Λύνει την: dy/dx = 1/(x 2 + y 4 ), με αρχική συνθήκη: y(1) = 0, στο διάστημα: 1 x 2 Απάντηση: {{y[x] -> InterpolatingFunction[{{1.,2.}},<>][x]}} Το σύμβολο < > σημαίνει οτι η πλήρης περιγραφή του αποτελέσματος δεν εμφανίζεται στην οθόνη, χάριν συντομίας. Αν επιμένετε να τη δείτε: FullForm[%] Για γραφική παράσταση της λύσης: Plot[y[x] /. %%, {x, 1, 2}] Presto!!

Στατιστικές αναλύσεις Εισαγωγικά Σ'ένα αρχείο (FakeData.txt) έγραψα δεδομένα της μορφής: 1980 3109 1981 3250 1982 3427 2015 14247 Η πρώτη στήλη καταγράφει τα έτη 1980-2015, ενώ η δεύτερη στήλη έχει το κέρδος μιας εταιρείας στο αντίστοιχο έτος. Θέλουμε: Να διαβάσουμε το αρχείο στη Mathematica Να υπολογίσουμε το μέσο κέρδος, και τη διασπορά Να διερευνήσουμε την αυξητική πορεία (γραμμική; εκθετική;) Να προβλέψουμε τα κέρδη για τα έτη 2016-2020 ReadList[ FakeData.txt, Number] Διαβάζει όλους τους αριθμούς του αρχείου, και τους καταχωρεί σε μια λίστα: {1980, 3109, 1981, 3250, } mydata = Partition[%,2] Ομαδοποιεί σε 2άδες: {{1980, 3109}, {1981, 3250}, } profitdata = Table[mydata[[i,2]], {i, Length[mydata]}] Δημιουργεί τη λίστα: {3109, 3250, } Mean[profitdata] StandardDeviation[profitdata] Μέση τιμή Τυπική απόκλιση

Fit[mydata, {1, x}, x] Προσαρμογή σε συνάρτηση α + β x Η μεταβλητή x συμβολίζει το πρώτο στοιχείο κάθε 2άδας Fit[mydata, {1, x, x^2}, x] Προσαρμογή σε συνάρτηση α + β x + γ x 2 Οι πιο πάνω προσαρμογές είναι γραμμικές ως προς α, β, γ Συχνά όμως θέλουμε και μη-γραμμικές προσαρμογές, π.χ. σε συνάρτηση της μορφής: a exp(b (x-1980)). Χρησιμοποιούμε: FindFit[mydata, a Exp[b (x-1980)], {a, b}, x] Απάντηση: {a -> 3114.23, b -> 0.0512687} Οι προβλέψεις μας για τα κέρδη κατά τα έτη 2016-2020 μπορούν τώρα να υπολογιστούν ως εξής: Table[ a Exp[b (x-1980)] /. %, {x, 2016, 2020}] Απάντηση: {19720.5, 20757.9, 21849.9, 22999.3, 24209.2}

Πρόβλημα-Εφαρμογή (για φοιτητές Θετικών/Πολυτεχνειακών κατευθύνσεων) Σώμα κινείται πάνω σε κεκλιμένο επίπεδο με τριβή. Να υπολογιστεί και να σχεδιαστεί η τροχιά του. Δεδομένα: θ κλίση επιπέδου μ συντελεστής τριβής ολίσθησης ν 0 μέτρο αρχικής ταχύτητας φ 0 κατεύθυνση αρχικής ταχύτητας στο κεκλιμένο επίπεδο x-y g επιτάχυνση βαρύτητας T ολικός χρόνος εξέλιξης Υπόδειξη: Οι εξισώσεις κίνησης είναι (αποδείξτε το!): ÿ= μ g cos θ ẏ ẋ + g sin θ, ẍ= μ g cos θ ( ẏ2 + ẋ2 ) 1 /2 ( ẏ2 + x 2 ) 1 / 2

Επίλυση (* Πρώτα ας επιλέξουμε τιμές για τα δεδομένα *) θ = Pi/6; μ = 0.3; v0 = 2; φ0 = -Pi/4; g = 10; T = 3; (* Λύνουμε τις διαφορικές εξισώσεις για x(t), y(t), στο διάστημα 0 t T *) s = NDSolve[ {x''[t] == - μ g Cos[θ] x'[t]/sqrt[x'[t]^2 + y'[t]^2], y''[t] == - μ g Cos[θ] y'[t]/sqrt[x'[t]^2 + y'[t]^2] + g Sin[θ], x[0] == 0, y[0] == 0, x'[0] == v0 Cos[φ0], y'[0] == v0 Sin[φ0]}, {x, y}, {t, 0, T}] (* Γράφημα της οριζόντιας συνιστώσας x(t) *) Plot[Evaluate[x[t] /. s], {t, 0, T}, PlotRange -> All] (* Γράφημα της κατακόρυφης συνιστώσας y(t) *) Plot[Evaluate[y[t] /. s], {t, 0, T}, PlotRange -> All] (* Γράφημα της τροχιάς y(x) *) ParametricPlot[Evaluate[{x[t], y[t]} /. s], {t, 0, T}] Δοκιμάστε το!

Εντολές «ροής ελέγχου» (όπως σε άλλες γλώσσες προγραμματισμού, π.χ. Fortran, C, κλπ.) Η εντολή If : το αποτέλεσμα εξαρτάται από την τιμή (true ή false) που θα πάρει το «κατηγόρημα» (predicate). Χρήση της, π.χ., στον ορισμό ασυνεχών συναρτήσεων: f[x_] := If[x < 0, -x, x] g[x_]:= If[x < -1, 0, If[x < 1, -2, 1]] Η εντολή Do : Επαναληπτική εκτέλεση εντολών. Χρήση της, π.χ., στον ορισμό του «παραγοντικού» (a!) a = 1; Do[a = a*n, {n, 1, 10} ]; a και αμέτρητες άλλες εντολές και εφαρμογές! ΚΑΛΗ ΣΥΝΕΧΕΙΑ!