Ideea de bază a seriilor Taylor este de a reprezenta orice tip de funcție ca o sumă infinită de funcții polinomiale numită seria lui Taylor. Să presupunem că avem o funcție de o singură variabilă reală $f(x)$ de $n$ ori derivabilă într-un punct oarecare $a$, atunci putem exprima funcția prin următoarea serie infinită:
$f(x)=f(a)+f'(a)(x-a)+\frac{f''(a)}{2!}(x-a)^2+\frac{f'''(a)}{3!}(x-a)^3+... $
sau mai compact:
$f(x)= \sum\limits_{k=0}^{\infty}\frac{f^k(a)}{k!}(x-a)^k $
Pentru unele funcții seria converge pentru orice valoare a lui $x$. Pentru altele doar pentru anumite valori.
Teorema lui Taylor, care poate fi găsită sub mai multe enunțuri, arată în esență că o funcție poate fi aproximată într-un anumit punct cu o sumă finită de termeni din seria lui Taylor.
De exemplu aproximația Taylor de ordin $n$ a funcției $f(x)$ în jurul punctului $a$ este:
$f(x)\approx T_{n,a}(x)=\sum\limits_{k=0}^{n}\frac{f^k(a)}{k!}(x-a)^k $
Aproximația este cu atât mai acurată cu cât numărul $x$ este mai apropiat de $a$ si cu cât numărul de termeni $k$ din aproximare este mai mare.
Restul termenilor de la $n$ la $ \infty$ alcătuiesc restul aproximării $R_{n,a}$. Evaluare acetui termen exprimă eroarea aproximării.
$R_{n,a}(x)=\sum\limits_{k=n}^{\infty}\frac{f^k(a)}{k!}(x-a)^k $
Exemplul 1
Dorim să calculăm dezvoltarea în serie Taylor a funcției $f(x)=sinx$ în jurul punctului $a=0$.
$f(x)=sinx,\quad f(0)=0,$
$f'(x)=cosx, \quad f'(0)=1, $
$f''(x)=-sinx,\quad f''(0)=0 $
$f'''(x)=-cosx, \quad f'''(0)=-1 $
$f^4(x)=sinx, \quad f^4(0)=0 $
$f^5(x)=cosx, \quad f^5(0)=1 $
$f(x)=\frac{0}{0!}x^0+\frac{1}{1!}(x)^1+\frac{0}{2!}(x)^2+\frac{-1}{3!}(x)^3+\frac{0}{4!}(x)^3+\frac{1}{5!}(x)^5+.. = x-\frac{1}{3!}x^3+\frac{1}{5!}x^5-\frac{1}{7!}x^7...$
Să considerăm două situații $x=0.3$ mai apropiat de $a=0$ si $x=0.7$ mai departe de $a=0$. Folosind primii 5 termeni ai dezvoltării în serie Taylor se observă mai jos că aproximarea este mult mai bună pentru prima situație când $x$ este mai aproape de $a=0$.
import numpy as np
x1 = .3
x2 =.6
estimat1 = x1 - x1**3/6 + x1**5/120
exact1 = np.sin(.3)
estimat2 = x2 - x2**3/6 + x2**5/120
exact2 = np.sin(.7)
print'estimatul lui sin(.3) este', estimat1
print'valoarea exacta a lui sin(.3) este', exact1
print'estimatul lui sin(.7) este', estimat2
print'valoarea exacta a lui sin(.7) este', exact2
estimatul lui sin(.3) este 0.29552025 valoarea exacta a lui sin(.3) este 0.295520206661 estimatul lui sin(.7) este 0.564648 valoarea exacta a lui sin(.7) este 0.644217687238
Grafic putem vedea cum se comportă funcțiile care reprezintă primii doi , patru, sase termeni din dezvoltarea în serie Taylor care aproximează $f(x)=sinx$. Cu cât numărul de termeni creste cu atât aproximarea e mai bună.
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
plt.style.use('ggplot')
x = np.linspace(-8, 8, 160)
y1 = np.sin(x)
y2 = x
y3 = x - x**3/6
y4 = x - x**3/6 + x**5/120
plt.xlabel('x')
plt.ylabel('f(x)')
plt.ylim(-1.5, 2.5)
plt.title('Aproximarea functiei sin(x)')
plt.plot(x, y1,'-b', label='sin')
plt.plot(x, y2,'-r', label='f2')
plt.plot(x, y3,'-g', label='f4')
plt.plot(x, y4,'-y', label='f5')
plt.legend(loc='upper right')
#plt.grid(True)
<matplotlib.legend.Legend at 0x109c0dd10>
Exemplu 2
Dezvoltarea în serie Taylor a funcției $f(x)=cosx$ în jurul punctului $a=0$.
$f(x)=1-\frac{1}{2!}x^2+\frac{1}{4!}x^4-\frac{1}{6!}x^6+...$
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
plt.style.use('ggplot')
x = np.linspace(-8, 8, 160)
y1 = np.cos(x)
#y2 = 1
y3 = 1 - x**2/2
y4 = 1 - x**2/2 + x**4/24
y2 = 1-x**2/2 + x**4/24+x**6/780
plt.xlabel('x')
plt.ylabel('f(x)')
plt.ylim(-1.5, 2.5)
plt.title('Aproximarea functiei cos(x)')
plt.plot(x, y1,'-b', label='cos')
plt.plot(x, y2,'-r', label='f7')
plt.plot(x, y3,'-g', label='f3')
plt.plot(x, y4,'-y', label='f5')
plt.legend(loc='upper right')
#plt.grid(True)
<matplotlib.legend.Legend at 0x109e4f3d0>
Alte exemple
Pentru $-1<x<1$ si orice n intreg sau fractionar avem dezvoltarea binomială, $$(1+x)^n= 1+nx + \frac{n(n-1)}{2!}x^2+\frac{n(n-1)(n-2)}{3!}x^3+... $$
Pentru orice $x$,
Cum vedem cât de bună este aproximația unei funcții folosind seriile Taylor?
Există mai multe posibilități de a estima acuratețea unei aproximări: - 1.folosind reprezentări grafice - 2.folosind inegalitatea lui Taylor
-1. Se reprezintă grafic $|f(x)-T_n|=R_n$, așa numitul rest al aproximării,$\quad T_n$ fiind aproximarea polinomiala de ordin n.
-2. Restul aproximării este definit de inegalitatea $|R_n|<\frac {M}{(n+1)!}|x-a|^{n+1}\quad$unde$ \quad |f^{n+1}(c)|\le M$, c fiind între $a$ și $x$.
Exemplu:$\quad f(x)=x^{1/2}$, dorim să dezvoltăm în serie Taylor această funcție în jurul punctului $a=4$ si ne interezează aproximarea polinomială de ordin $2$.
$f'(x)=\frac{1}{2}x^{-\frac{1}{2}}\quad f'(4)=\frac{1}{2}$
$f''(x)=-\frac{1}{4}x^{-\frac{3}{2}}\quad f''(4)=-\frac{1}{32}$
$f'''(x)=\frac{1}{12}x^{-\frac{4}{3}}$
$f(x)=f(a)+f'(a)(x-a)+\frac{f''(a)}{2!}(x-a)^2+\frac{f'''(a)}{3!}(x-a)^3+...=f(4)+f'(4)(x-4)+f''(4)(x-4)^2+... $
$f(x)=1+\frac{x}{4}-\frac{1}{64}(x-4)^{2}+...=T_{2}+R_{2}$
Mai jos vedem reprezentarea grafică a funcției $f(x)=x^{1/2}$ precum și a aproximațiilor $T_0=1$, $T_1=1+\frac{x}{4}$, $T_2=1+\frac{x}{4}-\frac{1}{64}(x-4)^{2}$ pentru $a=4$
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
plt.style.use('ggplot')
x = np.linspace(0, 10)
x1 = np.linspace(4, 5)
y=np.sqrt(x)
plt.axhline(y=2.,color='k',linestyle='dashed')
y1=1+x/4
y2=1+x/4-(x-4)**2/64
y3=abs(y-y2)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.ylim(0, 5)
plt.title('Aproximatii cu serii Taylor ')
plt.plot(x, y,'-r', label='f(x)')
plt.plot(x, y1,'-b', label='T1',linestyle='dashed')
plt.plot(x, y2,'-g', label='T2',linestyle='dashed')
plt.legend(loc='upper right')
<matplotlib.legend.Legend at 0x112c80a10>
Eroarea acestei aproximări folosind reprezentarea grafică a restului $|R_n|=(f(x)-T_2)|$ pentru $x$ cuprins între $a=4$ și $5$ este reprezentată mai jos.
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
plt.style.use('ggplot')
x = np.linspace(4,5,100)
y=np.sqrt(x)
y2=1+x/4-(x-4)**2/64
y3=abs(y-y2)
plt.xlabel('x')
plt.ylabel('R(x)')
plt.title('Eroarea aproximarii ')
plt.plot(x, y3,'-r', label='r(x)')
[<matplotlib.lines.Line2D at 0x11157d0d0>]
O altă posibilitate să estimăm eroarea aproximării este să calculăm $R_{n,a}=\frac{M}{(n+1)!}(x-a)^{n+1}$ unde $M$ reprezintă limita superioară a valorii absolute a lui $f^{n+1}(c)$ cu $c$ intre $a$ si $x.$
$ |R_{n,a}|=\frac{|f^{n+1}(c)|}{(n+1)!}|x-a|^{n+1} $
$|R_{2,4}|=\frac{|f^{3}(c)|}{(3)!}|5-4|^{3} \quad a=4, x=5$
$ |R_{2,4}|=\frac{\frac{1}{12}\frac{1}{c^{\frac{4}{3}}}}{3!}1^3$
Dacă $c$ este între $a=4$ si $5$, valoarea maximă a lui $M = \frac{1}{12}\frac{1}{c^{\frac{4}{3}}}$ corespunde lui $c=4$, de unde eroarea maxima a aproximării este $|R_{2,4}|<0,0021$
Unde utilizăm serii Taylor?
În practică aproximațiile sunt utile atunci când avem de rezolvat o problemă care presupune calcule matematice complicate si care în anumite condiții pot fi simplificate pentru a oferi o primă soluție estimativă asupra rezultatului. În fizică în multe situații este convenabil să aproximăm într-un anumit punct o funcție cu o variantă a sa simplificată fără ca rezolvarea problemei să fie afectată semnificativ. Avem mai jos câteva exemple.
Aproximarea unghiurilor mici
În anumite situații se aproximează funcția $f(x)=sinx\approx x$, primul termen al dezvoltării în serie Taylor, sau $cos(x)\approx 1$, sau $tg(x)\approx x$. Dacă luăm ca exemplu funcția $f(x)=sinx$ si calculăm diferența dintre $x-sin(x)=R(x)$ reprezentând eroarea aproximației obținem graficul de mai sus. Acest grafic arată clar că până în $5,6$ grade eroarea este nesemnificativă si aproximația se poate face.
Forța gravitațională
Forța de atracție gravitațională exercitată de Pământ asupra unui corp de masă $m$ variază cu distanța $h$ față de suprafața Pământului conform relației: $$F(h)=K\frac{M_pm}{(R+h)^2}$$ unde $K$ este constanta atracției gravitaționale, $M_p$ este masa Pământului, $R=6371km$ este raza Pământului.
Folosind aproximația binomială $(1\pm x)^n\approx (1\pm x )$ avem $T(h)= K\frac{M_p m}{R^2}=F_0\frac{1}{(1+\frac{h}{R})^2}=F_0(1+\frac{h}{R})^{-2}\approx F_{0}(1-\frac{2h}{R})$
Variația forței de atracție gravitaționale exercitate de Pământ asupra unui corp cu masa de 1kg pe o distanță de la suprafața Pământului până la o rază terestră este arătată în graficul de mai jos.
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
plt.style.use('ggplot')
x = np.linspace(0, 6400)
y = 9.816/(1+x/6371)**2
plt.xlabel('h(km)')
plt.ylabel('F(h)')
plt.title('Variatia fortei gravitationala pana la o inaltime Rp ')
plt.plot(x, y,'-b', label='F')
[<matplotlib.lines.Line2D at 0x10b973350>]
Dacă se utilizează formula aproximativă dată de formula binomială discutată mai sus si se reprezintă grafic eroarea absolută $|{f(x)-T(x)}|$ pe o înălțime de 10 km față de suprafața Pământului atunci se observă că eroarea absolută este foarte mică (vezi graficul de mai jos).
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
plt.style.use('ggplot')
x = np.linspace(0, 10)
y1 = 9.816/(1+x/6371)**2
y2 = 9.816*(1-(2*x)/6371)
y=abs(y1-y2)
plt.xlabel('h(km)')
plt.ylabel('Eroarea absoluta ')
plt.title('Eroarea absoluta a aproximatiei ')
plt.plot(x, y,'-b', label='E')
[<matplotlib.lines.Line2D at 0x10c042110>]
Neglijarea efectelor relativiste
In Teoria Relativității restrânse apare în multe relații asa numitul factor relativist sau factor Lorentz $\gamma=\frac{1}{\sqrt{1-\frac{v^2}{c^2}}}=\frac{1}{\sqrt{1-\beta^2}}$. Factorul Lorentz depinde de viteza $v$ așa cum se vede în graficul de mai jos. La viteze mici, numite și nerelativiste, $\gamma\approx 1$. La viteze mai mari ca $250000km/s$ factorul relatist devine mai mare ca $2$ și crește semnificativ.
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
plt.style.use('ggplot')
x = np.linspace(0,299000000)
c=300000000
c2=c**2
beta=(x/c)
beta2=beta**2
b=1-beta2
y=np.power(b,-0.5)
plt.xlabel('v(m/s)')
plt.ylabel('gamma')
plt.title('Variatia factorului relativist gamma ')
plt.plot(x, y,'-b', label='g')
[<matplotlib.lines.Line2D at 0x10eeff690>]
Dacăse dezvoltă în serie Taylor folosind formula binomială, $\gamma=\frac{1}{\sqrt{1-\frac{v^2}{c^2}}}=\frac{1}{\sqrt{1-\beta^2}}=(1-\beta^2)^{-2}=1+\frac{1}{2}\frac{v^2}{c^2}-\frac{3}{8}\frac{v^4}{c^4}+\frac{5}{16}\frac{v^6}{c^6}+...$
Dacă se calculează energia cinetică relativistă $E_c=mc^2-m_0c^2=\frac{m_0c^2}{\sqrt{1-\beta^2}}-m_0c^2\approx m_0c^2(1+\frac{1}{2}\beta-\frac{3}{8}\beta^2+\frac{5}{16}\beta^3+... -1)\approx m_0c^2(\frac{1}{2}\beta-\frac{3}{8}\beta^2+ \frac{5}{16}\beta^3+..)$
La viteze mici termenii de doi în $\beta$ se pot neglija și $E_c\approx m_0c^2\frac{\beta}{2}=\frac {m_0v^2}{2}$, care este expresia clasică a energiei cinetice.