1
SOMMARIO
1. LEZIONE 1 ................................................................................................................................................. 5
Introduzione......................................................................................................................................... 5
Argomenti del corso............................................................................................................................. 5
Errori di arrotondamento .................................................................................................................... 5
Definizione di algoritmo ...................................................................................................................... 5
Rappresentazione interi ...................................................................................................................... 5
Rappresentazione reali ........................................................................................................................ 5
2. LEZIONE 2 ............................................................................................................................................... 13
Rappresentazione numeri reali ......................................................................................................... 13
Numeri di macchina ........................................................................................................................... 13
Introduzione Matlab .......................................................................................................................... 13
Funzione eps ...................................................................................................................................... 13
Funzione realmax ............................................................................................................................... 13
Funzione realmin ............................................................................................................................... 13
3. LEZIONE 3 ............................................................................................................................................... 24
Riepilogo ............................................................................................................................................ 24
Operazioni in macchina ..................................................................................................................... 24
Algoritmo per il calcolo della precisione di macchina ....................................................................... 24
4. LEZIONE 4 (MATLAB) .............................................................................................................................. 31
5. LEZIONE 5 ............................................................................................................................................... 38
Come si propaga l’errore ................................................................................................................... 38
Errore di cancellazione....................................................................................................................... 38
Metodi iterativi .................................................................................................................................. 38
6. LEZIONE 6 ............................................................................................................................................... 52
Riepilogo metodo bisezione .............................................................................................................. 52
Molteplicità di una radice .................................................................................................................. 52
Algoritmo bisezione ........................................................................................................................... 52
7. LEZIONE 7 (MATLAB) .............................................................................................................................. 60
8. LEZIONE 8 ............................................................................................................................................... 63
Metodo di bisezione .......................................................................................................................... 63
Metodo di NEWTON .......................................................................................................................... 63
Teorema di convergenza del metodo di NEWTON ............................................................................ 63
2
9. LEZIONE 9 ............................................................................................................................................... 79
Riepilogo ............................................................................................................................................ 79
Algoritmo del metodo di NEWTON ................................................................................................... 79
Metodo delle secanti ......................................................................................................................... 79
10. LEZIONE 10 (MATLAB) ........................................................................................................................ 86
11. LEZIONE 11 ......................................................................................................................................... 87
Metodo delle secanti ......................................................................................................................... 87
Interpolazione polinomiale ............................................................................................................... 87
Polinomio interpolante nella forma di Lagrange .............................................................................. 87
12. LEZIONE 12 ......................................................................................................................................... 96
Interpolazione polinomiale ............................................................................................................... 96
Polinomio interpolante nella forma di NEWTON .............................................................................. 96
13. LEZIONE 13 (MATLAB) ...................................................................................................................... 104
Manca .............................................................................................................................................. 104
14. LEZIONE 14 ....................................................................................................................................... 104
Riepilogo .......................................................................................................................................... 104
Errore di interpolazione ................................................................................................................... 104
15. LEZIONE 15 ....................................................................................................................................... 112
Difetti dell’interpolazione polinomiale con nodi equidistanti ........................................................ 112
Polinomiali a tratti ........................................................................................................................... 112
Spline................................................................................................................................................ 112
16. LEZIONE 16 (MATLAB) ...................................................................................................................... 116
Mancante ......................................................................................................................................... 116
17. LEZIONE 17 ....................................................................................................................................... 117
Approssimazione ai minimi quadrati polinomiale .......................................................................... 117
Approssimazione di integrali ........................................................................................................... 117
18. LEZIONE 18 ....................................................................................................................................... 127
Riepilogo .......................................................................................................................................... 127
Formule composite .......................................................................................................................... 127
19. LEZIONE 19 (MATLAB) ...................................................................................................................... 132
Mancante ......................................................................................................................................... 132
20. LEZIONE 20 ....................................................................................................................................... 132
Riepilogo .......................................................................................................................................... 132
Sistemi lineari .................................................................................................................................. 132
3
21. LEZIONE 21 ....................................................................................................................................... 140
Sistemi lineari .................................................................................................................................. 140
Algoritmo di soluzione all’indietro .................................................................................................. 140
22. LEZIONE 22 ....................................................................................................................................... 148
Sistemi lineari .................................................................................................................................. 148
Metodo di Gauss .............................................................................................................................. 148
23. LEZIONE 23 ....................................................................................................................................... 158
Riepilogo .......................................................................................................................................... 158
Gauss con pivot parziale .................................................................................................................. 158
24. LEZIONE 24 ....................................................................................................................................... 163
Riepilogo .......................................................................................................................................... 163
Fattorizzazione di Cholesky ............................................................................................................. 163
Sistemi non lineari quadrati ............................................................................................................ 164
25. LEZIONE 25 ....................................................................................................................................... 173
Problemi ai limiti.............................................................................................................................. 173
26. LEZIONE 26 (MATLAB) ...................................................................................................................... 182
Mancante ......................................................................................................................................... 182
27. LEZIONE 27 ....................................................................................................................................... 182
Differenze centrali ........................................................................................................................... 182
Problemi differenziali ai valori iniziali ............................................................................................. 182
28. LEZIONE 28 ....................................................................................................................................... 193
Problema di Cauchy ......................................................................................................................... 193
Metodo di Eulero esplicito............................................................................................................... 193
29. LEZIONE 29 ....................................................................................................................................... 199
Classe di metodi di Runge-Kutta espliciti ........................................................................................ 199
4
1. LEZIONE 1
Introduzione
Argomenti del corso
Errori di arrotondamento
Definizione di algoritmo
Rappresentazione interi
Rappresentazione reali
L’obiettivo di questo corso è di risolvere problemi di tanti tipi con il computer. Per fare questo
serve saper risolvere problemi meno complessi che poi ricomposti formano problemi più
complicati. Lo strumento utilizzato è il computer (perché non si può fare altrimenti).
I seguenti esempi mostrano 2 tipi di problemi che richiedono l’ausilio del computer.
ESEMPIO:
ESEMPIO:
5
ESEMPIO:
Devo calcolare l’integrale di una funzione di cui non conosco l’espressione analitica.
Posso avere un campionamento della funzione che risolvo per punti.
ESEMPIO:
6
ARGOMENTI DEL CORSO
ESEMPIO:
2. Approssimazione di integrali
3. Approssimazione di problemi differenziali
4. Equazioni non lineari
7
ESEMPIO:
Approssimare lo zero.
(Prima parte)
ERRORI DI ARROTONDAMENTO
ESEMPIO:
Il computer non può lavorare con numeri composti da tantissime cifre. Dovrà arrotondare il
numero. L’errore di arrotondamento deve essere piccino.
È quindi necessario considerare la sensibilità del problema rispetto ai dati. I dati potrebbero non
essere precisi, ma anche se precisi potrebbero venire arrotondati.
ESEMPIO:
8
Dato soluzione
Dato soluzione
ESEMPIO:
Nel continuo.
9
ESEMPIO:
In questo caso ho ripetuto solo 2 volte. In questo modo ci si avvicina allo zero, ma non si arriva allo
zero esatto (eccetto alcuni casi).
Esistono quindi tanti tipi di errore. Diventa quindi necessario effettuare delle stime di questi errori
per capire quanto sono grandi. La cosa migliore sarebbe avere la soluzione esatta così da poter
10
calcolare la distanza dal mio risultato. La soluzione esatta però non la so si ricorre quindi a delle
stime a posteriori.
ALGORITMO
Gli algoritmi sono una serie di istruzioni che non devono essere ambigue e devono terminare in un
tempo finito.
ERRORE DI ARROTONDAMENTO
Numeri:
Interi
Reali
Notazione posizionale.
ESEMPIO:
Il computer lavora in base 2 con 0 e 1. Noi lavoriamo in base 10 mentre il computer in base 2 si
rende quindi necessario un algoritmo di conversione.
ESEMPIO:
Si ha 1 se il segno è +
Si ha 0 se il segno è –
11
Se ho un numero:
Questo non è un problema perché gli interi servono a contare (per esempio le dimensioni delle
matrici) e non si arriva mai a queste cifre.
ESEMPIO:
mantissa
base
caratteristica (numero intero)
ESEMPIO:
Per l’esempio precedente la notazione floating Point è:
ESEMPIO:
per questo numero la caratteristica mi dice che l’ordine di grandezza è 100
per questo numero la caratteristica mi dice che l’ordine di grandezza è
0,001
12
2. LEZIONE 2
Rappresentazione numeri reali
Numeri di macchina
Introduzione Matlab
Funzione eps
Funzione realmax
Funzione realmin
mantissa
base
caratteristica (numero intero)
ESEMPIO:
Questo numero in base 10 ha mantissa finita mentre in base 2 ha mantissa infinita. Devo
approssimarlo.
Perché
Quindi
Sequenza di bit:
13
7 per la caratteristica
(soglia di underflow)
NUMERI DI MACCHINA
Mantissa di lunghezza≤m
Caratteristica rappresentabile con t cifre in base β
ESEMPIO:
ESEMPIO:
Precisione semplice
m=23 cioè 23 bit per la mantissa
ESEMPIO:
Precisione doppia
m=52 cioè 52 bit per la mantissa
ESEMPIO:
β=10 cioè siamo in base 10
m=3 cioè 3 bit per la mantissa
(x non è un numero di macchina perché ha 4 cifre di mantissa mentre
m=3)
In generale
soluzione esatta
soluzione calcolata
(errore assoluto)
(errore relativo)
ESEMPIO:
soluzione esatta
soluzione calcolata
ESEMPIO:
soluzione esatta
soluzione calcolata
L’errore assoluto dipende dall’ordine di grandezza del dato. Se commetto un errore nella mantissa
questo non dipende dall’ordine di grandezza mi riferisco allora all’errore relativo.
ESEMPIO:
soluzione esatta
soluzione calcolata
ESEMPIO:
soluzione esatta
16
soluzione calcolata
ha 5 cifre significative
(errore arrotondamento)
precisione di macchina
precisione doppia
precisione semplice
MATLAB
Matlab è un ambiente:
Ci sono anche i TOOLBOX che sono ulteriori pacchetti per risolvere problemi specifici.
ESEMPIO:
Algoritmo
17
In memoria:
(linguaggio compilato)
TRADOTTO (il programma che ho scritto viene tradotto da un altro programma chiamato
compilatore in linguaggio macchina)
PROGRAMMA ESEGUIBILE (il computer esegue il programma che è stato tradotto in linguaggio
macchina)
18
Le regole di sintassi del linguaggio di programmazione sono rigide e se no rispettate il computer
non riesce a tradurre il programma.
(linguaggio interpretato)
È più lento.
ESEMPIO:
Il Matlab però capisce subito che c’è un errore ovvero che manca il dato a.
Quindi il linguaggio interpretato è più semplice perché nel momento in cui traduciamo abbiamo i
dati a disposizione. Dentro Matlab ci sono delle librerie di funzioni già scritte che rende il tutto più
veloce.
APERTO MATLAB
19
Questa è la modalità interattiva del Matlab (la più semplice).
FUNZIONE ASSEGNAZIONE:
ESEMPIO:
Questo non significa che Matlab non ha fatto niente, Matlab infatti ha memorizzato il risultato e se
io digito a Matlab restituisce il risultato.
20
Se assegno b=1,2 Matlab dedica 64 bit a b.
Se faccio c=a+b Matlab va nella locazione di memoria associata alla variabile a e prende il numero
di a (a=0,1) poi Matlab va nella locazione di memoria associata alla variabile b e prende il numero
di b (b=1,2) e poi fa la somma. Il risultato probabilmente non è un numero di macchina anche se
sto sommando 2 numeri di macchina perché sommo il fl(a) (che è un numero di macchina) e il fl(b)
che è un numero di macchina). 0,1 non è un numero di macchina e in Matlab non ho preciso 0,1,
ma un numero in base 2 che è il floating di 0,1.
ESEMPIO:
[In Matlab ]
a=0,1
[In Matlab ]
ESEMPIO:
21
Se invece assegno x=π e calcolo sen(x) dovrebbe venire 0 invece viene 1,2246e-016.
Questo perché ci sono tante approssimazioni:
π è un’approssimazione
Lo sviluppo viene troncato (è un’approssimazione)
Operazioni di macchina (sono approssimazioni)
[In Matlab π=pi]
FUNZIONE EPS
si semplifica e si ha:
22
Che è proprio il valore di eps.
FUNZIONE REALMAX
FUNZIONE REALMIN
23
3. LEZIONE 3
Riepilogo
Operazioni in macchina
Algoritmo per il calcolo della precisione di macchina
RIEPILOGO
Con
ERRORE RELATIVO
L’errore relativo lo commettiamo tutte le volte che approssimiamo un numero con il suo floating si
chiama precisione di macchina e si ha:
[In Matlab ]
OPERAZINI IN MACCHINA
SOMMA IN MACCHINA
24
Quindi se x e z sono numeri di macchina il computer deve fare il floating solo del risultato della
somma.
Se:
operazione approssimata
operazione esatta
Si ha:
Quindi l’errore relativo che commetto è minore o uguale a quindi è piccolo. Quindi se i dati
sono esatti l’operazione funziona bene e mi dà un risultato dell’ordine della precisione di
macchina. Non funziona così bene quando i dati non sono numeri di macchina perché si
combinano più tipi di arrotondamenti.
SOMMA E SOTTRAZIONE
MOLTIPLICAZIONE E DIVISIONE
ESEMPIO:
SOMMA E SOTTRAZIONE
ESEMPIO:
4 cifre di mantissa (m=4)
Base 10 (β=10)
Devo calcolare l’errore relativo per controllare se è dell’ordine della precisione di macchina
oppure no.
Quindi è soddisfacente perché l’errore relativo è più piccino della precisione di macchina.
Definizione
QUESTO È PIÙ IMPORTANTE. (perché non mi devo aspettare errori minori della precisione di
macchina? Perché so che ha mettere un numero in macchina commetto un errore dell’ordine della
precisione di macchina che nel caso di Matlab è )
Commutativa
26
NON c’è la associativa [ proprietà associativa]
L’elemento neutro della somma e della sottrazione non è solo 0
ESEMPIO: (elemento neutro)
Con e
2. Faccio :
27
Il risultato esatto è .
Quindi il conto 2 mi dà un risultato migliore.
Quindi ho capito che non vale la proprietà associativa e cosa più importante che facendo le
somme in macchina a seconda di come metto i numeri ottengo risultati migliori o peggiori.
Nel caso 2 ho sommato i numeri più piccini rendendoli più grandi (e quindi li faccio assumere un
contributo maggiore) e poi li ho sommati col il numero più grande.
QUINDI BUONA REGOLA è sommare prima i numeri più piccoli e poi i numeri più grandi.
Se devo sommare n numeri è preferibile sommare prima i più piccoli fra di loro e poi quelli più
grande.
[Precisione di macchina: ]
[Epsilon di macchina:
28
ESEMPIO:
Se
Allora
Se
Allora
Quindi
Se a è un numero minore della precisione di macchina ( ) la sua prima cifra viene dopo
della fine della mantissa e quindi perdo il suo contributo.
Invece
IMPORTANTE
Perdo il contributo dei numeri minori della precisione di macchina non perché vengono
approssimati con 0 (i numeri che vengono approssimati a 0 sono quelli minori della soglia di
Underflow ) ma, perdo il contributo di quel numero piccolo perché lo sto
sommando a 1 che è tanto più grande.
Perché .
ALGORITMO
1. Poni questa è una funzione di assegnazione cioè assegno alla variabile a il valore 1
2. Poni al secondo passo si ha
3. Poni nuova variabile x
4. questa è una struttura decisionale [if,then,else]
5. Risultato risulta e la precisione di macchina è proprio
1. Poni
2. Poni
3. Mentre
3.1 Poni
3.2 Poni
4. Risultato
4. LEZIONE 4 (MATLAB)
ESEMPIO:
Se dopo l’operazione metto ; Matlab non mostra il risultato ma, esegue comunque l’operazione e
memorizza il risultato.
31
ESEMPIO:
ESEMPIO:
Se assegno il numero:
Matlab restituisce il numero in format short con 4 cifre decimali e approssima 56 con 6.
Se scrivo format long e poi digito x Matlab mi restituisce il numero con 15 cifre decimali.
ESEMPIO:
32
Per sapere le soglie di Underflow e di Overflow basta digitare realmin e realmax.
ESEMPIO:
Dati:
Calcolare:
33
ESEMPIO:
Si sa che
Matlab invece restituisce .
Si può quindi calcolare l’errore assoluto:
soluzione esatta
soluzione calcolata
Dato:
Calcolare l’errore relativo di calcolato da noi e calcolato da Matlab.
Si sa che .
34
Matlab restituisce effettivamente .
L’errore relativo:
soluzione esatta
soluzione calcolata
ESEMPIO:
35
Scrivere i vettori e .
36
37
5. LEZIONE 5
Come si propaga l’errore
Errore di cancellazione
Metodi iterativi
Quando mettiamo un numero in macchina cioè facciamo il floating di quel numero commettiamo
un errore che chiamiamo .
Sappiamo che .
Posso scrivere:
Con .
38
è un numero quindi posso scrivere l’errore che commetto quando faccio il suo
floating che chiamo .
Faccio il prodotto:
Quindi:
Che sono valori minori della precisione di macchina e quindi si possono trascurare. Quindi si ha:
A questo punto si calcola l’errore relativo confrontando la somma in macchina e quella con il
risultato esatto.
somma in macchina
somma con risultato esatto
39
Se x e z sono numeri di macchina ovvero e significa che e non
ho errori sui dati.
E ho che:
Quindi se x e z sono numeri di macchina l’errore è minore della precisione di macchina (perché ho
solo l’errore di arrotondamento della soma).
Si possono avere errori maggiori della precisione di macchina e questo non va bene.
Se ho una precisione di macchina che è voglio che i miei errori siano dell’ordine di
ovvero che ho 15 cifre corrette e l’errore sulla cifra 16.
ESEMPIO:
5 cifre di mantissa (m=5)
Base 10 (β=10)
Dati:
floating numero di macchina
floatng numero di macchina
La somma è: che è il risultato esatto. Il
risultato viene esatto perché x e z sono numeri di macchina e quindi e e anche la
loro somma è un numero di macchina e quindi .
40
floating
floatng
La somma è:
L’errore relativo è:
La precisione di macchina è:
Se
3 cifre di mantissa (m=3)
Base 10 (β=10)
Si ha:
floating
floatng
La somma è:
L’errore relativo è:
ERRORI:
Tutti questi errori si possono combinare e se anche ciascuno di loro è devo chiedermi come
si combinano.
L’errore sui dati viene prima perché non si hanno dati esatti perché possono non essere numeri di
macchina oppure ci possono essere errori di misura. Poi con i dati non esatti si fanno le operazioni
e si hanno altri errori perché se il risultato dell’operazione non è un numero di macchina viene
arrotondato.
Quindi si ha:
41
errore relativo sui dati
Le soluzioni e sono vicine tra di loro quanto sono vicini tra di loro e ?
Graficamente:
In questo caso essendo la distanza tra i dati e la distanza tra le soluzioni va bene perché
. In questo se caso l’errore sui dati è anche l’errore sulle soluzioni è e
quindi va bene. e sono le soluzioni esatte calcolate con i dati e .
In questo caso essendo la distanza tra i dati e la distanza tra le soluzioni non va bene perché
.
ESEMPIO:
Dati A e b risolvi .
DATI ESATTI:
42
Quindi la soluzione esatta con i dati esatti è:
In questo caso il computer non centra nulla perché i calcoli li ho fatti io. Questo esempio mostra
come una piccola distanza sui dati può comportare una grande distanza sulla soluzione.
Siamo nel caso della seconda figura .
Quindi.
GRAFICAMENTE
Per i dati esatti:
43
Il punto di intersezione tra le 2 rette che sono quasi coincidenti è:
Ovvero modificando di poco l’inclinazione delle rette il loro punto di intersezione si sposta di
tantissimo.
Definizione (riferita all’esempio precedente)
Un problema è ben condizionato (ci si riferisce al problema il calcolo in macchina non centra nulla)
se a piccole distanze sui dati corrispondono piccole distanze sui risultati.
Definizione
44
Un problema è mal condizionato se a piccole distanze sui dati possono corrispondono grandi
distanze sui risultati.
ESEMPIO:
ESEMPIO:
Se:
Significa che l’errore sui risultati è 1000 volte quello sui dati.
Questo significa che sui dati l’errore è sulla cifra 16 mentre sui risultati è sulla cifra 13. Quindi a
causa del condizionamento si sono perse 3 cifre.
45
Sul mal condizionamento non ci si può fare niente bisogna sapere che esistono questi problemi
mal condizionati per i quali si hanno degli errori.
ESEMPIO:
In questo caso ha senso risolverlo perché ho 16 cifre ne perdo 7 l’errore è sulla cifra 9 ma, il resto
va bene.
ESEMPIO:
Determinare le radici di:
Dato .
Le soluzioni sono 4 radici x=1. Ovvero la soluzione è x=1 con molteplicità 4.
Se ora prendo il problema:
Se faccio l’errore assoluto tra la soluzione esatte e quella non esatta ho:
Tra l’errore sui dati e quello sulle soluzioni si perde 6 cifre quindi è un problema mal condizionato.
Fino ad ora abbiamo parlato dell’errore di condizionamento che dipende dall’errore sui dati e non
dipende assolutamente dal metodo che uso per risolvere il problema.
46
A QUESTO PUNTO.
Noi abbiamo (non abbiamo mai ) e calcoliamo . Non calcoliamo però la soluzione esatta
ma, calcoliamo un’approssimazione che chiamiamo . Quindi abbiamo un altro
errore.
Abbiamo 2 passi:
1. Errore sui dati. Quindi non risolviamo il problema con dati esatti ma, risolviamo un
problema con i dati affetti da errore.
2. Non risolviamo il problema esattamente ma, lo risolviamo con le operazioni in macchina.
Definizione
Un algoritmo si dice stabile se applicato ad un problema ben condizionato produce una soluzione
approssimata con un errore (relativo rispetto alla soluzione esatta) dell’ordine della precisione di
macchina.
ESEMPIO:
Trova gli zeri della seguente equazione:
ESEMPIO:
Trova gli zeri della seguente equazione:
METODI ITERATIVI
47
Metodi iterativi vuol dire che generano una successione di approssimazioni.
[Deve essere non lineare perché se è lineare è una retta e il punto di intersezione tra l’asse delle x
e una retta lo so calcolare quindi sarebbe inutile fare il procedimento iterativo]
Quindi ho una funzione non lineare che potrebbe essere di cui voglio
calcolare lo zero ovvero l’intersezione della funzione con l’asse x (se c’è).
QUINDI HO:
Un problema
Una funzione di questo problema che vorrei approssimare
approssimazione da cui parto
Il metodo che genera questa successione a partire da
Come scelgo ??
Sotto quali ipotesi la successione converge (sono sicuro che converge)??
Con che velocità mi converge (quante iterazioni devo fare)??
Quando mi fermo (criteri d’arresto)??
48
QUANTO COSTA UN’ITERAZIONE??
Tutte le volte che passo da a faccio un’iterazione e ogni iterazione ha un suo costo. Però
poi con i metodi più veloci faccio meno iterazioni con i metodi più lenti ne faccio di più quindi
complessivamente quanto mi costa??
Nel caso scalare partire con un vicino a è facile perché posso disegnare il grafico della
funzione e scegliere un opportuno. Quindi il problema del LOCALMENTE CONVERGENTE e del
GLOBALMENTE CONVERGENTE si ha quando si passa dalle equazioni non lineari ai sistemi non
lineari perché non ho più i grafici.
METODO DI BISEZIONE
Per applicare questo metodo devo avere uno 0 semplice ovvero i segni della funzione nei due
estremi devono essere opposti.
Parto da un e un che devono avere la caratteristica che i segni della funzione in questi punti
sono opposti, ovvero:
Questo perché la bisezione si basa sul teorema degli zeri che dice che se per esempio la funzione
in è negativa e in è positiva nel mezzo ci deve essere almeno uno 0.
Queste funzioni si dicono a radice doppia perché in si annulla sia la funzione che la derivata
della funzione.
A questo punto ho .
Si ha che:
Se
Assegno
e
Altrimenti assegno
e
Con
51
A ogni iterazione:
Dimezzo l’intervallo
So che appartiene all’intervallo per il teorema degli zeri perché la funzione è
continua e
Dati
Risultato
Poni
Se
Fine è la soluzione
Se
Poni
Poni
Altrimenti
Poni
Poni
FINE
6. LEZIONE 6
Riepilogo metodo bisezione
Molteplicità di una radice
Algoritmo bisezione
Problema:
Con
La funzione è non lineare della quale non sappiamo calcolare la radice analiticamente.
ESEMPIO:
52
La funzione può anche non essere nota analiticamente ovvero può essere una funzione che so solo
calcolare. Per la precisione la forma analitica della funzione non interessa ma, interessa solo
saperla calcolare.
ESEMPIO:
ESEMPIO:
La funzione la misuro con uno strumento ma, non conosco la sua espressione analitica.
Per il teorema degli zeri ho che se la funzione è continua e allora esiste almeno un
tale che .
53
IL PROCEDIMENTO FA:
IO SO CHE:
ESEMPIO:
Se k=2
54
Questo ci dice che converge perché.
Perché la distanza tra e è sempre minore o al massimo uguale alla metà della distanza tra
e .
è un numero
Se allora quindi
Quindi se è minore di un qualcosa che tende a 0 anche lui tende a 0 quindi converge.
PREGI DIFETTI
Convergenza lenta (tutte le volte dimezzo
Convergenza globale l’intervallo quindi più o meno dimezzo l’errore
che non è tanto)
Non si può usare per calcolare radici di
Costo per iterazione
molteplicità pari
Non posso far andare . Devo decidere che ad un certo punto mi fermo.
55
questo si può calcolare ed è una maggiorazione dell’errore (questo si ha solo
nella bisezione negli altri metodi questa quantità va stimata)
Quindi alla fine del procedimento calcolerò un (che è la mia radice) tale che:
tolleranza
Sicuramente è maggiore della precisione di macchina perché non avrebbe senso il contrario.
Quindi la tolleranza può stare tra . Scegliere il valore preciso della tolleranza
dipende dal problema. In generale nei programmi la tolleranza è .
Con la bisezione posso sapere prima quante iterazioni farò prima di fermarmi. Lo posso sapere
prima perché la bisezione dimezza quindi mi fermerò quando:
Applico .
Riporto in .
ESEMPIO:
I costi più importanti per procedimenti iterativi sono le valutazioni di funzioni (ci sono funzioni
molto costose da valutare). La bisezione valuta la funzione nel punto di mezzo. Alla prima
iterazione la valuta in alla seconda in .
PERÒ DI ITERAZIONI NE PUÒ FARE TANTE QUINDI IL COSTO COMPLESSIVO PUÒ ESSERE
IMPORTANTE.
LA BISEZIONE HA UN ALTRO DIFETTO OVVERO CHE NON SI PUÒ USARE PER CALCOLARE RADICI DI
MOLTEPLICITÀ PARI.
ALGORITMO BISEZIONE
Dati:
tale che
numero massimo di iterazioni (nella bisezione non serve)
1. Poni
57
2. Ripeti per k si chiama contatore del ciclo e serve a contare quante volte
si ripete il ciclo [in Matlab ciclo for]
2.1. Poni
2.2. Poni
2.3. Se
2.3.1. Poni
2.3.2. Poni
2.4. Altrimenti
2.4.1. Poni
2.4.2. Poni
2.5. Se allora stop
3. Fallimento ho raggiunto il numero massimo di iterazioni
4. Fine
ESEMPIO:
Quindi siamo nella condizione:
Se
Poni
Poni
Allora:
k=0
Ora entro nel criterio d’arresto.
Quindi niente.
Torno a ripeti e ho k=1. Quindi ho:
E continua così.
58
Se e arrivo a k=10 al ciclo dopo si ha k=11 quindi finisce e mi dà fallimento ho
raggiunto il numero massimo di iterazioni.
1. Ripeti per k si chiama contatore del ciclo e serve a contare quante volte
si ripete il ciclo [in Matlab ciclo for]
1.1. Poni
1.2. Poni
1.3. Se
1.4. Poni b=x
1.5. Altrimenti
1.6. Poni a=x
ESEMPIO:
Calcolo y.
59
7. LEZIONE 7 (MATLAB)
ESEMPIO:
Dati
Risultati
1. Poni s=0
2. Ripeti per
2.1. Poni
3. Fine
[In Matlab ripeti è for]
L’algoritmo in Matlab è:
In Matlab non serve fare un algoritmo come questo perché c’è già una funzione che fa la somma di n
numeri che si chiama sum.
Assegnazione dati
Acquisizione risultati
I calcoli
Vogliamo scrivere una function che traduca l’algoritmo per la somma di n numeri.
File new function
Aperta la function ho:
Poi devo scrivere l’algoritmo e non devo mettere n e a come avevo fatto nello script perché ci sono già negli
argomenti in ingresso.
61
Quindi il calcolo lo fa la function.
Se scrivo som Matlab mi restituisce:
ESEMPIO:
62
8. LEZIONE 8
Metodo di bisezione
Metodo di NEWTON
Teorema di convergenza del metodo di NEWTON
METODO DI BISEZIONE
Stiamo risolvendo equazioni non lineari con il metodo della bisezione. Il metodo di bisezione parte
da un intervallo lo divide a metà determina trova il nuovo intervallo lo
divide a metà e continua così.
63
Sappiamo che l’errore all’iterata k-esima è:
E se:
Se invece:
NEL CASO PARTICOLARE in cui alla prima iterazione quando l’intervallo è o è uno dei primi
intervalli (quindi intervalli grandi) la radice è vicina a con il criterio di arresto non
mi fermo anche se potrei. Praticamente sono arrivato alla che volevo determinare ma, il
metodo non se ne rende conto perché per fermarsi si rivolge solo alla grandezza dell’intervallo
rispetto alla tolleranza come in figura.
64
Possiamo modificare il criterio d’arresto in modo da registrare anche questa situazione. Per fare
questo utilizziamo un criterio d’arresto chiamato CRITERIO D’ARRESTO RIVOLTO ALLA FUNZIONE.
Si chiama così perché si riferisce al valore della funzione. Questo criterio d’arresto è stato
introdotto per la bisezione ma, è valido per tutti i procedimenti in cui devo determinare tale che
.
ESEMPIO:
Se la mia tolleranza è .
E ho:
Mi posso fermare.
Quando uso il criterio d’arresto so che l’errore che commetto è minore della tolleranza
( per la proprietà della bisezione).
65
Quando uso il criterio d’arresto mi devo chiedere se .
Se allora:
CASO 1:
In questo caso si ha che anche se il valore della funzione è piccolo l’errore è maggiore della
tolleranza .
ESEMPIO:
Dati:
66
Si ha che:
CASO 2:
ESEMPIO:
Dati:
Si ha che:
67
Quindi il criterio d’arresto si usa ma, bisogna fare attenzione oal grafico della funzione
o alla derivata.
Dati:
tale che
numero massimo di iterazioni (nella bisezione non serve)
1. Poni
2. Ripeti per k si chiama contatore del ciclo e serve a contare quante volte
si ripete il ciclo [in Matlab ciclo for]
2.1. Poni
2.2. Poni
2.3. Se
2.3.1. Poni
2.3.2. Poni
2.4. Altrimenti
2.4.1. Poni
2.4.2. Poni
2.5. Se allora stop
2.6. Se allora stop
3. Fallimento ho raggiunto il numero massimo di iterazioni
4. Fine
Si è aggiunto il punto 2.6. Quindi questo criterio serve quando siamo vicino alla radice ma,
l’intervallo è ancora grande. Anche senza questo criterio d’arresto l’algoritmo funzionerebbe ma,
farebbe più iterazioni di quelle necessarie.
METODO DI NEWTON
È un metodo lento
Ogni iterazione costa poco (a ogni iterazione valuta il segno della funzione in )
Come funziona il metodo graficamente. Come per la bisezione devo trovare tale che
per una funzione che non so risolvere analiticamente. Si parte da un punto quindi si costruisce
68
la retta tangente alla funzione nel punto e si trova il punto (che è il punto
d’intersezione tra la tangente e l’asse x).
E continuo così. Il metodo non funziona se perché la retta tangente non interseca
l’asse delle x. Già dal disegno si capisce che questo metodo è più veloce della bisezione.
69
Siamo all’iterata 0 e è dato. Mi costruisco la retta tangente a nel punto che è:
A questo punto devo trovare il punto d’intersezione tra la retta tangente e l’asse delle x.
A questo punto rifaccio la stessa cosa con al posto di ci metto . In generale all’iterata k-esima
avrò:
70
Queste si chiamano successioni per ricorrenza che significa che parto da e mi calcolo una
volta che so mi calcolo quindi mi posso calcolare e continuo così.
PREGI DIFETTI
Valuta il valore della funzione sia in che in
Convergenza quadratica quindi ogni iterazione costa il doppio
della bisezione
Si può applicare a qualsiasi funzione (anche a
quelle con radice doppia) anche se si ha
Richiesta della derivata
ma, in questo caso la convergenza
risulta essere lineare.
Convergenza locale
Il fatto di dover conoscere la derivata può essere negativo perché può essere oneroso calcolarla
oppure potrei non saperla calcolare proprio.
SCELTA DI
ESEMPIO:
ESEMPIO:
71
Se si parte da il metodo funziona e converge se invece si parte da il metodo non funziona.
ESEMPIO:
Consideriamo la funzione:
Questa funzione ha la proprietà di avere un punto dal quale se si traccia la tangente si arriva al
simmetrico e se si traccia la tangente da quest’ultimo si ritorna al punto di partenza che è il
simmetrico di quest’ultimo.
72
Quindi:
Se non converge
Se converge
Se o diverge
73
QUINDI QUESTO METODO È A CONVERGENZA LOCALE. Questo significa che devo partire con un
vicino a .
Definizione
ESEMPIO:
TEOREMA
Ipotesi:
74
Non stiamo considerando funzioni fatte così.
Con queste ipotesi si ha che esiste un tale che se per cui la successione
di NEWTON:
Quindi il teorema mi dice che esiste un intorno di tale che se parti dentro questo intorno allora
convergi. Nell’esempio della finzione l’intorno di era . Quanto è
grande non lo so in alcuni casi è anche tutto R. si chiama anche bacino di attrazione di
NEWTON e si indica anche con .
Il teorema mi dice anche che per tale che se per cui la successione di
NEWTON e per successione di NEWTON si intende:
75
È ben definita. Per ben definita si intende che non ci sono punti (questo è garantito
dall’ipotesi ).
Poi mi dice che la convergenza è quadratica. Questo riguarda la velocità di convergenza del
procedimento.
VELOCITÀ DI CONVERGENZA
EEMPIO:
Se .
Con la convergenza lineare è:
Già con un’iterazione l’errore si è ridotto di 2 ordini di grandezza e con 2 iterazioni l’errore è sulla
cifra 8.
Quindi nella convergenza quadratica l’errore si riduce più velocemente.
76
Esiste una velocità di convergenza che sta tra la lineare e la quadratica che si chiama super
lineare e che è: con e con
Se è lineare
Se è quadratica
ESEMPIO:
Consideriamo la funzione:
NEWTON
Dati NEWTON:
Tolleranza
Punto di partenza
Risultati NEWTON:
77
Dalla tabella si evince che il metodo di NEWTON è a convergenza quadratica dall’ordine di
grandezza dei valori di fx.
QUANTO È IL COSTO TOTALE DEL METODO DI NEWTON??
Ad ogni iterazione faccio una valutazione di funzione e una di derivata faccio 4 iterazioni quindi in
tutto faccio 8 valutazioni di funzione.
QUANTO È IL COSTO TOTALE DEL METODO DI BISEZIONE??
Ad ogni iterazione faccio una valutazione di funzione faccio 20 iterazioni quindi in tutto faccio 20
valutazioni di funzione.
Il criterio rivolto alla successione può essere usato per qualsiasi tipo di procedimento.
Se allora .
Quindi con questo criterio si valuta in modo relativo la distanza tra 2 iterate successive. Quindi se
questa distanza è piccola mi fa pensare di essere vicino alla convergenza. Idealmente mi
fermerei quando però questo non lo posso fare perché non conosco .
78
9. LEZIONE 9
Riepilogo
Algoritmo del metodo di NEWTON
Metodo delle secanti
RIEPILOGO
Per risolvere un problema del tipo trovare: tale che si utilizzano procedimenti
iterativi.
Metodo di bisezione
Metodo di NEWTON
Quando si ha a che fare con dei procedimenti iterativi è necessario avere dei criteri d’arresto.
Se siamo in R si ha:
Consideriamo di essere in R.
Idealmente mi fermerei quando però questo non lo posso fare perché non conosco .
Allora posso sostituire a che non conosco che invece conosco e mi fermo quando:
79
Questo ha senso perché se la successione converge allora . Quindi ha
senso perché la distanza tra le iterate è piccola quindi sono vicino alla convergenza.
con
Faccio la sostituzione:
Quindi:
Quindi:
e che . Quindi:
80
Non è detto che è una buona stima dell’errore perché la distanza tra le iterate può
essere piccola ma, non è detto che si è vicino alla radice.
con
Considerando:
Quindi:
Quindi:
Quando abbiamo introdotto il criterio d’arresto sulla successione lo abbiamo introdotto come
criterio relativo ovvero:
E sappiamo che se usiamo NEWTON l’errore relativo è minore della tolleranza quindi va bene.
81
Per ovviare a questo problema esiste un criterio chiamato criterio misto (che si utilizza sempre) e
che ha questa forma:
tolleranza relativa
tolleranza assoluta
Di solito .
ESEMPIO:
Se
Se
Quindi questo criterio misto diventa relativo quando si converge ad un numero maggiore di 1 e un
criterio assoluto quando si converge ad un numero minore di 1.
Relativo con
Assoluto con
Dati in ingresso (da mettere nella parte a destra nella function in Matlab):
82
tolleranza sulla funzione (l’algoritmo si ferma quando )
tolleranza relativa
tolleranza assoluta
Valori in uscita (questi sono i risultati che restituisce Matlab che vanno assegnati nella parte di
sinistra della function):
approssimazione calcolata
numero di iterazioni svolte dal procedimento
valore della funzione nel punto calcolato
indicatore di errore
ESEMPIO:
La successione di NEWTON è:
83
1.3.1. Poni
1.3.2. esci (Matlab restituisce: , , e ) [in Matlab se è il ciclo if]
1.4. Poni
1.5. Se allora (questo è il criterio d’arresto riferito alla funzione)
1.5.1. Poni
1.5.2. esci (Matlab restituisce: , , e ) [in Matlab se è il ciclo if]
1.6. Se allora (questo è dato dal fatto che )
1.6.1. Poni
1.6.2. esci
2. Poni (ho raggiunto il di iterazioni)
3. Fine
Uno dei difetti del metodo di NEWTON è che richiede la derivata della funzione che non sempre
ho. Per ovviare a questo problema esiste il metodo delle secanti. Il metodo di NEWTON è anche
detto metodo delle tangenti perché si fa la tangente ad un punto.
Per partire con il metodo delle secanti invece che un punto ne servono 2 dai quali si fa passare la
retta secante alla funzione. Facendo le secanti si perde qualcosa perché la tangente è la retta che
meglio approssima la funzione.
Il metodo delle secanti come quello di NEWTON è a convergenza locale. IL METODO DELLE
SECANTI APPROSSIMA LA FUNZIONE CON LA RETTA SECANTE.
Con e dati.
84
Se allora .
85
10. LEZIONE 10 (MATLAB)
ESEMPIO:
Algoritmo bisezione:
86
A questo punto dobbiamo inserire i dati:
11. LEZIONE 11
Metodo delle secanti
Interpolazione polinomiale
Polinomio interpolante nella forma di Lagrange
87
Si trova quindi il punto che è l’intersezione tra la secante e l’asse delle x.
In generale:
88
QUANTO COSTA UN’ITERAZIONE??
In generale ogni iterazione costa una valutazione di funzione (eccetto l’iterazione 0 che
costa le 2 valutazioni di funzione e ).
PREGI DIFETTI
Piccolo costo per iterazione Convergenza locale
Non serve la derivata della funzione
Velocità di convergenza s lineare
con e con
Per le secanti . Per quanto riguarda il costo computazionale il metodo delle secanti è più
conveniente di quello di bisezione perché ogni iterazione costa uguale ma, quello delle secanti è
più veloce. L’unico motivo per utilizzare la bisezione è che è a convergenza globale. In Matlab c’è
predefinita una funzione che si chiama fzero che combina il metodo della bisezione con quello
delle secanti. Questa funzione fzero parte con il metodo della bisezione e una volta che si è
avvicinato a parte con le secanti. Il problema di questa funzione è che ha il difetto della
bisezione ovvero non riesce a calcolare radici doppie o molteplicità pari.
ESEMPIO:
Consideriamo la funzione:
Dati bisezione:
Tolleranza
Intervallo
Risultati bisezione:
89
Dati NEWTON:
Tolleranza
Punto di partenza
Risultati NEWTON:
Dati secanti:
Tolleranza
Risultati secanti:
it x fx
1 1,3 2e-1
2 1,4 4e-2
3 1,414 1e-3
4 1,41421 6e-6
5 1,4142135 8e-10
Dalla colonna dei valori di fx si evince che il metodo delle secanti non è a convergenza quadratica.
Confronto del costo computazionale totale di ogni metodo.
Valutazioni di funzione
METODO Iterazioni Costo totale
ad ogni iterazione
Bisezione 20 1 20
NEWTON 4 2 8
Secanti 5 1 (la prima 2) 6
INTERPOLAZIONE POLINOMIALE
Il nostro problema è che abbiamo una funzione e cerchiamo un surrogato di questa funzione.
Potrebbe essere il caso che abbiamo a che fare con una funzione complicata e dobbiamo calcolare
l’integrale di questa funzione ma, non lo sappiamo fare, allora cerco una funzione surrogato
90
(appunto) più semplice che sono in grado di calcolare. Potrebbe anche succedere il caso in cui la
funzione non è nota ma, è noto un suo campionamento. In questi casi si rende necessario
effettuare l’interpolazione polinomiale per avere informazioni su quei dati che non sono
campionati.
SE CERCO UN SURROGATO DEVO SAPERE IN QUALE CLASSE CERCARLO OVVERO DEVO SAPERE CHE
FUNZIONI CIPOSSO METTERE.
In questi problemi avrò sempre un campionamento ovvero un insieme di ascisse anche dette nodi
e il corrispondente insieme di ordinate. Il campionamento è un insieme di coppie ascissa ordinata.
Tabelle
Misurazioni
Calcoli
Se ho la funzione analitica mi scelgo l’insieme dei nodi (ascisse) da cui ricaverò le corrispondenti
ordinate.
ESEMPIO:
Il nostro campionamento è:
91
Interpolare significa far passare la funzione surrogato esattamente dai punti che ho dal
campionamento ovvero il valore della funzione surrogato nel nodo è uguale al valore
dell’ordinata campionata in quel punto.
INTERPOLAZIONE POLINOMIALE
ESEMPIO:
Con l’approssimazione non si passa esattamente dai punti quindi si ha uno scarto. Voglio rendere
minima la somma dei quadrati di questi scarti. Lo scarto è la distanza tra e il valore che assume
la retta in quel punto.
Devo rendere minima la somma dei quadrati di queste quantità.
per i=0,…,n
ESEMPIO:
x y
1 .1
3/2 5
2 4
Si ha un polinomio di grado 2.
In generale:
93
si chiama matrice di Vandremonde ed è una matrice particolare perché ha dentro tutti i nodi
elevati a potenza.
Ci sono altre forme per scrivere i polinomi che possono risultare più comode ma, che sono del
tutto equivalenti ovvero se disegno il polinomio risulterà uguale.
Perché:
n=1
Costruisco la retta passante per questi 2 punti (già fatto con le secanti).
Se allora
Se allora
94
Se chiamo:
ESEMPIO:
x Y
1 5
2 4
In generale:
Con le incognite: .
95
Nel caso del polinomio di Lagrange i coefficienti sono noti e mi devo costruire i polinomi. Questa
proprietà:
12. LEZIONE 12
Interpolazione polinomiale
Polinomio interpolante nella forma di NEWTON
INTERPOLAZIONE POLINOMIALE
Noi abbiamo:
E vogliamo sapere il valore della funzione in dei punti che non sono campionati. Ovvero quanto
vale la funzione in con ??
96
POLINOMIO SCRITTO NELLA FORMA DI LAGRANGE (RETTA)
n=1
Costruisco la retta passante per questi 2 punti (già fatto con le secanti).
PROPRIETÀ IMPORTANTE:
In generale il polinomio di Lagrange non so com’è fatto ma, in questo caso si, è una retta:
97
Questa proprietà è importante perché mi garantisce che il polinomio è interpolante.
se
se
Non so come è fatto esattamente il polinomio però so che vale uno in con e 0 in tutti gli
altri punti. Potrebbe essere così:
Se vale questa proprietà posso essere sicuro che il polinomio è interpolante perché:
costante
99
L’ho costruito in modo tale che se lo valuto in :
Se lo valuto in :
Se lo valuto in :
Ovvero:
Quindi:
In generale:
100
Il computer non calcola l’espressione analitica del polinomio di Lagrange perché non gli riesce ma,
calcola il valore del polinomio in un punto.
Non ci interessa che il computer non calcola l’espressione analitica. Se vogliamo disegnare il
grafico di una funzione il computer fa un campionamento di nodi calcola il valore della funzione
nei nodi e unisce le coppie di punti trovati con dei segmenti. Se i nodi sono vicini non ci
accorgiamo che sono segmenti ma, ci sembrano curve.
Quindi per calcolare il valore del polinomio interpolante in un punto in tale che
devo:
1. Calcolare gli
2. La cui somma mi dà il valore del polinomio interpolante in quel punto
Il motivo per cui si usano i polinomi di Lagrange piuttosto che quelli standard è che per quelli di
Lagrange è diviso il contributo delle ascisse e delle ordinate.
COSTO DELL’ALGORITMO
Ogni costa n-1 moltiplicazioni al numeratore e n-1 moltiplicazioni al denominatore più una
divisione. Quindi 2(n-1) moltiplicazioni più una divisione. Di c’è ne sono n quindi in tutto mi
costano che è un . Con si intende l’ordine di grandezza e la cosa più
grande che compare è la potenza di n . Risolvere un sistema lineare costa quindi costa
più di Lagrange (non importa tanto).
ESEMPIO:
Ho le coppie di punti:
Dobbiamo trovare l’espressione del polinomio interpolante. Il computer non trova l’espressione
analitica ma, trova il valore del polinomio in punti che non sono campionati per esempio in
.
101
Espressione analitica calcolata da me:
Calcolato dal computer in non si fa perché non serve perché e quando lo vado a
moltiplicare non dà contributo.
Espressione analitica calcolata da me:
Scriviamo il polinomio:
Il computer fa
Se allora
Se allora
polinomio di grado 1
polinomio di grado 0
102
In Lagrange avevamo somme di polinomi di grado 1 qui abbiamo la somma di un polinomio di
grado 0 e di un polinomio di grado 1.
Allora .
Allora .
Allora
Quindi:
103
era proprio.
14. LEZIONE 14
Riepilogo
Errore di interpolazione
RIEPILOGO
Allora .
Allora .
Allora
104
Dopo tanti conti si ha:
Quindi:
era proprio.
1. BASE MONOMIALE
2. LAGRANGE
3. NEWTON
Abbiamo che:
funzione che devo interpolare
Sappiamo che:
105
Abbiamo che e .
Quindi:
. .
. .
. .
ILPOLINOMIO DI NEWTON È:
ESEMPIO:
Dati i 3 punti:
106
Il polinomio nella forma di NEWTON quindi è:
107
Il computer non calcola il polinomio ma calcola il valore del polinomio per un’ascissa che non
appartiene ai nodi (sarebbe inutile calcolare nei nodi perché abbiamo già il valore del polinomio in
questi punti).
Facciamo per e per .
ERRORE DI INTERPOLAZIONE
Per qualche motivo si conosce il valore della funzione in . L’errore che si commette ad interpolare
allora è:
Da cosa dipende ??
Cosa fa al crescere dei nodi ovvero al crescere di n??
ESEMPIO:
Consideriamo la funzione:
Più nodi inserisco meglio il polinomio approssima la funzione (questo non è sempre vero).
Consideriamo:
Si ha:
108
E nei nodi:
è noto
è incognito
Si introduce la funzione:
La funzione è 0 anche in punti che non fanno parte dei nodi perché:
Definizione
ESEMPIO:
Se la funzione si annulla 3 volte la derivata si annulla ALMENO 2 volte.
Se la funzione ha n+2 zeri la derivata ha almeno n+1 zeri la derivata seconda ne ha almeno n e la
derivata terza ne ha almeno n-1.
Derivata n+1:
costante
ESEMPIO:
109
2 zeri
2-1=1 zeri
2-2=0 zeri
ESEMPIO:
Quindi:
non è calcolabile
dipende:
Dai nodi
Dalla funzione
110
Non tutte le funzioni hanno questa proprietà.
ESEMPIO:
Consideriamo la funzione:
Consideriamo un primo campionamento formato d 5 nodi. Si ha:
Dalle figure si evince che aumentando il numero dei nodi l’errore diminuisce al centro ma,
aumenta tanto ai lati.
111
NON È GARANTITO CHE AUMENTANDO n L’ERRORE DIMINUISCA.
Dati esatti
Dati non esatti
Allora l’errore sui risultati è uguale a quello sui dati quindi il problema risulta ben
condizionato
Se
L’errore sui risultati e maggiore di quello sui i dati e il problema risulta mal
condizionato
Quando i nodi sono equidistanti per n grande risulta quindi il problema è mal
condizionato. L’approssimazione migliora all’aumentare di n fino ad un certo punto poi peggiora.
15. LEZIONE 15
Difetti dell’interpolazione polinomiale con nodi equidistanti
Polinomiali a tratti
Spline
112
Per non è detto che l’errore . Quindi al crescere di n cresce il mal condizionamento.
Non conviene usare tanti nodi quando questi sono equidistanti. Da questo problema viene l’idea di
costruire delle POLINOMIALI A TRATTI. Con le polinomiali a tratti bisogna avere:
n grande
per
Funzioni abbastanza regolari
POLINOMIALI A TRATTI
Dati con
1. Spline di grado 1
Le spline di grado 1 sono rette continue in ogni intervallo e il loro problema è che in alcuni punti
non sono derivabili.
2. Spline di grado 2
113
Sono delle parabole in ogni intervallo e .
3. Spline di grado 3
per i=0,...,n
GRADI DI LIBERTÀ
Abbiamo:
Ho:
n intervalli
4 parametri (per ogni intervallo)
114
Quindi in totale ho 4n parametri. Nei punti in cui si congiungono le spline queste devono essere
continue e derivabili ovvero:
Quindi per ogni punto interno ho 3 condizioni di continuità. I punti interni sono n-1. Quindi in
totale le condizioni di continuità sono 3(n-1)=3n-3. Quindi ho 4n parametri e 3n-3 condizioni di
continuità quindi i gradi di libertà sono:
Si hanno:
4n parametri
3n-3 condizioni di continuità
n+1 condizioni di interpolazione
Quindi in totale:
Non è ancora unica la scelta della spline perché ho 2 condizioni. Per ovviare al problema una delle
scelte possibili è imporre l’annullamento della derivata seconda (queste si chiamano spline
naturali).
Uno dei PREGI delle spline è che mi permette di utilizzare polinomi di grado piccolo e quindi di
evitare problemi di mal condizionamento.
115
E che:
E che:
Calcolare i coefficienti con questo sistema lineare costa mentre calcolare con Lagrange
costava .
3 condizioni di interpolazione
Queste si ricavano dai punti di campionamento:
Con le approssimazioni ai minimi quadrati non si passa esattamente dai dati perché tanto
potrebbero essere affetti da errore.
Gli errori sono n cioè tanti quanti i nodi. Le incognite sono m+1 perché se voglio trovare il
polinomio devo trovare i coefficienti ( incognite).
Questa dipende da .
117
per i=0,..,n ovvero è il POLINOMO INTERPOLANTE.
Sviluppiamo le derivate:
Dato che devo trovare il minimo devo azzerare le derivate quindi devo azzerare:
118
Ora divido i contributi relativi ad e relativi ad della prima derivata.
Riordiniamo le cose:
119
Questo non basta per dire di essere nel minimo.
Rispetto al caso della retta ci sono più incognite e ci viene una matrice m+1xm+1
È un sistema lineare m+1xm+1 invertibile. In generale non si prendono polinomi di grado grande
quindi è abbastanza semplice. Trovato la soluzione del sistema lineare ho trovato il minimo.
120
ESEMPIO:
Dati:
(1,2);(2,3);(3,-2);(4,-1);(5,8).
Cerchiamo la parabola con i minimi quadrati.
Il tipo di funzione (parabola, retta…) lo scelgo io in relazione ai dati che ho.
Parabola m=2 n=4. I nodi sono n+1=5.
Questo esempio ci fa capire che questa tecnica è utile perché un sistema lineare 3x3 già è difficile
da risolvere senza computer.
L’equazione della parabola è circa:
Ovvero minimizziamo la somma dei quadrati degli scarti. Se questa somma fosse 0 non sarebbe
l’approssimazione ai minimi quadrati ma, sarebbe il polinomio interpolante. Il residuo è lo scarto
121
ovvero la distanza dai dati che è un’informazione utile perché mi dice quanto bene sto
approssimando i dati con la mia parabola. Per trovare il residuo basta calcolare questo
Questo perché so che i miei dati hanno un andamento esponenziale. Potrei fare lo stesso
ragionamento di prima e minimizzare gli errori.
Faccio la derivata:
Il problema è che le equazioni più lineare ma, è un sistema non lineare di equazioni in due
variabili. QUINDI è un sistema non lineare CHE SI PUÒ FARE ma, non ancora.
APPROSSIMAZIONE DI INTEGRALI
Il problema in questo caso è che devo fare l’integrale di una funzione e non lo so fare (magari
perché conosco la funzione ma, non so calcolarmi l’integrale perché non conosco la primitiva
oppure conosco la funzione per punti la so valutare ma, non posso certamente calcolarmi la
primitiva).
In questi casi per calcolarmi l’integrale devo usare una formula numerica.
Utilizzare una formula numerica vuol dire utilizzare una formula di QUADRATURA. Quando si
fanno queste formule di quadratura si fa sempre un passaggio dal continuo al discreto.
122
Quando faccio il passaggio dal continuo al discreto l’integrale diventa una sommatoria.
In generale si ha:
In generale (praticamente sempre) i dati che ho a disposizione che magari ho preso da delle
tabelle non coincidono con i che mi servono per calcolare l’integrale. Quindi prima
costruisco il polinomio interpolante quei dati poi scelgo un campionamento di nodi da cui ricavo
il valore della funzione nei nodi e con questi valori mi calcolo l’integrale.
FORMULE DI QUADRATURA
L’ampiezza di un intervallo è:
123
Quindi l’ascissa di ogni nodo è data da:
Quindi se considero l’integrale come la somma delle aree dei rettangolini in questo caso ottengo:
Questo è un primo tipo di formula di quadratura. Questa formula di quadratura non è buona e non
approssima bene neanche l’integrale di una retta.
Definizione
A questo punto. Non sappiamo calcolare l’integrale della funzione abbiamo dei nodi allora
possiamo costruire il polinomio interpolante la funzione e calcolare l’integrale del polinomio
perché l’integrale del polinomio lo so fare (la primitiva di un polinomio la so fare). Esistono quelle
che vengono chiamate formule di QUADRATURA INTERPOLATORIE che sono così:
124
L’integrale di una somma è la somma degli integrali.
Quindi invece di calcolare l’area sottesa al grafico della funzione si calcola l’area sottesa al
polinomio (che in questo caso è una retta).
Questo si chiama metodo dei trapezi perché praticamente quando calcolo l’area sottesa alla retta
calcolo l’area di un trapezio.
Quindi abbiamo una formula di quadratura con 2 nodi ovvero n=1 che a come pesi:
125
errore di interpolazione
Con
Quando ho:
Quando ho:
Quindi:
126
Essendo si ha:
Questa formula ci dice che se la funzione è un polinomio di grado 2 la derivata seconda è 0 quindi
per i trapezi ho grado di precisione 1 quindi se lo utilizzo per una retta non ho errore.
18. LEZIONE 18
Riepilogo
Formule composite
RIEPILOGO
Il problema in questo caso è che devo fare l’integrale di una funzione e non lo so fare (magari
perché conosco la funzione ma, non so calcolarmi l’integrale perché non conosco la primitiva
oppure conosco la funzione per punti la so valutare ma, non posso certamente calcolarmi la
primitiva).
REGOLA DI SIMSON
In questo caso si ha un polinomio di grado 2 quindi si utilizza come funzione interpolante una
parabola.
127
Quindi:
Quindi:
128
non dipende ma, dipende da h.
n
1 1/2 1/2
2 1/3 4/3 1/3
3
ESEMPIO:
Regola di Simpson
Dati:
n=2
a=-4
b=2
Grado di precisione 3.
129
Come già detto aumentando il numero di nodi equidistanti n non è detto che il polinomio
interpolante si avvicini alla funzione.
FORMULE COMPOSITE
Abbiamo:
TRPEZI COMPOSITI
È lo stesso della formula dei trapezi solo che invece di avere solo a e b divido l’intervallo in n+1
nodi.
1. Stabilire n
130
2.
3. per i=0,…,n
4. Valutare per i=0,…,n
5.
per j=1,…,n-1
Quindi:
Se allora e anche .
131
19. LEZIONE 19 (MATLAB)
Mancante
20. LEZIONE 20
Riepilogo
Sistemi lineari
RIEPILOGO
APPROSSIMAZIONE DI INTEGRALI
Dobbiamo integrare una funzione di cui magari non conosciamo l’espressione analitica (che
neanche ci interessa sapere) ma, la campioniamo e la sappiamo valutare nei nodi del
campionamento.
Abbiamo studiato:
Approssimiamo l’integrale della funzione con quello della retta ovvero con l’area del trapezio
Formula di Simpson
Con Simpson calcolo il punto di mezzo dell’intervallo valuto la funzione in questi 3 punti (estremo
sinistro estremo destro e punto di mezzo) e costruisco la parabola interpolante questi 3 punti.
In entrambi i casi commetto un errore. Per ovviare a questo problema siamo passati alle formule
composite. Con le formule composite si divide l’intervallo e lo dividiamo in n sotto intervalli
di uguale ampiezza e quindi abbiamo n+1 punti.
Nel caso dei trapezi compositi vuol dire che facciamo la formula dei trapezi in ogni intervallo.
132
L’errore dei trapezi compositi è:
SIMSON COMPOSITO
Per fare Simpson composito serve un numero pari di intervalli ovvero n deve essere pari perché
faccio la formula di Simpson in ogni coppia di intervalli e se scelgo in numero dispari di intervalli
poi rimane un intervallo in cui non faccio niente. Quindi i nodi sono n+1 dispari. Quindi si ha:
La formula di Simpson è:
Poi ho l’intervallo:
133
Alla fine ho:
per
per
ERRORE
134
Se una funzione è continua e si fa la media di n valori assunti dalla funzione questa sta
sicuramente tra il valore più grande e il valore più piccolo assunto dalla funzione allora c’è sempre
almeno un punto in cui la funzione assume il valore della media che chiamiamo m.
Se allora e anche .
ESEMPIO:
I trapezi e Simpson costano uguale solo che Simpson mi dà un errore più piccolo.
Il costo di una formula di quadratura dipende dal numero di valutazione di funzione che faccio
quindi dipende dal tipo di funzione. Il numero di valutazioni di funzione sono n+1.
135
A questo punto se decido che voglio che l’errore sia di una certa grandezza (tipo ) quanti
punti ci devo mettere??
A priori
A posteriori
Ovvero prima si calcola l’integrale e poi si valuta l’errore. Questo si fa con l’estrapolazione di
Richardson.
Facciamo i trapezi compositi 2 volte sulla stessa funzione la prima volta con un campionamento
meno fitto la seconda con un campionamento più fitto. Abbiamo:
L’errore è:
136
Siccome:
LA STIMA È BUONA??
ESEMPIO:
137
A questo punto se decido che voglio che l’errore sia di una certa grandezza (tipo ) quanti
punti ci devo mettere??
Si utilizzano le tecniche adattive. La tecnica adattiva parte e si calcola l’integrale con i trapezi su un
intervallo e l’integrale dei trapezi su 2 intervalli si costruisce la stima dell’errore con Richardson e
poi controlla se è minore di e se è minore si ferma se è maggiore calcola l’integrale dei
trapezi su 4 intervalli poi fa la stima di Richardson se è minore di si ferma senno va avanti e
così via. Tutto questo non COSTA NULLA perché mi costa uguale a fare direttamente la formula di
quadratura con il numero giusto di intervalli. [In Matlab questo lo fa quad]
SISTEMI LINEARI
Questa però è solo un’espressione formale perché non si conosce e il calcolo di è costoso
quindi non si fa mai.
138
RICHIAMO SULLE NORME
La norma serve per misurare in qualche modo la lunghezza di un vettore. Mi serve per confrontare
2 vettori senza dover confrontare tutte le componenti.
NORME VETTORI
La norma 2 è:
La norma 1 è:
La norma è:
NORME DI MATRICI
139
Matlab calcola così la norma 2 [comando norm].
La norma 1 è:
La norma è:
21. LEZIONE 21
Sistemi lineari
Algoritmo di soluzione all’indietro
SISTEMI LINEARI
Il nostro problema è che abbiamo una matrice quadrata e invertibile ed esiste ed è unica la
soluzione del sistema lineare.
REGOLA DI KRAMER:
140
La matrice è uguale alla matrice con al posto della colonna j c’è il vettore .
Quindi per calcolare tutte le componenti di x potrei calcolare e tutti i che sono n
matrici e poi fare tutti i rapporti. Questo però non si fa perché calcolare tutti i è troppo
costoso. Il costo di questo metodo è dell’ordine Ovvero è costosissimo quindi non si fa
mai.
Anche questo non si fa perché calcolare l’inversa di una matrice è troppo costoso.
ESEMPIO:
141
Devo trovare tale che:
Quindi mi devo trovare n2 componenti e già da questo capisco che è un procedimento costoso
perché se risolvo un sistema lineare devo trovare x che sono n elementi se devo trovare l’inversa
ne devo trovare n2.
Se è la colonna j di sì ha:
Dati:
con dati esatti
con dati non esatti
La differenza relativa è:
A questo punto vogliamo trovarci una relazione fra la differenza delle soluzioni con le differenze
dei dati.
Se il problema è ben condizionato la differenza (errore) sui dati può essere dell’ordine di
grandezza della differenza sui risultati se il problema è mal condizionato la differenza (errore) sui
dati può essere maggiore dell’ordine di grandezza della differenza sui risultati.
Faccio le norme:
Posso fare:
Quindi:
Questo si può fare perché si è passati alle norme e quindi , e sono numeri.
143
Quindi:
Se oltre che in b abbiamo dati non esatti anche in A ovvero abbiamo questo sistema lineare.
Se problema ben condizionato ovvero l’errore sui risultati è circa quello sui dati.
Quindi:
144
Ovvero l’errore relativo che commetto quando approssimo è minore o uguale alla precisione di
macchina.
Supponiamo che:
Allora questa cosa qui che è circa uguale a questa possiamo dire che è circa la
precisione di macchina.
Quando risolvo un sistema lineare sul computer non risolvo mai ma, risolvo sempre
perché ho sempre il floating dei numeri.
Da questa formula:
Ci ricaviamo che:
Quindi:
Se allora:
E mi va bene.
ESEMPIO:
Se abbiamo e
Questo vuol dire che non avrò mai una soluzione con più di 12 cifre esatte e non ci posso fare
145
niente. 4 cifre le perdo a causa del condizionamento.
Se abbiamo e
Il mal condizionamento DIPENDE DALLA PRECISIONE DI MACCHINA CON CUI STO LAVORANDO.
si fa
non si fa troppo costoso
Esistono algoritmi che calcolano senza calcolare l’inversa e algoritmi che calcolano una stima
di e che sono tutti predefiniti in Matlab. [il comando per il calcolo del condizionamento è
cond il comando per la stima del condizionamento è condes].
Quindi se il numero di condizionamento è grande per un tipo di norma è grande anche per gli altri
tipi di norma.
NON DIPENDE da .
ESEMPIO:
la so calcolare perché:
è il massimo tra le somme dei valori assoluti delle componenti di ogni riga. In questo caso il
massimo si ha per la riga n. Quindi .
Poi (non si dimostra perché).
Quindi:
146
Se n=5.
Questa matrice al crescere di n è sempre più mal condizionata ma, il det è sempre 1.
ESEMPIO:
SISTEMI TRIANGOLARI
Questi sistemi ci interessano perché i sistemi lineari in generale si riconducono a questi sistemi
lineari triangolari perché questi sistemi sono più facili da risolvere.
ESEMPIO:
Perché una matrice sia invertibile è necessario che . Nel caso delle triangolari è
necessario che tutti gli elementi della diagonale siano diversi da 0.
147
In generale si comincia e si ha:
Quindi:
Dati:
triangolare e invertibile
1. Poni
2. Ripeti per j=n-1,…,1 (di passo -1)
2.1.
2.2. Ripeti per k=j+1,….,n
2.2.1.
2.3. Poni
3. Fine
22. LEZIONE 22
Sistemi lineari
Metodo di Gauss
148
SISTEMI LINEARI
triangolare superiore
A questo punto noi non vogliamo risolvere solo sistemi triangolari ma, vogliamo risolvere sistemi
in generale.
Riconduciamo questo sistema generale in uno triangolare equivalente (equivalente ovvero che
ha la stessa soluzione).
ESEMPIO:
Quello che mi interessa è perché questo elemento è lo stesso che ho nella seconda riga.
Se sottraggo alla seconda riga questo mi viene uno 0.
si chiamano moltiplicatori.
Ora faccio il primo passo di Gauss e lascio la prima riga invariata ovvero così:
La seconda riga la sostituisco con la seconda riga meno la prima riga per il moltiplicatore.
Chiamiamo:
149
1 sta per passo 1.
E abbiamo:
150
In tutto devo fare n-1 passi. Al primo passo azzero gli elementi della prima colonna.
151
Al passo k ho:
Costruisci e
Poni e
Risolvi
152
per i=k+1,…,n j=k+1,…,n
ESEMPIO:
153
Passo 1 riga 3 (k=1 i=3)
Quindi:
PASSO 2
Passo 2 riga 3 (k=2 i=3)
154
Data una matrice se gli elementi pivot sono diversi da 0 posso costruire una fattorizzazione da .
Posso scrivere in una forma fattorizzata ovvero con un prodotto fra matrici:
ESEMPIO:
Supponiamo di dover risolvere tanti sistemi lineari con la matrice allora per prima cosa faccio
e questo mi costa un
ESEMPIO:
, ,…,
155
Posso fare:
Che mi costa ma, lo faccio una volta sola. Quindi posso scrivere:
Assegno
E quindi posso fare i 2 sistemi:
ESEMPIO:
Quindi:
156
Ci servono i pivot diversi da 0.
ESEMPIO:
ESEMPIO:
sottomatrice di ordine 1
sottomatrice di ordine 2
sottomatrice di ordine 3
157
23. LEZIONE 23
Riepilogo
Gauss con pivot parziale
RIEPILOGO
Per avere l’unicità della fattorizzazione devo specificare che gli elementi della diagonale di
devono essere uguali ad 1. Questo non si verifica sempre.
Definizione
Deve esistere un indice i tale che questa disuguaglianza vale con il maggiore stretto >
Definizione
158
Una matrice è diagonale dominante per colonne se:
Deve esistere un indice i tale che questa disuguaglianza vale con il maggiore stretto >
ESEMPIO:
ESEMPIO:
Permuto e ho:
E ho finito.
159
ESEMPIO:
ESEMPIO:
160
ESEMPIO:
Permuto.
In generale.
161
Alla fine del k-esimo passo prima di procedere con il passo k+1 ci si rivolge all’elemento più grande
della colonna:
ESEMPIO:
Faccio Gauss.
Al passo k=1 devo prendere l’elemento più grande tra 12/7 e 6/7 che è proprio 12/7 quindi non
devo effettuare permutazioni. Se la matrice è invertibile arriviamo sempre alla fine e abbiamo:
Elementi pivot sempre diversi da 0
soluzione esatta
soluzione calcolata
Se
162
L’ERRORE SULLA SOLUZIONE CALCOLATE DIPENDE DA:
precisione di macchina
numero di condizionamento
A questo punto se:
soluzione esatta di
soluzione esatta di
L’errore dovuto al fatto che sto risolvendo il sistema lineare in precisione finita (computer
algoritmo) è:
Mentre l’errore dovuto al condizionamento del problema (non centra nulla la precisione finita
sono proprio certi problemi che hanno questo tipo di errore e non ci possiamo fare nulla) è:
Definizione
Esiste un caso in cui e quindi Gauss con pivot non va bene ma, in generale va bene.
24. LEZIONE 24
Riepilogo
Fattorizzazione di Cholesky
163
Sistemi non lineari quadrati
RIEPILOGO
soluzione esatta
soluzione calcolata con Gauss con pivot
è chiamato fattore di crescita e ci dice di quanto sono cresciuti gli elementi della matrice
durante la fattorizzazione ed è:
Questo ci dice che in generale l’algoritmo è stabile. Questo è uno dei metodi più utilizzati per la
risoluzione dei sistemi lineari.
Con questo metodo per trovare l’elemento pivot più grande non valuto solo gli elementi della
colonna ma, valuto gli elementi di tutta la sottomatrice però in generale non si utilizza.
Quando abbiamo parlato di Gauss senza pivot abbiamo detto che ci produce una fattorizzazione
della matrice.
ESEMPIO:
Se considero la matrice:
164
E la permuto come ho fatto con ottengo la matrice:
Queste matrici si chiamano matrici di permutazione e sono ottenute scambiando tra loro 2 righe di
. Se scambio la riga i con la riga j quando faccio ottengo una matrice che è ottenuta da
scambiando una riga i con una riga j.
In generale si fa:
1. Si prende
2. Ad applico una prima matrice di permutazione
3. A questo punto faccio il passo di Gauss per trovare : ma siccome voglio
permutato aggiungo : . Dopo la permutazione faccio un passo di Gauss senza
pivot.
165
triangolare inferiore (non si dimostra)
triangolare inferiore (non si dimostra)
In i moltiplicatori sono permutati. Posso usare questa fattorizzazione per calcolare il det.
q=numero di scambi
Quindi basta calcolarsi che è facile perché è triangolare superiore e quindi è il prodotto
degli elementi della diagonale.
Il costo per calcolare il det con Gauss con pivot è . Matlab calcola così il det.
Sostituisco a .
E risolvo i sistemi:
FATTORIZZAZIONE DI CHOLESKY
Sappiamo però che una matrice è simmetrica e definita positiva se tutti i suoi autovalori sono
maggiori di 0:
per i=0,…,n
Inoltre se una matrice è simmetrica e definita positiva ha tutti i minori principali invertibili.
Se i minori principali sono invertibili esiste la fattorizzazione che è unica se metto 1 come
elementi della diagonale.
Inoltre se una matrice è simmetrica e definita positiva ha tutti gli elementi diagonali maggiori di
0 . Però se una matrice ha tutti gli elementi diagonali maggiori di 0 potrebbe essere definita
positiva ma, non è detto. Quindi non basta controllare gli elementi della diagonale.
167
è simmetrica quindi: .
Allora:
triangolare superiore
168
Quindi se voglio capire se è definita positiva non calcolo gli autovalori perché troppo costoso
ma, faccio la fattorizzazione di Cholesky e se arrivo alla fine so che è definita positiva se non
arrivo alla fine so che non è definita positiva.
ESEMPIO:
Questo metodo costa la metà di Gauss ed è stabile. Non devo fare i pivot. È stabile perché gli
sono sempre più piccoli degli elementi della matrice tipo:
Perché:
Posso fare:
A questo punto mi devo chiedere se la soluzione che ho calcolato è buona?? Che errore ho
commesso??
STIME DELL’ERRORE
soluzione calcolata
Vorrei sapere:
Però non è calcolabile. Mentre è calcolabile. Quindi posso utilizzare la norma del vettore
residuo diviso la norma di come stima dell’errore??
numero di condizionamento
1. Caso 1 problema ben condizionato
170
1.1. Se allora
Quindi il residuo è piccolo quindi l’algoritmo è stabile il condizionamento non è piccolo e l’errore
che ho alla fine non è il residuo è più grande di 4 ordini di grandezza perché ho perso 4 cifre
significative a causa del condizionamento.
Se non conosco il condizionamento e so che non posso dire che ho 16 cifre corrette
perché dipende dal condizionamento del problema.
I sistemi non lineari sono una generalizzazione delle equazioni non lineari.
I sistemi non lineari sono una generalizzazione anche dei sistemi lineari.
Anche nei sistemi lineari ci sono n equazioni in n incognite però le equazioni sono lineari (ovvero
non sono polinomi non ci sono sen o log).
ESEMPIO:
In quando il sistema è lineare sto cercando l’intersezione tra 2 rette quando il sistema è non
lineare sto cercando l’intersezione tra 2 curve.
ESEMPIO:
171
Se:
ESEMPIO:
NEWTON IN
NEWTON in ovvero abbiamo un procedimento che genera una successione che converge ad
una soluzione del sistema non lineare.
Se allora
Se allora
In il metodo di NEWTON approssima la funzione con la sua tangente. In si fa preticamente la
stessa cosa e approssimiamo con .
172
In generale:
Dato
CRITERI D’ARRESTO
25. LEZIONE 25
Problemi ai limiti
PROBLEMI AI LIMITI
173
per ogni
I metodi delle differenze sostituiscono ad una sua discretizzazione quindi passiamo dal
continuo al discreto poi sostituiscono alle derivate approssimazioni cosidette alle differenze finiti
(questo mi produce un errore di troncamento) e questo non mi darà mai l’espressione analitica
della funzione ma saprò quanto vale la funzione nei punti della discretizzazione. Quindi dividiamo
l’intervallo in n intervalli grandi uguali.
Quindi abbiamo:
Siccome sostituisco alle derivate le differenze finite avrò un errore quindi in uscita non avrò i valori
esatti della funzione ma, un’approssimazione del valore che la funzione assume nei punti:
per i=0,…,n
Quindi alla fine saprò a meno di una certa approssimazione i valori che la funzione assume in questi punti.
Quello che otteniamo sono dei che sono delle approssimazioni delle ovvero sono delle
approssimazioni dei valori della funzione in e sono principalmente delle approssimazioni perché
ho sostituito le derivate con le differenze finite (e anche ma, non principalmente perché sto
lavorando in precisione finita).
Se nel continuo il problema è non lineare nel discreto ottengo un sistema non lineare.
Quello che si chiede al problema discreto è che se il problema continuo ammette soluzione unica
anche il problema discreto deve ammettere soluzione unica. Poi si chiede che se ovvero
ovvero aumento i nodi del campionamento allora .
DIFFERENZE CENTRALI
Abbiamo:
Quindi:
Ricavo :
E faccio un errore .
ESEMPIO:
Se faccio un errore che è .
Se faccio un errore che è .
Quindi più h è piccolo più l’errore è piccolo.
175
Si chiamano differenze centrali perché sto facendo la derivata in e utilizzo e .
DIFFERENZE IN AVANTI
E faccio un errore più grande perché l’errore è . Quindi in generale si utilizzano le differenze
centrali perché allo stesso costo l’errore è più piccolo.
DIFFERENZE ALL’INDIETRO
Con errore .
DERIVATA SECONDA
Quindi:
176
L’errore è un .
A questo punto.
per ogni
Quindi:
Allora si ha:
Per i=1.
177
Per i=2,…,n-2.
Per i=n-1.
Quindi abbiamo n-1 equazioni lineari e n-1 incognite che sono , ,…, . Il nostro obiettivo è
determinare la soluzione del problema discreto che sono appunto questi , ,…, ciascuno
dei quali è l’approssimazione della funzione nei punti della discretizzazione.
ESEMPO:
n=4
Abbiamo 5 punti e le incognite sono , e .
Questa matrice è simmetrica e sulla diagonale ha tutti 2 e fuori dalla diagonale -1. Questo in
generale perché per i=1 si ha per i=2,…,n-2 si ha e per i=n-1 si ha . -1 è il coefficiente
di
178
Se:
179
Questo è un sistema lineare nella forma:
Quindi devo risolvere un sistema lineare in cui la matrice è simmetrica tridiagonale ed è definita
positiva. Quindi posso risolverlo con Cholesky. Se la matrice è definita positiva allora è invertibile
(perché ha tutti gli autovalori positivi) quindi esiste ed è unica la soluzione del problema discreto.
Quindi più h è piccolo più n è grande più il problema diventa grande. Però più piccolo è h minore è
l’errore quindi verrebbe da prendere h piccoli. Il condizionamento di è un quindi più
piccolo è h più il problema è mal condizionato. Non si prende mai un . Si può
dimostrare che se la funzione è il massimo per i=1,…,n-1 quindi
più riduco h più riduco l’errore con una velocità . Questo significa che oltre all’errore commesso
con l’approssimazione delle derivate seconde non ne ho altri.
ESEMPIO:
180
, , , , , e
Facciamo le differenze centrali per un punto qualsiasi per i=1,…,n-1.
La derivata seconda si approssima come:
Equazioni interne.
Seconda equazione i=2.
Quarta i=4.
Quinta i=5.
181
Quindi:
È un sistema tridiagonale.
Il det della matrice è 0 quindi non è invertibile. Quindi il sistema lineare non ammette soluzione
unica e non va bene.
27. LEZIONE 27
Differenze centrali
Problemi differenziali ai valori iniziali
DIFFERENZE CENTRALI
per ogni
Abbiamo:
Sappiamo che otteniamo un’approssimazione della soluzione nei punti della discretizzazione.
182
L’approssimazione che calcoliamo è stata chiamata e si ha questa approssimazione perché
approssimiamo le derivate.
Per i=1,…,n-1
Raccogliamo , e .
183
Il primo termine noto viene perché .
Definizione
Deve esistere un indice i tale che questa disuguaglianza vale con il maggiore stretto >
Definizione
Deve esistere un indice i tale che questa disuguaglianza vale con il maggiore stretto >
Definizione
Per ogni i.
Definizione
184
Per ogni i.
Se una matrice è diagonale dominante in senso STRETTO allora è invertibile (non si dimostra).
Teorema
Se una matrice è tridiagonale diagonale dominante per righe (non in senso STRETTO) gli elementi
diagonali sono minori di 0 e gli elementi extradiagonali sono maggiori o uguali a 0allora è
invertibile.
Quindi se i sono minori di 0 e gli e sono maggiori o uguali a 0 allora la matrice è invertibile.
Allora.
1. Ipotesi su
Supponiamo che (che è il coefficiente di ) sia minore o uguale a 0 ovvero che sia una
funzione negativa o nulla in . Questa classe di problemi si chiama di diffusione trasporto.
2. Ipotesi su h
Allora:
Se allora allora .
Quindi . (garantito da ipotesi 1)
Se allora .
Quindi .
Se posso dire che se .
185
Se posso dire che se .
Dobbiamo controllare se è diagonale dominante. Per fare questo bisogna avere che:
per i=2,…,n-2. Siccome so che è negativo lo scrivo con un meno davanti quindi:
è maggiore di 4 perché .
Se allora
Se allora
A questo punto devo controllare per i=1 e per i=n-1 perché per essere diagonale dominante deve
essere almeno per un i maggiore stretto e per i=2,…,n-2 invece è minore o uguale.
Porto il 2 a sinistra.
186
Errore questo viene dalle differenze centrali in cui
l’errore è un
ESEMPIO:
ESEMPIO:
n=6
, , , , , e
Ipotesi 1:
è soddisfatta perché
Ipotesi 2:
deve essere
Si ha che perché:
Per
Per
Per
Per
Per
Per
Per
187
Quindi se si prende h=1 l’ipotesi 2 non è soddisfatta.
PREGI DIFETTI
Limitazione sulla scelta di h (in particolare se
Semplice è grande h deve essere
piccolo)
La matrice è tridiagonale
Con opportune ipotesi il metodo è convergente
L’errore è un
Se h è piccolo (ovvero se n è grande) non va bene perché aumenta tanto il costo computazionale.
METODO U WIN
Con questo metodo non si utilizza l’approssimazione delle differenze centrali per la derivata prima
ma, si ricorre alle differenze in avanti o alle differenze all’indietro.
Le differenze in avanti e all’indietro hanno un errore che è un quindi sono meno accurati.
1.
188
allora
quindi
allora
2.
allora quindi
allora
quindi
1.
Verificato.
Verificato.
189
Quindi la matrice è diagonale dominante.
Teorema
per ogni
per ogni
In questo caso non si calcola tutti i punti in una sola volta come si faceva con i problemi ai limiti
ma, si comincia dal primo punto poi si calcola il secondo e così via fino a .
ESEMPIO:
equazione semplice.
190
Siccome allora se faccio la derivata viene proprio 1 meno la
funzione stessa. Ovvero se sostituisco al posto di in ho proprio
.
QUINDI QUESTA EQUAZIONE È TALMENTE SEMLICE CHE NON HO NEANCHE BISOGNO DELLA
RISOLUZIONE NUMERICA.
ESEMPIO:
Equazione del secondo ordine (derivata seconda).
Problema modello.
Trascuro . Quindi:
lo conosco perché
lo conosco
Se
Ovvero sostituisco al valore della funzione (che vorrei) il valore della retta tangente.
Ovvero noi vorremmo sapere l’ordinata della funzione in che in questo caso conosciamo perché
l’equazione è semplice e la possiamo risolvere analiticamente (ed è ) ma, invece sappiamo
l’ordinata della tangente alla funzione in (che è ). L’errore si chiama residuo ed è che
abbiamo trascurato. Poi c’è l’errore di troncamento che è il residuo diviso h ovvero .
Però facendo così si aggiunge un errore perché non ho ma, ho che è un’approssimazione.
In pratica faccio la tangente ad un'altra curva diversa da quella iniziale. Quindi sto accumulando
errori. Questo metodo si chiama metodo di Eulero.
192
28. LEZIONE 28
Problema di Cauchy
Metodo di Eulero esplicito
PROBLEMA DI CAUCHY
per ogni
Con il metodo di Eulero esplicito si costruiscono delle che sono delle approssimazioni di della
soluzione dell’equazione differenziale (che non conosciamo) nei punti (questo non solo
con Eulero ma, con tutti i metodi. L’unica cosa che sappiamo è .
ESEMPIO:
Sistema 1
0,095
0,18
193
0,26
Trascuro .
Si ha anche che:
Quindi:
è esatta ovvero .
Se faccio l’errore assoluto ho:
soluzione esatta
approssimazione calcolata da Eulero partendo dal valore esatto
Però praticamente questo c’è l’ho al primo passo perché sto confrontando la soluzione esatta
con la soluzione che fornice il metodo se il punto precedente è esatto.
Soluzione approssimata.
194
Non posso mettere al posto di perché non la conosco e non è uguale a .
Quindi ho un accumulo di errore.
Consideriamo il problema:
Sistema 2
è il valore della tan2 alla curva 2 in . Quindi non faccio più la tangente alla curva
soluzione originaria ma, faccio la tangente ad un’altra curva soluzione. E così via.
QUINDI
1. Al primo passo
residuo
2. Ai passi successivi ho il residuo più l’errore dei passi prima
195
ERRORE DI TRONCAMNETO UNITARIO
Quindi al primo punto ho un errore che è mentre a quelli dopo ho un però va bene lo
stesso perché il metodo è convergente perché per . Se il residuo era un
il troncamento unitario sarebbe stato un quindi non sarebbe stato convergente.
Abbiamo ricavato il metodo di Eulero approssimando la curva con la tangente ma, si poteva
ricavare anche con le differenze in avanti. Ovvero:
per ogni
DIFFERENZE IN AVANTI
In questo caso c’è una dipendenza implicita perché sia a sinistra che a destra ho . QUESTO È
EULERO IMPLICITO. È più difficile. Ha un residuo che è e un errore di troncamento che è un
proprio come Eulero esplicito.
DIFFERENZE CENTRALI
MID POINT
Questo metodo si chiama MID POINT è esplicito. Per partire oltre a mi serve anche
un’approssimazione . Quindi è un esplicito a 2 passi. Quindi posso fare così lo calcolo con
Eulero e poi proseguo con il metodo MID POINT. Questo metodo ha un residuo che è un ed
è giusto che sia così perché l’approssimazione della derivata con le differenze centrali è un
mentre l’approssimazione della derivata con le differenze in avanti o all’indietro è un . Quindi
ho un errore di troncamento che è un .
Siccome ho:
197
Posso approssimare l’integrale con una formula di quadratura.
Quindi si possono costruire tanti metodi. Noi ci concentriamo sui metodi espliciti ad un passo.
METODO COERENTE
Quindi:
Quindi sostituisco a ea .
Quindi faccio valore esatto meno valore proposto dal metodo supponendo valore di inizio esatto.
Coerente
198
Convergente
29. LEZIONE 29
Classe di metodi di Runge-Kutta espliciti
Il nostro problema e:
per ogni
Noi consideriamo metodi espliciti ad un passo per i quali essere coerenti significa anche essere
convergenti ovvero per si ha che .
Se utilizzo RUNGE-KUTTA che è non Stiff e non funziona devo andare ai Stiff.
I metodi di RUNGE-KUTTA utilizzano questo in cui approssimano l’integrale con la somma pesata
pesi
valore della funzione
ESEMPIO:
Metodo di Heun
è l’approssimazione che mi fornisce Eulero.
Quindi faccio:
ESEMPIO:
Metodo di Eulero modificato.
200
Metodo a 2 stadi di ordine 2.
è l’approssimazione di Eulero in .
numero di stadi
Quindi è:
Quindi c’è una formula ricorsiva che mi permette di calcolarmi tutti i e poi li sommo.
201
ESEMPIO:
Metodo di Heun.
ESEMPIO:
Eulero modificato.
202
A ogni metodo è associata una matrice.
ESEMPIO:
Metodo a 5 stadi. Metodo in Matlab.
Si è determinato che:
ESEMPIO:
Metodo di Heun applicato a:
203
Devo calcolare :
Eulero Heun
0,1 0,0952 0,095
0,19 0,1813 0,1810
0,27 0,26 .
0,34 0,30 .
ESEMPIO:
Ad ogni passo il metodo di Heun costa di più però richiede meno passi perché h è più grande.
Si può stimare facendo la differenza tra le approssimazioni trovate con il metodo di ordine p e
con il metodo di ordine p+1.
204
Se accoppio Heun con Eulero non mi costa così tanto perché dentro Heun c’è Eulero quindi mi
costa solo il metodo di Heun.
205
Molto più che documenti.
Scopri tutto ciò che Scribd ha da offrire, inclusi libri e audiolibri dei maggiori editori.
Annulla in qualsiasi momento.