1 / 14

Informatica B 2013-2014

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.

lance
Download Presentation

Informatica B 2013-2014

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Materiale per gliesercizi • I file chevengonousatinegliesercizisonoottenibiliall’indirizzo: • www.gianlucadurelli.com/#teaching • https://beep.metid.polimi.it/web/durelli/infob

  3. 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

  4. 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.

  5. 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).

  6. 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

  7. 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

  8. Esercizio 6 • Scrivereunafunzionechericevuto in ingresso un numerocalcoliilnumerodicifreche lo compongono. • Si risolval’eserciziosia in manieraiterativache in manieraricorsiva.

  9. Esercizio 7 • Scrivereunafunzionechericevuto in ingresso un numerocalcoliilnumerochesiottieneinvertendone le cifre. • Si risolval’eserciziosia in manieraiterativache in manieraricorsiva.

  10. 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

  11. Esercizio 9 • Se si e’ risoltol’esercizioprecedente con unafunzioneiterativa lo sitrasformiutilizzando la ricorsione, oppureviceversa.

  12. 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

  13. 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.

  14. Buonlavoro!

More Related