ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΝΑΥΠΗΓΩΝ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Σηµειώσεις για το πρόγραµµα Mathematica Νίκος Θεµελής Νοέµβριος 008 Σκοπός του φυλλαδίου είναι να παρέχει βασικές γνώσεις για την χρήση του λογισµικού Mathematica µε την βοήθεια απλών παραδειγµάτων. Ουσιαστικά πρόκειται για µια εισαγωγή σε κάποιες από τις δυνατότητες που προσφέρει το λογισµικό σε περιοχές που ενδιαφέρουν ένα µηχανικό. Πρέπει να σηµειωθεί ότι οι εντολές παρουσιάζονται στα παραδείγµατα στη σχετικά πιο απλά µορφή τους, ωστόσο υπάρχουν διάφορες επιλογές για την καθεµία από αυτές που σχετίζονται είτε µε την εµφάνιση των αποτελεσµάτων είτε µε τους υπολογισµούς και για αυτό ο αναγνώστης ενθαρρύνεται να χρησιµοποιήσει το help του λογισµικού. Το Mathematica είναι ένα µαθηµατικό πακέτο µε πολλές δυνατότητες σε σχεδόν όλους τους τοµείς των µαθηµατικών (Άλγεβρα, Θεωρία συνόλων, Ανάλυση, διαφορικές εξισώσεις, Στατιστική κ.α.). Η υπολογιστική µηχανή του Mathematica είναι ο πυρήνας (kernel), ενώ η σύνδεση µεταξύ του χρήστη και του πυρήνα γίνεται µέσω του front end (περιβάλλον εργασίας) και του Mathematica notebook. Εισαγωγή στο Mathematica Το Mathematica µπορεί να χρησιµοποιηθεί και ως απλή αριθµοµηχανή: + Παρδ. 5 Σηµειώνεται ότι µε έντονους χαρακτήρες δηλώνονται τα δεδοµένα που εισάγει ο χρήστης (input), ενώ µε τα δεδοµένα εξόδου (output) µε κανονικούς χαρακτήρες. Οι εντολές δίνονται πάντα µε το πρώτο γράµµα κεφαλαίο, ενώ χρησιµοποιούνται αγκύλες για το όρισµα συναρτήσεων.
Παρδ. 5 x^ x + ê. x 4 54?x Global`x Μπορούµε επίσης να αναπτύξουµε σε όρους ή να απλοποιήσουµε εκφράσεις µε τις εντολές Expand[expr] και Simplify[expr] αντίστοιχα. Παρδ. 6 Expand@Hx + yl ^D x + x y + xy + y Factor@%D Hx + yl Together@x + êhx L + x^ êhx 4L ^D 64 + x 4 x + 60 x x 4 + x 5 H 4 + xl H + xl Simplify@x^ x + D H + xl Υπολογισµός αθροισµάτων και γινοµένων Παρδ. 7 Sum@i^, 8i,,0<D 65 Product@ i, 8i,,6,0.5<D 7.986 0 7 Επαναληπτικές (loops) και λογικές διαδικασίες Παρδ. 8 Do@If@i > 0, Print@"Pos"D, Print@"Neg"DD, 8i,, <D Neg Neg Neg Pos Pos - -
Γραφικές παραστάσεις σε -διαστάσεις Ο αριθµός των σηµείων που χρησιµοποιούνται επηρεάζει σε κάποιες περιπτώσεις την ποιότητα της γραφ. παράστασης. Παρδ. g@x_, y_d : x ^ y ^ Exp@ Hx ^+ y ^LD PlotD@g@x, yd, 8x,, <, 8y,, <D PlotD@g@x, yd, 8x,, <, 8y,, <, PlotPoints 00D Επίλυση εξισώσεων Αλγεβρικές εξισώσεις Η γενική µορφή της εντολής είναι: Solve[equations, variables] - 5 -
Παρδ. 5 Plot@8Sin@xD, x^ <, 8x, π, π<d FindRoot@Sin@xD x^, 8x, <D FindRoot@Sin@xD x^, 8x, <D 8 6 4 - - - 8x.4096< 8x 0.667< Στην περίπτωση που υπάρχουν µιγαδικές λύσεις, θα πρέπει σαν αρχική τιµή να δοθεί αντίστοιχα ένας µιγαδικός αριθµός. Παρδ. 6 FindRoot@x^ + x + 0, 8x, 0<D FindRoot::jsing : Encountered a singular Jacobian at the point 8x< 8-0.5<. Try perturbing the initial pointhsl. à 8x 0.5< FindRoot@x^ + x + 0, 8x, I<D 8x 0.5 + 0.86605 < Υπολογισµός ορίου, παραγώγου, ελάχιστης τιµής και ολοκληρώµατος Παρδ. 7 Limit@H xl ^Tan@x π ê D, x D êπ Παράγωγοι διαφόρων τάξεων Παρδ. 8 f@x_d : x ^4 x ^+ 5 x ^; D@f@xD, xd D@f@xD, 8x, <D 0 x 6x + x + 7 x - 7 -
Παρδ. Integrate@ Exp@ Hx ^ + y^ld, 8x,,4<, 8y,,5<D NIntegrate@ Exp@ Hx ^ + y^ld, 8x,, 4<, 8y,, 5<D π HErf@D Erf@4DL HErf@D Erf@5DL 4 0.000577899 Στο παρακάτω παράδειγµα θα υπολογιστεί η επιφάνεια που περικλείεται ανάµεσα σε µια παραβολή και σε µια ευθεία. Παρδ. h@x_d : x ^ x + ; h@x_d : x + ; Plot@8h@xD, h@xd<, 8x,, <D points Solve@h@xD h@xd, xd; a points@@,, DD b points@@,, DD b h@xd y x a h@xd Integrate@Integrate@, 8y, h@xd, h@xd<d, 8x, a, b<d 5 4 - J 5 N J + 5 N 5 5 6 5 5 6 Επίλυση κανονικών διαφορικών εξισώσεων Αναλυτική επίλυση - 9 -
Αριθµητική επίλυση κανονικών διαφορικών εξισώσεων: Η γενική µορφή της αντίστοιχης εντολής είναι: NDSolve[equations, y, {x,xmin,xmax}] Παρδ. 7 eq y''@td Hy'@tDL^+ y@td 0; sol5 NDSolve@8eq, y@0d, y'@0d 0<, y, 8t, 0,50<D Sol sol5@@,, DD Sol@D Max@Table@Sol@tD, 8t, 0, 0, 0.<DD Plot@y@tDê. sol5, 8t, 0, 0<D Plot@Sol@tD, 8t, 0, 0<D Table@8t, Sol@tD<, 8t, 0, 0, <D êê TableForm 88y InterpolatingFunction@880., 50.<<, <>D<< InterpolatingFunction@880., 50.<<, <>D 0.0078708..0 0.8 0.6 0.4 0. 5 0 5 0.0 0.8 0.6 0.4 0. 5 0 5 0 ableform 0. 0.4748 0.0078708 0.65505 4 0.0076064 5 0.505 6 0.99780 7 0.444 8 0.06 9 0.64777 0 0.088 - -
Παρδ. 9 "Van der Pol Equation for various valus of µ" vanderpol@µ_d : NDSolveA9x @td + µ Ix@tD M x @td + x@td 0, x@0d, x @0D 0, x@td, 8t, 0,5<E; Remove@solgraphD; solgraph@µ_d : Module@8numsol<, numsol vanderpol@µd; Plot@x@tDê. numsol, 8t, 0,5<, PlotRange 8, <, DisplayFunction IdentityDD; muvals :, 6, 8, 4,,,,,,5,7,9>; graphs solgraph ê@ muvals; toshow Partition@graphs, D; Show@GraphicsGrid@toshowDD Van der Pol Equation for various valus of µ - 4 6 8 0 4-4 6 8 0 4-4 6 8 0 4 - - - - - - - 4 6 8 0 4-4 6 8 0 4-4 6 8 0 4 - - - - - - - 4 6 8 0 4-4 6 8 0 4-4 6 8 0 4 - - - - - - - 4 6 8 0 4-4 6 8 0 4-4 6 8 0 4 - - - - - - Παρεµβολή µιας καµπύλης σε ζεύγη σηµείων Σε αυτό το παράδειγµα θα υπολογιστούν οι συντελεστές ενός πολυωνύµου που παρεµβάλει µια λίστα σηµείων. Η µέθοδος που χρησιµοποιείται είναι των ελαχίστων τετραγώνων. - -
Βασικές πράξεις πινάκων Παρδ. m 880,, <, 8,, <, 8, 4, <<; MatrixForm@mD t Transpose@mD Inverse@mDêê MatrixForm 0 4 880,, <, 8,, 4<, 8,, << 4 5 7 4 7 7 7 7 7 7 Παρδ. ma 88, 4, 5<, 89, 0, <, 85,, <<; mb 880, 6, 9<, 86, 5, 7<, 8 0, 9, <<; ma + mb êê MatrixForm mb 4 ma êê MatrixForm Det@maD 0 4 5 5 0 5 0 9 0 5 5 0 8 04 Παρδ. a 88, <, 8, << CharacteristicPolynomial@a, λdêê Factor Eigenvalues@aD Eigenvectors@aD Eigensystem@aD 88, <, 8, << H + λlh5 + λl 8 5, < 88, <, 8, << 88 5, <, 88, <, 8, <<< - 5 -
Παρδ. 5 Εισαγωγή στο Mathematica Στο παρακάτω παράδειγµα ταξινοµείται το σηµείο ισορροπίας ( 0,0) του γραµµικού συστήµατος x ' 5x+ y y' 4x y. Υπολογισµός ιδιοτιµών και ιδιοδιανυσµάτων Clear@a, x, yd a J 5 4 N; Eigensystem@aD 88, <, 88, <, 8, <<< Αφού οι ιδιοτιµές είναι πραγµατικές και έχουν αντίθετο πρόσηµο το σηµείο ισορροπίας είναι saddle. Αναλυτική επίλυση του συστήµατος sol DSolve@8x'@tD 5 x@td + y@td, y'@td 4 x@td y@td<, 8x@tD, y@td<, td; sol sol@@,, DD sol sol@@,, DD t I + 4t M C@D + 4 t I + 4t M C@D t I + 4t M C@D t I + 4t M C@D ιάγραµµα ροής και τροχιές από διαφορετικές αρχικές συνθήκες toplot Flatten@Table@8sol, sol<ê. 8C@D > i, C@D > j<, 8i, 0.5, 0.5, 0.5<, 8j, 0.5, 0.5, 0.5<D, D; graphs ParametricPlot@Evaluate@toplotD, 8t,, <, PlotRange 88, <, 8, <<, AspectRatio, PlotStyle GrayLevel@0DD; p Plot@8 x, x ê <, 8x,, <, PlotStyle 88Red, Dashing@80.0<D, Thickness@0.0D<, 8Red, Dashing@80.0<D, Thickness@0.0D<<D; pvf HNeeds@"VectorFieldPlots`"D; VectorFieldPlots`VectorFieldPlot@85 x + y, 4 x y<, 8x,, <, 8y,, <, ScaleFunction H0.05 &L, Axes Automatic, PlotPoints 0DL; Show@pvf, p, graphs, PlotRange 88, <, 8, <<, AspectRatio, AxesOrigin 80, 0<, Axes AutomaticD - 7 -
Γραµµικοποιηµένο σύστηµα γύρω από τα σηµεία ισορροπίας και ταξινόµησή τους "Linearized system about each equilibrium jac ê. 8x, y <êê Eigenvalues jac ê. 8x, y < êêeigenvalues point" 8 +, < :, + > Για το πρώτο σηµείο οι ιδιοτιµές είναι µιγαδικές µε αρνητικό πραγµατικό µέρος, οπότε το (,) είναι ευσταθές (stable spiral). Για το δεύτερο σηµείο (-,) οι ιδιοτιµές είναι πραγµατικές και έχουν αντίθετο πρόσηµα άρα είναι saddle. ιάγραµµα ροής και τροχιές από διαφορετικές αρχικές συνθήκες pvf HNeeds@"VectorFieldPlots`"D; VectorFieldPlots`VectorFieldPlot@8f@x, yd, g@x, yd<, 8x, ê, ê <, 8y,, <, ScaleFunction H &L, Axes Automatic, AxesOrigin 80, 0<, PlotPoints 0DL; graph@8x0_, y0_<d : Module@8numsol<, numsol NDSolve@8x'@tD f@x@td, y@tdd, y '@td g@x@td, y@tdd, x@0d x0, y@0d y0<, 8x@tD, y@td<, 8t, 0, 5<D; ParametricPlot@8x@tD, y@td< ê. numsol, 8t, 0, 5<, PlotStyle RedDD initcond Table@8 ê, i<, 8i,,, ê 4<D; initcond Table@8i, <, 8i, ê, ê, ê 4<D; initconds initcond initcond; totgraph Map@graph, initcondsd; Show@pvf, totgraph, PlotRange 88 ê, ê <, 8, <<, AspectRatio, Axes Automatic, AxesOrigin 80, 0<D.0.5.0 0.5 -.5 -.0-0.5 0.5.0.5-0.5 -.0-9 -
a 0.6.0 0.5 - - -0.5 -.0 Παρδ. 9 ManipulateBPlotBx ax4, 8x,, <F, 8a,, <F 4 a - 0 8 6 4 - - - -