Introduzione a Matlab

Documenti analoghi
Matlab: Variabili e Array. Informatica B

Matlab: introduzione

Strumenti per il calcolo numerico Matlab/Octave

Strumenti per il calcolo numerico Matlab/Octave

Introduzione a Matlab

Strumenti per il calcolo numerico Matlab/Octave. Informatica B Prof. A. Morzenti

Strumenti per il calcolo numerico Matlab/Octave. Informatica B Prof. A. Morzenti

Diagrammi 2D e 3D Funzioni di ordine superiore

Diagrammi 2D e 3D Funzioni di ordine superiore

MATLAB - Programmazione - 2. Antonino Polimeno

Lab 5 Info B. Marco D. Santambrogio Riccardo Cattaneo Ver. aggiornata al 9 Agosto 2013

Introduzione. Corso di Metodi Numerici. 06 Marzo 2019

Introduzione a Matlab

8 Introduzione MATLAB

Aritmetica in Floating Point

MATLAB c Utilizzo di Matlab. Operazioni fondamentali. Elementi di grafica.

Diagrammi 2D e 3D Funzioni di ordine superiore

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

Elementi di Calcolo Scientifico per l Ingegneria A.A


Calcolo Numerico I - A.A Laboratorio 3

8 Introduzione MATLAB

Introduzione al MATLAB c Parte 2

Algoritmi stabili e instabili

Introduzione al MATLAB c Parte 1 Variabili ed array

Introduzione ad Octave

UTILIZZO DI MATLAB OPERAZIONI FONDAMENTALI

Introduzione a Matlab

Introduzione al MATLAB c Parte 1 Variabili ed array

Strutture di controllo condizionali in Matlab

Caratteristiche di un linguaggio ad alto livello

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

Introduzione a Matlab

FONDAMENTI DI INFORMATICA

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

Cominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi

Matlab: Script e Funzioni

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Variabile, costante ed espressione

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Tutor: prof. Venturino Taggi

Le basi del linguaggio Java

INTRODUZIONE A MATLAB

La programmazione nel linguaggio JavaScript. Il programma

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Laboratorio di Matlab

Elementi di Base. Introduzione a Python.

Esercitazione 00 Introduzione a Matlab

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Informatica Applicata al Suono Tutorial Matlab

Introduzione a MATLAB

Università degli Studi di Ferrara

Dati due punti sul piano calcolare la loro distanza

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione

Introduzione a Matlab

Laboratorio di Calcolo Numerico Laboratorio 8: Vettori e Matrici

Esercitazione 1: Introduzione a MATLAB

MATLAB Elementi di grafica Costrutti di programmazione

Introduzione a Matlab

Introduzione a MATLAB

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA. INFORMATICA B Ingegneria Elettrica. Script in Matlab

Introduzione al MATLAB c Parte 2 Funzioni

LABORATORIO /03/2005

Lezione 6 Introduzione al C++ Mauro Piccolo

Programmazione Matlab

Uso avanzato di MATLAB

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

8 Introduzione MATLAB

Programmare. Condizioni logiche. Condizioni Logiche Costrutti Decisionali Costrutti di Ciclo

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

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

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

Introduzione a Matlab (e al Calcolo Numerico)

Foglio di esercizi n.1

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Costanti e Variabili

Concetti base programmazione. Antonio Gallo

Introduzione alla programmazione in linguaggio C

Esercitazione di Reti degli elaboratori

Introduzione a Matlab

Introduzione a MATLAB

Università degli Studi di Ferrara

Sunto della scorsa lezione Il linguaggio C. Un Programma con Errori. Il preprocessore. Linguaggi di Programmazione I.

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

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

Introduzione. MATLAB è l acronimo di MATrix LABoratory

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21

I Fondamenti del Linguaggio

Elementi di Informatica A. A. 2016/2017

Transcript:

Introduzione a Matlab Informatica B

Che cos è Matlab? q Matlab è uno strumento per il calcolo numerico q Facilita lo sviluppo di programmi che eseguono complesse elaborazioni di calcolo numerico grazie a: un ambiente di sviluppo integrato ed uno specifico linguaggio di programmazione una ricca libreria di funzioni matematiche q È uno strumento commerciale ma ne esiste una alternativa gratuita di nome Octave molto simile a Matlab in molti aspetti http://www.gnu.org/software/octave q Testo Introduzione alla programmazione in MATLAB. Campi, Di Nitto, Loiacono, Morzenti, Spoletini. Esculapio Editrice.

Caratteristiche del linguaggio di Matlab q È un linguaggio di alto livello (come il C o il Java) q È orientato alle elaborazione numeriche q È un linguaggio interpretato Non richiede la fase di traduzione in codice macchina Il sorgente viene analizzato da un programma interprete che esegue direttamente tutte i comandi richiesti q Non è un linguaggio tipizzato Non occorre dichiarare le variabili Non è necessario specificarne il tipo Alla stessa variabile possono essere assegnati valori di tipo diverso durante l esecuzione del programma

Array e variabili q L unità fondamentale di dati in MATLAB è l array: ogni variabile è un array (le variabili scalari sono array con un solo elemento). q I nomi di variabili seguono regole simili a quelle del C q Il C è un linguaggio a tipizzazione forte Le variabili vanno dichiarate prima dell uso q Il MATLAB è un linguaggio a tipizzazione debole Le variabili vengono create assegnando ad esse dei valori Il loro tipo è determinato dal tipo dei valori assegnati

Creazione ed inizializzazione di una variabile q Le variabili sono create al momento dell inizializzazione q Modi di inizializzazione Assegnamento Lettura dati da tastiera Lettura da file q Accesso ad un singolo elemento di un array: nome(pos) dove pos è la posizione dell elemento (>=1)

Assegnamento q Scalari a = 3 b = 55 q Array q Matrice nome = valore nome = [v 1 v 2 v n ] a=[3 4 2 3] nome = [v 11 v 12 v 1n ; ;v m1 v m2 v mn ] a = [3 4 2; 4 5 6] 3 4 2 4 5 6

Assegnamento (2) esempi q Esempi a = [0 7+1]; b = [a(2) 5 a]; contenuto di a q Risultato a = [0 8] b = [8 5 0 8] q Non tutti gli elementi devono essere specificati alla creazione c(2, 3) = 5; secondo elemento di a 0 0 0 0 0 5

Assegnamento (3) esempi q L array può essere esteso successivamente d = [2 5]; d(4)=2; d = [2 5 0 2] q Operatore di trasposizione g = d ; 2 5 0 2 q Come evitare di enumerare esplicitamente tutti i valori, uso dell operatore : x = 1:2:10; x = [1 3 5 7 9] l = 1:3; m = [l l ] 1 1 2 2 3 3

Assegnamento (4) funzioni predefinite Funzione zeros (n) zeros (m,n) zeros (size(arr)) ones(n) ones(m,n) ones(size(arr)) eye(n) eye(m,n) length(arr) size(arr) Significato Genera una matrice nxn di zeri Genera una matrice mxn di zeri Genera una matrice di zeri della stessa dimensione di arr Genera una matrice nxn di uno Genera una matrice mxn di uno Genera una matrice di uno della stessa dimensione di arr Genera la matrice identità nxn Genera la matrice identità mxn Ritorna la dimensione più lunga del vettore Ritorna il numero di righe e colonne dell array

Assegnamento (5) funzioni predefinite q Esempi a = zeros(2); b = zeros(2,3); c = [1 2; 3 4]; d = zeros(size(c)); 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Tipo double q Una variabile di tipo double contiene uno scalare o un array di numeri in doppia precisione (64 bit) q Questi numeri possono essere Reali, es var1 = -10.7; Immaginari, es var2 = 4i; var3 = 4j; Complessi, es var3 = 10.3 + 10i; q Es: x = [-1.3 3.1+5.3j 0] q Le parti reali e immaginarie possono essere positive e negative nell intervallo di valori [10-308, 10 308 ], con accuratezza di 15-16 cifre decimali

Tipo char q Una variabile di tipo char contiene uno scalare o un array di valori a 16 bit, ciascuno dei quali rappresenta un carattere Es: commento = questa è una stringa ; Nome della variabile Array di 1x21 caratteri

Assegnamento (5) uso di uno scalare per assegnare valori ad un array q Esempio m(1:4, 1:3) = 3 3 3 3 3 3 3 3 3 3 3 3 3 q Regola: il modo con cui uno scalare viene assegnato ad un array dipende dalla forma dell array che viene specificata a sinistra dell assegnamento q Esempio 2 m(1:2, 1:2) = 4 q la regola si applica anche ai sottoarray 4 4 3 4 4 3 3 3 3 3 3 3

Variabili predefinite q Matlab definisce un insieme di variabili predefinite (e.g., pi) q Queste variabili corrispondono in qualche caso a costanti Attenzione! Il valore di queste variabili può essere modificato, per esempio circ1=2*pi*10; pi = 3; circ2=2*pi*10; Il valore di circ2 non sarà più la circonferenza di un cerchio q E` fortemente sconsigliato modificare il valore di una variabile predefinita

Variabili predefinite più comuni Variabile pi Scopo contiene 15 cifre significative di π i, j contiene il valore i ( ) inf (o Inf) nan clock date eps ans 1 rappresentazione dell infinito (ottenuto di solito come risultato di una divisione per 0) Not-A-Number è il risultato di una operazione matematica non definita, es 0/0 contiene la data e l orario corrente. E` un vettore di sei elementi (anno, mese, giorno, ora, minuti, secondi) contiene la data corrente sotto forma di stringa epsilon: la più piccola differenza rappresentabile tra due numeri Variabile speciale usata per immagazzinare risultati non assegnati ad altre variabili

Operazioni con scalari e array q Operazioni per gli scalari: + - * / ^ q Operazioni per gli array Array operation: viene eseguita sugli elementi degli array coinvolti (devono avere lo stesso numero di righe e colonne) 1 2 2 3 3 5 a= b= a+b = a.*b= 3 4 5 7 8 11 2 6 15 28 Matrix operation: segue le regole dell algebra lineare a= 1 2 b= 2 3 a*b = 3 4 5 7 12 17 ik kj 26 37 k a * b

Operazioni tipiche per gli array Operazione Sintassi Matlab Commenti Array addition a + b Array e matrix addition sono identiche Array subtraction a b Array e matrix subtraction sono identiche Array multiplication a.* b Ciascun elemento del risultato è pari al prodotto degli elementi corrispondenti nei due operandi Matrix multiplication a * b Prodotto di matrici Array right division a./ b risultato(i,j)=a(i,j)/b(i,j) Array left division a.\ b risultato(i,j)=b(i,j)/a(i,j) Matrix right division a / b a*inversa(b) Matrix left division a \ b inversa(a)*b Array exponentiation a.^ b risultato(i,j)=a(i,j)^b(i,j)

Matrix left division q Serve per risolvere sistemi di equazioni lineari a 11 x 1 +a 12 x 2 +a 13 x 3 =b 1 a 21 x 1 +a 22 x 2 +a 23 x 3 =b 2 a 31 x 1 +a 32 x 2 +a 33 x 3 =b 3 q può essere espresso come Ax=B con a 11 a 12 a 13 b 1 A = a 21 a 22 a 23 B= b 2 x = a 31 a 32 a 33 b 3 x 1 x 2 x 3 q di conseguenza, x = A -1 B=A\B

Altre funzioni Funzione Scopo ceil(x) floor(x) fix(x) max(x) min(x) approssima x all intero immediatamente maggiore approssima x all intero immediatamente minore approssima x all intero più vicino verso lo zero ritorna il valore massimo nel vettore x e, opzionalmente, la collocazione di questo valore in x ritorna il valore minimo nel vettore x e, opzionalmente, la collocazione di questo valore nel vettore mod(m,n) mod(x,y) è x - n.*y dove n = floor(x./y) se y ~= 0 round(x) rand(n) approssima x all intero più vicino genera una matrice di NxN numeri casuali

Strutture di controllo in Matlab if (<expr1>) statement; else if (<expr2>) else statement; statement; if <expr1> statements elseif <expr2> else end statements statements C MATLAB

Strutture di controllo in Matlab switch (<expr>) { } case <v1>: statement;...... break; case <vn>: statement;... break; default: statement;... switch <expr> case <v1> statement,..., statement case {<v2>, <v3>, } statement,..., statement otherwise end statement,..., statement C MATLAB

Strutture di controllo in Matlab for (<iniz>;<term>;<agg>) { statement1; statementn; for variable = init:step:end statement end... statement } C MATLAB

Strutture di controllo in Matlab while (<expr>) { statement1; statementn; while <expr> statement end statement } C MATLAB

Diagrammi a due dimensioni q Diagramma = insieme di coppie che rappresentano coordinate di punti q Si usano vettori per contenere sequenze ordinate dei valori di ognuna delle coordinate q plot(x,y) disegna digramma cartesiano dei punti che hanno valori delle ascisse in x, delle ordinate in y e li congiunge con una linea, per dare continuità al grafico q funzioni xlabel per visualizzare nome asse ascisse, ylabel per cubica ordinate, title per il titolo 1000 800 >> x = -10:0.1:10; >> y=x.^3; >> plot(x,y); >> xlabel('ascisse'); >> ylabel('ordinate'); >> title('cubica'); ordinate 600 400 200 0-200 -400-600 -800-1000 -10-8 -6-4 -2 0 2 4 6 8 10 ascisse

Un esempio di cinematica q Due treni partono da due stazioni adiacenti, che distano 15km, viaggiando a velocità di 50m/s e 30m/s in direzione opposta q Costruire un grafico che mostra il loro movimento, fino a quando il più veloce raggiunge la destinazione Il più veloce impiega 15000/50=300s DistanzaTreno1=50 t; DistranzaTreno2=15000-30 t; (per mostrare la provenienza dalla direzione opposta)

Soluzione t=0:1:300; p1=50 * t; p2=15000-30* t; plot(t,p1); hold on %adesso è possibile inserire nuove curve sul grafico plot(t,p2) hold off

Risultati ottenuti con l esempio