Calcolo numerico/Teoria dell'errore nella sua generalità

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:Calcolo numerico

Calcolo del valore di una funzione

Le funzioni effettivamente calcolabili sono le funzioni razionali, cioè quelle che sono date da un numero finito di operazioni +,−,∗,/. Le funzioni non razionali vengono approssimate in qualche modo con funzioni razionali. È data una funzione f:ℝn→ℝ, e vogliamo calcolarne il valore in v.

Il calcolo che effettuo con il calcolatore è affetto da vari tipi di errore.

Errore inerente
è l'errore generato dall'errore di rappresentazione sui dati. È connesso al condizionamento ed è una caratteristica della funzione da calcolare.
Errore algoritmico
è generato dall'errore commesso nelle operazioni in aritmetica floating point. È combinazione lineare degli errori locali delle singole operazioni. È connesso alla stabilità
Errore analitico o di approssimazione
è l'errore generato dall'approssimazione di f non razionale con un'opportuna funzione razionale. È connesso alla convergenza.

Funzioni razionali

Chiamiamo x il valore in cui vogliamo calcolare la funzione, di cui consideriamo il floating fl(x), ψ è la funzione effettivamente calcolata. Valore da calcolare: f(x), valore effettivamente calcolato: ψ(fl(x)).

Supponiamo di avere x≠0, e f funzione razionale tale che f(x)≠0 e f(fl(x))≠0. Vogliamo frammentare l'errore (relativo) totale ψ(fl(x))−f(x)f(x) in diversi tipi di errori:

  1. errore inerente: ein=f(fl(x))−f(x)f(x). Si assume che f sia calcolata esattamente, e si considera solo l'errore dipendente dalla rappresentazione dei dati.
  2. errore algoritmico: misura l'errore generato dall'uso di ψ al posto di f, calcolate nel floating di v. La sua espressione è ealg=ψ(fl(x))−f(fl(x))f(fl(x))

Vale il seguente teorema.

Teorema 1.3

L'errore totale è uguale a ealg(1+ein)+ein, e al primo ordine è uguale a ealg+ein. Inoltre

ein=∑i=1nciεxi,,ci=xif(x)∗∂f∂xi

con

|εxi|<u

Dimostrazione

Er=ψ(fl(x))−f(x)f(x)

=ψ(fl(x))f(x)−1

=ψ(fl(x))f(fl(x))∗f(fl(x))f(x)−1

=(Ealg+1)∗(ein+1)−1

ealg+ein+ealgein+1−1

=ealg(1+ein)+ein

cvd

Caso generale funzione non razionale

Supponiamo di avere x≠0, una funzione f non razionale che viene approssimata con una funzione g razionale, e ψ(fl(x)) è la funzione effettivamente calcolata.

Er=ψ(fl(x))−f(x)f(x)

si frammenta in:

  1. errore analitico: dipende dal fatto di usare g al posto di f, e ha espressione ean=g(x)−f(x)f(x)
  2. errore inerente: ein=f(fl(x))−f(x)f(x)
  3. errore algoritmico: Ealg=ψ(fl(x))−g(fl(x))g(fl(x))

Teorema 1.4

L'errore totale al primo ordine è dato da

ein+ealg+ean,fl(x)

con ean,fl(x)=g(fl(x))−f(fl(x))f(fl(x))

Dimostrazione

er=ψ(fl(x))−f(x)f(x)

=ψ(fl(x))f(x)−1

=ψ(fl(x))g(fl(x))∗g(fl(x))f(x)−1

=(ealg+1)g(fl(x))f(x)−1

=(ealg+1)[g(fl(x))f(fl(x))∗f(fl(x))f(x)]−1

=(ealg+1)(ein+1)g(fl(x))f(fl(x))−1

=(ealg+1)(ein+1)g(fl(x))−f(fl(x))+f(fl(x))f(fl(x))−1

=(ealg+1)(ein+1)[g(fl(x))−f(fl(x))f(fl(x))+1]−1

=(ealg+1)(ein+1)(ean,fl(x)+1)−1

Al primo ordine

ealg+ein+ean,fl(x)

cvd

Se ean,x e ean,fl(x) differiscono di un termine del secondo ordine, allora vale il risultato con il vero errore analitico.

Template:Avanzamento