Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


calcolo numerico appunti, Schemi e mappe concettuali di Calcolo Numerico

appunti sulle lezioni di calcolo numerico

Tipologia: Schemi e mappe concettuali

2025/2026

Caricato il 11/01/2026

raphael-autumn-lindsay
raphael-autumn-lindsay 🇮🇹

1 documento

1 / 130

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Appunti dalle lezioni di Calcolo Numerico
Mario Putti
Dipartimento di Matematica Universit`a di Padova
2 luglio 2016
Indice
1 Come sono fatti gli elaboratori 1
1.1 Le comp onenti principali di un calcolatore
elettronico . . . . . . . . . . . . . . . . . . 1
1.1.1 Il processore . . . . . . . . . . . . 1
1.1.2 La memoria . . . . . . . . . . . . . 2
1.1.3 Unit`a di Input/Output . . . . . . . 3
1.2 Le numerazioni nondecimali . . . . . . . . 4
1.3 La rappresentazione interna dei numeri
all’elaboratore . . . . . . . . . . . . . . . . 6
1.3.1 IEEE 754: numeri interi . . . . . . 7
1.3.2 IEEE 754: numeri reali . . . . . . 8
1.3.3 La precisione di macchina . . . . . 10
1.4 Algoritmo e schema numerico . . . . . . . 11
1.5 Instabilit`a e malcondizionamento . . . . . 12
1.5.1 Instabilit`a di uno schema . . . . . 13
1.5.2 Problema malcondizionato . . . . . 16
2 La soluzione di equazioni nonlineari 19
2.1 Lo calizzazione delle radici . . . . . . . . . 20
2.1.1 Condizioni necessarie e sufficienti
per l’esistenza di una unica radice 20
2.1.2 Il metodo dicotomico . . . . . . . . 23
2.2 Prime prove . . . . . . . . . . . . . . . . . 24
2.3 Lo schema delle iterazioni successive (o di
Picard) . . . . . . . . . . . . . . . . . . . 27
2.4 Convergenza dei metodi iterativi . . . . . 30
2.4.1 Studio della convergenza dello
schema di Picard . . . . . . . . . . 30
2.4.2 Lo schema di Newton-Raphson . . 35
2.4.3 Altri schemi “Newton-like” . . . . 38
3 Approssimazione e interpolazione di dati 41
3.1 Interpolazione polinomiale . . . . . . . . . 42
3.1.1 Polinomio interpolatore di Lagrange 42
3.1.2 Interpolazione di Newton . . . . . 46
3.1.3 Fenomeno di Runge e la stabilit`a
dell’interpolazione polinomiale . . 51
3.1.4 Ancora sul polinomio di Lagrange 55
3.2 Approssimazione polinomiale . . . . . . . 56
3.2.1 Retta ai minimi quadrati . . . . . 57
3.2.2 Polinomio ai minimi quadrati . . . 60
4 Quadratura numerica 64
4.1 Formule di quadratura con punti di
appoggio equispaziati . . . . . . . . . . . . 64
4.1.1 Il metodo dei trapezi . . . . . . . . 64
4.1.2 Le Formule di Newton Cotes . . . 66
4.1.3 Errore delle formule di Newton-Cotes 68
4.1.4 Formule comp oste . . . . . . . . . 68
4.1.5 Metodo di estrapolazione di Ri-
chardson . . . . . . . . . . . . . . . 72
4.2 Formule di quadratura con punti di
appoggio non equispaziati . . . . . . . . . 73
4.2.1 Formule di quadratura di Gauss . 73
5 Riassunto di Algebra Lineare 74
5.0.2 Spazi vettoriali, vettori linearmen-
te dipendenti, basi . . . . . . . . . 78
5.0.3 Ortogonalit`a tra vettori e sotto-
spazi . . . . . . . . . . . . . . . . . 80
5.0.4 Operatori di proiezione. . . . . . . 82
5.0.5 Autovalori ed autovettori . . . . . 86
5.0.6 Norme di vettori e di matrici . . . 90
6 Metodi Iterativi per sistemi lineari 94
6.1 Meto di lineari e stazionari . . . . . . . . . 94
6.1.1 Metodi lineari e stazionari classici 97
6.2 Meto di di rilassamento . . . . . . . . . . . 100
6.2.1 Metodo SOR . . . . . . . . . . . . 103
7 Soluzione di Equazioni Differenziali 106
7.1 Il problema di Cauchy . . . . . . . . . . . 106
7.2 Meto di a un passo . . . . . . . . . . . . . 109
7.2.1 Deduzione degli schemi per mezzo
di formule di quadratura . . . . . . 117
7.3 Convergenza degli schemi . . . . . . . . . 117
7.3.1 Convergenza sperimentale . . . . . 118
7.3.2 Consistenza e errore di troncamento.119
7.3.3 Stabilit`a . . . . . . . . . . . . . . . 121
7.3.4 Assoluta stabilit`a . . . . . . . . . . 123
7.3.5 Implementazione metodi impliciti . 126
- Riferimenti Bibligrafici 128
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Anteprima parziale del testo

Scarica calcolo numerico appunti e più Schemi e mappe concettuali in PDF di Calcolo Numerico solo su Docsity!

Appunti dalle lezioni di Calcolo Numerico

Mario Putti

fetch decode execute

cella 1

cella 2

cella 3

cella 4

cella 5

cella n

Figura 1.2: Organizzazione sequenziale del ciclo di una CPU (sinistra) e della memoria di un computer (destra) .

Nei computer moderni il clock lavora a diversi GHz, per cui i tre passi vengono ripetuti diversi milioni di volte al secondo (1 GHz = 1 × 106 cicli/secondo), ogni volta per`o con dati e istruzioni che possono essere diversi.

1.1.2 La memoria

La memoria serve, come dice la parola, per memorizzare e rendere disponibile in qualsiasi istante dati e istruzioni^1. Essa puo essere pensata come un insieme di celle di dimensione costante che servono per memorizzare un singolo dato o istruzione. Ogni cellae indirizzabile, cioee individuata univocamente e il suo contenuto puo essere preso fetched e usato nella CPU oppure puo essere variato per immagazzinare un nuovo dato. La rappresentazione in Figura 1.2 a destra puo essere usata per immaginare come la memoria possa essere organizzata logicamente, anche se la realta elettronica e diversa. L’unita di misura dell’informazione e il cosidetto bit, chee definito come la piu piccola parte di informazione che viene usato per formare il dato. Un bit puo essere pensato

(^1) Il primo computer moderno viene generalmente identificato dal fatto che appunto sia i dati

che il programma erano memorizzati internamente. Tale idea, originale di John von Neumann [7] scaturite dalle idee teoriche di Alan Turing [6] sono alla base dell’architettura di calcolatori attuali, chiamata architettura di von Neumann.

come una cifra binaria, il cui utilizzo concreto sara visto piu avanti, che puo assumere i valori binari zero o uno (0,1). Per questioni tecnologiche, i bit si raggruppano a 8 a 8 formando cosı il byte ( = 8 bit). Le unita di misura successive cercano di seguire lo standard del Sistema Internazionale sostituendo pero il fattore 1000 con 1024, cioe la potenza di 2 piu vicina a 1000. In questo modo 1 kB (1 kilobyte) = 1024 byte, 1 MB (1 megabyte) = 1024 kB, 1 GB (1 gigabyte) = 1024 MB, 1 TB (1 Terabyte) = 1024 GB, eccetera. Bisogna stare attenti perche per questioni commerciali alcune unita di misura sono in bit e non in bytes. Ad esempio, la velocita di trasmissione dei dati attraverso una rete si misura in Mbit = 1/8 MBytes! Bisogna quindi utilizzare le parole “bit” e “bytes” per evitare ambiguita.

Allo stesso modo, in alcuni settori (ad esempio costruttori di hard-disk) usano i prefissi “kilo”, “mega”, etc, come multipli di 1000 e non di 1024. Questo `e il motivo per cui un disco fisso da 100 GB

Una cella di memoria e anche chiamata un word, o parola, ede formata, nei computer moderni, da 64 bit, numerati da destra a sinistra da 0 a 63. Computer meno recenti hanno word a 32 bit, ma nella realta si tende a dimenticare che ci sono moltissimi computer di tipo diverso in circolazione. Basti pensare ai telefoni cellulari, che altro non sono che dei computer con processori relativamente potenti che possono avere word anche a 32 o addiritura 16 bit. Per non parlare poi di applicazioni specializzate, quali data-loggers, eccetera. Per quello che ci riguarda, pero, noi faremo sempre riferimento a computer che utilizzano word a 64 bit.

Ovviamente, ci manca ora un meccanismo con cui memorizzare le informazioni al- l’interno di ogni singola cella. Tale meccanismo verr`a discusso parzialmente nel paragrafo successivo dedicato alla rappresentazione interna dei numeri.

1.1.3 Unit`a di Input/Output

Ai fini della nostra comprensione dell’architettura di un computer, le unita di In- put/Output non sono altro che le strutture hardware necessarie per interloquire con la macchina, ad esempio lo schermo e la tastiera. Nella realta informatica si intende per I/O anche tutte le apparecchiatura per memorizzare in maniera permanente le informazioni, e qundi i cosidetti dischi fissi, i supporti magnetici, i supporti otti- ci (CDROM e DVDROM), eccetera. Noi pero adottiamo una visione leggermente diversa, piu aderente al dettato di von Neumann, che verra spiegata nel paragrafo successivo a quello della rappresentazione dei numeri all’elaboratora. Pertanto, con- tinuiamo a pensare alle unita I/O come quelle unit`a che ci permettono di colloquiare con il computer.

Invece e piu complicato passare dalla base 10 alla base 2. Vogliamo quindi ricavare una procedura per passare dalla base N alla base M 6 = N , e cio`e

(a)N = anN n^ + an− 1 N n−^1 +... + a 2 N 2 + a 1 N + a 0 +a− 1 N −^1 +... + a−rN −r^ = (a)M = bpM p^ + bp− 1 M p−^1 +... + b 2 M 2 + b 1 M + b 0 +b− 1 M −^1 +... + b−sM −s

Si noti innanzitutto che se (a)N e esprimibile in base N con un numero finito di cifre, none detto che sia cos`ı per lo stesso numero (a)M espresso in base M. Riscriviamo ora (a)N separando la parte intera dalla parte frazionaria 3 :

aint = anN n^ + an− 1 N n−^1 +... + a 2 N 2 + a 1 N + a 0 , (1.2) af raz = a− 1 N −^1 +... + a−rN −r. (1.3)

Concentriamoci dapprima su aint, pensando di lavorare con un’aritmetica in base n. Dividendo aint per il numero M otteniamo:

aint/M = (anN n^ + an− 1 N n−^1 +... + a 2 N 2 + a 1 N + a 0 )/M = an/M N n^ + an− 1 /M N n−^1 +... + a 2 /M N 2 + a 1 /M N + a 0 /M = a′ nN n^ + a′ n− 1 N n−^1 +... + a′ 2 N 2 + a′ 1 N + a′ 0 + (mod (a 0 , M )),

dove mod (a 0 , M ) indica la funzione che restituisce il resto della divisione intera tra a 0 e M , che ovviamente soddisfa alla proprieta 0 ≤ mod (a 0 , M ) < M. E’ quindi chiaro che tale cifrae, una volta trasformata in binario, la cifra b 0 che cer- chiamo. Continuando a dividere per M si ottengono le altre cifre b 1 , b 2 ,... , bp in modo analogo. Si noti che generalmente p 6 = n.

Al contrario, per la parte frazionaria si vede immediatamente che le cifre b− 1 , b− 2 ,... si possono ottenere moltiplicando successivamente per M la parte frazionaria.

Esempio 1.3. Calcolare la rappresentazione in base 2 del numero a = 1234.5. Dividiamo la parte intera dalla parte frazionaria. Per la parte intera costruia-

(^3) Si noti che useremo sempre il “punto decimale” per separare la parte intera da quella frazio-

naria, in accordo con lo standard internazionale. Non useremo invece mai la maldestra abitudine di adattarsi alle convenzioni nazionali.

mo la seguente tabella ottenuta dividendo ogni volta il numero di sinistra per 2: parte intera 1234 : 2 = 617 0 617 : 2 = 308 1 308 : 2 = 154 0 154 : 2 = 77 0 77 : 2 = 38 1 38 : 2 = 19 0 19 : 2 = 9 1 9 : 2 = 4 1 4 : 2 = 2 0 2 : 2 = 1 0 1 : 2 = 0 1

Parte frazionaria

  1. 5 × 2 = 1. 0 1

Il numero in base due viene costruito leggendo le cifre binarie (dal basso per la parte intera, e dall’alto per la parte frazionaria) ottenendo:

(a) 2 = 10011010010. 1

Esempio 1.4. trasformiamo il numero a = 0.1 da base 10 a base 2.

  1. 1 × 2 = 0. 2 0
  2. 2 × 2 = 0. 4 0
  3. 4 × 2 = 0. 8 0
  4. 8 × 2 = 1. 6 1
  5. 6 × 2 = 1. 2 1
  6. 2 × 2 = 0. 4 0
  7. 4 × 2 = 0. 8 0
  8. 8 × 2 = 1. 6 1
  9. 6 × 2 = 1. 2 1

......

Il numero (a) 2 e dunque un numero periodico pari a (a) 2 = 0.0001100. Questoe un esempio di un numero che in base 10 (0.1) `e caratterizzato da un numero finito di cifre, mentre in base 2 ha infinite cifre.

1.3 La rappresentazione interna dei numeri all’elaboratore

Questo capitolo e preso dal manuale della SUN Microsystems intitolato Numerical Computation Guide [5], che costituisce una utile e chiara guida di riferimento per chi volesse approfondire l’argomento. Come abbiamo visto in precedenza, un word puo essere a 32 o 64 bits, con i 32 bit ormai in uso solo per compatibilita retroattiva. Talche `e necessario predisporre

che per n=31 fornisce il valore Imax, 32 = ± 2. 147. 483 .648. E’ quindi impossibile la rappresentazione di valori interi maggiori di Imax, 32. Un problema che potrebbe sorgere durante le operazioni con questa rappresentazione e denominato “integer overflow” e purtroppo non da luogo a segnalazione di errori da parte del computer: l’addizione di due numeri la cui somma `e maggiore di Imax, 32 fornisce un risultato sbagliato e imprevedibile. Si consideri per esempio un’aritmetica a 4 bit (s = 1 e n = 3). Effettuiamo la somma tra il numero 7+2=9 in notazione binaria:

0111 + 0010 = 1001

il cui risultato `e -1 secondo la rappresentazione “integer” descritta sopra ((1001) 2 = (−1) 10 ). E’ quindi opportuno avere sempre presente il valore massimo (o minimo) rappresentabile e lavorare sempre con valori lontani da esso. E’ spesso utile lavore con interi a 64 bits (long long oppure integer*8) quando ci si avvicina al valore Imax, 32 in considerazione del fatto che Imax, 64 ≈ int(9. 2 × 1018 ).

1.3.2 IEEE 754: numeri reali

Nel caso di numeri reali, il modello di rappresentazione (sempre in base binaria) utilizza la notazione in virgola mobile normalizzata. Secondo questa notazione, un numero in base decimale si pu`o scrivere sempre come:

(a) 10 = ± 0 .m × 10 n

dove 0. 1 ≤ m < 1 e il valore di n viene aggiustato in modo da soddisfare la condizione su m. Le cifre che compongono m individuano la mantissa e costituiscono le cifre significative della rappresentazione.

Esempio 1.5.

(1234.5) 10 = 1. 2345 × 103 = 0. 12345 × 104 (0.000012345) 10 = 1. 2345 × 10 −^5 = 0. 12345 × 10 −^4

Usando la notazione binaria, un numero 6 = 0 pu`o essere scritto come:

(a) 2 = (−1)s^ × 2 e−b^ × 1 .f

dove s e il bit del segno del numero, e − be l’esponente con deviazione (o bias) b, che discuteremo piu avanti, e fe la mantissa. Si noti che non si fa l’ipotesi che il numero sia sempre diverso da zero per cui si pu`o evitare di memorizzare la cifra 1 della parte

32 bit intervallo di Rappresentazione variazione di e, f, b del numero 0 < e < 255 (−1)s^ × 1 .f × 2 e−b b = 127 f > 0 e = 0 (−1)s^ × 0 .0 (zero con segno) f = 0 e = 255 +INF (infinito positivo) s = f = 0 e = 255 -INF (infinito negativo) s = 1, f = 0 e = 255 NaN (Not-a-Number) s = 0, 1 , f > 0

64 bit intervallo di Rappresentazione variazione di e, f, b del numero 0 < e < 2047 (−1)s^ × 1 .f × 2 e−b b = 1023 e = 0 (−1)s^ × 0. 0 f = 0 e = 2047 +INF s = f = 0 e = 2047 -INF s = 1, f = 0 e = 2047 NaN s = 0, 1 , f > 0

Numeri “reali” a 32 bit Numeri “reali” a 64 bit Nome Rapp. interna decimale Rapp. interna decimale +0 0000 0... 0 +0.0 0000 0... 0 +0. -0 100 0... 0 -0.0 1000 0... 0 -0. 1 0100 1111 1000 0... 0 1.0 0100 1111 1111 0... 0 1. 2 0100 0... 0 2.0 0100 0... 0 2. Nmax 0110 1111 0110 1... 1 3.402E+38 0110 1111 1110 1... 1 1.798e+ Nmin 0000 0000 0100 0... 0 1.175E-38 0000 0000 0001 0... 0 2.225e- Nmin 0000 0000 0100 0... 0 1.175E-38 0000 0000 0001 0... 0 2.225e- +∞ 0011 1111 0100 0... 0 Infinity 0011 1111 1111 0... 0 Infinity −∞ 1111 1111 0100 0... 0 Infinity 1111 1111 1111 0... 0 Infinity Not-A-Number 0011 1111 1100 0... 0 NaN 0011 1111 1111 0100 0... 0 NaN

Tabella 1.1: Tabella in alto: schema riassuntivo dei valori che possono assumere e f e b in diversi casi. Tabella in basso: schema riassuntivo della sequenza bina- ria per numeri particolari secondo lo standard IEEE. Si veda Figura 1.3 per una rappresentazione grafica.

intera, e si aggiusta l’esponente opportunamente. Il bit che rappresenta la cifra 1 non memorizzata si chiama hidden bit. I numeri e e f sono memorizzati con formato intero senza segno (sono sempre positivi o nulli) con un numero di cifre diverso tra loro. Facciamo riferimento sempre alla Figura 1.3 per la localizzazione di s, e e f all’interno di una cella di memoria. Mentre ovviamente s vale sempre o zero o 1, bisogna distinguere i casi di word a 32 o 64 bit. Nel caso a 32 bit (chiamato anche singola precisione o real*4 per indicare che le celle di memoria sono a 4 bytes) e e costituito da 8 bit (30÷23) e f da 23 bit (22÷0). Nel caso a 64 bit (chiamato doppia precisione o real*8) ee costituito da 11 bit e f da 53 bit.

Per avere sempre numeri positivi, e non memorizzare quindi il segno dell’esponente, si usa il cosidetto bias, o deviazione, che rappresenta il centro dell’intervallo di

dell’IEEE si assume che il numero viene “arrotondato” alla cifra significativa piu vi- cina. La cifra soggetta ad arrotondamentoe nella m-esima posizione della mantissa e verra arrotondata a 1 se la m + 1-esima cifrae 1 o a 0 se la m + 1-sima cifra e zero. Ne consegue che l’errore massimo che si commettee:

2 −(f^ −1).

Usando questa formula, nel caso di singola precisione la precisione di macchina e  32 = 2−^24 ≈ 5. 96 e−08 mentre per la doppia abbiamo  64 = 2−^53 ≈ 1. 11 e−16. Si noti che nello scrivere questi numeri sie utilizzata la notazione tipicamente informatica detta EXP, per cui il numero 5. 96 e − 08 equivale a 5. 96 × 10 −^08. Si dice quindi che in singola precisione si hanno circa 8 cifre decimali significative, mentre in doppia precisione le cifre significative diventano 16. Per completare la trattazione, bisogna capire quali sono i numeri massimi e minimi rappresentabili in singola e doppia precisione. Per fare questo, dobbiamo calcolare i massimi e i minimi valori assumibili dalla mantissa e dall’esponente nei due casi. Con facili conti si ottiene:

|Amax, 32 | = (2 − 2 −^23 ) × 2 −^126 ≈ 3. 40282 E + 38 |Amin, 32 | = 2 × 2 −^127 ≈ 1. 17549 E − 38 |Amax, 64 | = (2 − 2 −^52 ) × 2 −^1023 ≈ 1. 7977 E + 308 |Amin, 64 | = 2 × 2 −^1023 ≈ 2. 2251 E − 308

1.4 Algoritmo e schema numerico

Si vuole puntualizzare in questo paragrafo la nomenclatura che si utilizza normal- mente in calcolo numerico. In particolare, quando si parla di schema numerico si intende un’equazione o un insieme di equazioni che descrivono matematicamente in maniera compiuta le operazioni che devono essere fatte dall’elaboratore elettronico per risolvere un problema matematico. Un algoritmo e invece un insieme di istruzio- ni descritte da formule matematiche che mostrano come uno schema numerico puo essere “implementato” in un linguaggio di programmazione. Per esemplificare meglio cosa intendiamo, si consideri il seguente problema matema- tico:

Problema 1.7. Si vuole calcolare l’integrale:

In =

e

0

xnex^ dx, (1.5)

per ogni valore di n.

Per ricavare uno schema numerico, applichiamo il il teorema di integrazione per parti ottenendo:

In =

e

xnex‖^10 −

0

nxn−^1 ex^ dx

= 1 − n

e

0

xn−^1 ex^ dx

da cui risulta:

In = 1 − nIn− 1 (1.6)

Quindi possiamo rappresentare lo schema numerico per il calcolo dell’integrale In (eq. (1.5)) con la seguente equazione:

I˜ 0 = e^ −^1 e

I˜n = 1 − n I˜n− 1 n = 1, 2 ,... N (1.8)

Si noti che in (1.7) abbiamo usato il simbolo I˜n per distinguere l’approssimazione numerica dal valore vero In. Si pu`o quindi pensare il seguente algoritmo:

Algorithm Int instabile

  1. Porre I˜ 0 = (e − 1)/e; inizializzare N M AX (ad es. 20).
  2. for k = 1,... , N M AX

I^ ˜k = 1 − k I˜k− 1

end for

1.5 Instabilit`a e malcondizionamento

Rappresentiamo astrattamente un problema matematico come:

F(x, d) = 0

dove F rappresenta l’insieme di equazioni che rappresentano formalmente il proble- ma, x rappresenta la variabile incognita che deve essere trovata, e d rappresenta l’insieme dei dati. Uno schema numerico lo rappresentiamo nello stesso modo con:

Fn(˜x, d˜) = 0

In Errore In Errore In^ a partire

11 820.72 820.6426478 0.077352216 1.28371E-08 0.077352229 7.47263E- 12 -9847.64 9847.711773 0.071773408 1.54045E-07 0.071773254 8.96713E-

Tabella 1.2: Calcolo dell’integrale (1.6) con lo schema (1.7) con calcoli in singola e

 - 2 luglio Dipartimento di Matematica – Universit`a di Padova 
  • 1 Come sono fatti gli elaboratori Indice - elettronico 1.1 Le componenti principali di un calcolatore - 1.1.1 Il processore - 1.1.2 La memoria - 1.1.3 Unit`a di Input/Output
    • 1.2 Le numerazioni nondecimali
      • all’elaboratore 1.3 La rappresentazione interna dei numeri
      • 1.3.1 IEEE 754: numeri interi
      • 1.3.2 IEEE 754: numeri reali
      • 1.3.3 La precisione di macchina
    • 1.4 Algoritmo e schema numerico
    • 1.5 Instabilit`a e malcondizionamento
      • 1.5.1 Instabilit`a di uno schema
      • 1.5.2 Problema malcondizionato
  • 2 La soluzione di equazioni nonlineari
    • 2.1 Localizzazione delle radici - per l’esistenza di una unica radice 2.1.1 Condizioni necessarie e sufficienti
      • 2.1.2 Il metodo dicotomico
    • 2.2 Prime prove
      • Picard) 2.3 Lo schema delle iterazioni successive (o di
    • 2.4 Convergenza dei metodi iterativi - schema di Picard 2.4.1 Studio della convergenza dello
      • 2.4.2 Lo schema di Newton-Raphson
      • 2.4.3 Altri schemi “Newton-like”
  • 3 Approssimazione e interpolazione di dati
    • 3.1 Interpolazione polinomiale
      • 3.1.1 Polinomio interpolatore di Lagrange
      • 3.1.2 Interpolazione di Newton
        • dell’interpolazione polinomiale 3.1.3 Fenomeno di Runge e la stabilit`a
      • 3.1.4 Ancora sul polinomio di Lagrange
    • 3.2 Approssimazione polinomiale
      • 3.2.1 Retta ai minimi quadrati - 3.2.2 Polinomio ai minimi quadrati - 4 Quadratura numerica - appoggio equispaziati 4.1 Formule di quadratura con punti di - 4.1.1 Il metodo dei trapezi - 4.1.2 Le Formule di Newton Cotes - 4.1.3 Errore delle formule di Newton-Cotes - 4.1.4 Formule composte - chardson 4.1.5 Metodo di estrapolazione di Ri- - appoggio non equispaziati 4.2 Formule di quadratura con punti di - 4.2.1 Formule di quadratura di Gauss - 5 Riassunto di Algebra Lineare - te dipendenti, basi 5.0.2 Spazi vettoriali, vettori linearmen- - spazi 5.0.3 Ortogonalita tra vettori e sotto- - 5.0.4 Operatori di proiezione. - 5.0.5 Autovalori ed autovettori - 5.0.6 Norme di vettori e di matrici - 6 Metodi Iterativi per sistemi lineari - 6.1 Metodi lineari e stazionari - 6.1.1 Metodi lineari e stazionari classici - 6.2 Metodi di rilassamento - 6.2.1 Metodo SOR - 7 Soluzione di Equazioni Differenziali - 7.1 Il problema di Cauchy - 7.2 Metodi a un passo - di formule di quadratura 7.2.1 Deduzione degli schemi per mezzo - 7.3 Convergenza degli schemi - 7.3.1 Convergenza sperimentale - 7.3.2 Consistenza e errore di troncamento. - 7.3.3 Stabilita - 7.3.4 Assoluta stabilit`a - 7.3.5 Implementazione metodi impliciti - - Riferimenti Bibligrafici
    • da I 20 =
  • 0 0.63212056 1.17144E-09 0.632120559 9.99201E-16 0.632120559 6.66134E- Errore
  • 1 0.3679 2.05588E-05 0.367879441 9.99201E-16 0.367879441 6.66134E-
  • 2 0.2642 4.11177E-05 0.264241118 9.99201E-16 0.264241118 3.33067E-
  • 3 0.2074 0.000123353 0.207276647 1.9984E-15 0.207276647 5.55112E-
  • 4 0.1704 0.000493412 0.170893412 7.99361E-15 0.170893412 2.498E-
  • 5 0.148 0.002467059 0.145532941 3.89966E-14 0.145532941 3.88578E-
  • 6 0.112 0.014802357 0.126802357 2.32009E-13 0.126802357 4.44089E-
  • 7 0.216 0.103616496 0.112383504 1.62101E-12 0.112383504 6.93889E-
  • 8 -0.728 0.828931967 0.100931967 1.2967E-11 0.100931967 4.85723E-
  • 9 7.552 7.460387707 0.091612293 1.16701E-10 0.091612293 6.77236E-
  • 10 -74.52 74.60387707 0.083877071 1.16701E-09 0.08387707 6.79595E-
  • 11 820.72 820.6426478 0.077352216 1.28371E-08 0.077352229 7.47263E-
  • 12 -9847.64 9847.711773 0.071773408 1.54045E-07 0.071773254 8.96713E-
  • 13 128020.32 128020.2531 0.0669457 2.00258E-06 0.066947703 1.16572E-
  • 14 -1792283.48 1792283.543 0.0627602 2.80362E-05 0.062732162 1.63201E-
  • 15 26884253.2 26884253.14 0.058596998 0.000420543 0.059017565 2.44802E-
  • 16 -430148050.2 430148050.3 0.062448027 0.006728681 0.055718954 3.91683E-
  • 17 7312516854 7312516854 -0.061616465 0.114387584 0.052777778 6.65861E-
  • 18 -1.31625E+11 1.31625E+11 2.109096362 2.058976507 0.05 0.
  • 19 2.50088E+12 2.50088E+12 -39.07283088 39.12055363 0.05 0.
  • 20 -5.00176E+13 5.00176E+13 782.4566175 782.4110726 0 0.

E’ possibile migliorare la situazione utilizzando uno schema diverso. Esprimiamo In− 1 in funzione di In ottenendo:

In− 1 =

1 − In n

Ossevando che

lim n→∞ In = 0

si pu`o pensare all’algoritmo seguente:

Algorithm Int stabile

  1. Porre I 0 = (e − 1)/e; inizializzare N (ad es. 20); porre IN = 0.
  2. for k = N,... , 1

I˜k− 1 = 1 −^

I˜k k

end for

  1. if

∣I 0 − I˜ 0

∣ > τ aumentare il valore di N ripetere il ciclo 2

Analisi numerica dei due schemi Per studiare il motivo dell’instabilita dello schema si deve studiare il comportamento dell’errore ad ogni “iterazione”, seguendo la definizione di stabilita data in 1.9. Per fare questo, definiamo l’errore come la differenza tra la soluzione numerica e la soluzione vera (chiamata anche analitica)^5 :

n = I˜n − In.

Chiaramente risulter`a

I˜n = In + n,

che sostituita nello schema instabile (rappresentato da (1.9)) fornisce:

In + n = 1 − n(In− 1 + n− 1 ).

(^5) L’errore sara sempre definito cosı, a meno di un segno che per`o non ci interessa perch´e a noi

interessera in realta il valore assoluto dell’errore.

-6 -4 -2 0 2 4 6 x

0

2

4

y

-6 -4 -2 0 2 4 6

0

2

4 y=-3x/2+

y=-x/3-4/

Figura 1.4: Interpretazione geometrica del sistema lineare (1.11) e (1.12)

(x, y) = (2, −2). Questo sistema si pu`o riscrivere dividendo la prima equazione per 2 e la seconda per 6:

y = −

x + 1 (1.13)

y = −

x −

Questo sistema puo essere interpretato geometricamente come il problema di trovare il punto di intersezione delle due rette rappresentate dalle equazioni (1.13) e (1.14), come si vede in Figura 1.4. Proviamo ora a dare una perturbazione ai dati del nostro problema e vediamo come varia la soluzione. Nel piano (x, y) questo si traduce nel perturbare per esempio il termine noto della seconda equazione di un valore δ, quindi ottenendo una traslazione rigida verso il basso della retta, e vediamo che il punto di intersezione delle due rette si sposta di un valore  ≈ δ. Invece, se le due rette hanno pendenze non molto diverse tra di loro, rappresentate da sistema lineare ovviamente diverso, si vede che ad una perturbazione δ corrisponde uno spostamento della soluzione molto grande (  δ). Questo comportamentoe tipico dei problemi malcondizionati, ed `e visualizzato in figure 1.5.

-7 -5 -3 -1 1 3 5 x

0

2

4

y

-6 -4 -2 0 2 4 6

0

2

4 y=-3x/2+

y=-x/3-4/ δ

ε∼δ

-2 -1 0 1 2 3 4 x

0

2

4

y

-2 -1 0 1 2 3 4

0

2

4 1 2

ε>>δ

δ

Figura 1.5: Interpretazione geometrica di un sistema lineare ben condizionato (grafico di sinistra) e di uno malcondizionato (grafico di destra)