Algoritmi stabili e instabili
|
|
|
- Lelio Moro
- 7 anni fa
- Просмотров:
Транскрипт
1 Algoritmi stabili e instabili Laboratorio di Calcolo Numerico 13 Marzo 2018
2 Vettori in MATLAB Finora abbiamo pensato alle variabili utilizzate come semplici valori numerici (variabili scalari). In realtà, in MATLAB ogni variabile è una struttura di tipo vettoriale (ARRAY). ARRAY > lista di valori ordinati secondo uno o più indici. ARRAY ad un indice > VETTORE ARRAY a due indici > MATRICE Esempio (array ad un indice):
3 Vettori in MATLAB Memorizzare un vettore riga in MATLAB: >> x = [ ] Gli spazi delimitano le singole componenti del vettore riga Memorizzare un vettore colonna in MATLAB: >> x = [1; -1; 3; 4; 0] I punti e virgola delimitano le singole componenti del vettore colonna Esempio: visualizzare il valore della quarta componente del vettore (riga o colonna): >> x(4) ans = 4 Esempio: assegnare un valore alla terza componente del vettore (riga o colonna): >> x(3) = -2 Utilizzare i comandi who e whos per verificare quali sono le variabili presenti nell ambiente di lavoro e le informazioni sulla loro dimensione, spazio occupato in memoria e tipo di variabile.
4 Vettori in MATLAB - Notazione due punti Costruzione di vettori equispaziati: vettore = inizio:passo:fine >> x = 0:0.1:0.5 x = Comando linspace: linspace(inizio,fine,numero di punti) >> x = linspace(0,0.5,6) Il numero di punti è opzionale, se omesso viene posto uguale a 100. Estrarre parte delle compenenti di un vettore: >> y = x(2:4) y =
5 Grafico di funzioni: comando plot Visualizzare il grafico di una funzione NON predefinita in MATLAB 1 Vettorizzazione della funzione >> x = linspace(0,pi,10); >> y = ( *x.^2+313*x.^4)./( *x.^2+13*x.^4); 2 Operazioni vettoriali: i valori della funzione in corrispondenza della successione di punti definita dal vettore x sono creati con una singola istruzione vettoriale e assegnati al vettore y. 3 Comando plot (principale function grafica di MATLAB) >> plot(x,y) Produce il grafico dei punti (x i, y i ). I due vettori devono avere la stessa lunghezza.
6 Definizione di funzioni: funzioni anonime 1 Se vogliamo definire in MATLAB una funzione del tipo: f(arg1, arg2,..) = espressione 2 La sintassi è la seguente: >> f ( *x.^2+313*x.^4)./( *x.^2+13*x.^4) 3 Dopo il è indicata la variabile in ingresso della funzione (tra parentesi) 4 Posso valutare la funzione in z = 0: >> f(z) ans = 1
7 Precisione numerica Quando si opera in aritmetica finita, non sempre un operazione tra due o più numeri macchina produce un risultato. In particolare si ha: overflow quando l operazione produce come risultato un numero più grande del massimo numero rappresentabile underflow quando l operazione produce come risultato un numero più piccolo del minimo numero rappresentabile realmax massimo numero macchina positivo realmin minimo numero macchina positivo eps precisione di macchina ( ) Inf, ovvero numero maggiore di realmax -Inf, ovvero numero minore di -realmax NaN Not-a-Number, tipicamente il risultato di operazioni illecite come 0, 0/0 e / ( ) Il più piccolo numero che sommato a 1 fornisce un numero maggiore di 1.
8 Stabilità numerica - schema instabile Vogliamo scrivere un programma per il calcolo dei seguenti integrali I n : I n = 1 e 1 0 x n e x dx, n = 0,..., 20. (1) Dall integrazione per parti si ottiene la seguente formula ricorrente: I n = 1 n e 1 0 x n 1 e x dx = 1 ni n 1, (2) con I 0 = 1 1/e. L applicazione diretta di questa formula ricorrente è instabile, cioè amplifica gli errori di arrotondamento.
9 Stabilità numerica - schema stabile Dalla formula I n = 1 ni n 1 possiamo ottenere il seguente schema all indietro: I n 1 = (1 I n), n = 20, 19,..., 1. (3) n Sapendo che lim n I n = 0, approssimiamo I n = 0 per un n sufficientemente grande (e.g. I 20 = 0). L applicazione di questa formula è stabile.
10 Stabilità numerica - ESERCIZIO 1 Implementare i due schemi (stabile e instabile) per il calcolo di I n : I n = 1 e 1 0 x n e x dx, n = 0,..., 20. (4) Per lo scopo scrivere due script distinti in MATLAB.
11 Stabilità numerica - SOLUZIONE... 1 % C a l c o l o d i n i n t e g r a l i con f o r m u l a r i c o r s i v a p e r l o s t u d i o 2 % d e l l a s t a b i l i t a numerica CASO INSTABILE 3 % 4 % I n i z i a l i z z a z i o n e d e l l e v a r i a b i l i % C i c l o f o r 7 f o r... % C o n d i z i o n e 8 i n t = 1. 0 n i n t ; % C a l c o l o i n t e g r a l e 9... % Stampa a schermo l e v a r i a b i l i n e i n t 10 end ATTENZIONE: la sequenza di istruzioni all interno del ciclo for vale solo per il caso instabile.
12 Stabilità numerica - ESERCIZIO 2 Implementare i due schemi (stabile e instabile) per il calcolo di I n utilizzando le variabili come vettori e plottare i risultati ottenuti. I n = 1 e 1 0 x n e x dx, n = 0,..., 20. (5) Per lo scopo scrivere due script distinti in MATLAB.
13 Stabilità numerica - SOLUZIONE utilizzando i vettori 1 c l e a r a l l 2 c l o s e a l l 3 % program s t a b i l e 4 nmax = 2 0 ; 5 n = nmax ; 6 i n t n ( n ) = 0. 0 ; 7 while ( n > 1) 8 i n t n ( n 1) = ( 1. 0 i n t n ( n ) ) / n ; 9 n = n 1 ; % Aggiornamento v a r i a b i l e n 10 f p r i n t f ( %e \n, i n t n ( n ) ) 11 end 12 % P l o t d e l r i s u l t a t o 13 x = l i n s p a c e ( 1, 2 0, nmax ) ; 14 p l o t ( x, i n t n, ) ATTENZIONE: la sequenza di istruzioni all interno del ciclo while vale solo per il caso stabile.
14 ESERCIZI 1 Calcolare in MATLAB l espressione ((x + 1) 1)/x per x = Discutere l errore numerico commesso. 2 Valutare le espressioni equivalenti p1(x) = (x 1) 7 e p2(x) = x 7 7x x 5 35x x 3 21x 2 + 7x 1 in x = [0.99, 1.01] con passo x = e discutere il risultato. Plottare il grafico delle funzioni nell intervallo considerato. 3 Scrivere uno script per il calcolo delle radici di un equazione di secondo grado, x 1 e x 2, e verificare il risultato nel caso in cui: a,c = 1; b = 5 a,c = 1; b = 10 7 Verificare la corretezza del risultato controllando che x 1 x 2 = c/a. Modificare lo script per evitare il fenomeno della cancellazione numerica: Ricavare la radice x 1 non affetta da errori di cancellazione numerica (dipende dal segno di b). Calcolare la seconda radice x 2 come c/(a x 1).
Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione
Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione Claudia Zoccarato E-mail: [email protected] Dispense: Moodle Dipartimento ICEA 22 Marzo 2017 Vettori in
Programmare con MATLAB c Parte 5 Cicli: for e while
Programmare con MATLAB c Parte 5 Cicli: for e while Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 La notazione due punti 2 Ciclo: for 3 Ciclo con controllo: while
Complementi di Matematica e Calcolo Numerico A.A Laboratorio 2 - Introduzione a MATLAB
Complementi di Matematica e Calcolo Numerico A.A. 2010-2011 Laboratorio 2 - Introduzione a MATLAB Che cos è? Programmare con Matlab: Script-files È un file con estensione.m (ad esempio: myfile.m). Contiene
Soluzione di Equazioni non lineari
Soluzione di Equazioni non lineari Corso di Calcolo Numerico 20 Marzo 2018 Function in MATLAB Lo scopo di una funzione è quello di prendere in input un certo numero di valori, fare alcune operazioni con
Scilab. Introduzione a Scilab - Vettori. Corso di Informatica CdL: Chimica. Claudia d'amato.
Scilab Corso di Informatica CdL: Chimica Introduzione a Scilab - Vettori Claudia d'amato [email protected] Scilab Introduzione Ambiente matematico e di simulazione numerica sviluppato per la realizzazione
INTRODUZIONE A MATLAB
INTRODUZIONE A MATLAB INTRODUZIONE A MATLAB MATLAB (MATrix LABoratory) è un linguaggio di programmazione per applicazioni scientifiche (elaborazione numerica dei segnali, progetto di simulatori, sintesi
Numeri di macchina. Lucia Gastaldi. DICATAM - Sez. di Matematica,
Numeri di macchina Lucia Gastaldi DICATAM - Sez. di Matematica, http://lucia-gastaldi.unibs.it Indice 1 Rappresentazione dei numeri Formato di memorizzazione dei numeri Arrotondamento di un numero reale
Vettori e Matrici. Corso di Calcolo Numerico. 24 Aprile 2018
Vettori e Matrici 24 Aprile 2018 Richiami In MATLAB, ogni variabile ha una struttura di tipo vettoriale o array. Un array è un insieme di valori ordinati, cioè memorizza più dati all interno di una struttura
CORSO DI LABORATORIO DI INFORMATICA
CORSO DI LABORATORIO DI INFORMATICA Corso di Laurea Triennale in Ingegneria Elettrica a.a. 2015/2016 Docente: Ing. Domenico Amalfitano Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione
MATLAB Elementi di grafica Costrutti di programmazione
MATLAB Elementi di grafica Costrutti di programmazione Operazioni punto Le operazioni punto agiscono su array che abbiano le stesse dimensioni:.* prodotto elemento per elemento./ divisione elemento per
I numeri reali e la loro rappresentazione
I numeri reali e la loro rappresentazione 1 Alcune figure di questi appunti riportano nei commenti esempi in linguaggio MATLAB. In tali esempi i caratteri di peso normale sono prodotti dal computer mentre
Esame di Calcolo Numerico per Informatica A.A. 2010/11: testo soluzioni Proff. S. De Marchi e M. R. Russo 12 luglio 2011
Esame di Calcolo Numerico per Informatica A.A. 200/: testo soluzioni Proff. S. De Marchi e M. R. Russo 2 luglio 20 L esame consiste di 4 domande aperte e 0 esercizi a risposta multipla. Per gli esercizi
Registro di Matematica Applicata /18 - Dott.ssa L. Fermo 2
Registro delle lezioni di CALCOLO SCIENTIFICO E METODI NUMERICI Corsi di Laurea in Informatica 6 CFU - A.A. 2018/2019 docente: Dott.ssa Luisa Fermo ultimo aggiornamento: 15 dicembre 2018 1. Martedì 25/09/2018,
Corso di laurea in Matematica Laboratorio di Programmazione e Calcolo Prof. A. Murli. Esercizi di riepilogo - LABORATORIO
Cognome: Nome: 1 Matricola: Corso di laurea in Matematica Laboratorio di Programmazione e Calcolo Prof. A. Murli Esercizi di riepilogo - LABORATORIO Creare una directory nominata cognome nome dove cognome
Corso di Matematica per la Chimica
Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica e Economia Università della Basilicata a.a. 2014-15 Propagazione degli errori introdotti nei dati
Equazioni e sistemi non lineari
Equazioni e sistemi non lineari Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 Ricerca degli zeri di una funzione Problema e definizioni Metodo di Newton-Raphson
1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.
Esercizi di Matlab L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi. Esempio Consideriamo la matrice A formata da n = righe e m = colonne M = 5 6 7 8. 9 0
Equazioni e sistemi non lineari
Equazioni e sistemi non lineari Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 Ricerca degli zeri di una funzione Problema e definizioni Metodo di Newton-Raphson
Introduzione al MATLAB c Parte 2 Funzioni
Introduzione al MATLAB c Parte 2 Funzioni Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 Funzioni matematiche Assegnazione di funzioni 2 Grafico di funzione in
Capitolo 1. Esercizi a.a Esercizi. Esercizio 1.1 Dimostrare che il metodo iterativo
Capitolo Esercizi a.a. 206-7 Esercizi Esercizio. Dimostrare che il metodo iterativo x k+ = Φ(x k ), k = 0,,..., se convergente a x, deve verificare la condizione di consistenza x = Φ(x ). Ovvero, la soluzione
Prove d esame Esercizi con Matlab
Prove d esame Esercizi con Matlab Andrea Corli 16 settembre 2015 Sono qui raccolti alcuni esercizi relativi a Matlab assegnati nelle prove d esame (dal 2011 al 2014) del Corso di Analisi Matematica I (semestrale,
Laboratorio di Calcolo Numerico
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 Costrutti
Progetto Matlab N 2. Calcolo Numerico 6 CFU. Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014
Progetto Matlab N 2 Calcolo Numerico 6 CFU Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014 Procedimento 1. Scrivere una function che implementi il prodotto matrice-vettore AX con A matrice
Corso di laurea in Informatica Calcolo Numerico Prof.ssa L. D Amore 12 Dicembre 2008 Esercizi di riepilogo tipo prova d esame
1 Cognome: Nome: Matricola: Corso di laurea in Informatica Calcolo Numerico Prof.ssa L. D Amore 12 Dicembre 2008 Esercizi di riepilogo tipo prova d esame 1. Si consideri il sistema aritmetico f. p. a precisione
Introduzione a Matlab
INFORMATICA B Ingegneria Elettrica Introduzione a Matlab Introduzione a Matlab Matlab (MATrix LABoratory) è uno strumento per il calcolo scientifico ed ingegneristico Matlab facilita lo sviluppo di programmi
Informatica Applicata al Suono Tutorial Matlab
Prof. Mario Malcangi [email protected] MATLAB è un linguaggio di alto livello e un ambiente interattivo per il calcolo numerico, l'analisi e la visualizzazione dei dati e la programmazione. MATLAB consente
