Εισαγωγή στο MATLAB Μάθημα 1 Επιµέλεια: Φίλιππος Δογάνης
Αυτόματη Ρύθμιση - Προσομοίωση - Matlab Με το Matlab μπορούμε να κάνουμε προσομοίωση μιας διεργασίας προκειμένου να διερευνήσουμε, μεταξύ άλλων: o τη δυναμική συμπεριφορά της διεργασίας o την καταλληλότερη μεθοδολογία ρύθμισης o τη δυναμική συμπεριφορά του συστήματος σε συνήθεις και ακραίες συνθήκες 2
Αυτόματη ρύθμιση Ρύθμιση θερμοκρασίας σε εναλλάκτη θερμότητας 3
Τύποι μεταβλητών Στo Matlab έχουμε integers και double/single precision floating point (real) αριθμούς. Ωστόσο, integers χρησιμοποιούμε μόνο σε συγκεκριμένες περιπτώσεις (δεν θα μελετήσουμε εδώ). Ακόμη και ως δείκτες σε επανάληψη μπορούμε να χρησιμοποιήσουμε double/single precision μεταβλητές! 4
Κανόνες Ονομασίας Μεταβλητών Το όνομα αρχίζει με γράμμα (του αγγλικού αλφαβήτου). Το όνομα περιέχει μόνο γράμματα, αριθμούς και υποπαύλες (underscore). Δεν χρησιμοποιούνται ονόματα που έχουν δεσμευτεί από το MATLAB (π.χ. εντολών). Υπάρχει διάκριση μεταξύ πεζών και κεφαλαίων γραμμάτων Αριθμητικοί Τελεστές στο MATLAB Πρόσθεση + Αφαίρεση - Πολλαπλασιασμός * Διαίρεση / Δύναμη ^ 5
Καταχώρηση τιμής σε μεταβλητή Μεταβλητή= τιμή (με ή χωρίς ερωτηματικό στο τέλος) Αν δεν υπάρχει το ερωτηματικό εμφανίζεται το αποτέλεσμα αμέσως μετά την έκφραση και αποθηκεύεται στην μεταβλητή. Αν υπάρχει το ερωτηματικό απλώς το αποτέλεσμα αποθηκεύεται στην μεταβλητή, χωρίς να εμφανίζεται. Παράδειγμα. a=sin(pi/2) ans= 1 Παράδειγμα. b=exp(pi)- pi^exp(1) Ans=? 6
Πως μπορώ να δω τι έχει στην μνήμη του το Matlab; who : επιστρέφει πληροφορίες για μεταβλητές που χρησιμοποιήσαμε. whos : επιπλέον πληροφορίες για χώρο μνήμης που καταλαμβάνουν οι μεταβλητές αυτές. View- >Workspace >>who Your variables are: a ans b >>whos Name Size Bytes Class a 1x1 8 double array ans 1x1 8 double array b 1x1 8 double array Grand total is 3 elements using 24 bytes 7
Μεταβλητές: Scalar - Διανύσματα - Πίνακες Μια μεταβλητή που αποθηκεύει μόνο μια τιμή ονομάζεται Scalar. >> a=1 Οι μονοδιάστατες arrays ονομάζονται διανύσματα. (Συνήθως διάνυσμα ονομάζονται οι arrays με 1 στήλη.) >> x=[1 2 3 4 5] Οι δισδιάστατες arrays ονομάζονται πίνακες. >> A = [1 2 3; 4 5 6; 7 8 9]; A = 1 2 3 4 5 6 7 8 9 Για περισσότερα: Μάθημα 4 Fortran
Βοήθεια στο Matlab help εντολή lookfor κείμενο helpwin help whos lookfor matrix inverse παράθυρο βοηθείας του Matlab Παράδειγμα. Να βρείτε τον τρόπο σύνταξης της εντολής που σχεδιάζει (plot) την γραφική παράσταση μιας συνάρτησης στο Matlab. 9
Ειδικές Σταθερές και Μεταβλητές ans Περιέχει την πιο πρόσφατη απάντηση του MATLAB Προέρχεται από τη λέξη ANSwer >> sin(1.5)+cos(2.5) ans = 0.196351371057121 10
i, j Συμβολίζουν τη φανταστική μονάδα Χρησιμοποιούνται για την εισαγωγή μιγαδικών αριθμών Για παράδειγμα:2-5i 11
Inf, inf Δηλώνει το + Προέρχεται από τη λέξη infinity Σύμβαση IEEE Nan, nan Παριστάνει ένα «μη αριθμό» που δεν μπορεί να αποτυπωθεί Προέρχεται από τις λέξεις not a number. 12
pi Συμβολίζει τον αριθμό π = 3.141592653589793 Υπολογίζεται σωστά η τιμή του συνημιτόνου των 45 ο ; >> cos(pi/2) ans = 6.123233995736766e- 017 Δεν είναι μηδέν, αλλά η τιμή είναι μικρότερη του eps=2.220446049250313e- 016 13
Πίνακες size(x) : διαστάσεις πίνακα Χ length(x) : μέγιστη διάσταση Χ sum(x) : άθροισμα στοιχείων Χ Χ., transpose(x) : ανάστροφος πίνακα Χ, X T 14
Πίνακες eye(n) : μοναδιαίος πίνακας διάστασεων nxn zeros(n) : μηδενικός πίνακας διαστάσεων nxn ones(n) : πίνακας nxn με όλα τα στοιχεία μονάδες diag(v) : διαγώνιος πίνακας με τα στοιχεία του διανύσματος v στη διαγώνιό του 15
Πίνακες Α(m,n) : το στοιχείο (m,n) του πίνακα Α A(1:3,:) : κρατά την 1 η ως την 3 η γραμμή και όλες τις στήλες του πίνακα Α Α(:,3:end) : κρατά από την 3 η ως την τελευταία στήλη του πίνακα Α a:b:c : δημιουργεί το διάνυσμα [a a+b a+2b d] με d c 16
Πράξεις πινάκων +, -, *, ^ : πρόσθεση, αφαίρεση, πολλαπλασιασμός, ύψωση σε δύναμη / : δεξιά διαίρεση, Α/Β ισοδυναμεί με ΑΒ - 1 \ : αριστερή διαίρεση, Α\Β ισοδυναμεί με Α - 1 Β (Α\Β) =Β /Α.* : πολλαπλασιασμός στοιχείο προς στοιχείο 17
Πολλαπλασιασμός Πινάκων Προσοχή όμως στον πολλαπλασιασμό στοιχείο-προς-στοιχείο (element-by-element) : 18
Συναρτήσεις του MATLAB sin cos tan asin acos atan Ημίτονο Συνημίτονο Εφαπτομένη Ημίτονο τόξου Συνημίτονο τόξου Εφαπτομένη τόξου max min length sort sum prod Μέγιστο στοιχείο Ελάχιστο στοιχείο Μήκος διανύσματος Αύξουσα κατάταξη Άθροισμα στοιχείων διανύσματος Γινόμενο στοιχείων διανύσματος exp Εκθετική συνάρτηση median Διάμεση τιμή στοιχείων διανύσματος log abs sqrt Λογάριθμος βάσης e Απόλυτη τιμή Τετραγωνική ρίζα mean std Μέση τιμή στοιχείων διανύσματος Τυπικη απόκλιση στοιχείων διανύσματος rem Υπόλοιπο round Στρογγυλοποίηση προς τον πλησιέ στερο ακέραιο floor Στρογγυλοποίηση προς τα κάτω ceil Στρογγυλοποίηση προς τα πάνω
Άσκηση Βρείτε το άθροισμα των διαδοχικών άρτιων ακεραίων αριθμών από το 2 μέχρι το 200. 20
Άσκηση Βρείτε το άθροισμα των διαδοχικών άρτιων ακεραίων αριθμών από το 2 μέχρι το 200. x=sum(2:2:200) x = 10100 21
Τύποι μεταβλητών και περιορισμοί >> c=clock c = 1.0e+03 * 2.0150 0.0120 0.0010 0.0130 0.0370 0.0502 >> int8(c) ans = 127 12 1 13 37 50 >> int16(c) ans = 2015 12 1 13 37 50 >> int32(c) ans = 2015 12 1 13 37 50 Τύπος int8: Εύρος τιμών: 2 7 to 2 7 1. Τύπος int16: Εύρος τιμών: 2 15 to 2 15 1. Τύπος int32: Εύρος τιμών: 2 31 to 2 31 1.
Άσκηση 2 Φτιάξτε ένα πρόγραμμα Matlab που θα ορίζει ένα διάνυσμα με στοιχεία τους ακεραίους από 1 ως 5 και στη συνέχεια δημιουργήστε τα εξής διανύσματα: a) 1, 1/2, 1/3, 1/4, 1/5 b) 1, 1/2 2, 1/3 2, 1/4 2, 1/5 2 23
Άσκηση 2 Φτιάξτε ένα πρόγραμμα Matlab που θα ορίζει ένα διάνυσμα με στοιχεία τους ακεραίους από 1 ως 5 και στη συνέχεια δημιουργήστε τα εξής διανύσματα: a) 1, 1/2, 1/3, 1/4, 1/5 b) 1, 1/2 2, 1/3 2, 1/4 2, 1/5 2 a.x=1:5; y=1./x b.x=1:5; y=1./x.^2 24
Άσκηση 3 Φτιάξτε ένα πρόγραμμα Matlab που θα σχηματίζει τον παρακάτω πίνακα, βρείτε τις διαστάσεις του και διαγράψτε την τελευταία στήλη. é 1 ê ê 2 ê ë 3i 1 2 3i 1 2 3i 4 4 4 4 4 4 4ù 4 ú ú 4ú û 25
Άσκηση 3 Φτιάξτε ένα πρόγραμμα Matlab που θα σχηματίζει τον παρακάτω πίνακα, βρείτε τις διαστάσεις του και διαγράψτε την τελευταία στήλη. é 1 ê ê 2 ê ë 3i 1 2 3i 1 2 3i 4 4 4 4 4 4 4ù 4 ú ú 4ú û Α=[ones(1,3);2*ones(1,3);3i*ones(1,3)] B=ones(3)*4 C=[A B] 26
Διαχείριση Χώρου Εργασίας clear Διαγραφή των μεταβλητών του χώρου εργασίας. Σύνταξη clear var1 var2 var3 Διαγραφή όλων των μεταβλητών που αρχίζουν από L (clear L*) clear all clc Καθαρισμός χώρου εργασίας. Δεν διαγράφονται οι μεταβλητές.
Διαχείριση Χώρου Εργασίας save Αποθηκεύει τις τιμές για τις ενεργές μεταβλητές σε ένα αρχείο. Σύνταξη: save filename.mat Δώστε τις παρακάτω εντολές. (ορίστε έναν πίνακα Α με περιεχόμενο της δικής σας επιλογής) save eponymo.mat save eponymo2.mat Α Γράφοντας τα ονόματα των μεταβλητών που έχουμε στο Workspace μπορούμε να πετύχουμε να εγγραφούν στο αρχείο μόνο αυτά.
Διαχείριση Χώρου Εργασίας load Ανακαλεί («φορτώνει») τις τιμές από ένα αρχείο. Σύνταξη: load filename.mat Δώστε τις παρακάτω εντολές. load eponymo.mat load eponymo2.mat Α Αντίστοιχα, γράφοντας τα ονόματα των μεταβλητών που θέλουμε από το αρχείο μπορούμε να πάρουμε μόνο αυτά. whos - file eponymo.mat στο αρχείο. Με την εντολή αυτή μπορούμε να δούμε μέσα
Χωρίζοντας ένα διάστημα σε υποδιαστήματα linspace Διαιρεί ένα δοσμένο εύρος τιμών σε συγκεκριμένο πλήθος σημείων με γραμμική μορφή, με πλάτος διαστημάτων (x2- x1)/(n- 1), όπου: x1 Αρχική τιμή x2 Τελική τιμή n Πλήθος σημείων (αν παραληφθεί τότε θεωρείται ότι n=100) >>linspace(x1, x2, n) Δοκιμάστε διάφορα παραδείγματα και βρείτε το ισοδύναμο της σύνταξης: [- 5:2.5:5] Απάντηση: y1 = linspace(- 5,5,5) Η linspace μας επιτρέπει να καθορίσουμε άμεσα τον αριθμό των σημείων και το τελικό σημείο του διαστήματος. logspace Αντίστοιχα για λογαριθμική μορφή >>logspace(x1, x2, n)
Έλεγχος ροής προγράμματος Βρόχος for Χρησιμότητα: Έλεγχος επαναλήψεων Μορφή: for δείκτης = αρχική τιμή: βήμα μετάβασης: τελική τιμή <σύνολο εντολών> end
Πολλαπλοί βρόχοι for (Nested for loops) Μπορούν να δημιουργηθούν πολλοί βρόχοι εντολών for, ο ένας μέσα στον άλλον. Παράδειγμα Κάθε στοιχείο ενός πίνακα Hilbert διαστάσεως m x n δίνεται από τον τύπο: 1 a( i, j) = i + j - 1 i=1,2,,m και j=1,2,,n. Γράψτε κώδικα Matlab που να κατασκευάζει έναν πίνακα Hilbert 4 x 5. 32
m = 4;n = 5; for i=1:m for j=1:n a(i,j)=1/(i+j- 1); end end 33
Δυναμική διαχείριση μνήμης και προανάθεση χώρου (preallocation) σε μεταβλητές Μπορούμε να επιταχύνουμε τον κώδικά μας φροντίζοντας να γίνεται ανάθεση τιμών (συνήθως 0) στις μεταβλητές πριν από τους υπολογισμούς που θέλουμε να κάνουμε. Δοκιμάστε τα παρακάτω παραδείγματα: clear tic m = 1000;n = 1000; for i=1:m end toc for j=1:n end a(i,j)=1/(i+j- 1); Μπορώ να γράψω πολλές εντολές σε μια γραμμή αν χωρίζονται με semicolon (;) clear tic m = 1000;n = 1000; a(m,n)=0; for i=1:m for j=1:n a(i,j)=1/(i+j- 1); end end toc Αναθέτω μια τιμή προκειμένου να κατασκευαστεί η μεταβλητή a
Έλεγχος υποθέσεων- Βρόχοι If Χρήση: Χρησιμοποιείται για την εκτέλεση εντολών κατά συνθήκη Μορφή: if συνθήκη 1 elseif συνθήκη 2 μπλοκ εντολών 1 end else μπλοκ εντολών 2 μπλοκ εντολών 3 35
Πολυώνυμα polyval(p,x): υπολογίζει την τιμή του πολυωνύμου p στοx roots(p): υπολογίζει τις ρίζες του p poly(r): επιστρέφει το πολυώνυμο με ρίζες r conv(a,b): πολλαπλασιασμός των a και b polyder(p): παράγωγος του p
Επίλυση συστημάτων εξισώσεων Είναι δυνατό να επιλυθεί ένα γραμμικό σύστημα της μορφής A*x=b, χρησιμοποιώντας την παρακάτω εντολή: >> x=a\b; (αριστερή διαίρεση) Προσοχή Για παράδειγμα: >> A =[2 4; 5 3] ; b=[3 9 ;5 1] ; x=a\b >> x x = 0.7857-1.6429 0.3571 3.0714 Επιλύει το γραμμικό σύστημα: Για γραμμικό σύστημα της μορφής A x=β, χρησιμοποιούμε αριστερή διαίρεση: >> x=a\β; Για γραμμικό σύστημα της μορφής x Α=Β, χρησιμοποιούμε δεξιά διαίρεση: >> x=β/α; é 2 ê ë 5 4ù 3 ú û x = é 3 ê ë 5 9ù 1 ú û 37
Άσκηση 4 Να λυθεί το παρακάτω γραμμικό σύστημα και να γίνει επαλήθευση: 2x+3y+2z- w=4-3y+3w+z=7 5z- 2x+y+2w=18-4z+5y+6x=35 38
Άσκηση 4 >> A=[2 3 2-1;0-3 1 3;- 2 1 5 2;6 5-4 0] >> B=[4;7;18;35] >> X=A\B X = - 1.1103 6.6828-2.0621 9.7034 >> A*X ans = 4.0000 7.0000 18.0000 35.0000 39
Προγράμματα τύπου Script και Function Για να θυμηθούμε τον ορισμό και την χρήση των functions στην Fortran: Μάθημα Fortran #8, διαφάνειες 9-11. Το παρακάτω παράδειγμα είναι ένα script πρόγραμμα που υπολογίζει το άθροισμα των n πρώτων στοιχείων της σειράς 1 2 +2 2 +...+n 2 για n=5: clear n=5; s=0; for i=1:n end s=s+i^2; Το αντίστοιχο σε function γίνεται: function s=sumsq(n) s=0; for i=1:n s=s+i^2; end 40
Function σύγκριση με Fortran Fortran program factorial_of_n IMPLICIT NONE integer N integer(8) factorial integer(8) calculate_factorial print *, 'This program computes the factorial of & &a positive integer number N' print *, 'Give the N' read *, N factorial=calculate_factorial(n) print *, 'The factorial of N is' print *, factorial end integer(8) function calculate_factorial(a) IMPLICIT NONE integer a,i calculate_factorial=1 do i = 1, a calculate_factorial = calculate_factorial*i enddo end function 41
Function σύγκριση με Fortran Fortran program factorial_of_n IMPLICIT NONE integer N integer(8) factorial integer(8) calculate_factorial print *, 'This program computes the factorial of & &a positive integer number N' print *, 'Give the N' read *, N factorial=calculate_factorial(n) print *, 'The factorial of N is' print *, factorial end integer(8) function calculate_factorial(a) IMPLICIT NONE integer a,i calculate_factorial=1 do i = 1, a calculate_factorial = calculate_factorial*i enddo end function Matlab %program for factorial_of_n clear 'This program computes the factorial of a positive integer number N' N=input('Give the N') factorial=calculate_factorial(n) 'The factorial of N is' factorial function paragontiko=calculate_factorial(a) paragontiko=1 for i = 1:a paragontiko = paragontiko*i end end Το function σε χωριστό αρχείο 42
Εύκολοι τρόποι ελέγχου κριτηρίων σε πίνακες Ορίζουμε έναν πίνακα με τυχαίους αριθμούς από 1 έως 15, διαστάσεων 5x5. >>A = randi(15,5) A = 13 2 3 3 10 14 5 15 7 1 2 9 15 14 13 14 15 8 12 15 10 15 13 15 11 Eλέγχουμε σε ποιες θέσεις οι αριθμοί είναι μικρότεροι του 9: >>B = A < 9 B = 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 Για να πάρουμε ένα διάνυσμα με τους δείκτες των στοιχείων αυτών: >> I = find(a < 9); >> I=I (για να πάρουμε τους δείκτες σε διάνυσμα γραμμή) I = 3 6 7 11 14 16 17 22 Για να πάρουμε ένα διάνυσμα με τα στοιχεία αυτά: >> C=A(I) C = 2 2 5 3 8 3 7 1 43
Γραφικές παραστάσεις
plot Χρησιμοποιείται για την κατασκευή του γραφήματος μιας επίπεδης καμπύλης τα σημεία της οποίας είναι αποθηκευμένα σε διανύσματα με ίσο αριθμό σημείων. Για παράδειγμα: x=[0 1 1.5 2.2 3]; y=[2 1.65 1.3 1.4 4]; plot(x,y) 45
Δημιουργία Υπόμνημα Άνοιγμα Αποθήκευση Συντεταγμένες Εκτύπωση Μεγέθυνση Σμίκρυνση Μετακίνηση Περιστροφή 46
Άσκηση 5 Να κατασκευαστεί το γράφημα y=cos(x) στο διάστημα [- π, π] 47
Άσκηση 5 Να κατασκευαστεί το γράφημα y=cos(x) στο διάστημα [- π, π] Επιλέγουμε τον διαμερισμό του διαστήματος [- π, π] σε υποδιαστήματα μήκους 0.01 x=-pi:0.01:pi; y=cos(x); plot(x,y) 48
plot: Χρώματα, Σύμβολα και Γραμμές plot (x,y, [color] [stype] [ltype] ) color Χρώμα y yellow κίτρινο m magenta ματζέντα c cyan κυανό r red κόκκινο g green πράσινο b blue μπλε w white άσπρο k black μαύρο stype Marker o Circle + Plus sign * Asterisk. Point x Cross s Square d Diamond ^ Upward- pointing triangle v Downward- pointing triangle > Right- pointing triangle < Left- pointing triangle p Pentagram h Hexagram ltype Line Style - Solid line (default) - - Dashed line : Dotted line -. Dash- dot line Δοκιμάστε τα παρακάτω παραδείγματα: plot(x,y,'b') plot(x,y,'b--') plot(x,y,'bo:') 49
Άσκηση 6 Να σχεδιάσετε την exp(x) από - 1 έως 10 με διάστημα 1 με πράσινη, αδρή διακεκομμένη γραμμή. 50
Άσκηση 6 Να σχεδιάσετε την exp(x) από - 1 έως 10 με διάστημα 1 με πράσινη διακεκομμένη γραμμή. x=-1:1:10; y=exp(x); plot(x, y, 'g--') 51
plot: Πολλαπλά γραφήματα Παραθέτουμε το κάθε ζευγάρι διανυσμάτων που θα σχεδιαστεί, ακολουθούμενο από τις επιλογές σχεδιασμού. plot (x1, y1, '[color] [stype] [ltype]', x2, y2, '[color] [stype] [ltype] ) x=0:0.02:6; y=80*sin(x); z=exp(x); plot(x,y, 'r', x,z,'--') 52
Επιλογές στα γραφήματα Ετικέτες Αξόνων xlabel( τίτλος x ); Δίνει ετικέτα στον άξονα x ylabel( τίτλος y ); Δίνει ετικέτα στον άξονα y Ονομασία Γραφήματος title( ονομασία γραφήματος ); Δίνει όνομα στο γράφημα Υπόμνημα legend( τίτλος παραθύρου ); Δίνει όνομα στο παράθυρο του γραφήματος Πλέγμα στο Γράφημα grid Δημιουργεί πλέγμα στο γράφημα 53
Επιλογές στα γραφήματα title legend ylabel grid xlabel 54
Απενεργοποίηση Επιλογών Π.χ. grid off Αφαιρεί το πλέγμα από το γράφημα legend off Αφαιρεί το υπόμνημα 55
figure Ανοίγει άλλο παράθυρο γραφικών figure (nr); nr : Θετικός ακέραιος αριθμός από 1 μέχρι 2147483646 Αν παραληφθεί το nr, τότε το νέο παράθυρο γραφικών έχει σαν αριθμό την πρώτη ελεύθερη τιμή. 56
hold Η εντολή hold παγώνει το τρέχον παράθυρο γραφικών και χρησιμεύει για να σχεδιάσουμε επιπλέον καμπύλες στο ίδιο γράφημα. hold; Ενεργοποίηση παγώματος παραθύρου γραφικών οι εντολές plot σχεδιάζουν στο ίδιο παράθυρο hold off Απενεργοποίηση παγώματος παραθύρου 57
Γραφήματα με λογαριθμικούς άξονες Θεωρούμε: x=0:1:100; y=log(x); Δίνουμε διαδοχικά: plot(x,y) Γράφημα όπου οι άξονες των x και y είναι γραμμικοί. loglog(x,y) Γράφημα όπου οι άξονες των x και y είναι λογαριθμικοί. semilogx(x,y) Ημιλογαριθμικό γράφημα όπου ο άξονας των x είναι λογαριθμικός και των y γραμμικός. semilogy(x,y) Ημιλογαριθμικό γράφημα όπου ο άξονας των x είναι γραμμικός και των y λογαριθμικός. 58
Άσκηση 7 Να σχεδιάσετε την παράσταση y=1+2x 5 στο διάστημα [- 10, 10] με 2 διαφορετικές εντολές 59
Άσκηση 7 Να σχεδιάσετε την παράσταση y=1+2x 5 στο διάστημα [- 10, 10] με 2 διαφορετικές εντολές Με την εντολή plot: x=-10:0.1:10; y=1+2*x.^5; plot(x,y), grid, xlabel('x'), ylabel('y') Με χρήση της ezplot: ezplot('1+2*x.^5',[-10,10]) 60
subplot Τοποθέτηση πολλών γραφημάτων στο ίδιο παράθυρο. subplot(m,n,p) m, n : Πλήθος υποπαραθύρων του παραθύρου γραφικών p : Η θέση που θα τοποθετηθεί το γράφημα Η αρίθμηση των παραθύρων γίνεται κατά γραμμές 61
Αρίθμηση θέσεων στην subplot subplot(2,2,1) 1 2 3 4 subplot(2,2,4) 62
Άσκηση Να σχεδιάσετε τον φυσικό λογάριθμο του x στο διάστημα [1, 100] στο ίδιο παράθυρο με 4 διαφορετικές επιλογές για τους άξονες: γραμμικοί x- y, λογαριθμικοί x- y, ημιλογαριθμικοί ως προς x, ημιλογαριθμικοί ως προς y. 63
Άσκηση Να σχεδιάσετε τον φυσικό λογάριθμο του x στο διάστημα [1, 100] στο ίδιο παράθυρο με 4 διαφορετικές επιλογές για τους άξονες: γραμμικοί x- y, λογαριθμικοί x- y, ημιλογαριθμικοί ως προς x, ημιλογαριθμικοί ως προς y. x=1:100;y=log(x); subplot(2,2,1); plot(x,y) title('linear x-y'); subplot(2,2,2); loglog(x,y) title('log x-y'); subplot(2,2,3); semilogx(x,y) title('semilogx'); subplot(2,2,4); semilogy(x,y) title('semilogy'); 64