Sei sulla pagina 1di 205

Anno Accademico 2015/2016

Corso di Laurea in Ingegneria Civile

Appunti di Analisi numerica

Dalle lezioni delle prof. Stefania Bellavia e Alessandra Papini

Andrea Geppetti Niccolò Bandini

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:

Problemi di grandi dimensioni sono difficili da risolvere senza computer.


Per esempio matrici 100x100

ESEMPIO:

Integrali di cui non conosco la soluzione analitica.

Non ho una formula che definisce la funzione.

Le funzioni che definiscono il problema non sono note, ma le so calcolare.

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:

Quando un computer rappresenta l’espressione log(x) fa in automatico un campionamento di


valori sull’asse x calcola i rispettivi log(x) e unisce i punti.
x log10(x)
0.3 -0.52
0.5 -0.30
1 0.00
1.5 0.18
2 0.30
2.5 0.40

6
ARGOMENTI DEL CORSO

1. Approssimazione funzioni note

ESEMPIO:

2. Approssimazione di integrali
3. Approssimazione di problemi differenziali
4. Equazioni non lineari
7
ESEMPIO:

Approssimare lo zero.

5. Risoluzione sistemi lineari


6. Autovalori

(Prima parte)

ERRORI DI ARROTONDAMENTO

Nel computer c’è sempre un errore dovuto allo strumento.

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.

Integrale = area sottesa alla curva


Nel discreto.

Integrale = sommatoria delle aree dei rettangoli


Facendo questa operazione si commette un errore chiamato errore di discretizzazione.

Un altro tipo di errore è l’errore troncamento.

9
ESEMPIO:

Devo trovare lo zero di una funzione tramite un procedimento iterativo.


Traccio la prima tangente in un punto 1 scelto da me. Traccio la proiezione e trovo il punto 2. Dal
punto 2 traccio la tan2.

Ripeto il procedimento un numero n di volte.

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.

Queste istruzioni devono essere scritte in un linguaggio comprensibile al computer.

ERRORE DI ARROTONDAMENTO

Rappresentazione di numeri sull’elaboratore.

Numeri:

 Interi
 Reali

[Matlab tratta tutti i numeri come reali]

PER QUANTO RIGUARDA GLI INTERI

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:

Per i numeri interi ci sono a disposizione 32 bit.

Se ci fossero a disposizione 4 bit il numero memorizzabile più grande sarebbe:

Quindi se ho 32 bit il numero memorizzabile più grande è:

31 perché il primo bit è usato dal segno.

 Si ha 1 se il segno è +
 Si ha 0 se il segno è –

11
Se ho un numero:

 commetto un errore chiamato OVERFLOW


 commetto un errore chiamato UNDERFLOW

Questo non è un problema perché gli interi servono a contare (per esempio le dimensioni delle
matrici) e non si arriva mai a queste cifre.

PER QUANTO RIGUARDA I NUMERI REALI

I numeri reali si possono rappresentare in molti modi.

ESEMPIO:

Questo è un problema perché serve una regola per rappresentarli.

Ci si riferisce alla notazione floating Point.

 mantissa
 base
 caratteristica (numero intero)

Quindi deve esserci prima della virgola una cifra.

ESEMPIO:
Per l’esempio precedente la notazione floating Point è:

La caratteristica è molto importante perché esprime l’ordine di grandezza del numero.

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

Rappresentazione numeri reali:

notazione virgola mobile (floating Point):

 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

Floating Point in base 2

Sequenza di bit:

 1 bit per il segno della mantissa (1=+;0=-)


 Un po’ di bit per la mantissa
 1 bit per il segno della caratteristica (1=+;0=-)
 Un po’ di bit per la caratteristica

In particolare in precisione semplice (32 bit)

 1 bit per il segno della mantissa (1=+;0=-)


 23 bit per la mantissa
 1 bit per il segno della caratteristica (1=+;0=-)

13
 7 per la caratteristica

In precisione doppia (64 bit) come in Matlab ho più memoria

 1 bit per il segno della mantissa (1=+;0=-)


 52 bit per la mantissa
 1 bit per il segno della caratteristica (1=+;0=-)
 10 per la caratteristica

SOGLIA SUPERIORE (precisione doppia)

Numero più grande memorizzabile e in precisione doppia q ha 10 cifre di mantissa.

Caratteristica più grande

Quindi il numero più grande è (soglia di overflow)

Se x>U non è rappresentabile e nemmeno approssimabile e Matlab restituisce inf.

SOGLIA INFERORE (precisione doppia)

(soglia di underflow)

Se x<L Matlab restituisce 0.

SOGLIA SUPERIORE (precisione semplice)

SOGLIA INFERIORE (precisione semplice)

Quindi le soglie si abbassano parecchio.

NUMERI DI MACCHINA

I numeri di macchina sono quei numeri esattamente rappresentabili in macchina.

 Mantissa di lunghezza≤m
 Caratteristica rappresentabile con t cifre in base β

ESEMPIO:

I numeri compresi fra 1,01 e 1,02 non sono numeri di macchina


14
I numeri di macchina sono discreti e più fitti vicino allo 0.

non c’è perché essendo si ha che

Taratura dello strumento.

 epsilon di macchina (distanza tra uno e il successivo numero di macchina)

ESEMPIO:

Precisione semplice
 m=23 cioè 23 bit per la mantissa

ESEMPIO:

Precisione doppia
 m=52 cioè 52 bit per la mantissa

Questo è l’ordine di grandezza degli errori che avrò.

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

Bisogna operare un’approssimazione di x


15
floating di x
1. Troncamento
Tronco la mantissa
2. Arrotondamento
Arrotondo il numero più vicino per eccesso o per difetto.

Approssimando si commette un errore:

 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

Quando metto un numero in macchina commetto questo errore.

MATLAB

Matlab è un ambiente:

 Si può usare in modalità interattiva


 Si può usare come linguaggio di programmazione
 È una libreria di programmi (ci sono funzioni predefinite per risolvere particolari problemi)

Ci sono anche i TOOLBOX che sono ulteriori pacchetti per risolvere problemi specifici.

ESEMPIO:
Algoritmo

17
In memoria:

 64 bit per il numero 1 assegnato ad a


 64 bit per il numero 1,2 assegnato a b
 64 bit per il numero 2,2 c

Il computer capisce solo il linguaggio macchina composto da 0 e 1.

Come faccio a far capire al computer il mio linguaggio di programmazione??

Ognuna delle istruzioni di un algoritmo corrisponde a più istruzioni in linguaggio macchina


codificate da 0 e 1. Non è pensabile scrivere un algoritmo in linguaggio macchina.

In pratica funziona così:

(linguaggio compilato)

PROGRAMMA SORGENTE (scritto da me in un linguaggio di programmazione)

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.

In questo tipo di linguaggio la traduzione avviene una volta sola.

Nel Matlab viene usato un linguaggio interpretato che funziona così:

(linguaggio interpretato)

PROGRAMMA SORGENTE (scritto da me in un linguaggio di programmazione)

TRADOTTO E ESEGUITO (la traduzione avviene per ogni riga)

È 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:

Assegno alla variabile a il valore 0,1.

Quando faccio la funzione assegnazione vengono fatte tante cose:


 Si va nella memoria si prendono 64 bit che vengono dedicati alla variabile a
 Ad a viene assegnato il valore 0,1
 Il computer prende questo numero 0,1 in base 10 lo converte in base 2 lo scrive in
notazione floating Point e lo memorizza
[ 0,1 in base 2]

Se dopo a=0,1 metto ; Matlab non mostra il risultato.

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.

QUINDI NON È DETTO CHE LA SOMMA DI 2 NUMERI DI MACCHINA SIA UN NUMERO DI


MACCHINA.

ESEMPIO:
[In Matlab ]

a=0,1

Dovrebbe venire 0 perché .


Matlab invece restituisce:

[In Matlab ]

Quindi l’errore che commetto è .

ESEMPIO:

Se faccio x=0 e calcolo sen(x) dovrebbe venire 0 e effettivamente Matlab mi restituisce 0.

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

Se scrivo eps Matlab mi restituisce che è .

si semplifica e si ha:

Essendo in precisione doppia e in base 2 la mantissa ha 52 bit (m=52) e (β=2).

22
Che è proprio il valore di eps.

FUNZIONE REALMAX

Se scrivo realmax Matlab mi restituisce che è il numero di macchina


rappresentabile più grande. Oltre questo numero vado in Overflow.

FUNZIONE REALMIN

Se scrivo realmin Matlab mi restituisce che è il numero di macchina


rappresentabile più piccolo. Oltre questo numero vado in Underflow.

Se scrivo Matlab dovrebbe restituirmi 0 invece mi restituisce il risultato


esatto ovvero . Questo perché trascura le ultime cifre di mantissa.

Matlab mi restituisce 0 se scrivo .

23
3. LEZIONE 3
 Riepilogo
 Operazioni in macchina
 Algoritmo per il calcolo della precisione di macchina

RIEPILOGO

Rappresentazione dei numeri reali (floating Point):

Con

Ci sono delle limitazioni di memoria:

 Sulla caratteristica (che portano all’Overflow o all’Underflow)


 Sulla mantissa che fanno sì che se x non è un numero di macchina si approssima con il suo
floating (che viene approssimato al numero di macchina più vicino con n cifre di mantissa
che è il numero di cifre che possiamo tenere in macchina)

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

Il computer quando fa un’operazione in macchina:

1. Prende x e lo approssima al numero di macchina più vicino


2. Prende z e lo approssima al numero di macchina più vicino
3. Se la somma non è un numero di macchina la approssima al numero di macchina più vicino

Se x e z sono numeri di macchina (ovvero se si hanno a disposizione m cifre di mantissa questi


numeri hanno al massimo m cifre di mantissa) si ha che:



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

 I numeri x e z vengono approssimati con fl(x) e fl(z)


 I numeri vengono portati ad avere la stessa caratteristica così posso fare la somma delle
mantisse (il numero con caratteristica più piccola viene portato alla caratteristica del
numero più grande)
 Sommo le mantisse e approssimo il risultato con il floating Point

MOLTIPLICAZIONE E DIVISIONE

La moltiplicazione e la divisione sono più semplici. Per la moltiplicazione:

 Le caratteristiche vengono sommate


 Le mantisse vengono moltiplicate

ESEMPIO:

SOMMA E SOTTRAZIONE

ESEMPIO:
 4 cifre di mantissa (m=4)
 Base 10 (β=10)

Devo sommare i seguenti numeri:




Li devo portare in notazione floating Point:

25

Questi non sono numeri di macchina perché m=4 mentre questi numeri hanno 5 cifre di mantissa.
Quindi li devo approssimare:


Ora li posso sommare:

Porto x ad avere la stessa caratteristica di z:

Il numero x non è più in notazione floating Point.


Ora sommo le mantisse:

non è un numero di macchina. Devo arrotondare.

Questo è il risultato in macchina.


La precisione di macchina è:

Devo calcolare l’errore relativo. Metto i 2 numeri nella stessa base:




Faccio la somma esatta:

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.

La precisione di macchina è la distanza tra 1 è il numero di macchina successivo!!

QUESTO NON È TANTO IMPORTANTE.

Definizione

La precisione di macchina è la limitazione degli errori di arrotondamento quando metto i


numeri in macchina!!

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 è )

PROPRIETÀ DELLA SOMMA SOTTRAZIONE IN MACCHINA

 Commutativa
26
 NON c’è la associativa [ proprietà associativa]
 L’elemento neutro della somma e della sottrazione non è solo 0
ESEMPIO: (elemento neutro)

Con e

ESEMPIO: (elemento neutro)

 5 cifre di mantissa (m=5)


 Base 10 (β=10)
Devo sommare i seguenti numeri:


Li devo portare in notazione floating Point:


Ora li posso sommare:

Porto z ad avere la stessa caratteristica di x:

La mantissa è composta da 5 cifra quindi nel numero perdo il contributo di perché è


oltre la mantissa. Ottengo quindi:

Ho perso completamente il contributo di z.

ESEMPIO: (proprietà associativa)

 5 cifre di mantissa (m=5)


 Base 10 (β=10)
Devo sommare i seguenti numeri:



1. Faccio :

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.

ALGORITMO PER IL CALCOLO DELLA PRECISIONE DI MACCHNA

[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

Se a è un numero maggiore della precisione di macchina ( ) la sua prima cifra viene


prima della fine della mantissa e quindi da contributo.

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.

Non è che che è minore della precisione di macchina lo approssima con 0.

Se io non sapessi che la precisione di macchina è

Potrei costruire un algoritmo per calcolarlo.


29
Si lavora in base 2 (con 0 e 1) quindi la precisione di macchina è .

[Le potenze di 2 sono tutti numeri di macchina]

Faccio questa somma:

Ma e sono numeri di macchina quindi.

Se significa che sono sopra la precisione di macchina (come nell’esempio avevo


che se allora ). Allora ci sommo un
altro numero:

Se sono ancora sopra la precisione di macchina e allora continuo a sommare:

Ad un certo punto si avrà che:

Perché .

Quindi devo scrivere una cosa simile in forma di algoritmo.

Un algoritmo è formato da:

 Dati (che in questo caso non ho)


 Risultato (che in questo caso è la precisione di macchina in pratica voglio
calcolare m)

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

In Matlab non posso dire torna a 2. Devo fare il ciclo While.


30
CICLO WHILE

1. Poni
2. Poni
3. Mentre
3.1 Poni
3.2 Poni
4. Risultato

4. LEZIONE 4 (MATLAB)

Matlab può essere usato semplicemente come una calcolatrice.

ESEMPIO:

Se dopo l’operazione metto ; Matlab non mostra il risultato ma, esegue comunque l’operazione e
memorizza il risultato.

Ans è il nome che da Matlab ad una variabile se non lo do io.

31
ESEMPIO:

La , è un separatore f non lo mostra perché c’è il ;.

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:

Calcolare l’errore assoluto di calcolato da noi e da Matlab.

Si sa che
Matlab invece restituisce .
Si può quindi calcolare l’errore assoluto:

 soluzione esatta
 soluzione calcolata

L’errore assoluto è proprio .

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

Dovrebbe essere 0. Matlab invece restituisce .

ESEMPIO: (Algoritmo per il calcolo della precisione di macchina)

Per calcolare la precisione di macchina scrivo il seguente file script.


File new script

Che mi restituisce che è lo stesso valore che mi restituisce la funzione eps.

ESEMPIO:
35
Scrivere i vettori e .

Calcolare , , e il prodotto componente per componente di x e y.

36
37
5. LEZIONE 5
 Come si propaga l’errore
 Errore di cancellazione
 Metodi iterativi

COME SI PROPAGA L’ERRORE (DI ARROTONDAMENTO) NELLE OPERAZIONI IN MACCHINA (IN


PARTICOLARE PER LA SOMMA E LA SOTTRAZIONE)

Quando mettiamo un numero in macchina cioè facciamo il floating di quel numero commettiamo
un errore che chiamiamo .

Sappiamo che .

Posso scrivere:

Questo lo posso scrivere tutte le volte che faccio un arrotondamento.

Con .

Siccome ci interessa la propagazione dell’errore per la somma e la sottrazione procediamo alla


somma in macchina di x e di z.

Al posto di fl(x) e di fl(z) metto:


38
è un numero quindi posso scrivere l’errore che commetto quando faccio il suo
floating che chiamo .

Quindi tornando all’equazione precedente si ha:

Faccio il prodotto:

e si possono trascurare perché:



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

L’errore relativo dipende da:

 , che sono gli errori sui dati


 errore introdotto dalla somma (perché se il risultato della somma non è un numero di
macchina lo deve arrotondare)
 xez

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).

Se x o z non sono numeri di macchina:

Questa quantità non è detto che sia piccola.

Se (questa operazione è una sottrazione tra 2 numeri vicini) che è un numero


piccolo. Quindi a dividere in questo rapporto ( ) ho un numero piccolo e quindi il rapporto
diventa grande.

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.

QUESTO ERRORE SI CHIAMA ERRORE DI CANCELLAZIONE (ed avviene quando si sottraggono 2


numeri vicini).

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 .

Ora invece di avere la mantissa di 5 cifre (m=5) è di 4 (m=4).


 4 cifre di mantissa (m=4)
 Base 10 (β=10)
Si ha:

40
 floating
 floatng

La somma è:
L’errore relativo è:

La precisione di macchina è:

Si chiama errore di cancellazione perché cancello arrotondando x che è determinante


quando faccio x-z.

Se
 3 cifre di mantissa (m=3)
 Base 10 (β=10)
Si ha:
 floating
 floatng
La somma è:
L’errore relativo è:

ERRORI:

 Errori di arrotondamento sui dati (che sono i primi errori)


 Errori di arrotondamento nelle operazioni (tutte le volte che faccio un’operazione e il
risultato non è un numero di macchina arrotondo)

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:

 dati esatti da cui si ricava la soluzione


 dati non esatti da cui si ricava la soluzione

41
errore relativo sui dati

LA DOMANDA CHE CI DOBBIAMO FARE È?

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:

Se faccio il calcolo io:

42
Quindi la soluzione esatta con i dati esatti è:

Questa è quella soluzione che era stata chiamata .

Rifacciamo i calcoli con DATI NON ESATTI:

Se faccio il calcolo io:

Quindi la soluzione esatta con i dati non esatti è:

Questa è quella soluzione che era stata chiamata .

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 .

ERRORE RELATIVO SUI DATI

ERRORE RELATIVO SUI RISULTATI

Quindi.

Il problema è mal condizionato.

GRAFICAMENTE
Per i dati esatti:

43
Il punto di intersezione tra le 2 rette che sono quasi coincidenti è:

Per i dati non esatti:

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:

 Se la distanza tra dati è: e la distanza tra le soluzione è:


il problema è ben condizionato.
 Se la distanza tra dati è: e la distanza tra le soluzione è: il
problema è mal condizionato.

TUTTO CIÒ È IMPORTANTE PERCHÉ NON AVRÒ MAI DATI ESATTI!!

Si definisce indice di condizionamento del problema:

 Se e allora e il problema è ben


condizionato.

Più k è grande più il problema è mal condizionato.

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.

IL MAL CONDIZIONAMENTO DI UN PROBLEMA È UNA CARATTERISTICA NEGATIVA DEL PROBLEMA


E NON CENTRA NULLA L’ALGORITMO O IL FATTO CHE UNO LO STA RISOLVENDO CON DELLE
OPERAZIONI IN MACCHINA.

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.

Ci sono problemi che non posso proprio risolvere.

ESEMPIO:

Se lavoro in precisione semplice ho:


 Precisione di macchina
Se ho un indice di condizionamento del problema che è:

In questo caso è inutile provare a risolvere il problema perché ho 7 cifre buone e il


condizionamento né fa perdere 7.
Se lavoravo in precisione doppia avevo:
 Precisione di macchina
Sempre con indice di condizionamento:

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:

è il mio nuovo dato .


Faccio l’errore assoluto (non posso fare l’errore relativo perché dividerei per 0) e ho
.
Una delle radici del 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.

La soluzione la produce l’algoritmo. Quindi devo capire se l’algoritmo mi dà una soluzione


buona oppure no. DIPENDE DALL’ALGORITMO.

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.

Ovvero algoritmo stabile se:

EQUAZIONI NON LINEARI

ESEMPIO:
Trova gli zeri della seguente equazione:

ESEMPIO:
Trova gli zeri della seguente equazione:

Polinomio di grado 3 di cui non so calcolare la soluzione in modo analitico.


Può avere o 1 o 3 soluzioni. Questo problema si ha quando si deve trovare l’asse neutro di un
pilastro soggetto a pressoflessione.

I procedimenti per risolvere questi problemi sono procedimenti di tipo iterativo.

METODI ITERATIVI
47
Metodi iterativi vuol dire che generano una successione di approssimazioni.

Voglio determinare tale che .

è una funzione non lineare scalare (un polinomio).

[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’è).

I METODI ITERATIVI GENERANO UNA SUCCESSIONE DI APPROSSIMAZIONI CHE CHIAMEREMO


CHE VANNO A .

L’approssimazione viene costruita a partire da un’approssimazione iniziale che viene chiamata


.

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

Se il metodo funziona la successione di converge in .

MI DEVO FARE DELLE DOMANDE:

 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)??

Per quanto riguarda la domanda: Come scelgo ??

Abbiamo a che fare con:

 METODI LOCALMENTE CONVERGENTI in cui deve essere una buona approssimazione


(ovvero vicino) a .
 METODI GLOBALMENTE CONVERGENTI in cui non deve essere necessariamente una
buona approssimazione (ovvero vicino) a .

Una questione molto importante è IL COSTO COMPUTAZIONALE ovvero:

 QUANTO COSTA IL PROCEDIMENTO??

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.

Con questo metodo genero tante successioni. Genero la successione e le successioni e


.

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.

La funzione deve essere continua nell’intervallo .

Il metodo è applicabile alla funzione in figura perché e quindi


49
Il metodo non è applicabile alla funzione in figura perché per ogni intervallo la funzione è positiva.

Queste funzioni si dicono a radice doppia perché in si annulla sia la funzione che la derivata
della funzione.

Dati e il metodo genera come:

A questo punto il procedimento della bisezione valuta il segno della funzione in e .


50
In questo caso si ha che quindi per il teorema degli zeri si ha che deve esserci
uno 0 tra e .

A questo punto pone e e trova .

A questo punto ho .

Quindi lo 0 sta fra e .

Si ha che:

 Se

Assegno

 e

Altrimenti assegno

 e

Con

In generale si genera una successione di , e .

51
A ogni iterazione:

 Dimezzo l’intervallo
 So che appartiene all’intervallo per il teorema degli zeri perché la funzione è
continua e

SCHEMA DELL’ITERAZIONE (k-esima)

 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

RIEPILOGO METODO DI BISEZIONE

Problema:

Determinare tale che .

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:

La funzione è la soluzione di un’equazione differenziale e io me la sò calcolare perché a monte


risolvo numericamente l’equazione differenziale.

ESEMPIO:

La funzione la misuro con uno strumento ma, non conosco la sua espressione analitica.

Il procedimento della bisezione è il più semplice dei procedimenti iterativi.

Per partire è necessario avere un intervallo che contiene la radice e che

Ovvero una situazione come in figura.

Per il teorema degli zeri ho che se la funzione è continua e allora esiste almeno un
tale che .

53
IL PROCEDIMENTO FA:

 Una successione di intervalli


 Una successione dei punti medi degli intervalli

E lo fa partendo da un intervallo da cui calcola e poi costruisce una successione


di intervalli e una successione di punti medi. Dopo aver trovato il punto medio valuta il segno della
funzione nel punto medio e valuta se è lo stesso segno di o di . Quindi ripete il
procedimento ponendo come estremo il punto medio appena trovato dalla parte di quello con lo
stesso segno e lasciando l’altro invariato. Nel caso in figura si ha quindi:

Mi devo fare delle domande.

 Questo procedimento converge??

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.

allora ovvero converge. Converge per ogni scelta dell’intervallo


convergenza globale.

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.

HO BISOGNO DEI COSIDETTI CRITERI D’ARRESTO.

Se mi fermo alla k-esima iterazione l’errore che commetto è:

Perché approssimo con . Si sa che:

 non si può calcolare perché non conosco

55
 questo si può calcolare ed è una maggiorazione dell’errore (questo si ha solo
nella bisezione negli altri metodi questa quantità va stimata)

Quindi ci si ferma quando questa quantità è piccola.

Quindi alla fine del procedimento calcolerò un (che è la mia radice) tale che:

 tolleranza

Quanto è piccola la 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:

Io mi posso calcolare il k+1 per cui . Infatti:

Applico .

Riporto in .

Queste quantità le posso calcolare tutte prima di cominciare il procedimento.

ESEMPIO:

Parto da un intervallo tale che e una ho tolleranza che è .


Quante iterazioni di bisezione devo fare??
56
iterazioni
Per andare da a (che sono 7 ordini di grandezza) servono 20 iterazioni quindi per andare
da un ordine di grandezza all’altro servono iterazioni CHE NON SONO POCHE.
Per questo è a convergenza lenta. Ci sono procedimenti più veloci.

LA BISEZIONE HA UN ALTRO PREGIO OVVERO UN PICCOLO COSTO PER ITERAZIONE.

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 .

QUINDI FA UNA VALUTAZIONE DI FUNZIONE PER OGNI ITERAZIONE.

Il costo per iterazione non può essere più piccolo di così.

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.

MOLTEPLICITÀ DI UNA RADICE

tale che ha molteplicità p se:

Con la bisezione non riesco ad approssimare radici con 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

L’algoritmo può finire in 3 o in 4.

ESEMPIO:

Dati e . Entro dentro il ciclo ripeti e siccome il contatore è


l’algoritmo pone k=0 se c’era scritto l’algoritmo poneva k=1. A questo punto
comincia e siccome k=0 diventa .

 64 bit di memoria per


 64 bit di memoria per
 64 bit di memoria per
Se la funzione di cui devo calcolare la radice è
A questo punto deve calcolare:



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.

In Matlab l’algoritmo non si scrive con tutti i k ma, si scrive così:

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:

Riferito all’esempio precedente.


Dati e .
Comincio quindi k=0.

Calcolo y.

Si ha che quindi l’intervallo diventa e quindi il mio nuovo ab è


e in questo modo non mi devo memorizzare l’intervallo di prima e .
Al nuovo ciclo ho:
 k=1




59
7. LEZIONE 7 (MATLAB)

ESEMPIO:

Scrivere l’algoritmo della sommatoria .


L’algoritmo è:

Dati
Risultati
1. Poni s=0
2. Ripeti per
2.1. Poni
3. Fine
[In Matlab ripeti è for]
L’algoritmo in Matlab è:

Che è uno script che ho salvato con il nome som.


Per avere il risultato basta scrivere som.

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.

Per quanto riguarda:

 Assegnazione dati
 Acquisizione risultati

La cosa migliore è lo script.

Per quanto riguarda:

 I calcoli

La cosa migliore è la function.


60
ESEMPIO:

Vogliamo scrivere una function che traduca l’algoritmo per la somma di n numeri.
File new function
Aperta la function ho:

Mi indica gli argomenti in ingresso e in uscita. In ingresso ho:


 numero di componenti del vettore
 vettore
In uscita ho:
 somma componenti del vettore
Poi ci sono i commenti che servono a descrivere quello che fa la function. Se scrivo help e poi il nome della
function mi restituisce i commenti (nome della function som1).

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.

Se andiamo nello script dell’esempio precedente e riassegniamo i nomi come:





Gli argomenti m v e sm sono chiamati argomenti attuali.
Inoltre facciamo diventare il ciclo for un commento e quindi non funziona più e assegniamo:

61
Quindi il calcolo lo fa la function.
Se scrivo som Matlab mi restituisce:

Matlab restituisce le variabili m v sm dello script e non n a s della function.

ESEMPIO:

Esempio per capire if else.


Fare lo script.

Salvarlo come ifif. Scrivere ifif e dare il valore di b.

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ì.

Alla prima iterazione potrebbe essere così.

63
Sappiamo che l’errore all’iterata k-esima è:

E se:

 tolleranza che decido io in relazione al problema.

Mi fermo e ho trovato la radice .

Se invece:

Non mi fermo trovo un nuovo punto e vado avanti.

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
.

QUESTO CRITERIO MI PERMETTE DI FERMARMI QUANDO IL VALORE DI è piccolo ovvero


quando questo valore è più piccolo di una certa tolleranza .

In pratica se questa distanza:

È piccola posso fermarmi.

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 .

Per capire se si fa:

Con che appartiene a . So che quindi ho che:

Siccome appartiene a posso scrivere quindi:

Se allora:

Se mi fermo quando ho anche che . Quindi in questo caso l’errore è circa


la tolleranza e quindi il criterio funziona.

CI SONO 2 CASI IN CUI IL CRITERIO NON FUNZIONA:

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:

Quindi ovvero mi fermo troppo presto.

CASO 2:

In questo caso anche se il criterio non si ferma perché è grande.

ESEMPIO:
Dati:


Si ha che:

Faccio più iterazioni di quelle necessarie.

67
Quindi il criterio d’arresto si usa ma, bisogna fare attenzione oal grafico della funzione
o alla derivata.

L’algoritmo della bisezione quindi diventa:

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

Del metodo della bisezione abbiamo detto che:

 È un metodo lento
 Ogni iterazione costa poco (a ogni iterazione valuta il segno della funzione in )

Quindi è lento a causa del piccolo costo per iterazione.

IL METODO DI NEWTON È IL PIÙ USATO PERCHÉ È UN PROCEDIMENTO CHE DA LUOGO A TANTI


METODI.

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).

Quindi continuo e costruisco la tangente in e trovo il punto .

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.

Quindi il mio è proprio:

A questo punto rifaccio la stessa cosa con al posto di ci metto . In generale all’iterata k-esima
avrò:

Il metodo di NEWTON genera una successione di fatta così:

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:

Per una funzione tipo quella in figura la scelta di è indifferente.

Non è sempre così.

ESEMPIO:

71
Se si parte da il metodo funziona e converge se invece si parte da il metodo non funziona.

ESEMPIO:
Consideriamo la funzione:

Il grafico della funzione è il seguente.

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 .

TEOREMA DI CONVERGENZA DEL METODO DI NEWTON

Per avere il problema ben definito è necessario che per ogni k.

Definizione

Se una funzione ha derivata continua e allora c’è un intorno di tale che .

ESEMPIO:

Se allora intorno a risulta .

TEOREMA

Ipotesi:

 appartiene a mi serve per dire che la derivata della funzione è continua.


 appartiene a

Stiamo considerando funzioni fatte così.

74
Non stiamo considerando funzioni fatte così.

Con queste ipotesi si ha che esiste un tale che se per cui la successione
di NEWTON:

 È ben definita per ogni k


 Converge a [ ]
 La convergenza è quadratica

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

La convergenza può essere:

 Lineare (siccome stiamo parlando di velocità di convergenza sappiamo che la successione


converge ). Mi devo chiedere se la convergenza è lenta o veloce ovvero quanto si
riduce l’errore?? Siccome la convergenza è lineare so che l’errore all’iterata k-esima è
minore o uguale a quello dell’iterata precedente moltiplicato per una costante.
con se a ogni
iterazione l’errore si riduce di 1/2 se a ogni iterazione l’errore si riduce di 1/10 se
a ogni iterazione l’errore si riduce di 0,9 quindi di poco [per la bisezione possiamo
pensare, anche se non è vero perché è l’intervallo che si dimezza non l’errore, che è a
convergenza lineare e che l’errore si riduce a ogni iterazione di 1/2]. Possiamo quindi dire
che:
 Se la convergenza lineare è lenta
 Se la convergenza lineare è veloce
 Quadratica. Nella convergenza quadratica l’errore all’iterata k-esima (per k grande ovvero
quando sono vicino alla radice e l’errore è minore di 1 perché se l’errore è maggiore di 1 il
metodo non converge ma, diverge) è uguale all’errore dell’iterata precedente al quadrato
per una costante. con

EEMPIO:

Se .
Con la convergenza lineare è:

Servono 2 iterazioni perché l’errore si riduca di un ordine di grandezza.


Per la convergenza quadratica si ha:

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:

Questa funzione ha 2 radici che sono e .


Questa funzione è importante perché quando calcolo la radice quadrata di un numero con il
computer lui usa il metodo di NEWTON in questo modo.
Quindi se voglio calcolare la radice quadrata di un numero c il computer risolve con il metodo di
NEWTON la funzione . Il computer approssima il numero positivo.
In questo caso la successione di NEWTON è:

Facciamo il confronto tra la bisezione e NEWTON.


BISEZIONE
Dati bisezione:
 Tolleranza
 Intervallo
Risultati bisezione:

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.

Quindi alla fine costa meno NEWTON.

CRITERIO D’ARRESTO PER NEWTON

 NUMERO MAX DI ITERAZIONI (IMPORTANTISSIMO PERCHÉ SE SCELGO UN CHE NON VA


BENE IL PROCEDIMENTO POTREBBE NON FERMARSI)
 questo si chiama criterio rivolto alla funzione e l’algoritmo si ferma quando il
valore della funzione all’iterata k-esima è minore della tolleranza.
 questo si chiama criterio rivolto alla successione.

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 .

Mi devo chiedere se posso usare questo al posto di questo .

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.

Procedimenti iterativi studiati:

 Metodo di bisezione
 Metodo di NEWTON

Quando si ha a che fare con dei procedimenti iterativi è necessario avere dei criteri d’arresto.

I criteri d’arresto sono:

 NUMERO MAX DI ITERAZIONI (IMPORTANTISSIMO PERCHÉ SE SCELGO UN CHE NON VA


BENE IL PROCEDIMENTO POTREBBE NON FERMARSI)
 questo si chiama criterio rivolto alla funzione e l’algoritmo si ferma quando il
valore della funzione all’iterata ksima è minore della tolleranza.
 questo si chiama criterio rivolto alla successione.

Concentriamoci sul criterio d’arresto rivolto alla successione.

Se siamo in R si ha:

Questo criterio può essere usato anche in e 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.

Mi devo chiedere se approssima bene ?? Oppure se stima bene


l’errore??

1. Se la convergenza è lineare so che:

con

A questo punto sostituisco a questo . Quindi viene:

Faccio la sostituzione:

Quindi:

 errore all’iterata k-1

Si ha anche (non si dimostra) che:

 Se convergenza lineare veloce. Posso dire che:

e che quindi è poco più piccolo di 1 e è poco più grande di


1. Quindi:

Quindi:

è una buona stima dell’errore.

 Se convergenza lineare lenta. Posso dire che:

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.

2. Se la convergenza è quadratica si ha che:

con

Considerando:

Sostituisco a questo . Quindi ho:

Quindi:

Si ha anche (non si dimostra) che:

Siccome converge si ha che:




Quindi:

Nel caso della convergenza quadratica stima bene l’errore.

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.

Si ha un problema quando la successione perché diventa un numero piccolo e


questo diventa un numero grandissimo. In questi casi dovrei usare un criterio assoluto
ovvero:

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 .

 Se non c’è è il criterio assoluto


 Se non c’è è il criterio relativo

ESEMPIO:

 Se

Se relativo e assoluto sono la stessa cosa:

 Se

Praticamente diventa un criterio relativo perché non da contributo rispetto a ed è


giusto che sia così perché sto convergendo ad un numero più grande di 1.
 Se

Praticamente diventa un criterio assoluto perché non da contributo rispetto a ed è


giusto che sia così perché sto convergendo ad un numero più piccolo di 1.

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

ALGORITMO DEL METODO DI NEWTON

Dati in ingresso (da mettere nella parte a destra nella function in Matlab):

 punto iniziale che ci serve per partire


 Numero max di iterazioni

82
 tolleranza sulla funzione (l’algoritmo si ferma quando )
 tolleranza relativa
 tolleranza assoluta

Se non voglio usare una di queste tolleranze basterà porla uguale a 0.

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:

Possibile assegnazione di iflag:


 esco dall’algoritmo perché è verificato il criterio d’arresto rivolto alla
funzione
 esco dall’algoritmo perché è verificato il criterio d’arresto misto

 si sono raggiunte iterazioni (possono essere successe 2 cose: o ho


assegnato un troppo piccolo o ho sbagliato )
 si è in presenza di un tale che

La successione di NEWTON è:

La distanza tra le iterate che serve per scrivere il criterio d’arresto è:

Ora possiamo procedere a scrivere l’algoritmo:

1. Ripeti per [in Matlab ripeti è il ciclo for]


1.1. Poni [con questo passaggio faccio una valutazione della funzione]
1.2. Poni [con questo passaggio faccio una valutazione della derivata della
funzione]
1.3. Se 0 allora

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

METODO DELLE SECANTI

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.

Per fare la retta secante devo costruire la retta passante da:

Con e dati.

L’equazione della retta è:

84
Se allora .

Si può anche scrivere così:

Se allora . Per trovare basta porre .

85
10. LEZIONE 10 (MATLAB)
ESEMPIO:

Algoritmo bisezione:

86
A questo punto dobbiamo inserire i dati:

A questo punto si chiama la function e Matlab ci restituisce i valori in uscita.

11. LEZIONE 11
 Metodo delle secanti
 Interpolazione polinomiale
 Polinomio interpolante nella forma di Lagrange

METODO DELLE SECANTI

Si parte da e e si costruisce la secante. Si approssima la funzione con la retta secante che ha


la forma seguente:

87
Si trova quindi il punto che è l’intersezione tra la secante e l’asse delle x.

è il punto d’intersezione tra la retta secante passente per i punti e e


l’asse x.

In generale:

Dati e costruisco la retta passante per i punti e e trovo .

88
QUANTO COSTA UN’ITERAZIONE??

Per trovare mi serve una valutazione di funzione in ovvero e una valutazione di


funzione in ovvero ma, la valutazione in l’ho già fatta all’iterata precedente.
Quindi ogni iterazione mi costa una valutazione di funzione (eccetto l’iterazione 0 che mi costa 2
valutazioni di funzione). Ogni iterazione di questo metodo costa quanto il metodo di bisezione che
è il metodo meno costoso per 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

La velocità di convergenza è s lineare ovvero:

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.

Se si parla di approssimazione polinomiale il surrogato è un polinomio. Esiste un’altra classe di


funzioni chiamate SPLINE che sono delle polinomiali a tratti.

CON QUALE CRITERIO PRENDO IL SURROGATO??

Un criterio per prendere il surrogato è l’interpolazione.

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.

Il campionamento lo posso avere da:

 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

Dati costruisco un polinomio tale che per i=0,…,n.

È un’interpolazione perché si passa esattamente dai punti del campionamento polinomiale,


perché si costruisce un polinomio.

L’interpolazione non è l’unico criterio esiste anche l’approssimazione ai minimi quadrati.

ESEMPIO:

Approssimazione di una retta ai minimi quadrati.

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à.

IL CRITERIO DELL'APPROSSIMAZIONE È DIVERSO DALL’INTERPOLAZIONE. L’interpolazione passa


esattamente dai punti l’approssimazione no.

RITORNIAMO ALL’INTERPOLAZIONE POLINOMIALE.

Dati n+1 punti come lo trovo il polinomio interpolante di grado n??

 Se ho 3 punti cerco un polinomio di grado 2


 Se ho 6 punti cerco un polinomio di grado 5

Un polinomio di grado n ha la forma:

Io so che deve essere interpolante quindi:

per i=0,…,n

A questo punto applico le condizioni di interpolazione e applico il polinomio in .


92
Le incognite sono: . noti.

ESEMPIO:

x y
1 .1
3/2 5
2 4

Si ha un polinomio di grado 2.

Da cui si ricava un sistema lineare di 3 equazioni in 3 incognite.

In generale:

È un sistema lineare che posso scrivere in forma matriciale.

È un sistema lineare n+1 n+1.

93
si chiama matrice di Vandremonde ed è una matrice particolare perché ha dentro tutti i nodi
elevati a potenza.

Il se i nodi (ascisse) sono distinti. Se 2 punti hanno la stessa ascissa .

Il fatto che è un risultato importante perché mi dice che ammette soluzione


unica (escluso il caso di nodi uguali). Questo risultato ci dice anche che dati n+1 punti esiste unico
il polinomio interpolante di grado al più n. Se i punti sono disposti in modo particolare può
capitare che il polinomio sia di grado più piccolo di n.

Abbiamo scritto il polinomio nel modo classico:

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.

Di solito non si risolve il sistema lineare così:

Perché:

 Se i nodi sono vicini il problema è mal condizionato


 Questo tipo di risoluzione risulta costoso (meno importante)
 Le altre tecniche di risoluzione permettono di fare altre cose e non solo di trovare il
polinomio interpolante

Una tecnica tanto utilizzata sono i polinomi di LAGRANGE.

POLINOMIO INTERPOLANTE NELLA FORMA DI LAGRANGE

La forma è diversa il polinomio è lo stesso.

1. CASO PARTICOLARE di una retta passante per 2 punti (polinomio di grado 1)

n=1

Costruisco la retta passante per questi 2 punti (già fatto con le secanti).

Se allora

Se allora
94
Se chiamo:

e sono 2 polinomi di grado 1.

ESEMPIO:

x Y
1 5
2 4

Dipendono solo dai nodi (ascisse).


Da questo esempio si evince una proprietà importante.

In generale:

Il polinomio si può scrivere come combinazione lineare di e con i coefficienti e :

Nel caso del polinomio standard avevo:

Con le incognite: .

95
Nel caso del polinomio di Lagrange i coefficienti sono noti e mi devo costruire i polinomi. Questa
proprietà:

È importante perché mi garantisce che il polinomio è interpolante.

12. LEZIONE 12
 Interpolazione polinomiale
 Polinomio interpolante nella forma di NEWTON

INTERPOLAZIONE POLINOMIALE

Noi abbiamo:

 n+1 coppie di valori


 se da tabella o misurazioni
 se da funzione assegnata

E vogliamo sapere il valore della funzione in dei punti che non sono campionati. Ovvero quanto
vale la funzione in con ??

La funzione la approssimiamo con il polinomio interpolante di grado al più n tale che


per i=1,…,n. Il polinomio si può determinare risolvendo un sistema lineare ma,
stiamo cercando delle tecniche alternative.

96
POLINOMIO SCRITTO NELLA FORMA DI LAGRANGE (RETTA)

1. CASO PARTICOLARE di una retta passante per 2 punti (polinomio di grado 1)

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.

2. GENERALIZZATO ad un polinomio che passa per n+1 punti

Abbiamo n+1 punti e vogliamo scrivere il polinomio interpolante nella


forma di Lagrange.

e non sono quelli di prima perché sto cercando un polinomio di grado n.


98
Quindi sono polinomi di Lagrange di grado n con la seguente proprietà:

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é:

COME SI COSTRUISCONO I POLINOMI DI LAGRANGE DI GRADO N??

Cominciamo con per il quale deve valere:

Quindi lo scrivo come:

E questo è un polinomio di grado n.

 costante

99
L’ho costruito in modo tale che se lo valuto in :

Se lo valuto in :

Se lo valuto in :

Ovvero:

A questo punto devo fare in modo che:

Questo lo trovo imponendo:

Quindi:

Quindi posso trovare .

Quello che ho fatto con faccio con tutti.

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.

 Gli dipendono solo dai nodi


 dipende dalle ordinate

Se cambio le ordinate non devo ricalcolare i polinomi di Lagrange.

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
.

Espressione analitica calcolata da me:

Calcolato dal computer 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:

Calcolato dal computer in .

Scriviamo il polinomio:

Il computer fa

Quindi il computer ci restituisce un numero.


Questo risultato è uguale a:

POLINOMIO INTERPOLANTE NELLA FORMA DI NEWTON

Qualche volta può essere utile esprimerlo in questo modo.

1. Anche in questo caso partiamo con 2 punti n=1. (RETTA)

Retta che passa per 2 punti.

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.

Se dico che il polinomio di grado 0 è una retta posso costruire il polinomio di


grado 1 come:

Posso proseguire con gradi maggiori??

Ho 3 punti e voglio scrivermi il polinomio come somma di una costante


più un polinomio di grado 1 più un polinomio di grado 2.

Quindi cerco , e in modo che , e .

Allora .

Allora .

Allora

Dopo tanti conti si ha:

Quindi:

103
era proprio.

Possiamo quindi scrivere:

13. LEZIONE 13 (MATLAB)


 Manca

14. LEZIONE 14
 Riepilogo
 Errore di interpolazione

RIEPILOGO

POLINOMIO INTERPOLANTE NELLA FORMA DI NEWTON

Ho 3 punti e voglio scrivermi il polinomio come somma di una costante


più un polinomio di grado 1 più un polinomio di grado 2.

Quindi cerco , e in modo che , e .

Allora .

Allora .

Allora

104
Dopo tanti conti si ha:

Quindi:

era proprio.

Possiamo quindi scrivere:

Quindi abbiamo trovato 3 forme con cui rappresentare i polinomi:

1. BASE MONOMIALE

2. LAGRANGE

3. NEWTON

Come sono fatti gli ?? Allora:

Abbiamo che:



 funzione che devo interpolare

Sappiamo che:

105
Abbiamo che e .

Quindi:

Quindi alla fine abbiamo una cosa di questo tipo:

. .
. .
. .

ILPOLINOMIO DI NEWTON È:

ESEMPIO:
Dati i 3 punti:

Calcolare i coefficienti del polinomio di NEWTON.

106
Il polinomio nella forma di NEWTON quindi è:

Che ovviamente è uguale a quello trovato con Lagrange.


Aggiungo un punto al mio campionamento.

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 .

A questo punto mi devo porre le seguenti domande.

 Quello che calcolo ha senso??


 Quant’è l’errore che commetto??
 Se aumento i nodi la funzione migliora??

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:

Si ha che nei nodi la funzione per i=0,…,n perché.

Perché nei nodi e quindi:

La funzione è 0 anche in punti che non fanno parte dei nodi perché:

Definizione

Se la funzione si annulla n volte la derivata si annulla ALMENO n-1 volte.

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 possiamo dire che:


Quindi:

 non è calcolabile

dipende:

 Dai nodi
 Dalla funzione

In generale si ha che se:

110
Non tutte le funzioni hanno questa proprietà.

ESEMPIO:
Consideriamo la funzione:


Consideriamo un primo campionamento formato d 5 nodi. Si ha:

Se aumento i nodi a 9 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.

CONDIZIONAMENTO DELL PROBLEMA DELL’INTERPOLAZIONE

 Dati esatti
 Dati non esatti

 errore sui dati

 coefficiente di amplificazione dell’errore sui dati


 Se

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

DIFETTI DELL’INTERPOLAZIONE POLINOMIALE CON NODI EQUIDISTANTI

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

Introduciamo le spline di grado n.

 i=0,…n-1 è un polinomio di grado n.


Quindi una spline è una polinomiale a tratti abbastanza regolare.

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

Queste sono le spline più utilizzate.

 per i=0,...,n

Le spline digrado 3 mi bastano perché ho le derivate prima e seconda.

GRADI DI LIBERTÀ

Consideriamo di essere nel caso

Abbiamo:


A questo punto devo calcolare i coefficienti dei polinomi.

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:

Se i punti in cui si congiungono le spline sono e deve essere:

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:

Quindi ho spline di grado 3.

SPLINE DI GRADO 3 INTERPOLANTI NEI NODI

I nodi sono n+1 quindi si hanno n+1 condizioni di interpolazione.

GRADI DI LIBERTÀ DEI POLNOMI INTERPOLANTI

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.

Si può dimostrare che se con si ha che:

115
E che:

E che:

Calcolare le spline significa calcolare i coefficienti. I coefficienti si calcolano risolvendo un sistema


lineare diagonale e simmetrico. In questo modo è POCO COSTOSO.

Calcolare i coefficienti con questo sistema lineare costa mentre calcolare con Lagrange
costava .

ESEMPIO: (procedimento poco efficiente serve solo per capire)


Abbiamo i punti:

Troviamo la spline di grado 3.

3 condizioni di continuità (8 incognite)

3 condizioni di interpolazione
Queste si ricavano dai punti di campionamento:

Per cui si ha:

2 condizioni spline naturali

Quindi abbiamo un sistema lineare di 8 equazioni in 8 incognite.


APPROSSIMAZIONE AI MINIMI QUADRATI

Con le approssimazioni ai minimi quadrati non si passa esattamente dai dati perché tanto
potrebbero essere affetti da errore.

16. LEZIONE 16 (MATLAB)


 Mancante
116
17. LEZIONE 17
 Approssimazione ai minimi quadrati polinomiale
 Approssimazione di integrali

APPROSSIMAZIONE AI MINIMI QUADRATI POLINOMIALE

Quindi l’approssimante che cerchiamo è un polinomio.

Abbiamo i dati e vogliamo cercare il polinomio di grado m<n.


Perché se è di grado n è il polinomio interpolante.

Quindi cerco il polinomio tale che sia minimo:

 distanza tra il mio dato e il valore del mio polinomio in .

CASO SPECIALE retta ai minimi quadrati (polinomio di grado 1 n=1)

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).

Quindi se prendiamo questa funzione che vogliamo minimizzare


se la chiamiamo ovvero:

Questa dipende da .

Nel caso della retta:

Questa siccome è una somma di quadrati è sempre . mi viene nullo quando:

117
per i=0,..,n ovvero è il POLINOMO INTERPOLANTE.

Io so dalla teoria dell’interpolazione che se n = m ho il polinomio interpolante. Può succedere


anche per gradi più bassi perché se ho tutti punti allineati ho la retta interpolante quindi il grado
del polinomio è minore (sono casi particolari). In generale so ho 100 punti non vado a costruire il
polinomio di grado 100 (che sarebbe interpolante) ma, costruisco polinomi di grado tipo 3 che
sono approssimazioni.

RETTA AI MINIMI QUADRATI

Stiamo cercando il minimo di:

Le incognite sono quindi stiamo minimizzando rispetto a queste.

Il minimo c’è l’ho se:

Scriviamo q per esteso:

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.

Siccome e sono costanti ho:

Ora divido i contributi relativi ad e relativi ad della seconda derivata.

Questo è un sistema lineare perché e sono semplicemente numeri.

Riordiniamo le cose:

Che è come scrivere:

La matrice è simmetrica e invertibile. Quindi calcolo facilmente e .

Se e sono la soluzione del sistema lineare ovvero:

119
Questo non basta per dire di essere nel minimo.

Si può dimostrare (non si fa) che siamo effettivamente in un minimo.

PASSIAMO AL CASO DI ESSERE IN PRESENZA DI UN POLINOMIO DI GRADO m (NON DI UNA RETTA)

Rispetto al caso della retta ci sono più incognite e ci viene una matrice m+1xm+1

Siamo in questo caso:

Quando faccio la derivata viene così:

Divido le sommatorie e mi viene:

È 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:

Il residuo 4,58 che non è piccolo.


Quando si risolve un problema ai minimi quadrati andiamo a minimizzare la sommatoria (nel caso
della parabola):

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

Con gli , e che mi sono calcolato.

MODELLI DIVERSI (RISPETTO AL POLNOMIO) CHE SI POSSONO PRENDERE

Potrei prendere un modello esponenziale tipo:

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.

 pesi della formula di quadratura


 nodi della formula di quadratura
 valori che assume la funzione nei nodi

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

Abbiamo un intervallo e lo dividiamo in n+1 punti che sono n intervalli equidistanti.

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

Una formula di quadratura si dice di precisione se è esatta su tutti i polinomi di grado .

Questo serve per contraddistinguere una formula di quadratura da un’altra.

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ì:

Approssimo la funzione con il polinomio interpolante.

Con per i=0,..,n.

Scrivo il polinomio nella forma di Lagrange:

Approssimiamo l’integrale della funzione con quello del polinomio.

124
L’integrale di una somma è la somma degli integrali.

 se ho nodi equidistanti questi pesi non dipendono da a e b quindi li posso


tabulare

FORMULA INTERPOLATORIA CON UN POLINOMIO INTERPOLANTE DI GRADO 1 (metodo dei


trapezi)

Abbiamo solo 2 nodi.

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:


Se faccio l’integrale del polinomio interpolante nella forma di Lagrange ho:

125

ERRORE CHE SI COMMETTE CON LE FORMULE DI QUADRATURA

 errore di interpolazione

Quindi l’errore delle formule di quadratura è l’integrale dell’errore di interpolazione.

 non è una costante ma, dipende da x (non si dimostra)

Questo è valido per qualsiasi n ora facciamolo per i trapezi (n=1).

Se considero una costante e faccio posso fare:

In questo caso si ha:

Faccio un cambio di variabili:

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.

NEL CASO DEI TRAPEZI

Quindi in base al grado del polinomio si ha:

n
1 1/2 1/2
2 1/3 4/3 1/3
3

Quindi si ha che i pesi sono numeri moltiplicati per h.

ESEMPIO:
Regola di Simpson
Dati:
 n=2
 a=-4
 b=2

ERRORE NELLA FORMULA DI SIMPSON

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.

Per ovviare a questo problema si può ricorrere alle:

 Formule di Gauss (con nodi particolari)


 Formule composite (tipo spline)

FORMULE COMPOSITE

Abbiamo:

 n+1 nodi equidistanti





Approssimo l’integrale con l’integrale di un polinomio di grado piccolo.

TRPEZI COMPOSITI

È lo stesso della formula dei trapezi solo che invece di avere solo a e b divido l’intervallo in n+1
nodi.

La formula dei trapezi è:

La formula dei trapezi compositi è:

Quindi quello che dobbiamo fare è:

1. Stabilire n

130
2.
3. per i=0,…,n
4. Valutare per i=0,…,n
5.

Anche questa è una formula del tipo:


 per j=1,…,n-1

ERRORE NELLA FORMULA DEI TRAPEZI COMOSITI

L’errore nella formula dei trapezi è:

L’errore nella formula dei trapezi compositi è:

 errore della formula dei trapezi nell’intervallino

 campionamento di una funzione

Quindi:

Se allora e anche .

è un questo significa se dimezzo h l’errore si riduce a ¼.

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:

 Formula dei trapezi

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.

 n+1 nodi equidistanti





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 è:

Nel caso dei primi 2 intervallini si ha:




Poi ho l’intervallo:




133
Alla fine ho:




Quindi complessivamente ho:

 estremi pari (per 2 perché si moltiplicano 2 volte)

 punti di mezzo dispari (per 4 perché coefficiente della formula)

Questa è una formula di quadratura della forma:


 per
 per

ERRORE

L’errore della formula di Simpson è:

L’errore della formula di Simpson composito è:

 errore corrispondente all’integrale da a (i sta per integrale)

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.

Moltiplico e divido per n/2.

Se allora e anche .

è un questo significa che se dimezzo h l’errore si riduce a 1/16.

ESEMPIO:

L’integrale che voglio approssimare è:

La primitiva della funzione è .


n (n, intervalli) TRAPEZI SIMSON
1
2
4
8
16
32

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??

Per sapere questo mi serve una stima dell’errore calcolabile.

Perché in questa formula

La derivata quarta posso anche non saperla calcolare.

Le stime degli errori possono essere:

 A priori
 A posteriori

NOI STUDIAMO LA STIMA DEGLI ERRORI A POSTERIORI.

Ovvero prima si calcola l’integrale e poi si valuta l’errore. Questo si fa con l’estrapolazione di
Richardson.

Sviluppiamo l’estrapolazione di Richardson per i trapezi compositi.

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:

Io voglio stimare l’errore di ovvero l’errore di quello con più punti.

L’errore è:

136
Siccome:

Posso calcolare e e quindi posso calcolare .

Con Simpson viene:

LA STIMA È BUONA??

ESEMPIO:

L’integrale che voglio approssimare è:

La primitiva della funzione è .


TRAPEZI
n (n, intervalli) TRAPEZI
stima
1
2
4
8
16
32

Quindi l’estrapolazione di Richardson funziona benissimo.

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

Abbiamo a che fare con matrici e con vettori.

Questo è uno degli argomenti più importanti.

Le matrici non commutano. Se è invertibile:

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

Proprietà norma (vettori):

 e se tutte le componenti di x sono uguali a 0.


 è uno scalare sì a che

La norma 2 è:

La norma 1 è:

La norma è:

Ovvero prendo la componente più grande.

NORME DI MATRICI

Proprietà norma (matrici):

 e se tutte le componenti di A sono uguali a 0.


 è uno scalare sì a che

139
Matlab calcola così la norma 2 [comando norm].

è simmetrica ovvero . Il r di questa matrice è il massimo autovalore in valore assoluto.


Calcolare gli autovalore è costoso quindi questa è una norma costosa e in generale non si utilizza.

La norma 1 è:

colonna j della matrice .

La norma è:

riga j della matrice .

Se la matrice è simmetrica queste 2 norme sono uguali.

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:

La soluzione del sistema lineare è il vettore:

La componente j del vettore la posso calcolare così:

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.

NON SI PUÒ USARE IL METODO DI KRAMER PER RISOLVERE I SISTEMI LINEARI.

Si potrebbe pensare di fare:

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:

Le colonne di B sono le incognite.


Per trovare l’inversa devo risolvere n sistemi lineari quindi COSTA TANTO.

QUINDI L’INVERSA NON SI FA.

CONDIZIONAMENTO DEL PROBLEMA

Quando parliamo di condizionamento andiamo a confrontare la soluzione del problema trovata


con i dati esatti (calcolata da noi il computer e quindi la precisione finita non centrano nulla) e la
soluzione trovata con i dati non esatti.

Dati:


 con dati esatti
 con dati non esatti

 soluzione esatta del problema con i dati esatti


 soluzione esatta del problema con i dati non esatti
142
Noi vogliamo calcolare la differenza fra e ed essendo questi vettori mi calcolerò la norma della
differenza.

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:

Quindi ho trovato una relazione tra i dati e le soluzioni.

Posso fare:

A questo punto x è la soluzione di quindi:

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.

Abbiamo questo risultato (non si dimostra):

 questo numero è un fattore di amplificazione o indice di condizionamento


del problema.

Se problema ben condizionato ovvero l’errore sui risultati è circa quello sui dati.

Se problema mal condizionato ovvero l’errore sui risultati è maggiore di quello


sui dati.

Questo numero è indicato con e si chiama condizionamento della matrice o


numero di condizionamento di .

Il numero di condizionamento è sempre perché:

Per la proprietà delle norme:

Quindi:

Supponiamo che . Si ha:

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.

A questo punto se consideriamo questo:

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

E questo non va bene.

Il mal condizionamento DIPENDE DALLA PRECISIONE DI MACCHINA CON CUI STO LAVORANDO.

Calcolare è costoso perché calcolare vuol dire calcolare:

 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].

DIPENDE dalla norma.

C’è una relazione fra le norme delle matrici:

Quindi se il numero di condizionamento è grande per un tipo di norma è grande anche per gli altri
tipi di norma.

NON DIPENDE da .

ESEMPIO:

Il det di una matrice triangolare è il prodotto degli elementi della diagonale.

 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:

Quindi se n è grande è grande.

146
Se n=5.

Questa matrice al crescere di n è sempre più mal condizionata ma, il det è sempre 1.

ESEMPIO:

L’inversa di una matrice diagonale si fa invertendo gli elementi diagonali.

Il problema è ben condizionato.

A questo punto parliamo di metodi.

SISTEMI TRIANGOLARI

I sistemi sono triangolari se è triangolare.

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.

Si parte da si ricava quindi .

147
In generale si comincia e si ha:

Poi per la riga successiva si ha:

Quindi:

Per la riga j si ha:

Questo algoritmo si chiama di soluzione all’indietro.

ALGORITMO DI SOLUZIONE ALL’INDIETRO

Dati:

 triangolare e invertibile

Risultato x tale che .

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

Costo ovvero fa un numero di operazioni che è proporzionale a .

22. LEZIONE 22
 Sistemi lineari
 Metodo di Gauss

148
SISTEMI LINEARI

Se abbiamo un sistema lineare:

 triangolare superiore

Lo sappiamo risolvere con l’algoritmo di risoluzione all’indietro.

A questo punto noi non vogliamo risolvere solo sistemi triangolari ma, vogliamo risolvere sistemi
in generale.

 invertibile non necessariamente triangolare

Riconduciamo questo sistema generale in uno triangolare equivalente (equivalente ovvero che
ha la stessa soluzione).

Questo si fa con il metodo di Gauss.

ESEMPIO:

Lo vogliamo far diventare triangolare e vogliamo azzerare .


Ipotesi .
Chiamiamo e moltiplichiamo la prima riga per questo coefficiente.

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:

Se faccio lo stesso per la terza riga.

Ora faccio la terza riga meno la prima riga moltiplicata per .



In generale al primo passo (tutto riferito alla prima riga) si ha:

 per i=2,…,n e j=2,…,n


 per i=2,…,n e j=2,…,n
A questo punto la matrice A e il vettore b sono:

Ora ci rivolgiamo alla seconda riga.


Secondo passo.
Ipotesi .
 elemento pivot

Quindi facciamo terza riga meno seconda riga per .

150

A questo punto ho trovato questa matrice:

Questa è la matrice triangolare che cercavo.

In generale per una matrice nxn all’inizio ho:

In tutto devo fare n-1 passi. Al primo passo azzero gli elementi della prima colonna.

Moltiplicatori (passo 1):

151

 per i=2,…,n e j=2,…,n

Al passo k ho:

Quindi si ripete per k=1,…n-1 perché devo fare n-1 passi.

 Costruisci e
 Poni e
 Risolvi

Si fa i=2,…,n e j=2,…,n perché la prima riga rimane invariata.

Al secondo passo modifico il blocco che va i=3,…,n e j=3,…,n.

Al passo k modifico il blocco che va i=k+1,…,n e j=k+1,…,n.

Dopo n-1 passi ho:

A questo punto devo trovare e . Ovvero l’elemento generale al passo k.

152
 per i=k+1,…,n j=k+1,…,n

Il det di U è facile da calcolare perché:

[Matlab lo calcola così il det]

ESEMPIO:

Devo ripetere per k=1,2.


PASSO 1

Passo 1 per riga 2 (k=1 e i=2).

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:

 triangolare superiore (che abbiamo trovato con Gauss)


 triangolare inferiore con gli elementi diagonali uguali a 1 e poi ha tutti i moltiplicatori

ESEMPIO:

La fattorizzazione è utilissima. Costo della fattorizzazione di Gauss è mentre il costo di

risoluzione di un sistema lineare triangolare è .

Supponiamo di dover risolvere tanti sistemi lineari con la matrice allora per prima cosa faccio
e questo mi costa un

ESEMPIO:

Per trovare la matrice devo fare n sistemi lineari con e , ,…, .

, ,…,

è la colonna j della matrice .

155
Posso fare:

Che mi costa ma, lo faccio una volta sola. Quindi posso scrivere:

Assegno
E quindi posso fare i 2 sistemi:

 incognita che devo trovare.


Quindi prima mi trovo e poi .
Quindi faccio 2 sistemi lineari che mi costano di questi sistemi ne faccio n e quindi ho un
costo di . LA COSA IMPORTANTE È CHE SOSTITUISCO AD 2 MATRICI TRIANGOLARI E
QUINDI PIÙ FACILI DA RISOLVERE.

ESEMPIO:

Quindi:

è invertibile (non si dimostra). E (non si dimostra).

156
Ci servono i pivot diversi da 0.

ESEMPIO:

Non è facile capire se i pivot sono diversi da 0.

La fattorizzazione esiste ed è unica se le sottomatrici principali di di ordine 1,…,n-1 sono


invertibili.

ESEMPIO:

sottomatrice di ordine 1
sottomatrice di ordine 2

sottomatrice di ordine 3

157
23. LEZIONE 23
 Riepilogo
 Gauss con pivot parziale

RIEPILOGO

Abbiamo un sistema lineare:

E vogliamo un sistema lineare triangolare:

Con il metodo di Gauss si fattorizza come:

 triangolare superiore (che abbiamo trovato con Gauss)


 triangolare inferiore con gli elementi diagonali uguali a 1 e poi ha tutti i moltiplicatori
ESEMPIO:

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

Una matrice è dominante diagonale per righe se:

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:

Matrici con diagonale dominante per righe e per colonne.

è una matrice diagonale per righe e per colonne.


Per le righe:
, ,
Per le colonne:
, ,

ESEMPIO:

Non potrei procedere perché .


Allora faccio una permutazione (ovvero uno scambio di righe)

Permuto e ho:

E ho finito.

159
ESEMPIO:

Se ho 4 cifre di mantissa e sono in base 10 (m=4 e β=4).

Avendo 4 cifre di mantissa perdo il contributo di 0,3.

Quindi la soluzione esatta calcolata da me è:

La soluzione calcolata dal computer è:

Non va bene perché c’è differenza tra le 2 soluzioni.


Quindi il metodo di Gauss può essere instabile ovvero posso avere delle amplificazioni degli errori
di arrotondamento. L’amplificazione dell’errore è data dal moltiplicatore che è grande perché
0,0001 è piccolo.

ESEMPIO:

Permuto la riga con 7 con la riga con -15.

Se è l’elemento più grande della colonna tutti i moltiplicatori mi vengono minori di 1.

160
ESEMPIO:

Permuto.

L’errore di questo ordine di grandezza mi va bene quindi aver permutato ha funzionato.

GAUSS CON PIVOT PARZIALE

IL METODO DI GAUSS IN CUI SI SCAMBAINO LE RIGHE SI CHIAMA GAUSS CON PIVOT.

In generale.

Al k-esimo passo siamo in questa situazione:

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:

Devo prendere l’elemento più grande della prima colonna che è 7.


Permuto.

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

Questo in generale è un procedimento stabile.

 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

Un algoritmo si dice stabile se applicato ad un problema ben condizionato restituisce errori


dell’ordine della precisione di macchina.

Quindi se il metodo di Gauss è stabile ( ) e il problema è ben condizionato ( ) sì ha:

In generale se il problema è ben condizionato ( ) sì ha:

è chiamato fattore di crescita ed è:

In generale è piccolo quindi il metodo di Gauss con pivot va bene.

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

GAUSS CON PIVOT PARZIALE

 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 è:

è quasi sempre uguale a 1. Quindi quando il problema è ben condizionato ( ) l’errore


relativo è minore uguale di qualcosa che è circa la precisione di macchina:

Questo ci dice che in generale l’algoritmo è stabile. Questo è uno dei metodi più utilizzati per la
risoluzione dei sistemi lineari.

GAUSS CON PIVOT TOTALE

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.

GAUSS CON PIVOT PARZIALE

Quando abbiamo parlato di Gauss senza pivot abbiamo detto che ci produce una fattorizzazione
della matrice.

Se faccio Gauss con pivot riesco a costruire qualcosa di simile a .

ESEMPIO:

Permutiamo la riga con 1 con quella con 7.

Se considero la matrice:

164
E la permuto come ho fatto con ottengo la matrice:

La matrice è uguale dal prodotto:

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.

4. A questo punto faccio un’altra permutazione


5. Faccio il passo di Gauss per trovare : ma siccome voglio permutato aggiungo
: .
6. Continuo così fino al passo n-1 e ottengo la matrice .


Le matrici di permutazione sono invertibili e .

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.

Se devo risolvere tanti sistemi lineari , ,…, .

Posso fare una volta sola. Poi faccio

Sostituisco a .

E risolvo i sistemi:

FATTORIZZAZIONE DI CHOLESKY

La fattorizzazione di Cholesky si applica alle matrici simmetriche e definite positive.


166
MATRICE DEFINITA POSITIVA

Una matrice è definita positiva se prendendo un qualsiasi vettore x sì ha:

per ogni x diverso da 0.

Non possiamo però fare il calcolo per tutti gli x.

Sappiamo però che una matrice è simmetrica e definita positiva se tutti i suoi autovalori sono
maggiori di 0:

per i=0,…,n

Però non vogliamo calcolarci gli autovalori di perché è un’operazione costosa.

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.

La fattorizzazione di la posso anche scrivere come:

167
è simmetrica quindi: .

Allora:

Ovvero essendo diagonale e devono essere uguali.

Siccome è simmetrica posso dire che esiste la fattorizzazione in questa forma:

 triangolare superiore

LA COSA IMPORTANTE È CHE SE È SIMMETRICA E DEFINITA POSITIVA ALLORA ESISTE


TRIANGOLARE SUPERIORE TALE CHE .

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:

Devo trovare questi .

Se la matrice è definita positiva allora quindi posso fare questi calcoli.

Se la matrice è definita positiva allora . Se mi viene allora la matrice


non è definita positiva e mi fermo. Questo è il modo più economico per capire se una matrice è
definita positiva.

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é:

Quindi se devo risolvere un sistema lineare:

Posso fare:

A questo punto mi devo chiedere se la soluzione che ho calcolato è buona?? Che errore ho
commesso??

STIME DELL’ERRORE

STIMA A POSTERIORI DELL’ERRORE


169
Si introduce un vettore importante che si chiama vettore residuo e che è dato da:

soluzione calcolata

Se ho soluzione esatta ho che:

Se ho una calcolata avrò un vettore diverso da 0.

Vorrei sapere:

Però non è calcolabile. Mentre è calcolabile. Quindi posso utilizzare la norma del vettore
residuo diviso la norma di come stima dell’errore??

Allora abbiamo che:

 numero di condizionamento
1. Caso 1 problema ben condizionato

170
1.1. Se allora

1.2. Se allora l’algoritmo non è stabile


2. Caso 2 se non conosco non posso concludere che se il residuo è piccolo allora l’errore
è piccolo.
ESEMPIO:

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.

SISTEMI NON LINEARI QUADRATI

I sistemi non lineari sono una generalizzazione delle equazioni non lineari.

equazione non lineare di cui vogliamo trovare gli zeri (possiamo


utilizzare: bisezione, NEWTON, e secanti).

Sistemi non lineari quadrate ovvero n equazioni in n incognite.

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:

Questo è un sistema di equazioni non lineare perché c’è .

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:

Introduciamo la matrice Jacobiana:

ESEMPIO:

NEWTON IN

NEWTON in ovvero abbiamo un procedimento che genera una successione che converge ad
una soluzione del sistema non lineare.

Dato un si genera una successione tale che .

Vale questa relazione:

 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

Quindi invece di trovare lo zero di trovo lo zero di .

Quindi cerco tale che .

Chiamo devo trovare tale che . Quindi devo risolvere questo


sistema lineare quindi deve essere invertibile. Risolto il sistema lineare
trovo e poi trovo .

In generale:

Dato

1. Ripeti per k=0,…,n


1.1. Calcola
1.2. Risolvere
1.3. Poni
Questo procedimento mi richiede la risoluzione di un sistema lineare per ogni iterazione.

CRITERI D’ARRESTO

 Numero Max di iterazioni




Se è sufficientemente vicino a abbiamo che le sono invertibili per ogni k e che
e la convergenza è quadratica.

25. LEZIONE 25
 Problemi ai limiti

PROBLEMI AI LIMITI

Problemi ai limiti applicati al caso monodimensionale. Abbiamo una funzione un intervallo


e 2 costanti e . Dobbiamo determinare una funzione definita in tale che:

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:

 n+1 nodi equidistanti




 per i=0,…,n

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.

 valori della funzione nei punti della discretizzazione

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).

 soluzione che abbiamo nel continuo


 soluzione che abbiamo nel discreto

Se nel continuo il problema è lineare nel discreto ottengo un sistema lineare.

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:

 n+1 nodi equidistanti


174


 per i=0,…,n

Facciamo lo sviluppo di Taylor della centrato ovvero sto cercando di approssimare


nel punto .

Quindi:

Ricavo :

Posso approssimare con:

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

Posso approssimare con:

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 .

In questo caso utilizzo il valore della funzione in , e .

A questo punto.

per ogni

Sappiamo che per i=1,…,n-1 perché a e b li so già. Siccome facendo le


approssimazioni faccio un errore non chiamo più il valore della funzione ma, lo chiamo .

Quindi:

Allora si ha:

Questo lo devo fare per i=1,…,n-1. Quindi:

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 .

Questo è un sistema lineare e lo posso scrivere:

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

Nel caso generale questo sistema lineare è:

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.

E siccome esiste ed è unica la soluzione del problema continuo questo va bene.

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:

Sappiamo che esiste ed è unica la soluzione.


 n=6

180



 , , , , , e
Facciamo le differenze centrali per un punto qualsiasi per i=1,…,n-1.
La derivata seconda si approssima come:

La derivata prima si approssima come:

Sostituisco questo nell’equazione quindi ho:

Per questo esempio vale per i=1,…,5.


Facciamo il sistema lineare.
Prima equazione i=1:


Equazioni interne.
Seconda equazione i=2.

Terza equazione i=3.


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.

26. LEZIONE 26 (MATLAB)


 Mancante

27. LEZIONE 27
 Differenze centrali
 Problemi differenziali ai valori iniziali

DIFFERENZE CENTRALI

Dobbiamo risolvere questa funzione differenziale nell’intervallo .

per ogni

Abbiamo:

 n+1 nodi equidistanti




 per i=0,…,n

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.

Sostituiamo al problema continuo il problema discreto ottenuto con le differenze centrali.



 Per i=1,…,n-1

Dobbiamo trovare i coefficienti di , e dell’equazione isima.

Raccogliamo , e .



Il sistema lineare è così:

183
Il primo termine noto viene perché .

L’ultimo termine noto viene perché .

, e dipendono da h. L’esistenza e l’unicità della soluzione di questo sistema lineare dipende


dalla matrice.

CONDIZIONI DELLE MATRICI TRIDIAGONALI DI QUESTA FORMA CHE GARANTISCONO L’ESISTENZA


E L’UNICITÀ DELLA SOLUZIONE DI QUESTO SISTEMA LINEARE E QUINDI L’INVERTIBILITÀ DELLA
MATRICE.

La matrice non è simmetrica.

Definizione

Una matrice è diagonale dominante per righe se:

Deve esistere un indice i tale che questa disuguaglianza vale con il maggiore stretto >

Definizione

Una matrice è diagonale dominante per colonne se:

Deve esistere un indice i tale che questa disuguaglianza vale con il maggiore stretto >

Definizione

Una matrice è diagonale dominante in senso STRETTO per righe se:

Per ogni i.

Definizione

Una matrice è diagonale dominante in senso STRETTO per colonne se:

184
Per ogni i.

Se una matrice è diagonale dominante in senso STRETTO allora è invertibile (non si dimostra).

Se una matrice è definita positiva allora è invertibile.

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

Questo è un vincolo sulla scelta di h che mi garantisce le ipotesi del teorema.

Allora:


 Se allora allora .
Quindi . (garantito da ipotesi 1)

 Se allora .
Quindi .
 Se posso dire che se .

Quindi se (garantito da ipotesi 2)



 Se allora .
Quindi .

185
 Se posso dire che se .

Quindi se (garantito da ipotesi 2)

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.

Nella prima riga c’è solo e quindi bisogna controllare che:

Porto il 2 a sinistra.

Quindi perché . Se per l’ipotesi 2 sappiamo che


ma, se vale per il massimo deve valere anche per un che non è il
massimo . Se allora allora .

Per l’ultima riga vale la stessa cosa (non si dimostra).

QUESTI SONO DETTAGLI LA COSA IMPORTANTE È CHE SE SONO SODDISFATTE LE IPOTESI 1 E 2


ALLORA SONO SODDISFATTE LE IPOTESI DEL TEOREMA E QUINDI LA MATRICE È INVERTIBILE.

Quindi se e allora la soluzione del problema discreto (sistema lineare)


esiste ed è unica e l’errore è un .

186
 Errore questo viene dalle differenze centrali in cui
l’errore è un

Siccome l’errore per ( ) lo schema discreto si dice


convergente e quindi ha tutte le proprietà che ci servono.

ESEMPIO:

La matrice viene sempre invertibile e le 2 ipotesi sono soddisfatte perché:


Ipotesi 1:
è soddisfatta perché
Ipotesi 2:
deve essere e va bene per ogni h perché

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 E DIFETTI DELLE DIFFERENZE FINITE

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.

Esiste un metodo che non ha la limitazione su h.

METODO U WIN

Metodo che non ha la limitazione su h.

Siamo sempre nella classe di problemi di diffusione trasporto in cui .

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.

In particolare si ricorre alle differenze in avanti se .

In questo modo si hanno e maggiori di 0 indipendentemente da h.

Si ricorre alle differenze all’indietro se .

Le differenze in avanti e all’indietro hanno un errore che è un quindi sono meno accurati.

1.

Andiamo a sostituire in:

188

 allora
quindi
 allora

2.

 allora quindi
 allora
quindi

In questo metodo ho tutti i segni giusti.

È anche diagonale dominante perché:

1.

Verificato.

Deve anche essere:

Verificato.

189
Quindi la matrice è diagonale dominante.

Le ipotesi del teorema (diagonale dominante, e e ) sono soddisfatte per ogni


h e quindi il sistema lineare ammette soluzione unica per ogni h.

Teorema

Se per il metodo genera un modello discreto (sistema lineare) che ammette


soluzione unica e .

Lo schema è convergente ma, meno accurato delle differenze centrali.

PROBLEMI DIFFERENZIALI (AI LIMITI)

Le differenze centrali sono problemi ai limiti ovvero si ha un intervallo un’equazione


differenziale e sono assegnate le condizioni agli estremi (per questo si chiamano problemi ai
limiti) e . Grazie a queste informazioni ( e )in un solo passo
si calcolano le approssimazioni della soluzione in tutti i punti della discretizzazione.

per ogni

PROBLEMI DIFFERENZIALI (AI VALORI INIZIALI)

In questo caso la condizione è data solo nel primo punto.

per ogni

Questo si chiama problema di Cauchy.

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 .

Quindi non viene un sistema lineare.

Supponiamo che sono soddisfatte le condizioni di esistenza e unicità.

ESEMPIO:
equazione semplice.

In questo caso la soluzione è nota.

Perché se allora allora quindi è verificato .


Se faccio la derivata ho:

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.

Ci sono equazioni non lineari.

ESEMPIO:
Equazione del secondo ordine (derivata seconda).

Mi devo ricondurre ad una equazione del primo ordine.


Aggiungo una funzione.

Sistema di equazioni differenziali del primo ordine.


Posso scrivere così:

ORA CI RIFERIAMO AL CASO SCALARE

Problema modello.

Dobbiamo determinare che non conosciamo. Pendiamo l’insieme di punti in cui


discretizziamo l’intervallo .
191

I punti non sono necessariamente equidistanti.

Vogliamo calcolare (approssimare) la in . Faccio lo sviluppo di Taylor.

Trascuro . Quindi:

 lo conosco perché

 lo conosco

Se

 retta tangente alla funzione in .

Ovvero sostituisco al valore della funzione (che vorrei) il valore della retta tangente.

è l’ordinata della tangente in e si commette un errore perché sappiamo la soluzione esatta


che per questa funzione è .

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 .

Noi abbiamo detto che è:

Allora possiamo dire che è:

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

Prendiamo una funzione che però potrebbe essere anche un vettore.

per ogni

Tutte le volte che si risolve numericamente un’equazione differenziale si introduce un insieme di


rete che è una discretizzazione dell’intervallo .



I punti non sono necessariamente equidistanti.

METODO DI EULERO ESPLICITO

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 è .

Il metodo di Eulero esplicito comincia e è nota.

Poi si trova che è:

Quindi la dipende in modo ESPLICITO da . Tutte le sono approssimate tranne .

ESEMPIO:
Sistema 1

La soluzione esatta calcolata in modo analitico è .




Allora:

Quindi facciamo una tabella.

0,095
0,18
193
0,26

Si commette un errore dell’ordine di .


Errore al promo passo:
Per quanto riguarda la soluzione esatta ho:
Faccio lo sviluppo di Taylor:

Trascuro .
Si ha anche che:

Quindi:

Per quanto riguarda la soluzione approssimata ho:

è esatta ovvero .
Se faccio l’errore assoluto ho:

Abbiamo l’errore troncamento che è per il metodo di Eulero (residuo):

 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.

In verità al passo precedente non ho l’esatta.


Faccio lo sviluppo di Taylor:
Soluzione esatta.

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

La soluzione esatta del sistema 2 è:

Quando facciamo il secondo passo di Eulero si fa:

Siccome allora posso scrivere:

è 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

Dipende da h. Il residuo è sempre un perché è:

L’errore di troncamento unitario (per Eulero) è un .

Si può dimostrare (non si fa) che:

 errore globale ovvero il residuo più l’errore dei passi prima


 che è lo stesso ordine di grandezza dell’errore di troncamento 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.

Quindi il metodo di Eulero è facile convergente e abbastanza accurato.

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

Approssimo con le differenze in avanti:

Circa perché trascuro . Poi passo da a .

E questo è proprio Eulero esplicito.


196
DIFFERENZE ALL’INDIETRO

Posso farlo con le differenze all’indietro.

Non viene uguale a prima.

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

Posso farlo con le differenze centrali.

Mi aspetto che questo metodo sia più accurato.

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 .

METODO DEI TRAPEZI

Posso fare una considerazione:

Siccome ho:

Dal teorema fondamentale del calcolo integrale ho:

197
Posso approssimare l’integrale con una formula di quadratura.

ESEMPIO: (formula dei trapezi)

Il metodo dei trapezi è ad un passo è implicito e ha un residuo che è un e un errore di


troncamento che è un .

Quindi si possono costruire tanti metodi. Noi ci concentriamo sui metodi espliciti ad un passo.

METODO COERENTE

In generale si dice che un metodo è coerente se per allora .

METODO COERENTE DI PRDINE P

Un metodo è coerente di ordine p se

Quindi:

 I 2 metodi di Eulero sono di ordine 1


 I metodi MID POINT e i trapezi sono di ordine 2

Voglio fare il residuo per il MID POINT faccio:

Quindi faccio il metodo supponendo e ovvero e esatti.

Quindi sostituisco a ea .

Quindi faccio valore esatto meno valore proposto dal metodo supponendo valore di inizio esatto.

Un metodo deve essere:

 Coerente

198
 Convergente

29. LEZIONE 29
 Classe di metodi di Runge-Kutta espliciti

Il nostro problema e:

per ogni



METODO COERENTE DI PRDINE P

Un metodo è coerente di ordine p se ovvero

Noi consideriamo metodi espliciti ad un passo per i quali essere coerenti significa anche essere
convergenti ovvero per si ha che .

Con il metodo di Eulero esplicito il problema discreto è:

 per i=1,..,n è la soluzione del problema discreto


 è la soluzione del problema continuo

CLASSE DI METODI DI RUNGE-KUTTA ESPLICITI

Questi sono metodi:

 Con ordine anche maggiore di 1


 Ad un passo
 Sono tanto diffusi e in Matlab

I problemi differenziali (problema di Cauchy) si dividono in 2 classi:

 Siff (questi sono i più difficili)


 Non Stiff (questi sono i semplici)

Se utilizzo RUNGE-KUTTA che è non Stiff e non funziona devo andare ai Stiff.

RUNGE-KUTTA sono diffusa perché permettono una scelta adattiva di h.

Scegliere h giusto non è semplice quindi se lo sceglie il metodo è meglio.


199
I metodi di RUNGE-KUTTA partono così:

La soluzione dell’equazione differenziale è:

Approssimiamo l’integrale con la formula dei trapezi:

I metodi di RUNGE-KUTTA utilizzano questo in cui approssimano l’integrale con la somma pesata

 pesi
 valore della funzione

Essendo esplicito non c’è a destra.

Numero di stadi ovvero numero di k utilizzati.

ESEMPIO:

Metodo di Heun



è l’approssimazione che mi fornisce Eulero.
Quindi faccio:

Questo è di ordine superiore a 1 e costa più di Eulero ed è un metodo di RUNGE-KUTTA a 2 stadi


perché calcolo 2 k. 2 stadi ovvero 2 valutazioni di funzione e quindi è più costoso di Eulero perché
Eulero fa una valutazione di funzione.

ESEMPIO:
Metodo di Eulero modificato.



200
Metodo a 2 stadi di ordine 2.
è l’approssimazione di Eulero in .

In generale i metodi di RUNGE-KUTTA sono espliciti.

 numero di stadi

Quindi è:

Schematizzando il metodo di RUNGE-KUTTA:

 , e sono dati (coefficienti che dipendono dal metodo) noti


 Calcola
 Ripeti per j=2,…,r

Quindi per j=2 mi calcola da .

Per j=3 calcola da

Per j=4 calcola da

Dopo che ha calcolato tutti i ho finito e mi posso calcolare .

Quindi c’è una formula ricorsiva che mi permette di calcolarmi tutti i e poi li sommo.

Alla fine faccio r valutazioni di funzione.

Questi metodi si rappresentano con una matrice fatta così:

201
ESEMPIO:
Metodo di Heun.


ESEMPIO:
Eulero modificato.


202
A ogni metodo è associata una matrice.

ESEMPIO:
Metodo a 5 stadi. Metodo in Matlab.

I coefficienti sono fatti:

 Per avere un metodo coerente


 Per un determinato ordine

Si è determinato che:

 Se si ha numero di stadi che va da 1 a 4 ovvero r=1 o r=2 o r=3 o r=4


 Si può costruire metodi di ordine al massimo r
 Se si ha numero di stadi che va da 5 a 7 ovvero r=5 o r=6 o r=7
 Si può costruire metodi di ordine al massimo r-1
 Se si ha numero di stadi che va da 8 a 9 ovvero r=8 o r=9
 Si può costruire metodi di ordine al massimo r-2
 Se si ha numero di stadi che è maggiore o uguale a 10
 Si può costruire metodi di ordine minore o uguale a r-3

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 .

Heun è più accurato di Eulero ma, più costoso.

Io vorrei che l’errore sia una certa tolleranza.

Voglio che l’errore sia .

Se ho un metodo di ordine più elevato posso scegliere h più grande.

In funzione dell’accuratezza che voglio mi scelgo h.

ESEMPIO:

 Se utilizzo Heun h=0,1 perché ho un errore che è un


 Se utilizzo Eulero utilizzo un h=0,01

Ad ogni passo il metodo di Heun costa di più però richiede meno passi perché h è più grande.

STIMA DELL’ERRORE DI TRONCAMENTO UNITARIO

Troncamento del metodo di ordine p.

Si può stimare facendo la differenza tra le approssimazioni trovate con il metodo di ordine p e
con il metodo di ordine p+1.

QUINDI ACCOPPIANDO 2 METODI POSSO STIMARE L’ERRORE.

Questo costa perché tutte le volte riparto.

204
Se accoppio Heun con Eulero non mi costa così tanto perché dentro Heun c’è Eulero quindi mi
costa solo il metodo di Heun.

METODI DI RUNGE-KUTTA ACCOPPIATI

 Metodi a 3 stadi 2 stadi


 Metodi di ordine 3 e ordine 2
 Metodi a 5 stadi 6 stadi
 Metodi di ordine 4 e ordine 5

205