ΜΑΣ 191. Μαθηματικά με Υπολογιστές Διδάσκων: Γιώργος Γεωργίου Ενδιάμεση εξέταση Θεωρία 26 Μαρτίου 2007

Σχετικά έγγραφα
ΜΑΣ 191. Μαθηματικά με Υπολογιστές Διδάσκων: Γιώργος Γεωργίου Ενδιάμεση εξέταση Θεωρία 18 Μαρτίου 2009

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

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

1.4 Αριθμητική υπολογιστών και σφάλματα

ημιουργία και διαχείριση πινάκων

4 η ΕΝΟΤΗΤΑ Μητρώα και συνθήκες στο MATLAB

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

Εισαγωγή στους Υπολογιστές

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

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

Εισαγωγή στη Matlab Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

4. Εισαγωγή στο Matlab

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

Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ MATLAB

Χρονικές σειρές 8 o μάθημα: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB (2)

ΕΙΣΑΓΩΓΗ ΣΤΟ MATHLAB Α ΜΕΡΟΣ

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB. Κολοβού Αθανασία Ε.Τ.Ε.Π.

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

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

Μαρία Λουκά. Εργαστήριο Matlab. Αριθμητικός υπολογισμός ιδιοτιμών και ιδιοδιανυσμάτων. Τμήμα Πληροφορικής και Τηλεπικοινωνιών.

ΜΑΣ 191. Μαθηματικά με Υπολογιστές Ενδιάμεση εργαστηριακή εξέταση 26 Απριλίου 2007

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

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

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

Εργαστήριο Γραμμικής Άλγεβρας. H Matlab ως γλώσσα προγραμματισμού

Μαρία Λουκά. Εργαστήριο Matlab Άμεσες Μέθοδοι. Τμήμα Πληροφορικής και Τηλεπικοινωνιών

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 1 ο Εργαστήριο. Εισαγωγή στο Matlab

Χρονικές σειρές 6 o μάθημα: M-Files (συνέχεια) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB - Bρόγχοι for

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

Λογικά Διανύσματα. >>x = -3/2*pi : pi/100 : 3/2*pi; >>y = tan(x); >>plot(x, y)

Νέο υλικό. Matlab2.pdf - Παρουσίαση μαθήματος 2. Matlab-reference.pdf Σημειώσεις matlab στα ελληνικά (13 σελίδες).

ΜΑΣ 473/673: Μέθοδοι Πεπερασμένων Στοιχείων

Συστήματα Αναμονής (Queuing Systems)

Πίνακες. FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Εισαγωγή στο Matlab (μέρος β) Κολοβού Αθανασία, ΕΔΙΠ,

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5

MATLAB. Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών.

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Χρονικές σειρές 4 o μάθημα: ΠΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝΥΣΜΑΤΑ

Έξοδος Matlab: Έξοδος Matlab:

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

Πληροφορική. Ενότητα 2: Α. Μεταβλητές. Όλα είναι πίνακες. Β. Δεδομένα. Σφάλματα. Δομές. Κωνσταντίνος Καρατζάς Τμήμα Μηχανολόγων Μηχανικών

Μαρία Λουκά. Εργαστήριο Matlab Πολυώνυμα - Παρεμβολή. Τμήμα Πληροφορικής και Τηλεπικοινωνιών.

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Υπολογισμός αθροισμάτων

Εφαρμοσμένα Μαθηματικά ΙΙ Τελική Εξέταση Ι. Λυχναρόπουλος

2 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while

Χρονικές σειρές 9 o μάθημα: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB (3) ΓΡΑΦΗΜΑΤΑ

Να γράψετε τους αριθμούς 1, 2, 3 από τη Στήλη Α και δίπλα το γράμμα α, β, γ, δ, ε από τη Στήλη Β που δίνει τη σωστή αντιστοιχία.

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

Δομές Δεδομένων & Αλγόριθμοι

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

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

4. Επιλογή και Επανάληψη

Τετραγωνικά μοντέλα. Τετραγωνικό μοντέλο συνάρτησης. Παράδειγμα τετραγωνικού μοντέλου #1. Παράδειγμα τετραγωνικού μοντέλου #1

Ηβασική δοµή δεδοµένων είναι ο πίνακας που δεν χρειάζεται να οριστεί η διάσταση του.

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

Τετραγωνικά μοντέλα. Τετραγωνικό μοντέλο συνάρτησης. Παράδειγμα τετραγωνικού μοντέλου #1. Παράδειγμα τετραγωνικού μοντέλου #1

Συναρτήσεις - Όρια- Παράγωγοι- Ολοκληρώματα Ακολουθίες-Σειρές

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

1 x x x x 1 x x x x 1 x x x x 1 (10) B 2, B 1. (10)

Εισαγωγή στον επιστημονικό προγραμματισμό 2 o Μάθημα

3 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Κοιλότητα. Διαφορικός Λογισμός μιας μεταβλητής Ι

Δομημένος Προγραμματισμός (ΤΛ1006)

ΣΥΝΑΡΤΗΣΕΙΣ. Η σύνταξη μιας συνάρτησης σ ένα κελί έχει την γενική μορφή: =όνομα_συνάρτησης(όρισμα1; όρισμα2;.)

10 ΑΡΙΘΜΗΤΙΚΗ ΟΛΟΚΛΗΡΩΣΗ

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 2

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

Προγραμματισμός στο Matlab

Συνοπτικός οδηγός MATLAB & OCTAVE. (έως και συναρτήσεις) Ιωάννης Καλατζής 2018d

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 9 ο Εργαστήριο. Απαλοιφή Gauss με μερική οδήγηση - Παρεμβολη

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

Λογικές εκφράσεις και μεταβλητές

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

Εισαγωγικές σημειώσεις στο Matlab

A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2. Μέϱος A. Πολλαπλές επιλογές (20%) Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 5)

Πληροφορική. Ενότητα 4: Α. Λογικές εκφράσεις (Παραστάσεις και Δείκτες). Β. Δομές Προγραμματισμού. Κωνσταντίνος Καρατζάς Τμήμα Μηχανολόγων Μηχανικών

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 3)

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings).

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

Εισαγωγή στο Matlab Μέρος Α. Κυριακίδης Ιωάννης 2011

ΠΑΡΑΡΤΗΜΑ Α Εισαγωγή στο MATLAB

Transcript:

ΜΑΣ 9. Μαθηματικά με Υπολογιστές Διδάσκων: Γιώργος Γεωργίου Ενδιάμεση εξέταση Θεωρία 6 Μαρτίου 7 ΟΝΟΜΑ: ΑΤ:. Πρόβλημα Να συμπληρωθούν οι δύο εντολές της MATLAB που λείπουν: >> A=[ +i; -i ]; >> Εντολή.. +.i -.i. >> Εντολή A =.. +.i -.i. >> μ. >> A=[ +i; -i ]; >> disp(a).. +.i -.i. >> A A =.. +.i -.i. Σημείωση: Αντί της >> A μπορούμε ισοδύναμα να χρησιμοποιήσουμε την >> display(a) A =.. +.i -.i. Στην πραγματικότητα, το m-file display.m καλεί την εντολή disp. Για περισσότερες πληροφορίες δοκιμάστε την help display.

Πρόβλημα Να συμπληρωθούν οι τρεις εντολές της MATLAB που λείπουν: >> Εντολή Your variables are: A A A3 AB Bas u >> Εντολή Name Size Bytes Class Attributes A x 8 double A x 8 double A3 x 8 double AB 3x3 7 double Bas x 8 double u x4 3 double >> Εντολή 3 Your variables are: A A A3 AB μ. >> who Your variables are: A A A3 AB Bas u >> whos Name Size Bytes Class Attributes A x 8 double A x 8 double A3 x 8 double AB 3x3 7 double Bas x 8 double u x4 3 double >> who A* Your variables are: A A A3 AB

Πρόβλημα 3 Με δεδομένο ότι η τιμή του x δεν αλλάζει, συμπληρώστε τις τέσσερις εντολές ΜΑΤLAB που λείπουν: >> x=exp(-).353 >> Εντολή >> x.35335833663 >> Εντολή >> x.35335833667e- >> Εντολή 3 >> x 39/43 >> Εντολή 4 >> x.4 μ. >> x=exp(-).353 >> format long >> x.35335833663 >> format long e >> x.35335833667e- >> format rat >> x 39/43 >> format bank >> x.4 3

Πρόβλημα 4 (α) Ορίστε στη MATLAB τα εξής: A = 4 3 3 4 και b = 3 μ. Γράψτε τις εντολές της MATLAB που υπολογίζουν τα ακόλουθα: (β) Την ορίζουσα και τον βαθμό του Α. μ. (γ) Τον ανάστροφο και τον αντίστροφο του Α. μ. (δ) Τις ιδιοτιμές και τα ιδιοδιανύσματα του Α. μ. (ε) Τη λύση του συστήματος Ax=b μ. (α) (β) (γ) (δ) >> A=[ ; - ; 4 3 ; 3 4] A = - 4 3 3 4 >> b=[; ; ; 3] b = 3 >> det(a) - >> rank(a) 4 >> A' - 4 3 3 4 >> inv(a).3 -.3. -. -.4.4. -. 3.9. -.7 -. -.8 -..4. >> [V,D]=eig(A) V = Columns through 3.88.85 -.4 +.76i.95.865 -.5 -.88i.3 -.888 -.5837 +.45i.876.46.7656 4

Column 4 -.4 -.76i -.5 +.88i -.5837 -.45i.7656 D = Columns through 3 5.978 -.59.49 +.637i Column 4.49 -.637i (ε) >> A\b...3.4 5

Πρόβλημα 5 (α) Κατασκευάστε με απλό τρόπο (και όχι με απευθείας εκχώρηση τιμών) τον πίνακα: A = μ. (β) Κατασκευάστε με απλό τρόπο (και όχι με απευθείας εκχώρηση τιμών) τον πίνακα: B = μ. (γ) Κατασκευάστε τους κάτωθι υποπίνακες ενός πίνακα Α: (i) το διάνυσμα που περιέχει το ο, το 4 ο, το 7 ο και το ο στοιχείο της τελευταίας γραμμής του Α (δεδομένου ότι ο Α έχει τουλάχιστον στήλες) μ. (ii) το διάνυσμα που περιέχει το 9 ο, το 7 ο, το 5 ο και το 3 ο στοιχείο της τελευταίας στήλης του Α (δεδομένου ότι ο Α έχει τουλάχιστον 9 γραμμές) μ. (iii) τον υποπίνακα που προκύπτει από την τομή των γραμμών, 4, 7 και και τον στηλών 3, 5, 7 και 9 του Α μ. (iv) τον υποπίνακα που περιέχει το ο, ο, 3 ο και 7 ο στοιχείο της τελευταίας γραμμής του Α. μ. (α) >> A=[ones(3) eye(3)] A = (β) >> A=ones(4,5); >> A(:4,:5)= A = (γ) (i) >> A(,:3:) (ii) >> A(9:-:3,) (iii) >> A(:3:,3::9) (iv) >> A(,[ 3 7]) ή >> A(,[:3 7]) 6

Πρόβλημα 6 Ορίστε τη συνάρτηση f( x) = ln + x x ( e ) όπου το x να μπορεί να είναι διάνυσμα με τους εξής τρόπους: (α) Με function m-file. μ. (β) Με ανώνυμη συνάρτηση. μ. (γ) Με την εντολή inline. μ. (δ) Σχεδιάστε το γράφημα της f στο [,5] με 3 διαφορετικές εντολές. 3 μ. (α) function y=f(x) % F y=log(+exp(x.^-*x)); % End of F (β) (γ) >> f=@(x) log(+exp(x.^-*x)) f = @(x) log(+exp(x.^-*x)) >> f=inline('log(+exp(x.^-*x))','x') f = Inline function: f(x) = log(+exp(x.^-*x)) (δ) ος τρόπος Εντολή plot Με τις εντολές x=:.:5; plot(x,f(x)) παίρνουμε το γράφημα: 6 4 8 6 4.5.5.5 3 3.5 4 4.5 5 ος τρόπος Εντολή fplot Εφόσον έχουμε ορίσει ανώνυμη συνάρτηση ή συνάρτηση inline, με την εντολή >> fplot(f,[,5]) παίρνουμε το γράφημα 7

6 4 8 6 4.5.5.5 3 3.5 4 4.5 5 3 ος τρόπος Εντολή ezplot Χρησιμοποιούμε τη συνάρτηση ezplot: >> ezplot(f,,5) 6 log(+exp(x - x)) 4 8 6 4.5.5.5 3 3.5 4 4.5 5 x 8

Πρόβλημα 7 (α) Πως κατασκευάζεται στη ΜΑΤLAB το πιο κάτω γράφημα; sin(x) - x cos(x) log(x)+x 5-5 4 3-5 5 x exp(x)-x 4 6 x 3 x 3 - x +x- 5 5 5-5 -5 5 x -5 5 x 4 μ. (β) Σχεδιάστε το γράφημα της καμπύλης x + ( y )( + x+ y) = μ. (α) Με τις εντολές >> subplot(,,), ezplot('sin(x) - x*cos(x)') >> subplot(,,), ezplot('log(x)+x^') >> subplot(,,3), ezplot('exp(x)-x') >> subplot(,,4), ezplot('3*x^3-*x^+x-') (β) Με την εντολή >> ezplot('x^+(y^-)*(+x+y)',[-3,3]) παίρνουμε το γράφημα 3 x +(y -) (+x+y) = y - - -3-3 - - 3 x 9

Πρόβλημα 8 (α) Γράψτε μια m-συνάρτηση με όνομα prodfun.m που υπολογίζει το γινόμενο δύο συναρτήσεων f(x) και g(x) στο x. Τα ονόματα των f και g πρέπει να είναι μεταβλητές εισόδου για την prodfun. 4 μ. (β) Πως μπορούμε να σχεδιάσουμε το γράφημα της sinx e x χρησιμοποιώντας το πιο πάνω m-file; μ. (α) Το ζητούμενο m-file έχει ως εξής: function y=prodfun(fname, gname, x) % PRODFUN % Calculates the product f(x)g(x) % y=feval(fname,x).*feval(gname,x); % End of PRODFUN Πιο κάτω βλέπουμε κάποια αποτελέσματα που πήραμε με την prodfun: >> prodfun(@exp,@cos,) >> prodfun(@exp,@cos,pi/4).559 Υπενθυμίζουμε ότι αντί του συμβόλου @, μπορούμε επίσης να δώσουμε τα ονόματα των συναρτήσεων μέσα σε εισαγωγικά: >> prodfun('sin','cos',pi/4).5 >> prodfun('cosh','tan',.) 4.6573 (β) Με τις εντολές >> x=linspace(-3,3); >> plot(x,prodfun(@sin,@exp,x)) παίρνουμε το γράφημα της sinx e x : 8 7 6 5 4 3 - -3 - - 3 Εναλλακτικά θα μπορούσαμε να χρησιμοποιήσουμε και την >> ezplot(@(x) prodfun(@sin, @exp, x))

η οποία παράγει το πιο κάτω γράφημα της sinx e x (μη βιαστείτε να σκεφθείτε ότι έχει γίνει λάθος!): - -4-6 -8 - - -4-6 prodfun(@sin, @exp, x) -8-3 - - 3 4 5 6 x

Πρόβλημα 9 Βρείτε το λάθος σε κάθε μια από τις πιο κάτω εντολές της MATLAB: (α) x=:.:pi; f(x)=+x.^ μ. (β) if m=n μ. (γ) f=*x^-3x+5 μ. και (δ) εξηγήστε τη διαφορά μεταξύ της +3 < + και της +(3<)+. μ. (α) Στο αριστερό μέρος μιας εντολής εκχώρησης δεν μπορούμε να έχουμε εκφράσεις της μορφής f(x) εκτός αν η f είναι διάνυσμα (και όχι συνάρτηση) και το x είναι ακέραιος. Η MATLAB μας δίνει μήνυμα λάθους: >> x=:.:pi; f(x)=+x.^??? Subscript indices must either be real positive integers or logicals. (β) Το if ακολουθείται από λογική πρόταση και όχι εντολή εκχώρησης. Μπορούμε να έχουμε if m==n ή if m <=n κλπ. Η MATLAB μας δίνει μήνυμα λάθους: >> if m=n??? if m=n Error: The expression to the left of the equals sign is not a valid target for an assignment. (γ) Λείπει το σύμβολο * του πολλαπλασιασμού στον όρο 3x. Η MATLAB μας δίνει μήνυμα λάθους: >> f=*x^-3x+5??? f=*x^-3x+5 Error: Unexpected MATLAB expression. (δ) Η +3 < + είναι μια λογική παράσταση με λογική τιμή. Η +(3<)+ είναι ένα άθροισμα που περιλαμβάνει και ένα λογικό (αυτή είναι η τιμή της πρότασης 3<). Η τιμή του είναι φυσικά 3. Πιο κάτω φαίνονται τα αποτελέσματα της MATLAB: >> +3 < + >> whos Name Size Bytes Class Attributes ans x logical >> >> +(3<)+ 3 >> whos Name Size Bytes Class Attributes ans x 8 double

Πρόβλημα Γράψτε με διαφορετικό τρόπο τις πιο κάτω παραστάσεις στη ΜΑΤLΑΒ: (α) + cos(pi) >= (β) eye(3) < ones(3) (γ) or(x>=y, x==round(x)) (δ) le(*rand(3),ones(3)) (ε) gt(delta, e-8) 3 μ. (α) >> ge(+cos(pi), ) (β) (γ) (δ) >> lt(eye(3),ones(3)) >> x>=y x==round(x) ή ge(x,y) eq(x, round(x)) >> *rand(3) <= ones(3) (ε) delta >= e-8 3

Πρόβλημα Γράψτε ένα function m-file με το όνομα series.m και δεδομένo εισόδου ένα φυσικό αριθμό n για τον υπολογισμό του αθροίσματος n k k = + k (α) με τη χρήση βρόχου for. μ. (β) χωρίς τη χρήση βρόχου for. 3 μ. (γ) Με δοσμένο το m-file series.m πως θα κατασκευάζατε το πιο κάτω γράφημα του αθροίσματος συναρτήσει του n στο διάστημα [,]; 3 μ. 3.5 Σ k/(+k ).5.5 4 6 8 4 6 8 n (α) function sum=series(n) % SERIES % Ypologizei to athroisma k/(=k^) % sum=; for k=:n sum=sum+k/(+k^); % End of SERIES (β) function sum=series(n) k=; sum=; while k <= n k=k+; sum=sum+k/(+k^); ή function sum=series(n) x=:n; sum=sum(x./(+x.^)); 4

ή ακόμα (γ) function sum=series(n) sum=sum( (:n)./(+(:n).^) ); >> x=:; >> for k=:, y(k)=series(k); >> plot(x,y,'o'), xlabel('n'), ylabel('σ k/(+k^)') 5

Πρόβλημα Γράψτε ένα function m-file με το όνομα issymmetric.m και δεδομένο εισόδου ένα πραγματικό πίνακα Α που θα ελέγχει αν ο Α είναι τετραγωνικός και αν όχι θα επιστρέφει σχετικό μήνυμα λάθους και θα σταματά. Στην περίπτωση που ο Α είναι τετραγωνικός θα επιστρέφει τη λογική τιμή αν ο Α είναι συμμετρικός και τη λογική τιμή διαφορετικά. 5 μ. Το ζητούμενο m-file έχει ως εξής: function yn=issymmetric(a) % ISSYMMETRIC % Checks whether a matrix A is symmetric % [m,n]=size(a); if m~=n disp('matrix A is not square!') else if A==A' yn=true; else yn=false; %End of ISSYMMETRIC Ακολουθούν μερικά αποτελέσματα που πήραμε με το πρόγραμμα issymmetric.m. >> issymmetric(ones(,3)) Matrix A is not square! >> issymmetric(ones(3,3)) >> issymmetric(eye(4)) >> issymmetric(rand(5)) >> >> whos Name Size Bytes Class Attributes ans x logical Παρατηρούμε λοιπόν ότι η έξοδος είναι λογική μεταβλητή. 6

Πρόβλημα 3 Γράψτε ένα function m-file με το όνομα lowsol.m που θα επιλύει το γραμμικό σύστημα Ax=b με εμπρός αντικατάσταση όταν ο Α είναι κάτω τριγωνικός πίνακας. b / a i xi = bi aikxk / aii, i=,, n k = To m-file πρέπει να ελέγχει τα εξής: αν ο Α είναι τετραγωνικός και αν όχι να επιστρέφει σχετικό μήνυμα λάθους. αν ο Α είναι κάτω τριγωνικός και αν όχι να επιστρέφει σχετικό μήνυμα λάθους. αν οι Α και b έχουν το ίδιο πλήθος στηλών και αν όχι να επιστρέφει σχετικό μήνυμα λάθους. αν ο Α είναι αντιστρέψιμος και αν όχι να επιστρέφει σχετικό μήνυμα λάθους. 5 μ To function m-file είναι το εξής: function [x]=lowsol(a,b) % LOWSOL % Solves AX=b where A is a lower % triangular matrix % % Checks [m,n]=size(a); [mb,nb]=size(b); if m~=n % Check if A is nxn disp('matrix A is not square!') return elseif mb ~= ^ nb ~= % Check if b is a vector disp('b is not a vector!') return elseif mb*nb~=n % Check if b is a nx vector fprintf('b is not a %3.fx vector! \n',n) return elseif det(a) == % Check if A is invertible disp('a is not invertible!') return else % Check if A is lower triangular if ~all(all(a==tril(a))) disp('a is not lower triangular!') return % Solution of the lower triangular system n=max(size(a)); x=zeros(n,); x()=b()/a(,); for j=:n x(j)=(b(j)-a(j,:j-)*x(:j-))/a(j,j); % End of LOWSOL 7

Ένας πιο δύσκολος τρόπος για να ελέγξουμε αν ο Α είναι συμμετρικός είναι ο πιο κάτω που χρησιμοποιεί λογική άλλων γλωσσών προγραμματισμού και όχι τη λογική της MATLAB: for k=:n- for j=k+:n if A(k,j) ~= disp('a is not lower triangular!') return Πιο κάτω φαίνονται μερικά ενδεικτικά αποτελέσματα που πήραμε με το lowsol.m: >> A=[ ; - ; - ; 4 3 -] A = - - 4 3 - >> b=[4 6 5 ]' b = 4 6 5 >> lowsol(a,b) 4-7 -5 >> lowsol(ones(4),b) A is not invertible! >> lowsol(eye(4),b) 4 6 5 >> lowsol(eye(3),b) b is not a 3x vector! >> >> A(,)= A = - - 4 3 - >> lowsol(a,b) A is not lower triangular! >> Θα λύσουμε επίσης ένα τυχαίο σύστημα, ως εξής: >> b=rand(5,) b =.683.3795.838.58.795 >> A=tril(rand(5)) A = 8

.489.346.547.897.59.5936.934.6979.4966.66.68.3784.8998.34.393 >> lowsol(a,b).5885 -.97.948 -.9-3.4856 9

Πρόβλημα 4 Γράψτε ένα function m-file με όνομα nnns.m, μεταβλητή εισόδου τον φυσικό αριθμό m και μεταβλητή εξόδου το διάνυσμα u που περιέχει τους αριθμούς της μορφής nn ( + )( n+ ) που είναι μικρότεροι ή ίσοι του m. Tο πρόγραμμα πρέπει να επιστρέφει μήνυμα λάθους αν ο m δεν είναι φυσικός αριθμός. 6 μ. Το ζητούμενο m-file είναι: function u=nnns(m) % NNNS % if m~=round(m) m<= disp('m is not a natural number!'), return % if m < 3, u()=; return else, u()=3; k=; while(k+)*(k+)*(k+3)/<=m k=k+; u(k)= k*(k+)*(k+)/; %End of NNNS Ακολουθούν κάποια αποτελέσματα που πήραμε με το nnns.m: >> nnns(.3) m is not a natural number! >> nnns(5) 3 3 6 5 68 5 36 495 Εναλλακτική λύση. Το πρόγραμμα που ακολουθεί φαίνεται πιο κομψό και σύντομο αλλά κάνει επιπλέον και αχρείαστους υπολογισμούς: function u=nnns(m) % NNNS % if m~=round(m) m<= disp('m is not a natural number!') return % if m < 3 u()=; else n=:m; w=n.*(n+).*(n+)/; v=find(w<=m); u=w(:length(v)); %End of NNNS Η εντολή find(w<=m) βρίσκει τους δείκτες που αντιστοιχούν σε μη μηδενικά στοιχεία του λογικού διανύσματος (w<=m). Για περισσότερες πληροφορίες δοκιμάστε την help find.

Πρόβλημα 5 Έστω το πιο κάτω πρόγραμμα: >> x=; >> while x+x>x x=*x pause(.) (α) Τι κάνει το πρόγραμμα; μ. (β) Πόσες γραμμές αποτελεσμάτων παράγονται; μ. (γ) Ποιες είναι οι τελευταίες δύο τιμές του x που τυπώνονται; μ. (α) Το πρόγραμμα διπλασιάζει την τιμή του x μέχρι που ο υπολογιστής δεν μπορεί να διακρίνει αν το x είναι μεγαλύτερο του x. Αυτό συμβαίνει όταν x+x> realmax. (β) (γ) Εφόσον realmax=^4 παράγονται 4 γραμμές αποτελεσμάτων. Οι δύο τελευταίες γραμμές που τυπώνονται είναι οι 8.988465674358e+37 Inf >> Σημειώνουμε ότι ο αριθμός 8.988465674358e+37 είναι (πρακτικά) ο realmax/. Πραγματικά >> realmax/ 8.9884656743579e+37 >> Άρα οι δύο τελευταίες τιμές του x που τυπώνονται είναι οι realmax/ και Inf.

Πρόβλημα 6 (α) Ένας αριθμός μηχανής γράφεται γενικά στη μορφή (. ) σ aa at β Εξηγήστε τι αντιπροσωπεύουν τα σ, t, β e. μ. (β) Τι καλούμε υπερχείλιση (overflow) και τι υπεκχείλιση (underflow). μ (γ) Αν μια δυαδική μηχανή αποθηκεύει μέχρι 5 σημαντικά ψηφία και χρησιμοποιεί στρογγύλευση, πως θα αποθηκεύσει το δυαδικό αριθμό.; μ (δ) Ποιος από τους πιο κάτω αριθμούς δεν είναι NaN στη MATLAB; /, inf-inf, realmax/realmin, *NaN μ (α) Το σ είναι το πρόσημο του αριθμού. Το β είναι η βάση του αριθμητικού συστήματος. Το t είναι το πλήθος των σημαντικών ψηφίων που αποθηκεύει το σύστημα. Το e είναι ο εκθέτης. (β) Υπερχείλιση (overflow) συμβαίνει όταν το αποτέλεσμα μιας πράξης στον υπολογιστή είναι κατ απόλυτη τιμή μεγαλύτερο από τον απόλυτα μέγιστο αριθμό μηχανής: x > xmax Στην περίπτωση αυτή η MATLAB θέτει τον x ίσο με Inf ή Inf.. Υπεχείλιση (underflow) συμβαίνει όταν το αποτέλεσμα μιας πράξης στον υπολογιστή είναι κατ απόλυτη τιμή μικρότερο από τον απόλυτα ελάχιστο αριθμό μηχανής: x < xmin Στην περίπτωση αυτή η MATLAB θέτει τον x ίσο με. Και στις δυο περιπτώσεις χάνεται κάθε πληροφορία για τον αριθμό x. e β (γ) Αν x=. και t=5, τότε με στρογγύλευση fl(x)=.. (δ) Ο realmax/realmin. Πράγματι >> realmax/realmin Inf Στις άλλες περιπτώσεις έχουμε ΝaΝ: >> / Warning: Divide by zero. NaN >> inf/inf NaN >> *NaN NaN

Πρόβλημα 7 (α) Αν >> x=rand().4447336435394.79937374735.654334895.989774483 τι θα μας δώσει η εντολή >> y=numstr(x) μ. (β) Πως θα σχεδιάσετε το πιο κάτω γράφημα στη MATLAB (με κόκκινο χρώμα);.9.8.7.6 y=sin(x).5.4.3...5.5.5 3 3.5 x 3 μ. (α) Θα μας δώσει τον πιο κάτω αλφαριθμητικό πίνακα: y =.4447.7994.6543.98 Πράγματι, αν χρησιμοποιήσουμε την εντολή whos y βλέπουμε ότι: (β) >> whos y Name Size Bytes Class Attributes y x9 76 char >> x=:.:pi; >> fill(x,sin(x),'r') >> xlabel('x'), ylabel('y=sin(x)') 3

Πρόβλημα 8 Ορίστε τη συνάρτηση x y gxy (, ) = xye + + έτσι ώστε το x να μπορεί να είναι διάνυσμα με τους εξής τρόπους: (α) Με function m-file. μ. (β) Με ανώνυμη συνάρτηση. μ. (γ) Με την εντολή inline. μ. (δ) Πως μπορούμε να σχεδιάσουμε το γράφημα της g στο [-,] [-,] με διαφορετικούς τρόπους; μ. (ε) Σχεδιάστε το γράφημα και τις ισοϋψείς της g όπως φαίνεται στο σχήμα. 3 μ. x y exp(+x +y ).8 x y exp(+x +y ) 3 - - -3 y - - x y.6.4. -. -.4 -.6 -.8 - - -.5.5 x (α) function z=g(x,y) % G z=x.*y.*exp(+x.^+y.^); % End of G (β) (γ) >> g=@(x,y) x.*y.*exp(+x.^+y.^) g = @(x,y) x.*y.*exp(+x.^+y.^) >> g=inline('x.*y.*exp(+x.^+y.^)','x','y') g = Inline function: g(x,y) = x.*y.*exp(+x.^+y.^) (δ) ος τρόπος Εντολή surf Με τις εντολές >> [x,y]=meshgrid(-:.:,-:.:); 4

>> surf(x,y,g(x,y)) παίρνουμε το γράφημα: 4 x 4 - -4 - - - - ος τρόπος Εντολή ezsurf Εφόσον έχουμε ορίσει ανώνυμη συνάρτηση ή συνάρτηση inline, με την εντολή >> ezsurf(g, [-,, -, ]) παίρνουμε το γράφημα x y exp(+x +y ) 4 x 4 - -4 y - - - - x (ε) Τα γραφήματα έγιναν στο χωρίο [-,] [-,] με τις εντολές >> subplot(,,), ezsurf(g,[-,,-,]) >> subplot(,,), ezcontourf(g,[-,,-,]) 5