Introduzione al MATLAB c Parte 1 Variabili ed array

Documenti analoghi
Introduzione al MATLAB c Parte 1

Introduzione a Matlab

CORSO DI LABORATORIO DI INFORMATICA

Introduzione al MATLAB c

Scilab. Introduzione a Scilab - Vettori. Corso di Informatica CdL: Chimica. Claudia d'amato.

Variabile, costante ed espressione

Caratteristiche di un linguaggio ad alto livello

Introduzione a Matlab (e al Calcolo Numerico)

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

8 Introduzione MATLAB

Fondamenti di Informatica

Introduzione. MATLAB è l acronimo di MATrix LABoratory

Introduzione al MATLAB c Parte 3 Script e function

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

Laboratorio 1 Introduzione a Matlab R - Octave

MATLAB Elementi di grafica Costrutti di programmazione

I numeri reali e la loro rappresentazione

3. Matrici e algebra lineare in MATLAB

Informatica Applicata al Suono Tutorial Matlab

Somma di numeri binari

MATLAB (1) Introduzione e Operazioni con array

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

Introduzione all ambiente Matlab

Numeri di macchina. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Prendiamo in considerazione la matrice tridiagonale

Introduzione al linguaggio Matlab - 1. A) Command Window: é la nestra in cui si eseguono in comandi.

Problema numerico. Relazione funzionale chiara e non ambigua tra dati iniziali e la soluzione. Dati iniziali e soluzione sono due vettori finiti

Strutture dati e loro organizzazione. Gabriella Trucco

Calcolo Numerico A.A Esercitazione n

Vettori e matrici. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

Aritmetica in Floating Point

Introduzione a MATLAB

Introduzione agli ambienti

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)

Foglio Elettronico Lezione 1

Vettori e Matrici. Vettori. Vettori e matrici: dati. Vettori di caratteri Polinomi. Dimensione (Size) numero di righe e di colonne della matrice

Note per il corso di Geometria e algebra lineare Corso di laurea in Ing. Elettronica e delle Telecomunicazioni

Introduzione al MATLAB c Parte 2 Funzioni

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

ESERCITAZIONE MATLAB

Corso di Geometria BIAR, BSIR Esercizi 2: soluzioni

Strategie di programmazione

Sistemi lineari - Parte Seconda - Esercizi

Scilab. Matrici Bidimensionali. Corso di Informatica CdL: Chimica. Claudia d'amato.

Introduzione a Matlab. Renato Mainetti

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Tipi di dato primitivi

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Costanti e Variabili

MATRICI E SISTEMI LINEARI

Struttura dei programmi C

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

INTRODUZIONE ALLA PROGRAMMAZIONE

Programmazione Procedurale in Linguaggio C++

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 2 - Introduzione a MATLAB

Informatica Avanzata per la Finanza

Autovalori ed autovettori di una matrice

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Arrays. Vector array. Matrix array. Row vector. 2D matrix. 1 2 Column vector

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Introduzione al Calcolo Scientifico

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili

Richiami di algebra delle matrici a valori reali

Introduzione al Linguaggio C

Algoritmi per operazioni con le matrici

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Corso di Visione Artificiale. Matlab per Visione. Samuel Rota Bulò

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

a + 2b + c 3d = 0, a + c d = 0 c d

Esercitazione 4: Vettori e Matrici

A = Quindi > b=a(:) b =

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo Luglio 2017

Sistemi II. Sistemi II. Elisabetta Colombo

La codifica binaria. Informatica B. Daniele Loiacono

Esercizi svolti. delle matrici

Corso di Matematica e Statistica 3 Algebra delle matrici. Una tabella rettangolare: la matrice. Una tabella rettangolare: la matrice

1 Combinazioni lineari.

L ambiente MatLab per le applicazioni I. Introduzione Matlab Carla Guerrini 1

Rapida Introduzione all uso del Matlab Ottobre 2002

# Introduzione a MATLAB #

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento

Tipi interi lo standard (1)

Programmazione con il linguaggio LibreOffice Basic

Lezione 6 Introduzione al C++ Mauro Piccolo

Laboratorio con DERIVE

Programmazione Procedurale in Linguaggio C++

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2015

BOZZA Introduzione a MATLAB

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione a Matlab

Operatori Relazionali in MATLAB. Logica e relazioni

Capitolo 1. Esercizi a.a Esercizi. Esercizio 1.1 Dimostrare che il metodo iterativo

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Esercitazione 5: Sistemi a risoluzione immediata.

Corso di Matematica per la Chimica

Transcript:

Introduzione al MATLAB c Parte 1 Variabili ed array Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it

Indice 1 Cos è il MATLAB Componenti principali di MATLAB Avvio e Strumenti del Desktop 2 Variabili Assegnazione di variabili scalari Formati di rappresentazione dei numeri Operazioni con variabili scalari 3 Array Vettori e matrici Operazioni con array Trasposizione Operazioni punto

MATLAB = MATrix LABoratory MATLAB è un linguaggio ad alto livello unito a un ambiente interattivo che consente di risolvere problemi di calcolo scientifico. Calcolo scientifico: si occupa dello sviluppo, della implementazione e dell analisi degli algoritmi numerici utili per l impiego di modelli matematici. MATLAB originariamente forniva un accesso facilitato alle routine per il calcolo con le matrici sviluppate nei pacchetti LINPACK e EISPACK, scritti in FORTRAN. Al giorno d oggi, include le librerie LAPACK e BLAS, che servono nel calcolo matriciale. page 2

Cinque parti principali Strumenti del Desktop e ambiente di sviluppo Libreria delle funzioni matematiche Linguaggio MATLAB Grafica Interfacce esterne Funzionalità di Matlab Calcolo numerico Analisi e visualizzazione dei dati Programmazione e sviluppo di algoritmi Sviluppo e distribuzione di applicazioni MATLAB è un sistema interattivo il cui elemento di base è l array che non richiede dimensionamento. page 3

TOOLBOX TOOLBOX = Librerie per applicazioni specifiche Calcolo Parallelo Matematica, Statistica e Ottimizzazione Analisi di dati, e visualizzaione. Grafica scientifica ed ingegneristica. Analisi e Progettazione di Sistemi di Controllo Elaborazione di Segnali e Comunicazioni Image Processing e Computer Vision Test & Misurazioni Computational Finance Computational Biology Per maggiori dettagli: www.mathworks.com page 4

Aree di applicazione Calcolo tecnico Sistemi di controllo Elaborazione segnali digitali Sistemi di comunicazione Elaborazione immagini e video Meccatronica Misura e collaudo Computational Biology Computational Finance page 5

Avviare Matlab Selezionare l icona di MATLAB nel desktop. Si apre il Desktop diviso in cinque parti Command Window Current Folder Workspace Command History Details page 6

Assegnazione di variabili scalari >> a=1.54 a nome della variabile (max 31 caratteri alfanumerici, il primo dei quali non deve essere un numero) 1.54 valore numerico assegnato alla variabile. Nomi delle variabili I nomi delle variabili non devono contenere spazi e caratteri speciali come: simboli di operazione: -,=,+,*; apostrofi punteggiatura slash e backslash Il comando >> a=1.54; non produce risposta page 7

Variabile di default >> 1.67 produce >> ans = 1.6700 ans è il nome della variabile di default. page 8

Per vedere il contenuto di una variabile Visualizzo il contenuto della variabile a >> a produce a = 1.5400 Visualizzo il contenuto della variabile ans >> ans produce ans = 1.6700 page 9

Formato di rappresentazione dei numeri >> c=0.456723 c = 0.4567 >> format short e >> c c = 4.5672e-01 >> format long e >> c c = 4.567230000000000e-01 >> format long >> c c = 0.45672300000000 Il numero è stato rappresentato con 5 cifre Forma esponenziale con 5 cifre per la mantissa Forma esponenziale con 16 cifre per la mantissa Il numero è rappresentato con 15 cifre page 10

Formati disponibili Variabile FORMAT FORMAT SHORT FORMAT LONG FORMAT SHORT E FORMAT LONG E FORMAT SHORT G FORMAT LONG G Significato Default. Virgola fissa scalata con 5 cifre. Virgola fissa scalata con 15 cifre. Forma esponenziale con 5 cifre di mantissa. Forma esponenziale con 15 cifre di mantissa. Rappresentazione migliore con 5 cifre. Rappresentazione migliore con 15 cifre. page 11

Variabili predefinite Variabile Significato ans valore ultima operazione eseguita e non assegnata ad una variabile i,j unità immaginaria, 1 pi approssimazione di π eps precisione macchina realmax massimo numero macchina positivo rappresentabile realmin minimo numero macchina positivo rappresentabile Inf, ossia un numero maggiore di realmax NaN Not a Number (0/0, Inf/Inf,...) computer tipo di computer version versione di MATLAB page 12

Il comando clear clear Per cancellare il contenuto della variabile a: >> clear a Per cancellare il contenuto di tutte le variabili: >> clear Il contenuto delle variabili predefinite può essere variato con una semplice operazione di assegnazione: >> pi=18 pi = 18 Per riassegnare alla variabile pi il valore π: >> clear pi >> pi ans = 3.1416 page 13

Area di lavoro WORKSPACE Le variabili vengono memorizzate nell area di lavoro Workspace. La finestra Workspace contiene la lista della variabili e le seguenti informazioni: Name: nome della varabile. Value: valore assegnato alla varabile. Size: dimensione come array (righe per colonne). Bytes: occupazione di memoria in termini di bytes. Class: il tipo di variabile char, double, sparse, cell, struct, uint8. Di default, Matlab lavora con variabili in doppia precisione. Ogni numero memorizzato in doppia precisione occupa 8 Bytes. Le variabili scalari sono viste come array di dimensione 1x1 (una riga e una colonna). Lettere maiuscole e minuscole sono considerate diverse sia nei comandi che nei nomi delle variabili. page 14

Operazioni aritmetiche ^ potenza * prodotto / divisione + somma - differenza Es: per calcolare x = 3 + 53 2/3 4(5 + 2 4 ) >> x=(3+5ˆ3-2/3)/(4*(5+2ˆ4)) Sono osservate le precedenze classiche dell artimetica Per alterare le precedenze si utilizzano esclusivamente le parentesi tonde page 15

Per spezzare le righe Il comando >> b=1+1/2+5/3+1/4+23/6+... 2/9+1/10; permette di spezzare un istruzione troppo lunga page 16

Array Il linguaggio MATLAB lavora con un solo tipo di oggetti: l array di MATLAB. Tutte le variabili di Matlab, inclusi scalari, vettori, matrici, stringhe, celle (cell arrays), strutture e oggetti sono memorizzati in Matlab come array. Ogni array contiene le seguenti informazioni: Il tipo La dimensione I dati associati all array Se la variabile è reale o complessa, nel caso di array numerico Gli indici e gli elementi diversi da zero, nel caso di array sparse Il numero di campi e il nome dei campi, nel caso di una struttura o oggetto. page 17

Problema Trovare il polinomio P(x) di grado 5 che soddisfa le seguenti condizioni: Il polinomio si annulla per x = 2 e x = 4 e assume in questi punti il valore minimo; Il polinomio ha un massimo relativo per x = 1 dove assume il valore 10. Il polinomio ha la seguente forma P(x) = a 1 x 5 + a 2 x 4 + a 3 x 3 + a 4 x 2 + a 5 x + a 6. Le incognite del nostro problema sono i coefficienti che possono essere considerati come le componenti di un vettore. Imponiamo le condizioni: P( 2) = P(4) = 0; P(1) = 10; P ( 2) = P (1) = P (4) = 0. Dobbiamo calcolare anche la derivata: P (x) = 5a 1 x 4 + 4a 2 x 3 + 3a 3 x 2 + 2a 4 x + a 5. page 18

La soluzione si trova risolvendo il seguente sistema di equazioni lineari 32a 1 + 16a 2 8a 3 + 4a 4 2a 5 + a 6 = 0 1024a 1 + 256a 2 + 64a 3 + 16a 4 + 4a 5 + a 6 = 0 a 1 + a 2 + a 3 + a 4 + a 5 + a 6 = 10 80a 1 32a 2 + 12a 3 4a 4 + a 5 = 0 5a 1 + 4a 2 + 3a 3 + 2a 4 + a 5 = 0 1280a 1 + 256a 2 + 48a 3 + 8a 4 + a 5 = 0. Oppure scritto in forma matriciale 32 161 8 4 2 1 1024 256 64 16 4 1 1 1 1 1 1 1 80 32 12 4 1 0 5 4 3 2 1 0 1280 256 48 8 1 0 a 1 a 2 a 3 a 4 a 5 a 6 = 0 0 10 0 0 0 page 19

Assegnazione di vettori e matrici L assegnazione di matrici in MATLAB può essere fatta in diversi modi: introducendo una lista di elementi; caricando le matrici da file di dati esterni; generando le matrici usando una funzione interna matlab; creando le matrici mediante un proprio programma. page 20

Vettori riga e colonna Vettore riga Array 1x4, 1 riga e 4 colonne contenente i numeri da 1 a 4 >> a=[1 2 3 4]; >> a=[1,2,3,4]; >> a=(1:4); >> a a = 1 2 3 4 Vettore colonna Array 4x1, 4 righe e 1 colonna >> b=[1;2;3;4] b = 1 2 3 4 page 21

Assegnazione di array - matrici >> c=[5 3 4; 2 4-2] c = 5 3 4 2 4-2 Genera un array 2x3, matrice 2 righe e 3 colonne >> d(3,4)=3 d = 0 0 0 0 0 0 0 0 0 0 0 3 Genera una matrice 3x4, che ha tutti elementi nulli tranne quello di posto 3,4 Lo spazio o la virgola separano elementi sulla stessa riga. Il punto e virgola separa le righe. page 22

Dimensioni di un array Il comando size fornisce le dimensioni di una matrice. >> size(c) ans = 2 3 produce il vettore riga di due elementi contenenti il numero di righe e di colonne di c. Il comando length fornisce la lunghezza di un vettore. >> length(a) ans = 4 produce un numero pari alla lunghezza del vettore a. length(c)=max(size(c)) page 23

Come accedere agli elementi di array >> a(2) ans = 2 >> c(2,1) ans = 2 Per accedere ad un elemento di un vettore Per accedere ad un elemento di una matrice page 24

Come modificare un elemento di un array >> b(3)=5 b = 1 2 5 4 >> c(1,3)=18 c = 5 3 18 2 4-2 Per modificare un elemento di un vettore. Se non si utilizza il ; viene visualizzato l array completo Per modificare un elemento di una matrice. page 25

Soluzione di un sistema lineare Sia A matrice quadrata n n, b vettore colonna n 1, la soluzione del sistema lineare Ax = b, è il vettore colonna x R n. In Matlab la soluzione del sistema lineare si ottiene con il comando Da usare con attenzione x=a\b. L operatore \ usa algoritmi differenti per trattare diversi tipi di matrici: Permutazioni di matrici triangolari. Matrici simmetriche e definite positive. Matrici quadrate, non singolari e piene. Matrici quadrate, non singolari e sparse. Sistemi rettangolari sovradeterminati. Sistemi rettangolari sottodeterminati. page 26

Operazioni standard dell algebra lineare + somma di vettori o matrici (elemento per elemento) - differenza di vettori o matrici (elemento per elemento) * prodotto tra vettori e/o matrici (righe per colonne) Sono le operazioni dell algebra lineare; quindi: per somma e differenza: gli operandi devono avere le stesse dimensioni per il prodotto: il numero delle colonne della prima matrice deve essere uguale al numero delle colonne della seconda matrice. page 27

Operazioni su array >> a1+b entrambi vettori colonna 4x1 ans = 2 4 8 8 >> a-b??? Error using ==> - Matrix dimensions must agree. a =vettore riga 1x4 b =vettore colonna 4x1 page 28

>> a*b ans = 36 (1x4)(4x1) prodotto scalare >> c*d ans = 358-14 (2x3)(3x1) prodotto matrice vettore >> d*c??? Error using ==> * Inner matrix dimensions must agree. (3x1)(2x3) prodotto non possibile page 29

Trasposizione di vettore >> a ans = 1 2 3 4 >> a1=a Il vettore trasposto di a viene memorizzato nella variabile ans Il vettore trasposto di a viene memorizzato nella variabile a1 page 30

... trasposizione di matrici: >> c1=c c1 = 5 2 3 4 4-2 page 31

Operazioni punto Le operazioni punto agiscono su array che abbiano le stesse dimensioni:.* prodotto elemento per elemento./ divisione elemento per elemento.^ potenza elemento per elemento >> a1b=a1.*b a1b = 1 4 15 16 (a1b) i =(a1) i *b i 1 2 con a1 = 3 4 e b = 1 2 5 4 page 32