18.01.2015 Views

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

12. PRIMI PASSI IN MATLAB®<br />

% input x<br />

% output y =(x /2)^2 −sin ( x )<br />

y=( x/2).^2 − sin ( x ) ;<br />

Nel programma principale abbiamo semplicemente tradotto l’algoritmo del metodo delle bisezioni. Abbiamo<br />

considerato dei coman<strong>di</strong> che non abbiamo ancora visto in MATLAB® , per la stampa dei risultati (me<strong>di</strong>ante<br />

sprintf) e abbiamo usato il comando break per interrompere l’esecuzione del programma se una<br />

con<strong>di</strong>zione non è verificata.<br />

Le righe <strong>di</strong> commento scritte dopo l’istruzione function y=fun(x) vengono visualizzate sulla<br />

Command Window se, una volta salvata la function, <strong>di</strong>gitiamo l’istruzione help fun<br />

12.6 Dati <strong>di</strong> output<br />

L’ambiente MATLAB® permette <strong>di</strong> visualizzare tutte le variabili presenti al termine dell’esecuzione <strong>di</strong> un<br />

programma o <strong>di</strong> una funzione. Tuttavia, alcune volte vogliamo visualizzare subito dei risultati sulla Command<br />

Window o su un file separato rispetto all’ambiente <strong>di</strong> lavoro. Abbiamo già visto, nell’esempio precedente<br />

il comando sprintf: esso serve per stampare un messaggio sulla Command Window utilizzando un<br />

certo tipo <strong>di</strong> formato.<br />

Nell’esempio avevamo usato<br />

sprintf(’%s %15.8e’, ’soluzione approssimata c= ’, c)<br />

All’interno delle parentesi tonde si possono riconoscere due parti: nella prima parte si scrive, tra apici e uno <strong>di</strong><br />

seguito all’altro, il formato da utilizzare per la stampa delle variabili che sono scritte subito dopo. Nel nostro<br />

caso, le variabili da stampare sono la stringa <strong>di</strong> caratteri soluzione approssimata c= e il valore della<br />

variabile c. Per la stringa <strong>di</strong> caratteri si usa il formato delle stringhe che è dato da %s mentre per la variabile c,<br />

volendo scriverla me<strong>di</strong>ante un formato esponenziale con 8 cifre nella mantissa, usiamo il formato %15.8e.<br />

Il formato per una variabile è preceduto dal simbolo % . Per la variabili intere o reali possiamo decidere<br />

quante cifre utilizzare per rappresentare la variabile (%15.8e nell’esempio). Riassumiamo nella tabella<br />

seguente i principali tipi <strong>di</strong> formato e i simboli che servono per andare a capo o creare nuove linee: Se si<br />

formato<br />

Significato<br />

%s stringhe <strong>di</strong> caratteri<br />

%d formato intero<br />

%f formato fisso<br />

%e formato esponenziale (del tipo 3.5e + 00)<br />

%E formato esponenziale (del tipo 3.5E + 00)<br />

\ n nuova linea<br />

\ r per andare a capo<br />

Tabella 12.2: Il formato<br />

vogliono scrivere i risultati su un file, occorre aprire il file e associarlo ad una variabile me<strong>di</strong>ante la function<br />

fopen. Ad esempio<br />

fid= fopen(’risultati.txt’,’w’)<br />

Con questa istruzione aprimamo il file <strong>di</strong> risultati dal nome risultati.txt (’w’ in<strong>di</strong>ca che il file è <strong>di</strong><br />

scrittura) associandolo alla variabile fid. Per scrivere sul file, al posto della function sprintf si userà la<br />

function fprintf che <strong>di</strong>fferisce dalla prima per il fatto che bisogna in<strong>di</strong>care la variabile associata al file <strong>di</strong><br />

scrittura dati. Il comando sprintf <strong>di</strong> prima <strong>di</strong>venta ora:<br />

fprintf(fid , ’%s %15.8e’, ’soluzione approssimata c= ’, c)<br />

Per chiudere il file si usa l’istruzione fclose(fid).<br />

192

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!