140 likes | 243 Views
Informatica B 2013-2014. Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli : durelli@elet.polimi.it Luigi Malago ’: malago@di.unimi.it Materiale di laboratorio reperibile all’indirizzo: www.gianlucadurelli.com. Materiale per gli esercizi.
E N D
Informatica B2013-2014 Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli: durelli@elet.polimi.it Luigi Malago’: malago@di.unimi.it Materiale di laboratorio reperibile all’indirizzo: www.gianlucadurelli.com
Materiale per gliesercizi • I file chevengonousatinegliesercizisonoottenibiliall’indirizzo: • www.gianlucadurelli.com/#teaching • https://beep.metid.polimi.it/web/durelli/infob
Esercizio 1 • Scrivereunafunzionechericevuti in ingressounamatrice A NxM (matricedeicoefficienti) ed un vettore B Nx1 (vettoredei termini noti) ritorni la soluzione del sistemalineare: • Ax = B • Si ricordache la soluzione del sistema e’ ottenibile in matlab con unasemplicedivisione
Esercizio 2 • Scrivere un programmachericevuta in ingressounamatrice 2x2 ne calcoliildeterminante. • Data unamatrice 2x2 quadrata A dielementi a(i,j) ildeterminantesiottiene come: • Det(A) = a(0,0)*a(1,1) – a(0,1)*a(1,0) • Si controlliilrisultatodellafunzioneconfrontandolocon la funzionedetdiMatlab.
Esercizio 3 • Definire una funzione controlla_riga che accetta in ingresso un array di dimensione 1 x 9. • La funzione restituisce 1 se tutti gli elementi dell'array sono compresi tra 1 e 9, altrimenti restituisce 0 (la funzione restituisce 0 anche se l'array in ingresso ha dimensione diversa da 1 x 9). • Estendere la funzione precedente con il seguente ulteriore requisito: la funzione restituisce 0 anche se nell'array vi sono elementi duplicati, altrimenti restituisce 1. • Ad esempio: • controlla_riga([3 2 1 4 7 6 5 9 8]) = 1 • controlla_riga([9 2 1 4 7 6 5 9 8]) = 0 (il 9 compare due volte). • Suggerimento: potrebbe essere utile prima ordinare il vettore con l'istruzione sort(vettore).
Esercizio 4 • Definire una funzione che verifica la correttezza di una soluzione del gioco del sudoku semplificato. • Nel sudoku semplificato una soluzione e' rappresentata da una matrice 9x9 in cui per ogni riga e colonna della matrice valgono le seguenti proprietà': • Gli elementi sono numeri interi nell'intervallo [1,9]. • Non cisonoripetizioni • Verificare la funzione con le matrici a, b, c, d, e contenute nel file sudoku.mat
Esercizio 5 • Definire una funzione che verifica la correttezza di una soluzione del gioco del sudoku classico. • Una soluzione nel sudoku classico rispetta le proprieta' elencate nell'esercizio precedente piu' la seguente proprieta': • Dividendo la matrice soluzione 9x9 in 9 sottomatrici 3x3 (non sovrapposte), ciascuna di queste sottomatrici contiene numeri da 1 a 9 senza ripetizioni. • Verificare la funzione con le matrici a, b, c, d, e contenute nel file sudoku.mat
Esercizio 6 • Scrivereunafunzionechericevuto in ingresso un numerocalcoliilnumerodicifreche lo compongono. • Si risolval’eserciziosia in manieraiterativache in manieraricorsiva.
Esercizio 7 • Scrivereunafunzionechericevuto in ingresso un numerocalcoliilnumerochesiottieneinvertendone le cifre. • Si risolval’eserciziosia in manieraiterativache in manieraricorsiva.
Esercizio 8 • Si scriva un funzionechepermettadiapplicareilmetododibisezionedi Newton per la ricercadeglizeridiunafunzione. • La funzionedevericevere in ingresso: • icoefficientidiun’equazionedigrado N del tipo: • i due valoridellavariabile X chedeterminano un intervallodiricercaopportuno (Nell’intervallo la funzionedeveesseremonotona) • Un valoreditolleranzacheidentifical’intervallodiricercaminimo a cui arrivare. • La funzionedeveritornare lo zero dellafunzionenelcaso in cui esistaoppurestampare a video un messaggiochecomunichiche la funzione non ha zerinell’intervalloselezionato. • Si verifichi la soluzionestampandoilgraficodellafunzionenell’intervallo in questione
Esercizio 9 • Se si e’ risoltol’esercizioprecedente con unafunzioneiterativa lo sitrasformiutilizzando la ricorsione, oppureviceversa.
Esercizio 10 • Il teorema di Laplace o sviluppo di Laplace è una formula che permette di calcolare il determinante di una matrice (quadrata). • Supponiamo di avere una matrice quadrata M di dimensione n e di elementi . • La matrice è la sottomatrice (di dimensione n–1) che si ottiene da M cancellando la i-sima riga e la j-sima colonna. • Il valore è detto minore complementare dell'elemento . • Il valore è detto cofattore o complemento algebrico dell'elemento . • Il teorema afferma che presa una qualunque riga i, il determinante della matrice M e’ dato dalla seguente formula: • Si scriva una funzione che ricevuta in ingresso una matrice di dimensione n, ne calcoli il determinante. • Si controlli il risultato confrontandolo con la funzione det di Matlab
Esercizio 11 • Scrivereunafunzionechericeva in ingressounamatricequadrata 3x3 e ne calcoliilrango. • La definizionepratica per ilcalcolo del rango e’ la seguente: • Presetutte le possibilisottomatricichesipossonoottenerecancellandorigheoppurecolonne, ilrangodellamatriceoriginale e’ datodalladimensionemassimadellamatrice per cui si ha un determinantediversoda 0. • Quindi: • Se la matriceoriginale ha determinantediversoda 0 ilrangosara’ 3 • Altrimenticontrollotutte le sottomatrici 2x2 e se unadiqueste ha determinantediversoda 0 allorailrango e’ 2 • Altrimenticontrollotutte le sottomatrici 1x1 e se unadiqueste ha determinantediversoda 0 allorailrango e’ 1 • Altrimenti, se tuttiglielementisono 0, ilrango e’ 0. • Per ilcalcolo del determinantesipuo’ usare la funzionedell’esercizioprecedenteoppure la funzionedetdiMatlab • Si confrontiilrisultato con la funzione rank dimatlab.