1 / 9

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ι. Σαρρής , sarris@uth.gr , τηλ . 2421074090. Διάλεξη 12 : Ασκήσεις- παραδείγματα στο Matlab. Εαρινό εξάμηνο 2008. Οργάνωση της παρουσίασης. Αυτοεπαναληπτικές διαδικασίες – 3 η άσκηση Matlab

lucie
Download Presentation

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ι. Σαρρής,sarris@uth.gr, τηλ. 2421074090 Διάλεξη 12: Ασκήσεις- παραδείγματα στο Matlab Εαρινό εξάμηνο 2008

  2. Οργάνωση της παρουσίασης • Αυτοεπαναληπτικές διαδικασίες – 3η άσκηση Matlab • Γραμμικά συστήματα – 5η άσκηση Μόνο με την πρακτική εξάσκηση αυτά που θα δείτε στην τάξη θα σας κάνουν άνετους με το Matlab!!!

  3. Άσκηση 3 Γράψτε μια συνάρτηση με όνομα funct, με όρισμα εισαγωγής έναν αριθμό n, η οποία θα υπολογίζει τη συνάρτηση, που δίδεται παρακάτω, στο n. Καλέστε την μέσα από το κύριο πρόγραμμα σας για n=4 και n=12. Εμφανίστε στην οθόνη τα αποτελέσματα με κατάλληλα σχόλια.

  4. Παράδειγμα διαδικασίας function y = fact(x) %FACT factorial by a recursive procedure. % FACT(X) is the factorial of X by a recursive procedure, % where X is an integer scalar. See Section 7.6, Recursion. if sum(size(x)) ~= 2 error('Argument is not a scalar, calculation aborted') elseif x ~= fix(x) error('Argumentis not an integer, calculation aborted') else if x == 0 y = 1; else y = x*fact(x-1); end end

  5. Άσκηση 5 Υλοποιήστε μια συνάρτηση με όνομα mymtdv η οποία θα δέχεται σαν ορίσματα εισαγωγής ένα πίνακα Α και ένα διάνυσμα b, και η οποία θα επιστρέφει ένα πίνακα του οποίου τα στοιχεία θα υπολογίζονται από τη σχέση . Μη κάνετε χρήση των εντολών/ιδιοτήτων του Matlab. Καλέστε τη συνάρτηση μέσα από το κύριο πρόγραμμα σας για τα , και εμφανίστε στην οθόνη τα αποτελέσματα με κατάλληλα σχόλια. και

  6. Παράδειγμα διαδικασίας function [sum, difference] = sumdiff(a, b); % function [sum, difference] = sumdiff(a, b); % % Μια απλή συνάρτηση για τον υπολογισμό την πρόσθεσης % και της αφαίρεσης των δύο ορισμάτων a και b % % Γ. Σαρρής, Μάιος 2008 % % Είσοδος: % a: πίνακας μεγέθους r x c % b: πίνακας μεγέθους r x c % % Έξοδος: % sum: a + b % difference: a - b % error checking [rowsa, colsa] = size(a); [rowsb, colsb] = size(b); if( rowsa ~= rowsb ) | ( colsa ~= colsb) error(‘sizes of a and b do not match’); end sum = a + b; difference = a – b;

  7. Μέθοδος Euler % αρχείο: simpleEuler.m % Αυτό το αρχείο matlab file θα βρει την προσεγγιστική λύση της εξίσωσης: % % dy/dx = 1/y % y(0) = starty % % Για να εκτελεστεί το αρχείο πρέπει να προσδιορίσουμε % τα ακόλουθα: % h : το μέγεθος του βήματος % starty : την αρχική τιμή % % Ο κώδικας θα παράγει τρία διανύσματα. Το πρώτο % διάνυσμα είναι το x αρχίζοντας από το x0=0 και με βήμα h. % Το δεύτερο διάνυσμα είναι η προσεγγιστική λύση που βρίσκουμε % Το τρίτο διάνυσμα είναι η πραγματική λύση της Δ.Ε. % x = [0:h:1]; y = 0*x; y(1) = starty; fori=2:max(size(y)), y(i) = y(i-1) + h/y(i-1); end true =sqrt(2*x+1);

  8. Η βασική συνάρτηση επίλυσης function[x,y] = eulerApprox(startx,h,endx,starty,func) % Αρχείο: eulerApprox.m % Αυτή η υπορουτίνα του matlab μας δίνει την προσεγγιστική λύση Δ.Ε. της μορφής: % y' = func(x,y) % y(startx) = starty % % Για την εκτέλεση του κώδικα πρέπει πρώτα να ορίσουμετα ακόλουθα: % startx : την αρχική τιμή του x % h : το βήμα % endx : την τελική τιμή του x % starty : την αρχική τιμή της συνάρτησης % func : το όνομα της συνάρτησης που θα υπολογίσουμε. % % πχ: [x,y] = eulerApprox(0,1,1/16,1,'f'); % % Η συνάρτηση θα παράγει δύο διανύσματα. Το πρώτο διάνυσμα περιέχει % το x. Το δεύτερο διάνυσμα περιέχει την προσεγγιστική λύση της Δ.Ε. % x = [startx:h:endx]; y = 0*x; y(1) = starty; fori=2:max(size(y)), y(i) = y(i-1) + h*feval(func,x(i-1),y(i-1)); end

  9. Εφαρμογή της μεθόδου Euler >> simpleEuler ??? Undefined function or variable h. Error in ==> /home/black/math/mat/examples/simpleEuler.m On line 28 ==> x = [0:h:1]; >> h = 1/16; >> starty = 1; >> simpleEuler >> whos Name Size Bytes Class h 1x1 8 double array i 1x1 8 double array starty 1x1 8 double array true 1x17 136 double array x 1x17 136 double array y 1x17 136 double array Grand total is 54 elements using 432 bytes >> plot(x,y,'rx',x,true) function[f] = f(x,y) % Το δεξί μέλος της διαφορικής εξίσωσης. f = 1/y;

More Related