Προγραμματισμός Η/Υ Τμήμα Πολιτικών Έργων Υποδομής Τεχνολογικό Εκπαιδευτικό Ίδρυμα Λάρισας Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Ρίζες και υπολογισμός τιμών πολυωνύμων Επίλυση γραμμικών συστημάτων, ολοκληρωμάτων Καμπύλη ελαχίστων τετραγώνων β’ εξάμηνο – εργαστήριο ΚΑΛΟΓΙΑΝΝΗΣ ΓΡΗΓΟΡΙΟΣ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών Α.Π.Θ. Msc Τηλεπικοινωνίες Πολυτεχνική Σχολή Α.Π.Θ. Msc Προηγμένα Συστήματα Υπολογιστών και Επικοινωνιών Α.Π.Θ. Ειδίκευση στη διαχείριση έργων και κινδύνων Ε.Κ.Π.Α.
Περιεχόμενα Ρίζες και υπολογισμός τιμών πολυωνύμων Πολλαπλασιασμός και διαίρεση πολυώνυμων Παράγωγος πολυωνύμου Ρητά πολυώνυμα Συστήματα Γραμμικών Εξισώσεων Υπολογισμός Ορισμένων Ολοκληρωμάτων Καμπύλη ελαχίστων τετραγώνων
Ρίζες και υπολογισμός τιμών πολυωνύμων Θεωρούμε το πολυώνυμο f(x) = −x3 + 10x2 − 10 Το πολυώνυμο αυτό εισάγεται στο MATLAB ως array με τη μορφή » p = [-1 10 0 -10] p = -1 10 0 -10 Οι ρίζες του πολυωνύμου προκύπτουν με την εντολή » r = roots(p) r = 9.8979 1.0575 -0.9554
Πολλαπλασιασμός και διαίρεση πολυώνυμων Θεωρούμε τα πολυώνυμα p(x) = 2x2 + 3x + 1= 2(x + 1)(x + 0.5) και q(x) = x + 1 Τα πολυώνυμα αυτά δίνονται με τη μορφή » p = [2 3 1]; » q = [1 1]; Το γινόμενο των δύο πολυωνύμων δίνεται από τη συνέλιξή τους (convolution) » p1 = conv(p,q) p1 = 2 5 4 1 δηλαδή p1(x)=p(x)q(x)=2x 3 + 5x2 + 4x + 1
Παράγωγος πολυωνύμου Δίνεται το πολυώνυμο p = [1 2 3] %p(x) = x2 + 2x + 3 Η παράγωγός του είναι » d = polyder(p) d = 2 2 %d(x) = 2x + 2
Ρητά πολυώνυμα Δίνεται το ρητό πολυώνυμο » num = 10*[1 2]; » den = poly([-1; -3; -4]); Η παράγωγός του προκύπτει με την εντολή » [N,D]=polyder(num,den) N = -20 -140 -320 -260 D = 1 16 102 328 553 456 144
Συστήματα Γραμμικών Εξισώσεων Ax = b x = Α-1 b A = [1 2 3;2 3 4;4 2 5]; b = [4 5 1]'; x = inv(A)*b end
Υπολογισμός Ορισμένων Ολοκληρωμάτων linspace(αρχή, τέλος, πλήθος) δημιουργεί ένα array με στοιχεία που ισαπέχουν το ένα από το άλλο linspace(0,1,5) ans = 0 0.2500 0.5000 0.7500 1.0000 x = linspace(0,1,5); y = exp(-x.^2); I = trapz(x,y) %Η εντολή που κάνει τραπεζοειδή ολοκλήρωση
Καμπύλη ελαχίστων τετραγώνων(1/3) Δίνονται στο επίπεδο xy ορισμένα σημεία (x,y) και ζητείται το βέλτιστο (με την έννοια των ελαχίστων τετραγώνων) πολυώνυμο n βαθμού, που τα συνδέει. Αυτό το πρόβλημα αντιμετωπίζεται με την εντολή polyfit(x,y,n) Το αποτέλεσμα είναι οι συντελεστές του πολυωνύμου που παριστά την καμπύλη ελαχίστων τετραγώνων, η οποία συνδέει τα δεδομένα σημεία. % Καμπύλη ελαχίστων τετραγώνων clear x = [-1 0 2]; y = [0 2 6]; p = polyfit(x,y,2) xi = [-2:0.1:2]; yi = polyval(p,xi); plot(xi,yi,x,y,'*') grid end
Καμπύλη ελαχίστων τετραγώνων(2/3) Να βρεθεί η καμπύλη ελαχίστων τετραγώνων (μέχρι τετάρτου βαθμού) που διέρχεται από τέσσερα σημεία.
Καμπύλη ελαχίστων τετραγώνων(2/3) x = [-1 0 3 5]; y = [0 2 6 -1]; p = polyfit(x,y,4) xi = [-2:0.1:6]; yi = polyval(p,xi); plot(xi,yi,x,y,'*') grid on xlabel('x') ylabel('y') title('Least square curve') axis([-1 6 -10 10]) gtext('n=4')
Τμήμα Πολιτικών Έργων Υποδομής Τεχνολογικό Εκπαιδευτικό Ίδρυμα Λάρισας Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Ρίζες και υπολογισμός τιμών πολυωνύμων Επίλυση γραμμικών συστημάτων, ολοκληρωμάτων Καμπύλη ελαχίστων τετραγώνων β’ εξάμηνο – εργαστήριο ΚΑΛΟΓΙΑΝΝΗΣ ΓΡΗΓΟΡΙΟΣ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών Α.Π.Θ. Msc Τηλεπικοινωνίες Πολυτεχνική Σχολή Α.Π.Θ. Msc Προηγμένα Συστήματα Υπολογιστών και Επικοινωνιών Α.Π.Θ. Ειδίκευση στη διαχείριση έργων και κινδύνων Ε.Κ.Π.Α.