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