calcolo scientifico - gervasio · il calcolo scienti co e quella disciplina che, partendo dal...
Post on 25-Jul-2020
20 Views
Preview:
TRANSCRIPT
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 1
CALCOLO SCIENTIFICO
A.A. 2020/21
Paola Gervasio
e-mail: paola.gervasio@unibs.it
web: https://paola-gervasio.unibs.it
Il Calcolo Scientifico e quella disciplina che, partendo dal modellomatematico,
notimesepformula un modello numerico,
notiimeseppropone metodi efficienti per calcolare la soluzionecomputazionale ed infine
notiiimesepverifica la correttezza e l’accuratezza dei risultati ottenuti alcomputer, mediante un confronto con la realta (datisperimentali).
Abbiamo bisogno di: Dobbiamo tenere sotto controllo:
– matematica – gli errori– calcolatori – i costi computazionali
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 2
Il Calcolo Scientifico e quella disciplina che, partendo dal modellomatematico,
notimesepformula un modello numerico,
notiimeseppropone metodi efficienti per calcolare la soluzionecomputazionale ed infine
notiiimesepverifica la correttezza e l’accuratezza dei risultati ottenuti alcomputer, mediante un confronto con la realta (datisperimentali).
Abbiamo bisogno di: Dobbiamo tenere sotto controllo:
– matematica – gli errori– calcolatori – i costi computazionali
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 3
Alcuni esempi:
Google search
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 4
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 5
Previsioni e/o simulazioni di eventi naturali
University of HamburgKlima Campus
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 6
Supporto alla medicina
https://flowvisioncfd.com/en/flowvision-applications/cardiac-simulationsSimulazione numerica dell’elettromeccanica del cuore.Ricostruzione di geometrie 3D partendo da immagini TAC 2D (da utilizzare comegeometrie per le simulazioni numeriche)
Computer graphics, rendering, textiles simulation,...
10000 palloncini indipendenti collisione di corpi
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 7
Competizioni sportive di alto livello
Renault F1 Alinghi
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 8
problema
numerico
soluzione
computazionalemodello
numericamodellistica
modellomatematico
errori
realematematica
modellistica
verifica del modello numerico
processo
validazione del
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 9
Dal problema (→ cs →) alla soluzione(cs = calcolo scientifico)
1. problema reale: una ditta che produce abiti per bambini vichiama e vi chiede di scrivere un’app che, note le altezze di uncampione di 1000 individui, dica loro quanti pezzi di ogni modellodella collezione bisogna produrre per ogni taglia (le taglie vanno inbase all’altezza).
Dati: altezze di un campione di 1000 individui
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 10
Dal problema (→ cs →) alla soluzione2. modello matematico (teoria della probabilita):Dai dati estraiamo l’altezza media xm = 145cm; e consideriamo ladistribuzione di probabilita normale. La funzione di densitaassociata e
f (x) = 1000σ√
2πe−(x−xm)2/(2σ2),
di cui conosciamo la deviazionestandard σ = 3
130 140 150 160
0
20
40
60
80
100
120
140
Grazie alla teoria della probabilita sappiamo che: il numero diindividui con altezza compresa tra h1 e h2 e stimabile con
P[h1 ≤ X ≤ h2] =
∫ h2
h1
f (x)dx
Questa e la soluzione “nel continuo”, quella esatta.©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 11
Dal problema (→ cs →) alla soluzione3. modello numerico (o discreto)Peccato che la funzione e−x
2non sia integrabile elementarmente,
quindi nemmeno f (x) = 1000σ√
2πe−(x−xm)2/(2σ2) e integrabile con le
regole simboliche.
Approssimiamo I =
∫ b
af (x)dx con Iappx =
M∑k=1
f (xk)wk
I valori xk e wk caratterizzano un metodo particolare
a b x b xa
yy
y = f (x) y = f (x)
∆x
Si parla di problema discreto, soluzione discreta©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 12
Dal problema (→ cs →) alla soluzione
4. implementazione al calcolatore
Dobbiamo scrivere un programma per la risoluzione numerica delnostro problema discreto, ad esempio con Matlab:
function Imp=pmedioc(a,b,M,f)
% IMP =PMEDIOC(A,B,M,FUN) calcola una
% approssimazione dell’integrale della funzione
% FUN con M intervalli in [A,B]
H=(b-a)/M;
x = linspace(a,b,M+1);
Imp=0;
for k=2:M+1;
Imp=Imp+f((x(k-1)+x(k))/2);
end
Imp=Imp*H;
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 13
Dal problema (→ cs →) alla soluzione
5. interpretazione dei risultati sia grafici che numerici.La soluzione numerica ottenuta e soddisfacente?
M metodo 1 metodo 2
2 457.0 442.64 453.4 449.88 452.5 451.6
16 452.3 452.132 452.2 452.2
Tabella: Approssimazione di P[145 ≤ X ≤ 150] =
∫ 150
145
f (x)dx al variare del
numero M di intervalli.
Chi mi garantisce che la soluzione numerica sia una buonaapprossimazione di quella esatta? Vedremo le stime a prioridell’errore: stimano l’errore commesso senza conoscere la soluzioneesatta e ancor prima di calcolare quella numerica.
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 14
Dal problema (→ cs →) alla soluzione(cs = calcolo scientifico)
1. problema reale: Si vuole approssimare l’andamento delladifferenza di potenziale v(t) ai capi del condensatore C a partiredal tempo t = 0 in cui viene chiuso il circuito e fino alraggiungimento dello stato stazionario.
e
R1 L
i1
i2
R2
i3+
−C
Dati: R1, R2 resistenze costanti, L induttanza costante, e f.e.m, Ccapacita costanteIncognita: v(t) = differenza di pontenziale ai capi del condensatore.
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 15
Dal problema (→ cs →) alla soluzione2. modello matematico:Applicando la legge di Ohm ∆V = iR, le leggi di Kirchoff, larelazione i = C dv
dt per il condensatore, la legge ∆V = L didt per
l’induttanza, otteniamo il sistemadi1dt
=1
L(e − i1R1 − v)
dv
dt=
1
C
(i1 −
v
R2
)i1(0) = 0, v(0) = 0
Ponendo
[x1(t) = i1(t)x2(t) = v(t)
], il sistema diventa
x = Ax + bux(0) = 0y = x2
Si parla di problema nel continuo, soluzione esatta©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 16
Dal problema (→ cs →) alla soluzione3. modello numerico (o discreto)ogni passaggio al limite (e quindi ogni derivata) deve essereapprossimata, discretizzata.ad esempio:
approssimaredv
dt(t0) con un rapporto incrementale vuol dire
dv
dt(t0) ' v(t0 + h)− v(t0)
h
t0 t0 + h
t
yr1(t)
r2(t)
r1(t) = m1t + q1 con m1 = ∂v∂t
(t0),
r2(t) = m2t+q2 con m2 = v(t0+h)−v(t0)h
Si parla di problema discreto, soluzione discreta©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 17
Dal problema (→ cs →) alla soluzione4. implementazione al calcolatore
Dobbiamo scrivere un programma per la risoluzione numerica delnostro problema discreto, ad esempio con Matlab:
R1=10; R2=10; e=5; L=0.1; C=1.e-3;
A=[-R1/L -1/L; 1/C -1/(R2*C)]; bu=[e/L; 0];
f=@(t,x)A*x+bu;
tspan=[0,0.1]; x0=[0;0]; Nh=200; h=diff(tspan)/Nh;
tn=linspace(tspan(1),tspan(2),Nh+1);
un=zeros(Nh+1,2);
for n=1:Nh
wn=un(n,:).’;
w=wn+h*f(tn(n),wn);
un(n+1,:)=w.’;
end
plot(tn,un(:,1),tn,un(:,2)); grid on
legend(’i_1(t)’,’v(t)’); xlabel(’t’)
set(gca,’Fontsize’,16)
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 18
Dal problema (→ cs →) alla soluzione
5. interpretazione dei risultati sia grafici che numerici.
0 0.02 0.04 0.06 0.08 0.1
t
0
1
2
3
4
i1(t)
v(t)
0 0.02 0.04 0.06 0.08 0.1
t
0
0.5
1
1.5
2
2.5
3
i1(t)
v(t)
h = 1/160 h = 1/1000
La soluzione numerica ottenuta e soddisfacente? Chi mi garantisceche sia una buona approssimazione di quella esatta?Stima a priori sui dati: l’errore tra la soluzione esatta e quellanumerica tende a zero quando h→ 0.
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 19
In sintesi
s = 0
for k = 1 : ns = s + f(t(k))w(k)
end
programma
xc
problemafisico
xf
linguaggio diprogrammazione
xm
xn
numericomodello
matematicomodello
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 20
Gli inevitabili errori
programma
problemafisico
modello matematico
linguaggio di
programmazionemodello numerico
xn
ea
ec
em
en
xf
xm
xc
em=errore di modello, et=errore di troncamento,ea=errore di arrotondamento, ec=errore computazionale(ec = et + ea),
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 21
Errore di troncamento o di approssimazione
Nell’approssimare f ′(x0) ' f (x0 + h)− f (x0)
hcommetto un errore.
Scrivo lo sviluppo di Taylor di ordine 1 di f (x) attorno ad x0 conresto di Lagrange:
f (x) = f (x0) + f ′(x0)(x − x0) + f ′′(ξ)2 (x − x0)2
Prendo x = x0 + h:
f (x0 + h) = f (x0) + f ′(x0)(x0 + h − x0) +f ′′(ξ)
2(x0 + h − x0)2
isolo f ′(x0) e ottengo:
f ′(x0) =f (x0 + h)− f (x0)
h− f ′′(ξ)
2h
L’errore commesso e detto di troncamento perche per approssimarela f ′ ho troncato lo sviluppo di Taylor di f .
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 22
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, compresinell’insieme
[−xmax ,−xmin] ∪ {0} ∪ [xmin, xmax ]
R0
−xmax −xmin xminxmax
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 numeromacchina.
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 23
Errori di arrotondamento
Nel rappresentare un numero in macchina si commette un errore(rounding error) che dipende dalla base (β) di rappresentazioneusata e dal numero t di bit utilizzati per memorizzare la mantissadel numero:
|x − flt(x)| ≤ 1
2β1−t |x |
In Matlab β = 2 e t = 53,12β
1−t = 1.1102 · 10−16
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 24
Una formula ricorsiva inefficiente
{f2 = 2
fn+1 = 2n−0.5√
1−√
1− 41−nf 2n , n = 2, 3, ....
Si riesce a dimostrare che limn→∞
fn = π , quindi i valori fn sono
della approssimazioni di π, tanto piu accurate quanto piu n e alto.
Scriviamo una function matlab per calcolare i valori fn:
0 5 10 15 20 25 300
0.5
1
1.5
2
2.5
3
3.5
4
n
fn
0 5 10 15 20 25 300
0.5
1
1.5
2
2.5
3
3.5
4
n
fn
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 25
Una formula ricorsiva inefficiente
{f2 = 2
fn+1 = 2n−0.5√
1−√
1− 41−nf 2n , n = 2, 3, ....
Si riesce a dimostrare che limn→∞
fn = π , quindi i valori fn sono
della approssimazioni di π, tanto piu accurate quanto piu n e alto.Scriviamo una function matlab per calcolare i valori fn:
0 5 10 15 20 25 300
0.5
1
1.5
2
2.5
3
3.5
4
n
fn
0 5 10 15 20 25 300
0.5
1
1.5
2
2.5
3
3.5
4
n
fn
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 26
Una formula ricorsiva inefficiente
{f2 = 2
fn+1 = 2n−0.5√
1−√
1− 41−nf 2n , n = 2, 3, ....
Si riesce a dimostrare che limn→∞
fn = π , quindi i valori fn sono
della approssimazioni di π, tanto piu accurate quanto piu n e alto.Scriviamo una function matlab per calcolare i valori fn:
0 5 10 15 20 25 300
0.5
1
1.5
2
2.5
3
3.5
4
n
fn
0 5 10 15 20 25 300
0.5
1
1.5
2
2.5
3
3.5
4
n
fn
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 27
I risultati numericiMisuro l’errore (relativo) tra π e la sua approssimazione fn, miaspetto che l’errore vada a zero quando n→∞.
0 5 10 15 20 25 3010
−10
10−8
10−6
10−4
10−2
100
n
err
ore
L’errore scende fino ad un certo punto (per n = 15) e poiricomincia a salire.La ricetta fornita dalla teoria NON funziona in pratica, a causadella propagazione degli errori di arrotondamento.
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 28
errore= |fn−π|π
Un altro tipo di (in)efficienza
Risolvere un sistema lineare di 24 equazioni in 24 incognite con ilmetodo di Cramer richiede circa
3 · 25! = 4.65 · 1025 operazioni elementari (+,−,×, /)
Il calcolatore piu veloce al mondo (June 2020):
Supercomputer Fugaku , Fujitsu(RIKEN Center for ComputationalScience, Japan),7 299 072 computing cores,415.53 Peta-flops = 415.53 × 1015
flops
Sul Supercomputer Fugaku: 4.65 · 1025flops ' ·108 sec ' 3.5 anni
flops=FLoating point Operations Per Second
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 29
... e dal 2005 ad oggi
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 30
per risolvere un sistema lineare di 24 equazioni in 24 incognite con ilmetodo di Cramer sul calcolatore piu veloce al mondo:
1Tf= 1012 flops1Pf= 1015 flops
Servono metodi numerici piu veloci, alternativi ai metodi classiciche si usano con carta e penna.
Per fortuna, con i metodi numerici attuali, un sistema lineare24× 24 si risolve in un tempo trascurabile (molto meno di unsecondo) su un PC da tavolo (2.66 GHz, ' 42 GFlops)
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 31
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
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 32
Informazioni sul corso
©Paola Gervasio (UniBS) - Calcolo Scientifico intro.pdf 33
Testo di riferimento:A. Quarteroni, F. Saleri, P. Gervasio.Calcolo Scientifico,6a ed. Springer Italia, Milano, 2017.http: // www. springer. com/ it/ book/ 9788847039520
Modalita d’esame: Una prova in laboratorio ed una prova orale.Durante la prova in laboratorio NON sara possibile portare materiale(libri, appunti o proprie matlab function). Si potranno consultare solo lepagine del corso.
Orario di lezione:Lunedı 8:30-10:30, Lezione. MTALunedı 10:30-11:30, Laboratorio. MLAB1Martedı 8:30-10:30, Laboratorio. MLAB1
top related