Laboratorio di Calcolo Numerico

Documenti analoghi
Laboratorio di Calcolo Numerico

Esercizi in Python. Docente: Domenico Daniele Bloisi

MATLAB Elementi di grafica Costrutti di programmazione

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Esame di Calcolo Numerico per Informatica A.A. 2010/11: testo soluzioni Proff. S. De Marchi e M. R. Russo 12 luglio 2011

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

Soluzione di Equazioni non lineari

Algoritmi stabili e instabili

Esercizi proposti di Analisi Numerica

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 19 settembre 2011

Matlab. Istruzioni condizionali, cicli for e cicli while.

Esercizi Elaborato (versione )

Corso di laurea in Matematica Laboratorio di Programmazione e Calcolo Prof. A. Murli. Esercizi di riepilogo - LABORATORIO

Risoluzione di un problema


Esercizio 1. Esercizio 2

Daniela Lera A.A

Laboratorio di Calcolo Numerico Laboratorio 2: Primi programmi in Fortran 90

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

Cicli. S i a i = a 1 + a 2 + a a n

CORSO DI LABORATORIO DI INFORMATICA

Campo di Esistenza. Il campo di esistenza di una funzione f è il dominio più grande su cui ha significato la legge f.

Metodi iterativi per equazioni nonlineari.

Esercitazioni con GNU Octave

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 20 giugno 2011

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Laboratorio di Matematica Computazionale A.A Lab. 4

Laboratorio di Informatica

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 2 - Introduzione a MATLAB

INTRODUZIONE A MATLAB

Claudio Estatico Equazioni non-lineari

Introduzione al MATLAB c Parte 2

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Laboratorio di Python

Raccolta di Esercizi d esame ( di Calcolo Numerico) Prof. Laura Pezza. Equazioni non lineari

Laboratorio di Programmazione Laurea in Bioinformatica

Transcript:

Laboratorio di Calcolo Numerico Lezione 3 Padova, April 4th 2016 F. Piazzon Department of Mathematics. Doctoral School in Mathematical Sciences, Applied Mathematics Area

Outline Lab. 3-2 of 16 1 Presentazione 2 Costrutti Logici: for, while e if

Mi presento... Lab. 3-3 of 16 Federico Piazzon (Dip. Matematica) email fpiazzon@math.unipd.it sito http://www.math.unipd.it/ fpiazzon Il carattere si digita di solito con Alt+126 o Alt Gr+ ì (ma dipende da tastiera e computer... ) è più facile cercare in internet fpiazzon math unipd: è il primo risultato che da Google.

Lab. 3-4 of 16 Lezioni in Laboratorio La mia parte: Preparazione del materiale: slides e m-files (troverete sempre TUTTO nella sezione teaching del mio sito) atto a Illustrare in pratica alcuni fatti visti a lezione tramite esempi. Spiegazione dettagliata dei programmi che utilizzeremo o scriveremo assieme utili per l esame (Compatibilmente con il tempo) rispondere ad eventuali domande per email/fine lezione. Correggere esercitazioni/compiti. La vostra parte: Seguire in modo attivo := provare a fare i propri programmi, almeno quando esplicitamente richiesto... Fare SILENZIO. Qui dentro siamo tanti, troppi, se ognuno sussurra il risultato è troppo rumore. Si ricorda che la frequenza non è obbligatoria. Fare domande (possibilmente costruttive per tutti). Arrivare loggarsi creare cartella di lavoro scaricare files.

Lavoro a Casa Dovete avere una copia di Matlab o Octave installata e funzionante A CASA. Svolgete sempre gli esercizi che assegno di volta in volta, TESTATE I PROGRAMMI con dati diversi e provate a fare varianti di vostra invenzione. Confrontatevi con i colleghi e lavorate in gruppo, se emergono difficoltà contattatemi o fate domande a fine lezione. Meglio EVITARE DI... Migliori AMICI Prendere appunti su carta Help di Matlab Slides del corso Google Testi consigliati Compagni di corso Non provare a fare i propri programmi Dimenticare di copiare i programmi Dimenticare di fare gli esercizi. Lab. 3-5 of 16

Lab. 3-6 of 16 Calcoli iterativi Supponiamo di voler eseguire un operazione identica su delle variabili di valore noto ma che può variare più volte, ma un numero noto di volte. Esempi Dividere un numero x per y 1, y 2,..., y n, Valutare la radice 2 n -esima del numero x, Dato x 0 e la funxione f valutare x k+1 = f(x k ) per k = 1, 2,..., n. In questi casi si ricorrerà in Matlab (e praticamente in ogni linguaggio di programmazione) al ciclo for

Sintassi ciclo for Lab. 3-7 of 16 Sintasssi for k=v istruzione 1 istruzione 2......... istruzione m end Dove v è un vettore di valori per il parametro k. viene posto k = v(1) e vengono eseguite istr 1,... istr m, poi k = v(2) ed eseguite le istruzioni,...... non serve cambiare il valore di k a mano (si veda poi il ciclo while). non serve inizializzare la variabile k.

Esercizi Elementari Lab. 3-8 of 16 Es. 1. Tempo 1 minuto... Provateci! La successione di Fibonacci è definita come x 0 = 1 x 1 = 1 x k+1 = x k + x k 1 k 2. Si scriva un m-file che calcoli i primi 100 numeri di Fibonacci. Es. 2 (svolto) La serie di Mengoli è S = S n = n k=1 1 k(k+1) = k=1 n n+1 1. 1, è noto che k(k+1) Si implementi un m-file che calcoli la somma di Mengoli per un dato n. Cosa succede per n molto grande?

Esercizi Evoluti Lab. 3-9 of 16 Es. 3 (svolto) E noto che sin(x) x per x 0. Si usi la formula di duplicazione del seno per ricavare la formula di triplicazione sin(3α) = 3 sin(α) 4 sin 3 (α), poi si implementi un m-file che approssimi il seno di x [0, π] utilizzando le formule sopra. Si valutino e plottino gli errori delle approssimazioni successive. Si migliori poi l approssimazione usando lo sviluppo di Taylor del seno in 0 arrestato a x 5. Es. 4 (per casa) Si faccia lo stesso per il coseno. Qualcosa di simile per il logaritmo naturale e l esponenziale.

Cancellazione Numerica I Lab. 3-10 of 16 In aritmetica finita in generale f(x) := (1 + x) 1 x. Esempio (svolto) Si scriva un m-file che valuti f in x = 10 k per k = 0, 1,..., 15 e per x = 2 z k, x = 3 w k, dove z k := ceil(k log(10)/ log(2)) e w k := ceil(k log(10)/ log(2)) sono scelti per rendere gli errori comparabili. Si producano grafici degli errori relativi. Esempio: 3 minuti Si plotti la funzione f(x) := (1 cos(x))/x 2 nell intervallo [ 2 10 7, 2 10 7 ] e una versione stabilizzata g(x) della stessa funzione. Si plottil errore relativo.

Cancellazione Numerica II Lab. 3-11 of 16 Equazione di 2 o grado: 5 minuti... La formula risolutiva delle equazioni di secondo grado può soffrire di instabilità causata dal segno meno sotto radice. Si scriva uno script che plotti la massima radice dell equazione ax 2 + bx + c = 0 per a = 10 ( 2k 3), b = 1 e c = 10 ( k 3), k = 1 : 10 sia con la formula usuale che con quella stabilizzata x 1 = 2c b + b 2 4ac. Si eseguano plot di x i e x 1 e del suo errore relativo, del valore di ax 2 1 + bx 1 + c al variare di k.

Costrutto logico while Vogliamo ripetere operazioni un numero ignoto di volte usiamo il ciclo while. Sintasssi di while while condizione logica istruzione 1 istruzione 2......... istruzione m end la condizione logica può dipendere da variabili su cui vengono compiute operazioni se la condizione logica dipende da un numero di iterazioni la variabile di iterazione va avanzata manualmente e dichiarata prima del ciclo. uguale logico si scrive k ==.... Lab. 3-12 of 16

Esempi Elementari Lab. 3-13 of 16 Il programma n=10; k=1; while k =n disp(k) k=k+1 end è del tutto equivalente n=10; for k=1:n disp(k) end tranne che per il fatto che dopo il ciclo while k = n + 1 mentre nel for k = n.

Radice quadrata Lab. 3-14 of 16 Algoritmo di Erone L algoritmo di Erone per il calcolo di x = α è definito come x 0 = r; x k+1 = 1 2 (x k + r/x k ) k 1, dove si sia scelto r 2 /9 α. Esercizio: 5 minuti Si implementi tale algoritmo includendo un ciclo (while) che testi la condizione su r ed eventualmente porti modifiche alla variabile. Si calcoli con questo algoritmo la radice di 2 con 15 passi e si plottino i risultati riguardo agli errori delle iterazioni.

Costrutto if (elseif else) Lab. 3-15 of 16 Si vogliono eseguire operazioni opzionali (solo se si verificano certe condizioni) Sintasssi if condizione logica 1 istruzione 1 istruzione 2 elseif condizione logica 2 istruzione 3 istruzione 4 else......... istruzione m end

Esercizi Lab. 3-16 of 16 Divisione Intera Si implementi l algoritmo della divisione intera x/y (ciclo while) per x, y assegnati con un pre-test (costrutto if) su x y. Erone modificato Si modifichi il programma precedente sull algoritmo di Erone per testare in anticipo se il radicando è positivo. Se è negativo il programma deve stampare a schermo un messaggio di errore.