Cari studenti,
ora che abbiamo visto insieme un po' di comandi principali del linguaggio MATLAB, inizieremo a implementare algoritmi e funzioni piu' complessi. Succedera' a volte di non riuscire a capire perchè il codice non funzioni, anche se si e' implementanto tutto ciò che prevede l'algoritmo.
Prima cosa: tranquilli, è normale.
Ma che fare allora? Il consiglio è di provare a fare un piccolo "debug" del codice (letteralmente "cerchiamo il bug, l'errore....").
Come si fa? Analizziamo PASSO A PASSO le istruzioni che abbiamo implementato. Lo possiamo fare inserendo un "bullet point" all'inizio dello script o della function che vogliamo analizzare cliccando sul numero di riga (a sinistra) da cui vogliamo iniziare l'analisi. (Attenzione: se lo script non è salvato, quando inseriremo il bullet point cliccando sul numero della riga, questo rimarrà grigio, mentre diventerà rosso dopo aver salvato il file). Armiamoci ora di carta e penna e prepariamoci a svolgere insieme al MATLAB i conti previsti dal codice.
- Inseriamo il "bullet point" alla riga da cui vogliamo iniziare l'analisi
- Quando corriamo il nostro script (RUN) il Matlab si fermerà non appena arriverà alla riga in cui abbiamo inserito il bullet point e apparirà una freccetta verde proprio in corrispondenza della stessa.
- Controlliamo ora il workspace: verifichiamo che il Matlab abbia creato opportunamente le variabili definite prima della riga del bullet point.
- Andiamo avanti un passo alla volta e prima del Matlab, svolgiamo sul nostro foglio di carta le stesse operazioni controllando di volta in volta il workspace.
Il Matlab ottiene i nostri stessi risultati? Se non è così, abbiamo trovato un bug....
Vedrete che in questo modo troverete moltissimi errori in modo semplice.
Alla fine del debug, ricordatevi di togliere il bullet point ri-cliccandoci sopra.
In
questi primi laboratori svolgiamo problemi che possiamo tranquillamente
svolgere a mano (trovare le radici di un'eq di secondo grado, ad
esempio), ma già nel caso del metodo di bisezione le cose potrebbero
essere complicate, i vettori troppo grandi... In questi casi dobbiamo
"ingegnarci" e settate in maniera furba i dati di entrata in modo tale
da avere soluzioni calcolabili a mano. Ad esempio: prendete una parabola
f(x) = x^2 -1 di cui siamo capaci di calcolare TUTTO, compresa
l'intersezione con l'asse x e un intervallo in cui sicuramente c'è una
sola radice... Ecco che anche applicare il metodo di bisezione a mano
sarà semplice e potremo controllare passo a passo l'evoluzione del
nostro programma.
Buon lavoro!
i docenti