BOZZA Introduzione a MATLAB



Documenti analoghi
Introduzione al MATLAB c Parte 2

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

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

Test Excel conoscenze di Base

Introduzione al Foglio Elettronico

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

Lezione 8. La macchina universale

Matlab: Strutture di Controllo. Informatica B

Dati importati/esportati

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica

Laboratorio di Informatica

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Cosa è un foglio elettronico

Microsoft Excel. Il foglio elettronico Microsoft Excel Cartelle, Fogli di lavoro e celle Contenuto delle celle. Numeri, date, formule, testo, funzioni

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Microsoft Excel. Sommario. Cosa è un foglio elettronico. L interfaccia Utente. La cartella di Lavoro. Corso di introduzione all informatica

MATLAB (1) Introduzione e Operazioni con array

Rapida Introduzione all uso del Matlab Ottobre 2002

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

Finestre grafiche. >> figure >> figure(n)

Dispensa di database Access

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Informatica. Rappresentazione dei numeri Numerazione binaria

Laboratorio Algoritmi 2014 Secondo Semestre

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Laboratorio di Matematica Computazionale A.A Lab. 1 - Introduzione a Matlab

Richiesta pagina PHP (es: index.php)

INTRODUZIONE A EXCEL ESERCITAZIONE I

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Script. Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 13 Agosto 2014

INFORMATICA - I puntatori Roberta Gerboni

Lab. 1 - Introduzione a Matlab

Lezione 5. Fogli di calcolo

INTRODUZIONE A MATLAB Matrix Laboratory

Introduzione allo Scilab Parte 3: funzioni; vettori.

Arduino: Programmazione

SPECIFICHE E LIMITI DI EXCEL

Potenzialità statistiche Excel

Pre Test Matematica

WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords.

ESTRAZIONE DI RADICE

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive

LEZIONE DI MATLAB 2.0. Ing.Irene Tagliente

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita

Appunti di: MICROSOFT EXCEL

Excel. Excel. Videata iniziale Fogli elettronici. Fogli elettronici. Come si inserisce un dato

Fogli Elettronici: MS Excel

Introduzione al foglio elettronico

InitZero s.r.l. Via P. Calamandrei, Arezzo

31/10/2012. Lo studio delle funzioni permette di interpretare la variazione di due grandezze, l una rispetto l altra, quando

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Il menu File contiene tutti i comandi relativi alle seguenti operazioni:

Il foglio elettronico 5/06/2013

L analisi dei dati. Capitolo Il foglio elettronico

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

Il foglio elettronico: Excel

Il database management system Access

Note applicative OFFICINA ELETTRICA. Compilazione del registro di produzione dell energia elettrica modello Mbis 36

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

Compilatore risorse display grafico LCD serie IEC-line

Fasi di creazione di un programma

MODULO 4: FOGLIO ELETTRONICO (EXCEL)

FORMULE: Operatori matematici

UTILIZZO DEL MODULO DATA ENTRY PER L IMPORTAZIONE DEI DOCUMENTI (CICLO PASSIVO)

Il simbolo. è è = = = In simboli: Sia un numero naturale diverso da zero, il radicale. Il radicale. esiste. esiste 0 Il radicale

4. Operazioni elementari per righe e colonne

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA D INFORMATICA A.S. 2013/14 - CLASSE: I R - Indirizzo Scienze applicate

Elaborazione di testo

Informatica - Office

Aritmetica dei Calcolatori 2

OSSERVATORIO DEL TURISMO GUIDA AL SERVIZIO

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, = 1, 431 0, = 0, 862 0, = 1, 792 0, = 1, 448 0, = 0, 896

ISTITUTO d IstruzIone Superiore A. righi

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

Piani di input e piani di calcolo reale in FaTA-e

Alcune regole di base per scrivere un programma in linguaggio C

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014

Corso Online Analista Programmatore Microsoft

Guida rapida - versione Web e Tablet

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

MANUALE UTENTE Fiscali Free

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

I database relazionali (Access)

Access. P a r t e p r i m a

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

Argomenti Microsoft Word

Al giorno d oggi, i sistemi per la gestione di database

Soluzione di equazioni quadratiche

Interpolazione ed approssimazione di funzioni

Parte IV. I fogli elettronici e Excel

DESCRIZIONE: Microsoft Office 2002 XP Corso Completo (Patente 60 giorni)

ISTITUTO ISTRUZIONE SUPERIORE "L. EINAUDI" ALBA ANNO SCOLASTICO 2015/2016

Strumenti per la Progettazione

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Sistema di numerazione binario, operazioni relative e trasformazione da base due a base dieci e viceversa di Luciano Porta

Transcript:

BOZZA Introduzione a MATLAB BOZZA BOZZA Matlab sta per Matrix Laboratory ed è un ambiente interattivo e un linguaggio di calcolo tecnico di alto livello per lo sviluppo di algoritmi, la rappresentazione grafica dei dati, l'analisi dei dati e il calcolo numerico. Matlab include vari moduli aggiuntivi, chiamati Toolbox, per applicazioni specifiche. (Signal Processing Toolbox, Image Processing Toolbox, etc ) Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio MATLAB, è possibile programmare e sviluppare algoritmi più rapidamente rispetto ai linguaggi tradizionali, in quanto non è necessario eseguire attività di gestione codice a basso livello come la dichiarazione di variabili, la specificazione dei tipi di dati e l'assegnazione della memoria. In molti casi MATLAB elimina la necessità di utilizzare loop. 21

Introduzione Funzioni principali Linguaggio di alto livello per il calcolo tecnico Ambiente di sviluppo per la gestione di codice, file e dati Funzioni matematiche per l'algebra lineare, la statistica, l'analisi di Fourier, il filtraggio, l'ottimizzazione e l'integrazione numerica Funzioni grafiche in 2D e 3D per la rappresentazione grafica dei dati Strumenti per la creazione di interfacce grafiche personalizzate Funzioni per integrare gli algoritmi basati su MATLAB con linguaggi e applicazioni esterni come C/C++, Fortran, etc 22

Introduzione Analisi dei dati MATLAB supporta l'intero processo di analisi dei dati, dall'acquisizione da database e periferiche esterni fino alla preelaborazione, visualizzazione, analisi numerica e produzione dei risultati in un formato adatto a presentazioni. (Interpolazione e decimazione, estrazione di sezioni di dati, scalatura e calcolo della media, correlazione, analisi di Fourier e filtraggio, funzioni statistiche di base e curve fitting) Accesso ai dati MATLAB è un'efficace piattaforma per accedere ai dati da file, altre applicazioni, database e periferiche esterne. È possibile leggere i dati dai formati di file più diffusi, ad esempio Microsoft Excel, testi in formato ASCII o file binari, file video, audio e immagini. È possibile acquisire dati dalle periferiche hardware, ad esempio dalla scheda audio o dalla porta seriale di un computer. (Data Acquisition Toolbox, Instrument Control Toolbox) 23

Introduzione Visualizzazione dei dati In MATLAB sono disponibili tutte le funzioni grafiche necessarie per visualizzare i dati tecnico-scientifici. Sono inclusi: funzioni grafiche in 2-D e 3-D, funzioni per la rappresentazione volumetrica 3- D, strumenti per la creazione interattiva dei diagrammi e la possibilità di esportare i risultati in tutti i formati grafici più diffusi. Creazione ed editing interattivo dei grafici 24

Introduzione Calcolo numerico MATLAB comprende le funzioni matematiche, statistiche e tecniche per supportare tutte le operazioni più comuni di natura scientifica e tecnica. Tali funzioni costituiscono la base del linguaggio MATLAB. Le funzioni matematiche principali utilizzano le librerie di algebra lineare LAPACK e BLAS e la libreria della Trasformata Discreta di Fourier FFT. Manipolazione delle matrici e algebra lineare Polinomi e interpolazioni Analisi di Fourier e filtraggio Analisi dei dati e funzioni statistiche Ottimizzazione e integrazione numerica Equazioni differenziali ordinarie (ODE) Equazioni differenziali parziali (PDE) Operazioni su matrici 25

Introduzione MATLAB offre agli utenti una serie di funzioni per documentare e condividere il proprio lavoro. Il codice MATLAB può essere integrato con altri linguaggi e altre applicazioni, consentendo così di utilizzare le applicazioni e gli algoritmi MATLAB come programmi standalone o come moduli software. MATLAB presenta funzioni per integrare con le proprie applicazioni il codice C e C++, il codice Fortran Rilascio di applicazioni È possibile creare un algoritmo in MATLAB e distribuirlo ad altri utenti MATLAB sotto forma di codice M. Con il MATLAB Compiler (disponibile separatamente), l'algoritmo creato dall'utente può essere rilasciato come applicazione standalone oppure come modulo software da inserire nel progetto destinato agli utenti che non dispongono di MATLAB. 26

Avviare una sessione di lavoro Avviando Matlab si apre una sessione di lavoro e il prompt >> indica che il programma è pronto a ricevere istruzioni. Es. Digitando 7/10 e INVIO si ottiene» 7/10 ans = 0.7000 Matlab assegna la risposta ad una variabile temporanea (ans). E possibile memorizzare il risultato anche in un altra variabile Es. r=7/10 r = 0.7000 Non e necessario né dimensionare né dichiarare il tipo di variabile Il segno = è l operatore di assegnazione o sostituzione, da non confondere con l operatore di uguaglianza (==) I nomi delle variabili devono iniziare con una lettera e non possono essere più lunghi di 31 caratteri. Possono contenere numeri e il carattere underscore. Matlab è case sensitive. 27

Avviare una sessione di lavoro Matlab conserva l ultimo valore di una variabile finchè non chiudete la sessione di lavoro o non cancellate espressamente il valore della variabile. Alcuni comandi per gestire una sessione di lavoro: who elenca le variabili che si trovano in memoria. whos elenca le variabili, le loro dimensioni e indica se possiedono parti immaginarie non nulle. pwd visualizza il percorso della directory corrente. dir visualizza il contenuto della directory corrente. cd consente di cambiare directory. clear elimina tutte le variabili dalla memoria. Il punto e vigola al termine dell istruzione consente di non visualizzare il risultato dell operazione. 28

Array e variabili MATLAB utilizza la rappresentazione in virgola mobile in singola (32 bits) o doppia precisione (64 bits), in accordo a lo standard IEEE 754. Il default è la doppia precisione, ma è possibile convertire un double in singola precisione. Uno dei punti di forza di Matlab è la capacità di raccogliere molti numeri in strutture chiamate array (o matrici) come se fossero una sola variabile. Un array numerico è una raccolta ordinata di numeri. Vettore: array monodimensionale Matrice: array a due o più dimensioni. Per inseririe un vettore riga: r=[2,4,10] Per inseririe un vettore colonna: s=[2;4;6] 29

Array e variabili Per inserire una matrice 3x3 digitate: Es. A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 Per riferirsi agli elementi di un array si usano le parentesi rotonde e gli indici di riga e di colonna separati da virgole. A(1,2) è l elemento a 1,2 Per riferirsi ad intere righe o colonne si usano i due punti. A(:,2) indentifica tutti gli elementi nella 2 colonna di A Per unire vettori a matrici A=[1,2,3;4,5,6;7,8,9]; V=[10,11,12]; A=[A;v]; Operazioni importanti: trasposta, rotazione, ribaltamento 30

Esercizio Partendo dalle matrici. A = 1 4 7 2 5 8 3 6 9 B = [ 10 11 12] 13 C = 14 D = [ 0 0 0] 15 31

Esercizio Ottenete le matrici. R1 = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 R2 = 8 11 9 12 R4 = 7 4 8 5 R3 = 4 7 5 8 32

File.m In Matlab è possibile operare in due modi differenti: In modalità interattiva Eseguire un programma di matlab registrato in un file di tipo m o m-file. Esistono due categorie di M-file: file script e file di funzione. Con il comando edit si apre l editor di Matlab. 33

Stringhe Un testo in Matlab viene interpretato come un vettore di caratteri. Le stringhe di caratteri vanno racchiuse tra apici A= stringa di testo Le stringhe di testo possono essere visualizzate con il comando disp In un m-file l introduzione interattiva di dati può ottenersi con la funzione input N=input( Numero di discretizzazioni. ) nome=input( Come ti chiami?, s ) Altre funzioni per la gestione delle stringhe di testo: Int2str, str2num, strncmp.. 34

Altri tipi di dati Celle (Cell array) Strutture Celle Le celle sono array che possono contenere elementi di tipo diverso tra loro. Possono essere create direttamente per assegnamento o utilizzando il comando cell. L indicizzazione ad una cella avviene tramite le parentesi graffe. Es. A=rand(2,2) c={a, det(a), inv(a)} L uso principale previsto è quello relativo alla gestione delle stringhe. 35

Altri tipi di dati Strutture Sono arrays multidimensionali a cui si accede tramite la definizioni di campi. Es. studente.nome= Marco studente.cognome= Bianchi studente.ccl= Meccanica studente.anno= quinto Un intero elemento può essere aggiunto con studente(2)=struct( nome, Paolo, cognome, Verdi, ccl, Elettronica, anno, quarto ) 36

Operazioni con le matrici Gli elementi sono separati da spazi o virgole, le righe dal punto e virgola entro parentesi quadre. Matlab consente di effettuare operazioni su matrici in modo molto semplice. Es. B= A calcola la trasposta della matrice A e memorizza il risultato nella matrice B.» B=A' B = 1 4 7 2 5 8 3 6 9 37

Operatori matematici Osservate il risultato delle seguenti operazioni: A+2, A-2, A*2, A/2 C=A+B, D=A*B, E=A/B, F=A.*B, G=A./B, H=A.^2 Operazioni aritmetiche scalari ^ Elevazione a potenza * Moltiplicazione / Divisione a destra \ Divisione a sinistra + Addizione - Sottrazione Ordine di precedenza standard della programmazione 38

Operatori matematici Operazioni con le matrici (elemento per elemento) + Somma array scalare - Sottrazione array scalare + Somma di matrici - Sottrazione di matrici.* Moltiplicazione di matrici elemento per elemento./ Divisione destra di matrici elemento per elemento.\ Divisione sinistra di matrici elemento per elemento.^ Elevamento a potenza elemento per elemento * Moltiplicazione di matrici riga per colonna / Divisione destra \ Divisione sinistra o inversa 39

Divisione matriciale Se A è una matrice quadrata invertibile e B è un vettore X=A\B è la soluzione di AX=B X=B/A è la soluzione di XA=B Quindi B/A=(A \B ) Se la matrice è mxn vi sono 2 casi m>n sistema sovradeterminato (soluzione ai minimi quadrati) m<n sistema sottodeterminato (soluzione fondamentale con al più m componenti non nulle) 40

Divisione matriciale Metodo matriciale 2x 1 +9x 2 =5 3x 1-4x 2 =7 Ax=b x=a\b (DIVISIONE SINISTRA) Se il sistema è scritto nella forma Xc=D x=d/c (DIVISIONE DESTRA) 2 9 x1 5 = 3 4 x2 7 6 3 2 5 [ x x ] = [ 3 19] 1 2 41

Operatori relazionali = Assegnazione == Uguaglianza < > <= >= Minore, maggiore minore o uguale, maggiore o uguale & AND logico OR logico NOT logico Xor OR esclusivo 42

Istruzioni condizionali e cicli if else, sintassi: if, condizione sulle variabili, istruzioni, else o elseif, condizione sulle variabili, istruzioni,... end Es. x=10; if x>=0 y=sqrt(x) end While, sintassi: while, condizione sulle variabili, istruzioni end. A=zeros(4,4); k=1; while k<=4 A(k,k)=1, k=k+1; end For, sintassi: for, variabile=espressione, istruzioni, end. A=zeros(4,4); for k=1:4 A(k,k)=1, end 43

Istruzioni condizionali e cicli Switch case, sintassi: switch(condizione) case valore istruzione otherwise end switch (value) case {1,3,5,7,9} disp( Il valore è dispari') case {2,4,6,8,10} disp( Il valore è pari') otherwise disp( Il valore è al di fuori dell intervallo.) end 44

Esercizio Data l equazione di secondo grado ax^2+bx+c=0 Utilizzando la struttura if elseif end creare un programma al fine di individuare, noti i coefficienti a,b e c, le caratteristiche delle soluzioni x1 e x2. Visualizzare su schermo se le soluzioni dell equazione saranno reali, reali coincidenti o complesse. Creare un programma analogo utilizzando la struttura switch case end. Riscrivere il programma utilizzando la struttura while end 45

Soluzione: if % Programma per la risoluzione di un equazione di II grado complete del tipo ax^2+bx+c=0 delta=(b^2-4*a*c); d=sqrt(delta); x1=(-b+d)/(2*a); x2=(-b-d)/(2*a); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%IF%%%%%%%%%%%%%%%% if delta<0 disp('le soluzioni sono complesse coniugate') disp(['x1=',num2str(x1)]); disp(['x2=',num2str(x2)]); elseif delta==0 disp('le soluzioni reali coincidenti') disp(['x1=',num2str(x1)]); disp(['x2=',num2str(x2)]); else disp('le soluzioni reali distinte') disp(['x1=',num2str(x1)]); disp(['x2=',num2str(x2)]); end 46

Soluzione: Switch %%%%%%%%%%%%%%SWITCH%%%%%%%%%%%%%%%%%%%%%% switch sign(delta) case{-1} disp('le soluzioni sono complesse coniugate') disp(['x1=',num2str(x1)]); disp(['x2=',num2str(x2)]); case {0} disp('le soluzioni reali coincidenti') disp(['x1=',num2str(x1)]); disp(['x2=',num2str(x2)]); case{1} disp('le soluzioni reali distinte') disp(['x1=',num2str(x1)]); disp(['x2=',num2str(x2)]); end 47

Soluzione: While %%%%%%%%%%%%%%%%%%%WHILE%%%%%%%%% while delta<0 disp('le soluzioni sono complesse coniugate') disp(['x1=',num2str(x1)]); disp(['x2=',num2str(x2)]); break end while delta==0 disp('le soluzioni reali coincidenti') disp(['x1=',num2str(x1)]); disp(['x2=',num2str(x2)]); break end while delta>0 disp('le soluzioni reali distinte') disp(['x1=',num2str(x1)]); disp(['x2=',num2str(x2)]); break end 48

Esercizio Creare un programma che, dopo aver pensato a un numero compreso tra 0 e 100, chieda all utente di indovinarlo fino a quando non ci riesce. Il programma darà un aiuto dicendo ogni volta se il numero introdotto è maggiore o minore di quello da indovinare. Utilizzare la struttura while Aiuto: utilizzare rand(1) e round(x) e if dentro a while 49

Soluzione x= rand(1)*100; x= round(x); y=input('introduci un numero'); while not(x==y) if x>y disp('più alto') else disp('più basso') end y=input('introduci un numero'); end disp('hai indovinato') 50