Taylor - Calcolo dell'errore...

Incognita X
Ciao. Nel mio corso solo 1 persona su 10 ha compreso la formula di Taylor alla perfezione... io ovviamente sono tra i 9... Mi sapreste spiegare in modo molto elementare (altrimenti difficilmente lo capirei) come Taylor è arrivato a definire il polinomio omonimo che serve per approssimare una data funzione?

Ho studiato che il polinomio di Taylor è una diretta conseguenza del Teorema di Lagrange (detto anche del valor medio).

Il Teorema di Lagrange si può riassumere in poche parole:

Data una funzione
[math]f(x)[/math]
continua in un intervallo
[math]\left[a,b\right][/math]
e derivabile in
[math](a,b)[/math]
, esiste sempre un punto interno
[math]\xi[/math]
tale che:

[math]\frac{f(b)-f(a)}{b-a}=f'(\xi)[/math]


In parole più semplici, data una funzione continua e derivabile in un intervallo
[math]\left[a,b\right][/math]
, se tracciamo la secante della funzione agli estremi dell'intervallo e se trasliamo questa secante, troveremo che quest'ultima sarà la tangente della funzione in un punto
[math]\xi[/math]
.

Ora, dal teorema di Lagrange, come si fa a ricavare il polinomio di Taylor? E l'approssimazione della funzione con un errore minore ad un dato ordine di grandezza (ad esempio
[math]10^{-3}[/math]
)... come si ricava?

Grazie in anticipo.

EDIT: Faccio alcuni esempi di esercizi che dovrei saper risolvere (dovrei... =) ).

1) Calcolare in modo approssimativo

->
[math]\cos \frac{8}{15}\pi[/math]
(con un errore
[math]\leq 10^{-4}[/math]
)

->
[math]\ln 1,02[/math]
(con un errore
[math]\leq 10^{-5}[/math]
)

2) Sviluppare la funzione
[math]\ln x[/math]
secondo le potenze di
[math](x-1)[/math]
con
[math]n=3[/math]


La formula la conosco a memoria... ma (i) non sò come è stata ricavata... (ii) non sò applicarla.

Risposte
xico87
il polinomio di taylor è un metodo di approssimazione in un intorno di un punto x0 di una funzione f(x). in particolare, è l'unico polinomio le cui derivate in x0 (fino alla n-esima) sono uguali a quelle di f(x) in x0.

la forma troncata al primo grado del polinomio nel punto x0 è del tipo:

f(x) = f(x0) + f'(x0)(x-x0)

non credo si possa far vedere che è una conseguenza di lagrange. mi è venuto in mente questo:
[f(a) - f(b)] / (a - b) = f'(c)

da cui:
f(a) - f(b)= f'(c) (a - b)

se poni a = x e b = x0, hai la formula di taylor per x che tende a x0, però c è compreso tra x e x0.. quindi il termine f'(c) (a - b) sarebbe il resto di lagrange, ma non puoi porre c = x0 per x che tende a x0 (nonostante sia compreso tra questi valori), altrimenti per lo stesso motivo manderesti tutti i coefficienti delle derivate a 0 e ti ritroveresti ad avere la funzione valutata in x0 (com'è giusto che sia).

per gli esercizi si usa mclaurin. questo implica che devi sempre cercare degli espedienti per ritrovarti in un intorno ("piccolo" )di 0.

esercizio 1

[math] \cos( \frac{8}{15}\pi) = \sin(\frac{\pi}{2} - \frac{8}{15} \pi) =

\sin(- \frac{\pi}{30}) [/math]


ora che sei in un intorno di 0 puoi usare lo sviluppo di mcl del seno:

[math] \sin(- \frac{\pi}{30}) = - \frac{\pi}{30} - \frac{(- \frac{\pi}{30})^3}{3!} + \frac{(- \frac{\pi}{30})^5}{5!}
[/math]


per stimare l'errore usi il resto di lagrange: calcoli il termine k-esimo del polinomio (potrebbe essere anche il terzo del polinomio sopra, controlla), ovvero trovi
[math]\frac{f^{(k)}(y)}{k!} x [/math]
con y compreso tra -pg/30 e 0 e cerchi di stimarne il valore tenendo presente che deve essere minore di
[math] 10^{-4} [/math]
.

potevi anche usare lo sviluppo del coseno, ma ti avrei fatto passare la voglia di trovare derivate perchè avresti dovuto calcolarne moltissime (infatti 8pg/15 è in un intorno di 0 molto più grande).

il logaritmo sfrutta lo sviluppo di ln(x+1), lo lascio a te.

esercizio 2

ln(t+1) = t - t^2/2 + t^3/3
t = x-1

da cui
ln(x) = x-1 - (x-1)^2 / 2 + (x-1)^3 / 3
che è il polinomio di grado 3 che meglio approssima il log(x) nell'intorno di 1

per chiarimenti aspetta ciampax
edit: corretto lo sviluppo del seno (3! al posto di 2!)

Incognita X
Grazie mille.

Ho ancora alcune domande...

1) Nel primo esercizio prendi PI/2 come x0 perché così i calcoli si semplificano? In generale che valore dovrei prendere per poter svolgere i calcoli? E col logaritmo che prendo?

2) Come faccio a calcolare quanto deve valere al massimo K?

3) Il prossimo semestre dovrò scrivere un programma in linguaggio C++ che mi approssimi una funzione con la serie di Taylor... e qui la vedo male!!! Anzi, malissimo!!! Perché dovrò descrivere nel dettaglio tutto l'algoritmo per applicare il polinomio di Taylor in modo che il mio stupido computer lo comprenda! Come faccio?!
:cry

xico87
nel primo esercizio uso mclaurin: significa che approssimo "bene" la funzione vicino allo 0. l'unico modo per farlo è sfruttare la proprietà cos(a) = sen(pg/2 - a), perchè così facendo l'argomento del seno è un numero abbastanza vicino a 0 (e posso tranquillamente approssimarlo con mclaurin dunque).
il logaritmo diventa ln(1+0,2) dove 0,2 sta al posto della x (anche questo è un numero vicino allo 0).

per trovare k vai a tentativi (a proposito, ho corretto la formula del resto di lagrange): se vedi che il secondo termine (k = 1) già soddisfa i requisiti, lo tronchi a quello, oppure passi al terzo (k = 2).. e così via. il concetto è che hai una formula per determinare l'errore, hai x e sai che y è compresa tra due valori (x e 0), quindi dovresti riuscire a determinare il grado di approssimazione. scrivi come faresti e poi vediamo se è corretto.

per il punto 3 non avendo fatto c++ non saprei aiutarti, ma senz'altro te lo spiegheranno .

Incognita X
Allora provo ad applicare McLaurin. Non sarà corretto... lo sò già purtroppo! :cry

[math]f(x) = \ln(1,2)[/math]


[math]f(x) = \ln(1+0,2)[/math]


[math]p(x) = \ln(0,2) + \frac{x}{0,2} - \frac{x^2}{0,04 * 2!} + \frac{0,4x^3}{0,008 * 3!}, ecc....[/math]


I primi termini sono corretti?

ciampax
Incognita X:
Allora provo ad applicare McLaurin. Non sarà corretto... lo sò già purtroppo! :cry

[math]f(x) = \ln(1,2)[/math]


[math]f(x) = \ln(1+0,2)[/math]


[math]p(x) = \ln(0,2) + \frac{x}{0,2} - \frac{x^2}{0,04 * 2!} + \frac{0,4x^3}{0,008 * 3!}, ecc....[/math]


I primi termini sono corretti?


No! Lo sviluppo della funzione è il seguente:

[math]\log(1+x)=x-\frac{x^2}{2}+\frac{x^3}{3}-\frac{x^4}{4}+\ldots[/math]


per cui devi rifare il conto usando, in quello che ho scritto io,
[math]x=0,2[/math]
.

Incognita X
Ah, ok! Grazie. Ma esiste uno sviluppo per ogni funzione principale? Ad esempio per il logartimo, per l'esponenziale, per il seno, ecc...

Qual'è il passaggio logico per ricavare lo sviluppo di una determinata funzione? (Probabilmente è una domanda stupida, ma io dalla formula generale non ci sò arrivare).

Quindi al posto della X devo sostituire 0,2?

xico87
esiste uno sviluppo per ogni funzione derivabile, basta calcolarlo.
gli sviluppi più usati sono quelli delle funzioni trigonometriche, log, seno e coseno iperbolico, per cui dovresti saperli a memoria. se li dimentichi li ricavi con la definizione:

[math] f(x) = f(0) + f'(0)x + \frac{f''(0)}{2!}x^2 + ... + \frac{f^{(k)}(0)}{k!}x^k + o(x^k) [/math]
per
[math] x \to 0 [/math]


lo sviluppo del seno (per esempio) diventa allora:

[math] \sin x = 0 + \cos{(0)}x + \frac{(- \sin{(0)})}{2!}x^2 + \frac{(-cos{(0))}}{3!} x^3 + o(x^3)[/math]


ovvero

sen(x) = x - x^3/3! + o(x^3) (puoi continuare lo sviluppo quanto vuoi)

Incognita X
Quindi se io dovessi approssimare
[math]f(x)=\tan(0.1)[/math]
con un errore minore o uguale a
[math]10^{-3}[/math]
?


[math]f(x)=\tan(x)[/math]


[math]f'(x)=1+\tan^2(x)[/math]


[math]f''(x)=2 \tan(x)(1+\tan^2(x))[/math]


Facciamo finta che io non conosca a memoria lo sviluppo della tangente... come lo ricavo? Mi aiutereste passo per passo a ricavare lo sviluppo della tangente?

xico87
la tangente è una delle più difficili (troppi conti)

[math] f(x) = f(0) + f'(0)x + \frac{f''(0)}{2!}x^2 + ... + \frac{f^{(k)}(0)}{k!}x^k + o(x^k) [/math]
per
[math] x \to 0 [/math]


trova almeno la derivata terza, sennò non fai granchè.

D^3 = 2(1+tg^2x)*(1+tg^2x) + 2tg(x)(1+tg^2(x))*2tg(x) = 2 in x = 0

allora ottieni
tg(x) = 0 + x + 0 + 2x^3/3! + o(x^3) = x + x^3/3 + o(x^3) per x che tende a 0

se vuoi trovare il valore in x = 0,2 basta sostituire 0,2 al posto della x

Incognita X
In effetti trovare la n-sima derivata della tangente...

Scrivo tutti i risultati.

[math]p(x) = \frac{\tan(0)}{0!} + \frac{1+ \tan^2(0)}{1!}(x-0) + \frac{2\tan(0)(1+\tan^2(0)}{2!}(x-0)^2+ \frac{2(1+\tan^2(0))(1+\tan^2(0))+2\tan(0)(1+\tan^2(0))2\tan(0)}{3!}(x-0)^3 + o(x)[/math]


[math]p(x) = x + \frac{2x^3}{3!} + o(x)[/math]


Se voglio trovare il valore della tangente in
[math]x = 0,1[/math]
...

[math]p(0,1) = 0,1 + \frac{2 * 0,1^3}{6} = 0,0003[/math]


E' corretto? Se è giusto dò una testata al PC per la contentezza! Se riuscirò a risolvere gli esercizi all'esame, sarà per la maggior parte merito tuo e di Ciampax!

xico87
1) vi hanno spiegato gli o-piccolo o ti suona nuova quella funzione? perchè lo usi in maniera scorretta

2) l'approssimazione va bene. per fare qualche altro esercizio prova a trovarti la radice quadrata di 65 (approssimata a meno di un errore che decidi tu) sfruttando lo sviluppo di mclaurin di
[math] \sqrt{1+x} [/math]
. non è un procedimento troppo immediato ma puoi riuscire.

Incognita X
xico87:
1) vi hanno spiegato gli o-piccolo o ti suona nuova quella funzione? perchè lo usi in maniera scorretta


L'ho vista nella dispensa e nei libri... pensavo si riferisse alla differenza tra il valore del polinomio e la funzione. In effetti non è che l'abbia capito...


xico87:
2) l'approssimazione va bene. per fare qualche altro esercizio prova a trovarti la radice quadrata di 65 (approssimata a meno di un errore che decidi tu) sfruttando lo sviluppo di mclaurin di
[math] \sqrt{1+x} [/math]
. non è un procedimento troppo immediato ma puoi riuscire.


Ok, adesso ci provo. :move

xico87
lo sviluppo sottinteso di mclaurin (ho modificato)

definizione di o-piccolo:

se
[math] \lim_{x \to x_0} \, \frac{f(x)}{g(x)} = 0 [/math]
allora la funzione f(x) si dice o-piccolo di g(x) e si scrive f(x) = o(g(x)) oppure (verificalo) f(x) = g(x)o(1).

Incognita X
[math]f(x) = \sqrt{1+x}[/math]


[math]f'(x) = \frac{1}{2\sqrt{1+x}}[/math]


[math]f''(x) = ...[/math]


Elaborazione in corso... cervello in tilt... one moment please! :asd

xico87
lo sviluppo da usare era quello di
[math] \sqrt{1+x} [/math]
, così non riesci a risolvere

Incognita X
Cioè devo derivare
[math]\sqrt{1+x}[/math]
? Ma perché sia la radice sia il logaritmo hanno bisogno di uno sviluppo 1+x? A causa del loro dominio?

xico87
per il logaritmo è necessario, infatti non esiste ln(x) in x = 0, e poi aggiungi il fatto che di solito l'argomento è maggiore di 1, e che esiste un limite notevole con ln(1+x) (che non ricordo), il che ti porta a preferire l'1 al posto di altri numeri positivi.
per la radice non è necessario (la radice di 0 esiste, inoltre puoi far tendere x a 0+ anzichè 0), è semplicemente più comodo perchè ti permette di risolvere problemi di approssimazione senza per forza dover ricorrere alla calcolatrice (infatti non devi estrarre nessuna radice)

Incognita X
Per il logaritmo avevo capito, ma per la radice non ancora. Perché dovrebbe essere più comodo? Lo sviluppo di
[math]\sqrt{x}[/math]
non dovrebbe quindi essere errato...

xico87
no, in sè non è errato, solo che non riesci a fare i calcoli poi, perchè devi sempre estrarre radici non intere. inoltre ricorda che devi essere in un intorno di x = 0..

edit
continua nella ricerca dello sviluppo

Incognita X
Ok, grazie. Quindi se facessi lo sviluppo di radice di x non finirei più con i calcoli.

La derivata terza è così?

[math]f'''(x)=-\frac{\sqrt{1+x}}{4(1+x)}[/math]


Lo sviluppo a me viene:
[math]p(x) = 1 + \frac{x}{2} - \frac{x^2}{8}[/math]


Però se sostituisco alla x il numero 65... mi viene un numero negativo esagerato... mentre la radice di 65 dovrebbe aggirarsi intorno ad 8!

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