Errore assoluto

thedarkhero
Siano $f(x)=1/(1-x)$ e $g(x)=1+x+x^2+x^3$.
Disegnando il grafico di $abs(f(x)-g(x))$ nell'intervallo $[-1,1]$ si nota che in x=0 l'errore assoluto è molto piccolo.
A cosa è dovuto?

Analiticamente si ha $f(0)=g(0)=1$, come posso stimare $abs(f(x)-g(x))$ in $x=0$ in funzione di $epsilon_M$?

Risposte
maurer
Beh, [tex]g(x) = 1+ x+x^2+x^3[/tex] è il polinomio di Taylor di terzo grado della funzione [tex]\frac{1}{1-x}[/tex]. Se [tex]|x|<1[/tex] la serie di Taylor della funzione converge alla funzione stessa e quindi la funzione risulta analitica in [tex](-1,1)[/tex] (ammette sviluppo in serie di potenze in ogni punto di [tex](-1,1)[/tex]).
Per stimare l'errore puoi utilizzare il teorema di Taylor con resto di Lagrange:

    Teorema. Sia [tex]f:(a,b) \to \mathbb{R}[/tex] una funzione derivabile n volte continuità e supponiamo che esista anche la derivata (n+1)-esima (eventualmente senza essere continua). Allora per ogni [tex]x_0 \in (a,b)[/tex] e per ogni [tex]x \in (a,b)[/tex] esiste un [tex]\xi \in (x_0,x)[/tex] tale che:
    [tex]\displaystyle f(x) = \sum_{k=0}^{n}\frac{f^{(k)}(x_0)}{k!}(x-x_0)^k + \frac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_0)^{n+1}[/tex][/list:u:afdjkjzf]

    Nel tuo caso l'errore assoluto è quindi dato da
    [tex]\displaystyle \frac{|f^{(4)}(\xi)|}{4!}|x-x_0|^{n+1}[/tex]

thedarkhero
D'accordo ma nel mio caso la funzione $x->abs(f(x)-g(x))$ è nulla in $x=0$ quindi analiticamente l'errore è nullo, ma nella macchina non è così. Sbaglio?

maurer
Ah! Non avevo capito, scusami!
Non ho una risposta. Posso provare a indovinare: secondo me la macchina per tracciare il grafico di [tex]\frac{1}{1-x}[/tex] usa un'interpolazione lineare con una meshe dell'intervallo [tex][-1,1][/tex] che si calcola in automatico. Indichiamo con [tex]-1 = t_0 < t_1 < \ldots < t_n < t_{n+1} = 1[/tex] i punti che suddividono l'intervallo [tex][-1,1][/tex] per effettuare l'interpolazione lineare. L'errore che rilevi tu, probabilmente dipende dal fatto che nessuno dei [tex]t_i[/tex] coincide con [tex]0[/tex] e quindi viene rilevato un errore (molto piccolo). Ti convince?

Senza conoscere con precisione l'algoritmo utilizzato dalla macchina, mi riesce difficile darti una stima dell'errore in funzione dell'epsilon di macchina. E con le mie attuali conoscenze, credo che avrei difficoltà anche se sapessimo di che algoritmo si tratta.

dissonance
@maurer: Non credo sia così. Probabilmente la macchina usa un algoritmo diretto: valuta $1-x$ e poi passa al reciproco. Non occorre usare interpolazioni per le funzioni algebriche e razionali, tanto è vero che esiste una tecnica di approssimazione, detta di Padé, che usa proprio queste ultime in luogo dei polinomi per approssimare localmente funzioni analitiche.

@thedarkhero: Una tecnica per stimare l'errore algoritmico di cui ti stai interessando fa uso dei grafi. La trovi spiegata accuratamente sul libro di Bini e Capovani Metodi numerici, secondo capitolo. In sostanza si tratta di analizzare l'algoritmo di calcolo, il quale consiste di varie operazioni, ognuna delle quali introduce un errore locale che puoi stimare con $epsilon_M$ (intendo la precisione di macchina) e amplifica l'errore introdotto ai passi precedenti.

In questo caso però il discorso è molto più semplice: secondo me per $x=0$ l'errore è proprio nullo. Prendi $1/(1-x)$: per valutarlo in $0$, la macchina calcola $1-0$ e non commette alcun errore; poi passa al reciproco e ancora non commette alcun errore. Analogamente per $1+x+x^2+x^3$; in totale l'errore è nullo. E' un caso molto particolare, perché stai valutando in $0$ che non è un numero di macchina come gli altri.

maurer
Ah! Buono a sapersi... nel nostro corso di analisi numerica di base non ce le hanno raccontate tutte queste cose! :)

dissonance
Se è per questo non se ne è parlato neanche nei corsi che ho frequentato io. Del resto sono cose pallosissime e per fortuna nella maggior parte dei casi si possono ignorare senza troppo danno, oppure si può andare a senso. Così almeno è detto nel primo capitolo del libro di Moler, che è molto leggero e ti puoi leggere in poco tempo, se ti sei incuriosito.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.