Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος

Σχετικά έγγραφα
Εργαστήρια Αριθμητικής Ανάλυσης Ι. 7 ο Εργαστήριο. Διανύσματα-Πίνακες 2 ο Μέρος

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

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

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

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

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

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

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

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

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

Προγραμματισμός I (Θ)

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

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

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

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες

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

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

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

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Πίνακες >>A = [ 1,6; 7, 11]; Ή τον πίνακα >> B = [2,0,1; 1,7,4; 3,0,1]; Πράξεις πινάκων

Αριθμητική Επίλυση Συνήθων Διαφορίκών Εξισώσεων 3ο Εργαστήριο 27/03/2015 1

Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

1 Πίνακες 1.1 Συνοπτική θεωρία

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

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

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

ΚΕΦΑΛΑΙΑ 3 & 9 (ΠΙΝΑΚΕΣ)

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

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

διανύσματα - Πίνακες - Struct Στατικό διάνυσμα Είσοδος Έξοδος δεδομένων Συναρτήσεις Χειρισμός σφαλμάτων ΤΕΤΑΡΤΗ ΔΙΑΛΕΞΗ

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading

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

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

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι είναι μια συνάρτηση; ΣΥΝΑΡΤΗΣΕΙΣ. Δήλωση συνάρτησης sq. Παράδειγμα συνάρτησης: υπολογισμός τετραγώνου

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Διαδικασιακός Προγραμματισμός

Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

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

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

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΑΛΓΟΡΙΘΜΟΙ

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

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

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

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

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών ΤΗΜΜΥ Α.Π.Θ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. DS Gomoku.

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Λύσεις για τις ασκήσεις του lab5

Τα συγκεντρωτικά ερωτήματα αφορούν στην ομαδοποίηση των δεδομένων και στη. χρήση συναρτήσεων ομαδοποίησης κατά την εκτέλεση ενός ερωτήματος προβολής

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

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

Συναρτήσεις. Υποπρόγραμμα

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες.

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

ΕΞΕΤΑΣΗ ΙΑΝΟΥΑΡΙΟΥ (28/1/2011)

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

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

Προγραμματισμός ΙI (Θ)

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

Ηλεκτρονικοί Υπολογιστές

Εφαρμοσμένα Μαθηματικά ΙΙ

Εισαγωγή στην Γλώσσα Lisp

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

ΜΑΗΣ ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ

Βασικές έννοιες προγραμματισμού

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

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

Κεφάλαιο 11: Οι πίνακες ως δομή δεδομένων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

Μαθηματικά προσανατολισμού Β Λυκείου

ΗΥ-100: Εισαγωγή στην Επιστήμη Υπολογιστών 3η σειρά ασκήσεων

ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1. Τελεστές και πίνακες. 1. Τελεστές και πίνακες Γενικά. Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο.

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

max & min Μεθοδολογία - 1 Τα βήματα που συνήθως ακολουθούμε στις τεχνικές εύρεσης max & min είναι τα εξής:

6 η ΕΝΟΤΗΤΑ Δομές επανάληψης

Λίστες στο Scratch 2.0.

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - 02/07/08) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ

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

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

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

Transcript:

Εργαστήρια Αριθμητικής Ανάλυσης Ι 4 ο Εργαστήριο Διανύσματα-Πίνακες 1 ο Μέρος 2017

Εισαγωγή Όπως έχουμε προαναφέρει σε προηγούμενα εργαστήρια. Ο βασικός τύπος δεδομένων στο Matlab είναι οι πίνακες. Ένα βαθμωτό αναπαρίσταται σαν ένας 1x1 πίνακας. Τα διανύσματα είναι μονοδιάστατοι πίνακες. Τα στοιχεία ενός πίνακα μπορούν να είναι αριθμοί, χαρακτήρες, συμβολοσειρές άλλοι πίνακες και δομές, όμως τα στοιχεία κάθε πίνακα πρέπει να είναι του ιδίου τύπου. Υπάρχει βέβαια μια ειδική κατηγορία που δεν είναι απαραίτητη η ομοιομορφία αυτή, αλλά δεν θα ασχοληθούμε με αυτήν στο εργαστήριο του μαθήματος. Οι πίνακες του Matlab έχουν την δυνατότητα να προσαρμόζουν τις διαστάσεις τους, από μόνοι τους και να υπολογίζουν το απαραίτητο χώρο. Έτσι αν προσθέσεις ένα έξτρα στοιχείο, αυτόματα το μέγεθος αλλάζει κατάλληλα, έτσι ώστε να συμπεριλαμβάνει χωρίς πρόβλημα το καινούριο στοιχείο. Αυτό είναι ένα διαφορετικό στοιχείο σε σχέση με πολλές γλώσσες προγραμματισμού, το οποίο μειώνει το προγραμματιστικό φόρτο. Εισαγωγή Πινάκων Από την στιγμή που ο πίνακας είναι βασικό στοιχείο στο Matlab, είναι αυτονόητο ότι θα έχει προβλεφθεί η ύπαρξη πολλών διαφορετικών τρόπων για να εισάγουμε κάποιον πίνακα (είτε μονοδιάστατο είτε πολυδιάστατο). Για τους σκοπούς του μαθήματος θα περιοριστούμε μόνο στην απλή εισαγωγή και σε κάποιες έτοιμες συναρτήσεις που παράγουν συγκεκριμένους τύπους πινάκων. 1. Για να δημιουργήσω τον πίνακα ΑΑ = 1 2 αρκεί να πληκτρολογήσω στο 3 4 command line την παρακάτω έκφραση A = [1 2;3 4] ή A = [1,2;3,4] Όπως είναι εύκολο να αντιληφθούμε, το ; χρησιμοποιείται όχι όπως έχουμε συνηθίσει ως τώρα, αλλά υποδηλώνει την αλλαγή γραμμής σε έναν πίνακα, ενώ τα στοιχεία της ίδιας γραμμής μπορώ να τα διαχωρίζω είτε αφήνοντας κενό αναμεσά τους είτε με την χρήση του,. Έτσι αν θέλω για παράδειγμα να εισάγω το διάνυσμα vv = [4 1 7] αρκεί να πληκτρολογήσω : v = [4 1 7] 5 Ενώ αν θέλω να εισάγω το διάνυσμα uu = 3 θα πρέπει να το γράψω : 8 u = [5;3;8]

2. Οι έτοιμες συναρτήσεις που έχει το Matlab μπορούν να μας φανούν πολύ χρήσιμες όταν δουλεύουμε με πίνακες, αφού μπορούμε να δημιουργήσουμε κάποιες συγκεκριμένες μορφές πινάκων πολύ εύκολα. Παράδειγμα Αν θέλουμε να δημιουργήσουμε τον μηδενικό πίνακα με 3 γραμμές και 2 στήλες αρκεί να χρησιμοποιήσουμε την συνάρτηση zeros A= zeros(3,2) Ακολουθεί μια λίστα από έτοιμες συναρτήσεις που έχουμε για την δημιουργία πινάκων zeros(m,n) Δημιουργεί έναν mxn πίνακα με όλα τα στοιχεία να είναι 0 ones(m,n) Δημιουργεί έναν mxn πίνακα με όλα τα στοιχεία να είναι 1 eye(m,n) Φτιάχνει τον ταυτοτικό πίνακα διάστασης min(m,n) και στις υπόλοιπες θέσεις μπαίνουν μηδενικα rand(m,n) mxn πίνακας όπου κάθε στοιχείο είναι τυχαία επιλεγμένο από το [0,1] triu(a) Άνω τριγωνικός πίνακας που προκύπτει από τον πίνακα Α tril(a) Κάτω τριγωνικός πίνακας που προκύπτει από τον πίνακα Α diag(a) Επιστρέφει την διαγώνιο του Α σε μορφή διανύσματος diag(v) Φτιάχνει διαγώνιο πίνακα με τα στοιχεία του v στην κύρια διαγώνιο Στις 4 πρώτες αν βάλουμε ένα όρισμα αντί για 2, τότε φτιάνει τον αντίστοιχο τετραγωνικό πίνακα Διαχείριση Στοιχείων Πίνακα o Ανάκτηση στοιχείων πίνακα Αν θέλουμε να δούμε την τιμή που έχει ένα συγκεκριμένο στοιχείο ενός διανύσματος ή ενός πίνακα αρκεί να γράψουμε το όνομα της μεταβλητής μας και μέσα σε παρένθεση την θέση του στοιχείου που μας ενδιαφέρει. Στο Matlab σε αντίθεση με τις περισσότερες γλώσσες προγραμματισμού που ξεκινάνε την αρίθμηση των θέσεων από την θέση 0. Η αρίθμηση γίνεται όπως γνωρίζουμε από τα μαθηματικά και ξεκινάει από την θέση 1. Παράδειγμα 1: Έστω ότι έχουμε εισάγει τον παρακάτω πίνακα Α= [1 2 3 4;5 6 7 8]; Και θέλουμε να τυπώσουμε το στοιχείο που βρίσκεται στην θέση (2,3) αρκεί να γράψουμε την ακόλουθη εντολή στο command line disp(a(2,3))

Παράδειγμα 2: Αντίστοιχα αν έχουμε το διάνυσμα v = [5 9 2 7] και θέλουμε να φτιάξουμε να υπολογίσουμε το άθροισμα των στοιχείων του, θα χρειαστεί να τα πάρουμε ένα ένα και να τα προσθέσουμε. Αυτό θα γινόταν με το παρακάτω πρόγραμμα v = [5 9 2 7]; s = 0; for i = 1:4 s = s + v(i); disp(s) o Αλλαγή τιμή στοιχείου πίνακα ή διανύσματος Αν θέλουμε είτε να δώσουμε τιμές σε ένα διάνυσμα στοιχείο στοιχείο είτε να αλλάξουμε συγκεκριμένη τιμή σε μια θέση ενός πίνακα, μπορούμε να το κάνουμε χωρίς να χρειάζεται να δώσουμε όλες τις τιμές από την αρχή. Αρκεί να γράψουμε τη μεταβλητή και μέσα σε παρένθεση την συντεταγμένη του στοιχείου που θέλουμε. Ύστερα = και μετά την τιμή που θέλουμε να πάρει. Παράδειγμα 1: Να γραφεί πρόγραμμα που θα ζητάει από τον χρήστη να δώσει το επιθυμητό μήκος ενός διανύσματος και στην συνέχεια να εισάγει κάθε στοιχείο του n = input('give vector s length '); v = zeros(1,n); for i = 1 : n v(i)= input('give vector s Element '); disp(v) Παράδειγμα 2: Να γράψετε πρόγραμμα που θα φτιάχνει τυχαίο πίνακα 3χ3 με την χρήση της rand και στη συνέχεια θα αλλάξετε τα στοιχεία της κύριας διαγωνίου με το τετράγωνο της τιμής που έχει ήδη A = rand(3); for i = 1:3 A(i,i) = A(i,i)^; disp(a) o Δημιουργία κενού πίνακα Το Matlab μας δίνει την δυνατότητα να αρχικοποιήσουμε μια μεταβλητή χωρίς να έχει καμία τιμή. Να είναι ένας κενός πίνακας διαστάσεων 0x0. Αυτό γίνεται πολύ εύκολα όπως μπορούμε να δούμε στο παράδειγμα που ακολουθεί v = [ ]

o Εισαγωγή ή διαγραφή επιπλέων στοιχείων σε διάνυσμα Με το πως μπορώ να εισάγω έξτρα γραμμές ή στήλες σε έναν πίνακα, θα ασχοληθούμε σε επόμενο εργαστήριο. Αλλά σε ένα διάνυσμα είναι αρκετά απλό όπως και το να διαγράψω στοιχεία που δεν με ενδιαφέρουν. Πριν από αυτό όμως θα αναφερθούμε σε μια πολύ βασική και χρήσιμη εντολή όταν δουλεύουμε με διανύσματα (μονοδιάστατοι πίνακες). Και αυτή δεν είναι άλλη από την εντολή length. H length δέχεται σαν όρισμα το διάνυσμα και μας επιστρέφει το μήκος του. s = 0; v = [1 5 2 7 3 8]; n = length(v); for i = 1:n s = s + v(i); disp(s) Παράδειγμα 1: Να γραφεί συνάρτηση που να υλοποιεί την μέθοδο της διχοτόμησης και να επιστρέφει όλες τις τιμές που υπολογίζει η μέθοδο μέχρι να φτάσει στην ρίζα. function x = dixo(dias, tol, f,nmax) iters = 0; xmed = dias(1) + (dias(2)-dias(1))/2; x = []; while (abs(dias(1)-dias(2))>tol )&&(f(xmed)~=0)&& iters <= Nmax xmed = dias(1) + (dias(2)-dias(1))/2; x = [x xmed]; if sign(f(dias(1))) ~= sign(f(xmed)) dias(2) = xmed; else dias(1) = xmed; iters = iters+1; Παράδειγμα 2: Να γραφεί πρόγραμμα που θα ζητάει από τον χρήστη να εισάγει διάνυσμα και θα επιστρέφει διάνυσμα με μόνο τα άρτια στοιχεία του. ΠΡΟΣΟΧΗ: Κάθε φορά που διαγράφουμε ένα στοιχείο από ένα διάνυσμα, το μήκος του μειώνεται κατά 1. Για να κάνουμε τον έλεγχο αν είναι άρτιος ένας αριθμός θα χρησιμοποιήσουμε την εντολή rem(a,b) που επιστρέφει το ακέραιο υπόλοιπο της διαίρεσης a/b.

v = input('give vector:'); n = length(v); i = 1; while i <= n if rem(v(i),2) ~= 0 v(i)=[]; n = n - 1; else i = i + 1; disp(v)