MATLAB.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

INFORMATICA Altre Istruzioni di I/O
MATLAB.
Metodi numerici in Matlab
Selezione A. Ferrari.
PHP.
MATLAB.
MATLAB.
MATLAB.
MATLAB.
MATLAB. Outline Grafica 2D Esercizi Grafica 3D Esercizi.
MATLAB.
MATLAB.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
MATLAB Stefano Gagliardo
Algoritmi e Programmazione
MATLAB.
2 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
Algebra delle Matrici.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Metodi FEM per problemi ellittici lineari a tratti Gabriella Puppo.
Metodi numerici per equazioni lineari iperboliche Gabriella Puppo.
Funzioni matematico – statistiche I comandi matematici di più comune utilizzo, applicabili a scalari e matrici, sono: Sqrt(x), che calcola la radice quadrata.
Importazione di dati Nellambito dellutilizzo di qualsiasi software statistico una necessità è quella di importare dati esterni forniti dallutilizzatore.
Uso dei cicli y t =c+ty t-1 +e Un uso dei cicli può essere quello di creare una serie storica per cui y t =c+ty t-1 +e dove poniamo c e t scalari ed e~N(0,1).
Trimr Gauss, tra le altre, fornisce una preziosissima funzione che risulta di estrema utilità nell’ambito matriciale. Questa funzione, chiamata trimr(x,t,b),
Creazione di matrici Delimititatore di riga Delimititatore di matrice
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Il linguaggio Fortran 90: 2. Istruzioni di Controllo
Introduzione alla programmazione lll
Somma = A + B start Stampa Somma Leggi A,B stop Sub SOMMA( ) Dim A, B as Integer A = InputBox("Immetti un numero") B = InputBox(Immetti un secondo numero)
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Selezione (=scelta) con “if-else”
Strutture di controllo in C -- Flow Chart --
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Esercitazione 2 – Generazione di variabili Matlab.
Lezione 2 Programmare in ASP
Corso di PHP.
Javascript 6 Funzioni. Una funzione sarà eseguita in risposta ad un evento o ad una chiamata diretta. Le funzioni possono essere inserite comodamente.
INTRODUZIONE A MATLAB.
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Lezione 6 Strutture di controllo Il condizionale
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Sottospazi vettoriali
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Introduzione a Javascript
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
INTRODUZIONE A MATLAB LEZIONE 2 Sara Poltronieri.
Transcript della presentazione:

MATLAB

…oggi… Programmare in Matlab Indipendenza lineare, basi, sottospazi Funzioni Cicli Operatori relazionali Indipendenza lineare, basi, sottospazi Esercizi vari

function [y1,…,yn] = nome_funzione(x1,…,xn) Le funzioni -1 Script parametri in ingresso nn modificabili le variabili usate sono messe nella memoria di lavoro di MATLAB Funzioni script al quale si possono passare parametri in ingresso ed ottenerne in uscita sintassi y1,…,yn -> parametri in uscita x1,…,xn –> parametri in entrata le variabili usate all’interno sono locali Una caratteristica degli script è quella di non avere parametri in ingresso modificabili. Se vogliamo modificare i valori di alcune variabili che compaiono nello script dobbiamo modificare lo script stesso. Un’altra particolarità consiste nel fatto che tutte le variabili usate nello script vengono automaticamente messe nella memoria di lavoro di MATLAB. Una funzione MATLAB risponde esattamente alle precedenti due necessità, ossia è uno script al quale è possibile passare parametri in ingresso ed ottenerne in uscita, inoltre le variabili utilizzate durante l’esecuzione della funzione vengono automaticamente cancellate dalla memoria di MATLAB al termine della stessa. Le variabili definite all’interno della funzione sono var temporaneee usate dall’m-file x eseguire la funzione: sono cancellate appena terminata l’esecuzione dello script nn interferiscono con le variabili definite dall’utente nello spazio di lavoro e che possono avere anche gli stessi nomi function [y1,…,yn] = nome_funzione(x1,…,xn)

Le funzioni -2 L’m file va salvato col nome nome_funzione.m il nome del file deve essere identico a quello della funzione La funzione puo’ essere richiamata dalla finestra di comando all’interno di uno script da altre funzioni digitando [y1,…,yn]=nome_funzione(x1,…,xn) Per poter richiamare la funzione ci dobbiamo mettere nella directory nella quale la salviamo C:\Users Per poter richiamare la funzione dobbiamo essere nella directory nella quale è salvata la funzione oppure “settare” nel path di Matlab la directory nella quale la funzione è salvata

Esempio creiamo un m-file traccia.m nel quale implementiamo la funzione che calcola la traccia di una matrice variabile temporanea richiamiamo la funzione nella finestra di comando parametro in input

Ciclo for…end Ciclo incondizionato for i = n1:passo:n2 blocco di istruzioni end Anche gli algoritmi piu’ semplici richiedono l’esecuzione ripetuta di istruzioni e l’esecuzione condizionata di alcune parti. Esistono molti comandi per creare m-file complessi e versatili e strutture logiche simili a quelle usate nei linguaggi di programmazione. La costruzione ripetuta di blocchi di codice in MATLAB viene eseguita tramite cicli. Esistono due diversi modi per realizzare cicli, il ciclo incondizionato for...end ed il ciclo condizionato while...end. Il ciclo for fa eseguire tutte le righe fino all’end facendo assumere ad i valori 1,2,…,n I cicli for possono essere nidificati

Esercizio Scrivere una funzione che sommi gli elementi di un vettore e moltiplichi il risultato per un intero n passato come parametro di input Scrivere una funzione che faccia la media degli elementi di una matrice A la funzione ha come input la matrix A la funzione ha come output la media [r c] = size(A) restituisce il numero di righe e colonne della matrice

Operatori Operatori relazionali: Operatori logici: < , <= , > , >= , == , = , = si usano per confrontare tra di loro gli elementi di 2 matrici; il risultato dell’operazione sarà 0 se la relazione è falsa 1 se la relazione è vera Operatori logici: & , | ,  si usano per combinare tra loro gli operatori relazionali Gli operatori relazionali consentono di confrontare tra loro gli elementi di due matrici. Sono operazioni binarie come la somma e il prodotto e danno luogo ad un risultato. La differenza è che il risultato puo’ assumere solo 2 valori: 0(se la relazione è falsa) e 1 (se la relazione è vera). Il risultato è una matrix di tipo logical. L’operatore relazione è applicato ad ogni elemento delle matrix che si confrontano per cui le matrix devono avere lo stesso formato, oppure una delle due deve essere uno scalare. Gli op relazionali sono usati nei test condizionali (if…end,while…end), ma le matrix di tipo logical possono essere usate per selezionare elementi di una matrix.

Esempio

Ciclo while…end Ciclo condizionato while condizione blocco di istruzioni end Nel ciclo for si ripete il blocco d’istruzioni tot volte. In molte circostanze si ha la necessità di ripetere un certo numero di operazioni diverse volte a seconda che una certa condizione sia verificata oppure no. In questo caso si utilizza il costrutto while. Condizione è un’espressione che MATLAB valuta numericamente e che viene interpretata come vera se diversa da zero.

If…else…end Test condizionale if condizione1 blocco di istruzioni coinvolge un operatore relazionale. Se condizione1 è vera si eseguono i comandi if condizione1 blocco di istruzioni elseif condizione2 else end opzionali I comandi che seguono elseif sono eseguiti se condizione2 è vera I comandi che seguono else sono eseguiti se le precedenti condizioni sono false Il primo blocco di istruzioni sarà eseguito solo se la Condizione1 è verificata, il secondo solo se la Condizione1 risulta essere falsa e la Condizione 2 vera e così via. Il blocco di istruzioni che segue else sarà eseguito soltanto se nessuna delle precedenti condizioni risulti essere vera. Il test condizionale è usato quando si vuole che un comando venga eseguito solo se è verificata una certa condizione

Esempio per stampare una stringa

Comandi “utili” break -> per uscire in maniera forzata da un ciclo MATLAB salta all’istruzione che termina il ciclo return -> interrompe l’esecuzione della funzione si ritorna al programma da cui la funzione è stata chiamata disp -> per stampare a video una stringa Il comando break consente di uscire in maniera forzata da un ciclo. Quando il comando break `e eseguito MATLAB salta automaticamente all’istruzione end che termina il ciclo. Un comando che svolge una funzione analoga in MATLAB è return. La differenza è che return interrompe l’esecuzione della funzione e ritorna al programma da cui tale funzione era stata chiamata. disp(‘stringa di caratteri’)

n = input(‘inserisci un intero’); Input\output input sprintf n = input(‘inserisci un intero’); s = sprintf(‘n = %d’,n); disp(s) Un modo di costruire stringhe di caratteri per l’output di testo è fornito dalle funzioni fprintf e sprintf mutuate direttamente dal linguaggio C. La funzione input è stata utilizzata per assegnare un valore al numero n. La sintassi della funzione è Variabile=input(Stringa di caratteri) ed attende un ingresso da tastiera di un’espressione MATLAB da assegnare a Variabile. Il valore assegnato potrà quindi essere di tipo scalare, vettore oppure matrice utilizzando la sintassi standard di MATLAB.

Esercizi Scrivere una funzione che ha come input una matrice quadrata A e un vettore colonna b come output la soluzione x del sistema Ax=b (dopo aver verificato che A è nn singolare) nel caso di A singolare ritornare una scritta di errore Scrivere una funzione che dato in input un intero positivo n restituisca il suo fattoriale fare i test su n

Vettori l.i. sono linearmenti indipendenti Fissata una base nello s.v. V possiamo associare in modo unico ad un vettore v un elemento di Rn => per vedere se i vettori sono l.i. o no si puo’ operare direttamente in Rn Si scrivono i vettori in componenti e si forma la matrix A che ha come colonne le componenti dei vettori e si calcola il rango della matrix. I vettori corrispondenti alle colonne dei pivot sono quelli l.i.

Esempio - 1 v1 = [1 0 2]’; v2 = [2 1 1]’; v3 = [1 2 0]’; il rango è 3 => i vettori sono l.i. e quindi formano una base per R3 v1 = [1 0 2]’; v2 = [2 1 1]’; v3 = [1 2 0]’; A = [v1 v2 v3] rank(A)

il rango è 3 => i vettori sono l.d. Esempio - 2 v1 = [1 2 0 1]’; v2 = [2 2 1 1]’; v3 = [1 0 1 0]’; v4 = [0 2 0 2]’; A = [v1 v2 v3 v4] rank(A) il rango è 3 => i vettori sono l.d.

Esempio - 3 Per trovare una c.l. nulla a coefficienti nn tutti nulli t.c. troviamo una soluzione nn nulla del sistema omogeneo Ak = 0 rref(A)

Basi Dopo aver verificato che i vettori v1, v2, v3 sono una base di R3 esprimere v come c.l. dei vi v1 = [1 1 0’]’; v2 = [0 1 1]’; v3 = [1 0 1]’; v = [1 1 1]’; A = [v1 v2 v3] rank(A) il rango è 3 => i vettori sono l.i. i coefficienti lineari della combinazione si trovano: k=A\v

Esercizi - 1

Esercizi - 2 Scrivere una funzione che implementi la backward substitution di un sistema Ax=b con A triangolare superiore

Osservazioni Privilegiare operazioni vettoriali ai cicli for…end e while…end La caratteristica principale di MATLAB consiste nella possibilità di eseguire operazioni vettoriali. L’uso efficiente di MATLAB è legato alla capacità dell’utente di sfruttare tale caratteristica. Un ciclo di istruzioni di tipo for ...end o while ...end comporta l’esecuzione ripetuta in forma sequenziale di un blocco di istruzioni. E’ buona regola prima di scrivere un ciclo cercare di vedere se è possibile evitarlo tramite un uso opportuno di istruzioni vettoriali.