calcolo scientifico
Transcript
calcolo scientifico
CALCOLO SCIENTIFICO (per le Lauree Magistrali in Ing. Informatica, Elettronica, delle Telecomunicazioni) Anno Accademico 2016/17 Paola Gervasio e-mail: [email protected] url: http://paola-gervasio.unibs.it Tel.: 030-3715734 Ricevimento: Martedı̀, 8:30-9:30, Mercoledı̀, 12:30-13:30. Ufficio, Edificio di via Valotti, piano terra c Paola Gervasio - Calcolo Scientifico - 2016/17 1 Con Calcolo Scientifico si intende quella branca delle scienze che propone/utilizza modelli matematici e tecniche di discretizzazione numerica per risolvere, con l’ausilio di calcolatori, problemi delle scienze applicate che non possono essere risolti con carta e penna. c Paola Gervasio - Calcolo Scientifico - 2016/17 2 Con Calcolo Scientifico si intende quella branca delle scienze che propone/utilizza modelli matematici e tecniche di discretizzazione numerica per risolvere, con l’ausilio di calcolatori, problemi delle scienze applicate che non possono essere risolti con carta e penna. Abbiamo bisogno di: Dobbiamo tenere sotto controllo: – matematica – calcolatori – gli errori – l’efficienza computazionale c Paola Gervasio - Calcolo Scientifico - 2016/17 3 Dal problema (→ cs →) alla soluzione (cs = calcolo scientifico) 1. problema reale: studiare come un segnale si trasmette in un cavo x R dx C dx L dx x + dx 1/(G dx) Dati: c = 1/(LC ), α = R/L + G /C e β = RG /(LC ); essendo R e L resistenza e induttanza per unità di lunghezza, Supponiamo che la corrente possa dissiparsi al suolo attraverso una capacità C ed una conduttanza G per unità di lunghezza. c Paola Gervasio - Calcolo Scientifico - 2016/17 4 Dal problema (→ cs →) alla soluzione 2. modello matematico: equazione delle onde o equazione del telegrafo (=equazione delle onde con dissipazione) Determinare il potenziale v = v (t, x), soluzione di ∂2v ∂2v ∂v − βv , t > 0, 0 ≤ x ≤ 10 − c = −α 2 2 ∂t ∂x ∂t + condizioni iniziali ed al bordo per v . Dati: c = 1/(LC ), α = R/L + G /C e β = RG /(LC ); essendo R e L resistenza e induttanza per unità di lunghezza. Supponiamo che la corrente possa dissiparsi al suolo attraverso una capacità C ed una conduttanza G per unità di lunghezza. L’eq. delle onde ha α = β = 0. Si parla di problema nel continuo, soluzione esatta c Paola Gervasio - Calcolo Scientifico - 2016/17 5 Dal problema (→ cs →) alla soluzione 3. discretizzazione numerica ogni passaggio al limite (e quindi ogni derivata) deve essere approssimata, discretizzata. ad esempio: ∂v (t0 ) con un rapporto incrementale vuol dire approssimare ∂t v (t0 + h) − v (t0 ) ∂v (t0 ) ≃ ∂t h v retta con coeff. angolare = ∂v ∂t (t0 ) retta con coeff. angolare = v (t0 +h)−v (t0 ) h t t0 t0 + h Si parla di problema discreto, soluzione discreta c Paola Gervasio - Calcolo Scientifico - 2016/17 6 Dal problema (→ cs →) alla soluzione 4. implementazione al calcolatore Dobbiamo scrivere un programma per la risoluzione numerica del nostro problema discreto, ad esempio con Matlab: for t = tspan(1)+dt:dt:tspan(2) fn1 = f(xh,t); rhs = An*[un;vn]+[dt*dt*zeta*fn1+dt*dt*(0.5-zeta)*fn; dt*theta1*fn1+theta*dt*fn1]; rhs(1) = g(xspan(1),t); rhs(N)=g(xspan(2),t); rhs(N+1:end)=rhs(N+1:end)-An211*temp1-An212*temp2; uh = L\rhs; uh = U\uh; fn = fn1; un = uh(1:N); vn = uh(N+1:end); uhg=[uhg,un]; end c Paola Gervasio - Calcolo Scientifico - 2016/17 7 Dal problema (→ cs →) alla soluzione 5. interpretazione dei risultati sia grafici che numerici. La soluzione numerica ottenuta è soddisfacente? Chi mi garantisce che sia una buona approssimazione di quella esatta? t=0.1 t=5 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 0 −0.2 −0.2 −0.4 −0.4 −0.6 −0.6 −0.8 −0.8 −1 0 −1 2 4 6 8 10 0 2 4 6 8 10 in rosso la soluzione dell’eq. del telegrafo, in blue la soluzione dell’eq. delle onde c Paola Gervasio - Calcolo Scientifico - 2016/17 8 In sintesi xf Problema Matematico x= Z Problema Fisico b x T φ(t)dt 0 c Paola Gervasio - Calcolo Scientifico - 2016/17 Problema Numerico xn = X φ(tk )αk k 9 Gli inevitabili errori xf em Problema Matematico x= Z Problema Fisico T ec φ(t)dt 0 b x Problema Numerico et xn = X ea φ(tk )αk k em =errore di modello, ea =errore di arrotondamento, (ec = et + ea ), c Paola Gervasio - Calcolo Scientifico - 2016/17 et =errore di troncamento, ec =errore computazionale 10 Errore di troncamento o di approssimazione Nell’approssimare f ′ (x0 ) ≃ c Paola Gervasio - Calcolo Scientifico - 2016/17 f (x0 + h) − f (x0 ) commetto un errore. h 11 Errore di troncamento o di approssimazione f (x0 + h) − f (x0 ) commetto un errore. h Scrivo lo sviluppo di Taylor di ordine 1 di f (x) attorno ad x0 con resto di Lagrange: Nell’approssimare f ′ (x0 ) ≃ f (x) = f (x0 ) + f ′ (x0 )(x − x0 ) + c Paola Gervasio - Calcolo Scientifico - 2016/17 f ′′ (ξ) 2 (x − x0 )2 12 Errore di troncamento o di approssimazione f (x0 + h) − f (x0 ) commetto un errore. h Scrivo lo sviluppo di Taylor di ordine 1 di f (x) attorno ad x0 con resto di Lagrange: Nell’approssimare f ′ (x0 ) ≃ f (x) = f (x0 ) + f ′ (x0 )(x − x0 ) + Prendo x = x0 + h: f (x0 + h) = f (x0 ) + f ′ (x0 )(x0 + h − x0 ) + c Paola Gervasio - Calcolo Scientifico - 2016/17 f ′′ (ξ) 2 (x − x0 )2 f ′′ (ξ) (x0 + h − x0 )2 2 13 Errore di troncamento o di approssimazione f (x0 + h) − f (x0 ) commetto un errore. h Scrivo lo sviluppo di Taylor di ordine 1 di f (x) attorno ad x0 con resto di Lagrange: Nell’approssimare f ′ (x0 ) ≃ f (x) = f (x0 ) + f ′ (x0 )(x − x0 ) + Prendo x = x0 + h: f (x0 + h) = f (x0 ) + f ′ (x0 )(x0 + h − x0 ) + isolo f ′ (x0 ) e ottengo: f ′ (x0 ) = c Paola Gervasio - Calcolo Scientifico - 2016/17 f ′′ (ξ) 2 (x − x0 )2 f ′′ (ξ) (x0 + h − x0 )2 2 f (x0 + h) − f (x0 ) f ′′ (ξ) − h h 2 14 Errore di troncamento o di approssimazione f (x0 + h) − f (x0 ) commetto un errore. h Scrivo lo sviluppo di Taylor di ordine 1 di f (x) attorno ad x0 con resto di Lagrange: Nell’approssimare f ′ (x0 ) ≃ f (x) = f (x0 ) + f ′ (x0 )(x − x0 ) + Prendo x = x0 + h: f (x0 + h) = f (x0 ) + f ′ (x0 )(x0 + h − x0 ) + isolo f ′ (x0 ) e ottengo: f ′ (x0 ) = f ′′ (ξ) 2 (x − x0 )2 f ′′ (ξ) (x0 + h − x0 )2 2 f (x0 + h) − f (x0 ) f ′′ (ξ) − h h 2 L’errore commesso è detto di troncamento perchè per approssimare la f ′ ho troncato lo sviluppo di Taylor di f . c Paola Gervasio - Calcolo Scientifico - 2016/17 15 L’artimetica di macchina Su un calcolatore non si possono rappresentare tutti i numeri reali, ma solo quelli con un numero finito di cifre decimali, compresi nell’insieme [−xmax , −xmin ] ∪ {0} ∪ [xmin , xmax ] −xmax −xmin xmin xmax R 0 In Matlab: xmin = 2.2251 · 10−308 , xmax = 1.7977 · 10308 . I comandi matlab sono: realmin e realmax Matlab usa base β = 2 e 8 Bytes per memorizzare un numero macchina. c Paola Gervasio - Calcolo Scientifico - 2016/17 16 Errori di arrotondamento Nel rappresentare un numero in macchina si commette un errore (rounding error) che dipende dalla base (β) di rappresentazione usata e dal numero t di bit utilizzati per memorizzare la mantissa del numero: 1 |x − flt (x)| ≤ β 1−t |x| 2 c Paola Gervasio - Calcolo Scientifico - 2016/17 17 Errori di arrotondamento Nel rappresentare un numero in macchina si commette un errore (rounding error) che dipende dalla base (β) di rappresentazione usata e dal numero t di bit utilizzati per memorizzare la mantissa del numero: 1 |x − flt (x)| ≤ β 1−t |x| 2 In Matlab β = 2 e t = 53, 1 1−t = 1.1102 · 10−16 2β c Paola Gervasio - Calcolo Scientifico - 2016/17 18 Una formula ricorsiva inefficiente ( f2 = 2 fn+1 = 2n−0.5 q c Paola Gervasio - Calcolo Scientifico - 2016/17 1− p 1 − 41−n fn2 , n = 2, 3, .... 19 Una formula ricorsiva inefficiente ( f2 = 2 fn+1 = 2n−0.5 q 1− p 1 − 41−n fn2 , n = 2, 3, .... Si riesce a dimostrare che lim fn = π , quindi i valori fn sono n→∞ della approssimazioni di π, tanto più accurate quanto più n è alto. c Paola Gervasio - Calcolo Scientifico - 2016/17 20 Una formula ricorsiva inefficiente ( f2 = 2 fn+1 = 2n−0.5 q 1− p 1 − 41−n fn2 , n = 2, 3, .... Si riesce a dimostrare che lim fn = π , quindi i valori fn sono n→∞ della approssimazioni di π, tanto più accurate quanto più n è alto. Scriviamo una function matlab per calcolare i valori fn : 4 3.5 3 fn 2.5 2 1.5 1 0.5 0 0 5 10 n 15 20 c Paola Gervasio - Calcolo Scientifico - 2016/17 25 30 21 Una formula ricorsiva inefficiente ( f2 = 2 fn+1 = 2n−0.5 q 1− p 1 − 41−n fn2 , n = 2, 3, .... Si riesce a dimostrare che lim fn = π , quindi i valori fn sono n→∞ della approssimazioni di π, tanto più accurate quanto più n è alto. Scriviamo una function matlab per calcolare i valori fn : 4 4 3.5 3.5 fn 3 2.5 fn 3 2.5 2 1.5 2 1.5 1 1 0.5 0.5 0 0 5 10 n 15 20 c Paola Gervasio - Calcolo Scientifico - 2016/17 25 30 0 0 5 10 n 15 20 25 30 22 I risultati numerici Misuro l’errore (relativo) tra π e la sua approssimazione fn , mi aspetto che l’errore vada a zero quando n → ∞. 0 |π − fn |/π 10 −2 10 −4 10 −6 10 −8 10 −10 10 0 c Paola Gervasio - Calcolo Scientifico - 2016/17 5 10 15 n 20 25 30 23 I risultati numerici Misuro l’errore (relativo) tra π e la sua approssimazione fn , mi aspetto che l’errore vada a zero quando n → ∞. 0 |π − fn |/π 10 −2 10 −4 10 −6 10 −8 10 −10 10 0 5 10 15 n 20 25 30 L’errore scende fino ad un certo punto (per n = 15) e poi ricomincia a salire. La ricetta fornita dalla teoria NON funziona in pratica, a causa della propagazione degli errori di arrotondamento. c Paola Gervasio - Calcolo Scientifico - 2016/17 24 Un altro tipo di (in)efficienza Risolvere un sistema lineare di 24 equazioni in 24 incognite con il metodo di Cramer richiederebbe circa 3 · 25! = 4.65 · 1025 operazioni elementari (+, −, ×, /) Il calcolatore più veloce al mondo (June 2016): Sunway TaihuLight (National Supercomputing Center in Wuxi, China) con 10,649,600 computing cores in 40,960 nodes, 93 Peta-flops = 93 × 1015 flops Sul Sunway TaihuLight: 4.65 · 1025 flops ≃ 5 · 108 sec ≃ 16 anni flops=FLoating point Operations Per Second c Paola Gervasio - Calcolo Scientifico - 2016/17 25 ... e dal 2005 ad oggi per risolvere un sistema lineare di 24 equazioni in 24 incognite con il metodo di Cramer sul calcolatore più veloce al mondo: BlueGene/L IBM (137 Teraflops) 10000 years 1000 K computer, Fujitsu (8 Petaflops) Roadrunner IBM (1 Petaflops) Tianhe-2 (33 Petaflops) 100 TaihuLight (93 Petaflops) 10 2005 2007 c Paola Gervasio - Calcolo Scientifico - 2016/17 2009 2011 2013 2015 26 Servono metodi numerici più veloci, alternativi ai metodi classici che si usano con carta e penna. c Paola Gervasio - Calcolo Scientifico - 2016/17 27 Servono metodi numerici più veloci, alternativi ai metodi classici che si usano con carta e penna. Per fortuna, con i metodi numerici attuali, un sistema lineare 24 × 24 si risolve in un tempo trascurabile (molto meno di un secondo) su un PC da tavolo (2.66 GHz, ≃ 42 GFlops) c Paola Gervasio - Calcolo Scientifico - 2016/17 28 Contenuti del corso CALCOLO SCIENTIFICO (6CFU) 1 Istruzioni fondamentali di Matlab 2 Propagazione di errori di arrotondamento 3 Risoluzione di equazioni non lineari 4 Risoluzione di sistemi lineari di grandi dimensioni 5 Approssimazione di funzioni e dati 6 Integrazione e derivazione numerica 7 Approssimazione di equazioni differenziali ordinarie c Paola Gervasio - Calcolo Scientifico - 2016/17 29 Informazioni sul corso Testo di riferimento: A. Quarteroni, F. Saleri, P. Gervasio. Calcolo Scientifico, 5a ed. Springer Italia, Milano, 2012. c Paola Gervasio - Calcolo Scientifico - 2016/17 30 Informazioni sul corso Testo di riferimento: A. Quarteroni, F. Saleri, P. Gervasio. Calcolo Scientifico, 5a ed. Springer Italia, Milano, 2012. Modalità d’esame: Una prova in laboratorio ed una prova orale. Durante la prova in laboratorio NON sarà possibile portare materiale (libri, appunti o proprie matlab functions). Si potranno consultare solo le pagine del corso. c Paola Gervasio - Calcolo Scientifico - 2016/17 31 Informazioni sul corso Testo di riferimento: A. Quarteroni, F. Saleri, P. Gervasio. Calcolo Scientifico, 5a ed. Springer Italia, Milano, 2012. Modalità d’esame: Una prova in laboratorio ed una prova orale. Durante la prova in laboratorio NON sarà possibile portare materiale (libri, appunti o proprie matlab functions). Si potranno consultare solo le pagine del corso. Orario di norma: Lunedı̀ 8:30-10:30, Lezione. MTA Lunedı̀ 10:30-11:30, Laboratorio. MLAB1 Mercoledı̀ 8:30-10:30, Laboratorio. MLAB1 c Paola Gervasio - Calcolo Scientifico - 2016/17 32