Uge 5: Taylor-approksimationer#
Nøglebegreber#
Tangentlinjer og tangentplaner
Taylorpolynomier i én variabel
Taylorpolynomier i n variabel
Taylorpolynomier for vektorfunktioner
Taylors sætning
Taylors grænseformel \(f(x) = P_K(x) + \phantom{x}\) led med \(\varepsilon\)-funktion.
Restled og restledsvurdering
Forberedelse og pensum#
Opgaver – Store Dag#
1: Approksimerende polynomier. Håndregning#
Spørgsmål a#
Find for hver af de følgende funktioner deres første og andengrads Taylor-polynomier med udviklingspunkt \(x_0=0\).
\(f(x)=\mathrm{e}^x,\quad x\in \mathbb{R}\)
\(f(x)=\cos (x), \quad x\in \mathbb{R}\)
\(f(x)=\mathrm{e}^{\sin( x)},\quad x\in \mathbb{R}\)
Svar
\(P_1(x)=1+x\) og \(P_2(x)=1+x+\frac 12x^2\)
\(P_1(x)=1\) og \(P_2(x)=1-\frac{1}{2}x^2\)
\(P_1(x)=1+x\) og \(P_2(x)=1+x+\frac{1}{2}x^2\)
Spørgsmål b#
Funktionen
kan naturligvis ikke Taylor-udvikles fra udviklingspunktet \(x_0=0\). Så du bedes i stedet bestemme det approksimerende polynomium af første og anden grad for \(f\) med udviklingspunktet \(x_0=1\).
Svar
\(P_1(x)=-x+2\) og \(P_2(x)=x^2-3x+3\).
Spørgsmål c#
Plot de fire funktioner sammen med deres respektive approksimerende polynomier af første og anden grad i SymPy.
2: Undersøgelse af Taylor-polynomier.#
Brug SymPy til at finde det approksimerende polynomium af grad 9, \(P_9(x)\), med udviklingspunkt \(x_0=0\) for funktionen \(\sin(x)\). Tegn i samme koordinatsystem \(\sin( x)\) og \(P_9(x)\). Hvor langt ud til siden kan man få det approksimerende polynomium til at følge funktionen? (Eksperimentér med polynomiets grad).
Hint
Se hvordan du bestemmer approksimerende polynomier med kommandoen series
i ugens SymPy Demo.
Svar
Jo højere grad man vælger for det approksimerende polynomium, i et desto større interval omkring \(x_0 = 0\) vil der være overensstemmelse mellem \(\sin( x)\) og det approksimerende polynomium \(P_K(x)\). Man kan få det approksimerende polynomium \(P_K(x)\) til at følge funktionen \(\sin(x)\) vilkårligt langt ud til siden. For \(n = 17\) stemmer den i hvert fald godt overens med \(\sin(x)\) i intervallet \(\left[ -2\pi , 2\pi\right]\) og for \(n = 25\) er det endnu bedre.
3: Vurdering af fejl ved approksimation#
En funktion \(f:\mathrm{dom}(f) \to \mathbb{R}\), \(\mathrm{dom}(f) \subseteq \mathbb{R}\), er givet ved
Spørgsmål a#
Bestem definitionsmængden \(\text{dom}(f)\) for \(f\).
Spørgsmål b#
Bestem det approksimerende polynomium \(P_3(x)\) af grad \(3\) for \(f\) med udviklingspunktet \(x_0=1\).
Spørgsmål c#
Gør rede for at den til \(P_3(x)\) hørende restfunktion \(R_3(x)\) kan udtrykkes ved
for et \(\xi\) mellem \(1\) og \(x\). Vis ved vurdering af restfunktionen at den numeriske værdi af den fejl man begår ved at benytte \(P_3(3/2)\) i stedet for \(f(3/2)\) er mindre end eller lig med \(\displaystyle{\frac 5{2^7}}\).
Note
Pointen i opgaver som denne er at man kan finde en approksimation til en funktionsværdi for en vanskelig funktion alene ved at bruge et polynomium hvor værdien er nem at udregne. Og at man samtidigt, ved ren håndregning, kan fastsætte en øvre grænse for den fejl man begår ved at bruge approksimationen. Vi går altså ikke efter fejlens præcise størrelse, for den er nemlig ligeså vanskelig at udregne som funktionsværdien!
4: Approksimation af kompleks funktion#
Approksimerende polynomier for komplekse funktioner af en reel variabel opstilles ved samme formel som reelle funktioner af en reel variabel. I det følgende betragter vi funktionen \(f:\mathbb{R} \to \mathbb{C}\) givet ved:
Spørgsmål a#
Bestem det approksimerende polynomium \(P_3\) af grad tre for \(f\) med udviklingspunktet \(x_0=0\).
Svar
\(P_3(x)=2+2\cdot i \cdot x-x^2-\frac 43 \cdot i\cdot x^3\).
Spørgsmål b#
Bestem, gerne med hjælp af SymPys series
-metode, det approksimerende polynomium \(Q_3\) af grad højst tre for \(f\) med udviklingspunktet \(x_1=\frac{\pi}{2}\).
Spørgsmål c#
Tallet 1 ligger tættere på \(x_1=\frac{\pi}{2}\) end på \(x_0=0\). Hvorfor er det alligevel en meget bedre idé at bruge \(P_3\) end \(Q_3\) hvis man skal bruge en approksimeret værdi til \(f(1)?\)
Spørgsmål d#
Hvilken grad er den mindste et approksimerende polynomium for \(f(x)\) med udviklingspunktet \(x_0=0\) skal have for at afstanden mellem \(f(1)\) og polynomiets værdi i 1 er mindre end en hundrededel?
Svar
\(P_7\) klarer det job.
5: Approksimation af funktion med 3 variable#
Givet funktionen
Spørgsmål a#
Bestem det approksimerende polynomium af anden grad \(P_2(x,y,z)\) for funktionen \(f(x,y,z)\) i \((x_0,y_0,z_0)=(0,0,0)\).
Svar
Spørgsmål b#
Bestem ved hjælp af \(P_2(x,y,z)\) en approksimation til \(f(0.1,0.2,0.3)\).
Svar
Spørgsmål c#
Bestem den absolutte fejl for din approksimation i Spørgsmål b.
Hint
Den absolutte fejl er givet ved \(|P_2(x,y,z)-f(x,y,z)|\).
Svar
6: En implementation af Taylor-approksimation#
Vi skal nu se på en implementation af Taylor-polynomier i Sympy/Python.
Spørgsmål a#
Implementér Taylor-polynomier for arbitrært \(K> 0\), se denne ligning i bogen, med udgangspunkt i følgende opstilling.
def taylor(f,K,x0):
Pk = 0
for k in range(K+1):
# Udregn den k'te afledte af f i x0
fk = # ???
# Læg det k'te led til approksimationen
Pk += # ???
return Pk
Svar
def taylor(f,K,x0):
Pk = 0
for k in range(K+1):
# Udregn den k'te afledte af f i x0
fk = diff(f,x,k).subs({x:x0})
# Læg det k'te led til approksimationen
Pk += fk/factorial(k)*(x-x0)**k
return Pk
Spørgsmål b#
Benyt din Python funktion fra forrige spørgsmål til at udregne det approksimerende polynomium af 4. grad \(P_4(x)\) for funktionen \(f(x)=\sin(x)\) i \(x_0=2\pi/3\).
Svar
Spørgsmål c#
Plot \(f(x)\) og \(P_4(x)\) fra Spørgsmål b sammen i Sympy/Python.
Spørgsmål d#
Nu vil vi gerne implementere Taylor-approksimation af anden grad for funktioner af flere variable, i følge definition i bogen. Til evaluering af matricer og funktioner i Sympy/Python kan man for eksempel bruge følgende simple implementering (eller indbyggede metoder). Overvej hvorfor det virker.
def evaluateFunction(f,x,x0):
for i in range(len(x)):
f = f.subs({x[i]:x0[i]})
return f
Benyt derefter følgende opstilling til at implementere approksimationen.
def taylorN(f,x,x0):
N = len(x)
# Konstant-led
const = # Benyt evaluateFunction til at opnå f evalueret i x0
# Førstegrads-led
J = # Find Jacobi-matricen
J0 = # Benyt evaluateFunction til at opnå J evalueret i x0
first = # Udregn hele det andet led
# Andengrads-led
H = # Find hessematricen
H0 = # Benyt evaluateFunction til at opnå H evalueret i x0
second = # Udregn hele det sidste led
# Resultat
Pk = simplify(Matrix([const]) + first + second)[0]
return Pk
Svar
def taylorN(f,x,x0):
N = len(x)
# Konstant-led
const = evaluateFunction(f,x,x0)
# Førstegrads-led
J = Matrix([f]).jacobian(x)
J0 = evaluateFunction(J,x,x0)
first = J0*(x-x0)
# Andengrads-led
H = hessian(f,x)
H0 = evaluateFunction(H,x,x0)
second = 1/2*(x-x0).T*H0*(x-x0)
# Resultat
Pk = simplify(Matrix([const]) + first + second)[0]
return Pk
Spørgsmål e#
Givet funktionen
Bestem det approksimerende polynomium af anden grad ved hjælp af din implementering i Spørgsmål f i udviklingspunktet \(\pmb{x}_0=(3,0,-\pi/2)\).
Svar
Spørgsmål f#
Bestem nu både den absolutte og den relative fejl ved approksimationen fra Spørgsmål e i punkterne
Hint
Den absolutte fejl er givet ved \(|P_2(x_1,x_2,x_3)-f(x_1,x_2,x_3)|\).
Hint
Den relative fejl er givet ved \(|P_2(x_1,x_2,x_3)-f(x_1,x_2,x_3)|/|f(x_1,x_2,x_3)|\).
Svar
For \(\pmb{y}_1\) er den absolutte fejl \(0.0589\) og den relative fejl er 3.55 %, og for \(\pmb{y}_2\) er den absolutte fejl \(0.0401\) og den relative fejl er 5.28 %.
7: Et andengrads Taylor-polynomium er en kvadratisk form#
Vi betragter en funktion \(f: \mathbb{R}^n \to \mathbb{R}\) hvis første og anden ordens partielle afledte eksisterer i punktet \(\pmb{x}_{0}\). Vis, at andengrads Taylor-polynomiet \(P_{2,f,\pmb{x}_{0}}(\pmb{x})\) defineret i bogen er en kvadratisk form \(q\).
I den kvadratiske form skal du udtrykke matricen \(A\), søjlevektoren \(\pmb{b}\) og konstanten \(c\) i form af vektoren \(\pmb{x}_{0}\) og \(f\) og dens (partielle) afledte af første og anden orden (på matrixform som gradientvektor og hessematrix) evalueret i punktet \(\pmb{x}_{0}\).
Hint
Start med at udvide alle indre produkter i definitionen af \(P_{2,f,\pmb{x}_{0}}(\pmb{x})\) ved hjælp af linearitet af det indre produkt. Saml alle konstante led (dem der ikke er afhængig af \(\pmb{x}\)) og sæt dem lig med \(c\). Fortsæt derefter med de lineære led i \(\pmb{x}\) og til sidst de kvadratiske led.
Opgaver – Lille Dag#
Navnet Taylors grænseformel bruges om “Taylor’s formula” (se bogen) hvor man har isoleret \(f(x)\) på venstresiden og samlet det approksimerende polynomium og rest-leddet udtrykt ved en epsilon-funktion på højresiden.
1: Funktion af én variabel#
Spørgsmål a#
Bestem med udviklingspunktet \(x_0=0\) Taylors grænseformel af anden grad for funktionen
Svar
\(f(x)=2-4x-x^2+x^2\cdot \varepsilon(x)\).
Spørgsmål b#
En to gange differentiabel funktion \(f\) af én variabel opfylder, at \(f(2)=1\), \(f'(2)=1\) og \(P_2(1)=1\). Bestem det approksimerende polynomium af anden grad \(P_2(x)\) for \(f\) med udviklingspunkt \(x_0=2\).
Hint
Brug de to første oplysninger til at opskrive \(P_2(x)\). Der er faktisk kun én ubekendt. Brug den sidste oplysning til at bestemme den.
Svar
\(P_2(x)=-1+x+(x-2)^2\).
2: Taylors grænseformel. Håndregning#
Denne opgave giver en metode til at beregne en grænseværdi af en brøk, hvori både tæller og nævner går mod nul.
Spørgsmål a#
Opskriv Taylors grænseformel for funktionen \(\ln(1+x)\) med udvilklingspunkt \(x_{0}=0\) for grad 1 såvel som 2 og 3.
Spørgsmål b#
Hvilket af de tre resultater i Spørgsmål a kan ikke bruges til at finde grænseværdien:
Hint
Indsæt udtrykket for Taylors grænseformel for \(\ln(1+x)\) af grad 1, og se herefter om grænseværdien kan bestemmes. Vi behøver i denne opgave ikke at bruge Taylors grænseformel for nævneren. Hvorfor?
Hint
Aflæs nu efter forkortelse med \(x\) hvad grænseværdien bliver.
Hint
Prøv så med grad 2 og grad 3.
Svar
Det er tilstrækkeligt at udvikle til anden grad.
Svar
Spørgsmål c#
Udregn nu ved hjælp af Taylors grænseformel følgende grænseværdi:
Hint
Nævneren er af grad 3, så vi skal udvikle til 3. grad.
Svar
3: Drilleopgave#
En funktion \(f\in C^{\infty}(\mathbb{R}^2)\) opfylder ligningerne
Spørgsmål a#
Find det approksimerende polynomium af anden grad for funktionen \(f\) med \((x_0,y_0)=(0,0)\) som udviklingspunkt.
Hint
Ja, det er rigtigt, det ser ud som om, du mangler nogle oplysninger… Prøv at skrive udviklingsformlen op med de oplysninger, du har.
Hint
Hint
Find de manglende oplysninger!
Svar
\(P_2(x,y)=1+x+\frac{1}{2}x^2+y^2\).
4: Taylors formler og approksimation.#
Der er givet funktionen \(f: \mathbb{R}^2 \to \mathbb{R}\):
Spørgsmål a#
Opskriv 2. grads Taylor-polynomiet for \(f\) med udviklingspunktet \((x_0,y_0)=(0,0)\) på almindelig form (uden vektorer og matricer).
Spørgsmål b#
Bestem gradienten \(\nabla f(0,0)\) og Hessematricen \(\pmb{H}_f(0,0)\) og opskriv på matrixform 2. grads Taylor-polynomiet for \(f\) med udviklingspunktet \((x_0,y_0)=(0,0)\).
Spørgsmål c#
Vi ønsker nu en approksimeret værdi for \(f(\frac 34, \frac12)\) ud fra et approksimerende andengradspolynomium for \(f\). Det er selvfølgelig nemt bare at bruge det approksimerende andengradspolynomium med udviklingspunktet \((0,0)\) som vi umiddelbart har fra første spørgsmål. På den anden side ligger \((\frac 34, \frac 12)\) lidt tættere på \((1,1)\) hvori det også er relativt bekvemt at udvikle fra. Så måske burde man hellere bruge \((1,1)\) som udviklingspunkt? Hvilken forskel gør det?
Bestem de approksimerende polynomier af anden grad, \(P_2(x,y)\) og \(Q_2(x,y)\) for \(f\) med udviklingspunkterne hhv. \((0,0)\) og \((1,1)\). Bestem værdierne af dem i punktet \((\frac 34, \frac 12)\) og sammenlign med en computerværdi af \(f(\frac 34, \frac 12)\).
Svar
\(P_2(x,y)=1+x-2y-xy+\frac{1}{2}x^2+2y^2\) \(Q_2(x,y)=2x-y-(x-1)(y-1)+2(x-1)^2+\frac{1}{2}(y-1)^2\)
Svar
Afvigelsen ved \(P_2\) er \(2.04\%\), mens den ved \(Q_2\) er \(0.719\%\). Så i dette tilfælde var det nok umagen værd at udvikle \(Q_2\ldots\)
5: Anvendelse af approksimerende polynomium#
En funktion \(f:\mathbb{R}^2 \to \mathbb{R}\) er givet ved
Spørgsmål a#
Bestem det approksimerende polynomium \(P_2(x,y)\) af anden grad for \(f\) i udviklingspunktet \((x_0,y_0)=(3,4)\).
Hint
Se definition i bogen, formel for det approksimerende 2. gradspolynomium.
Svar
\(\displaystyle{P_2(x,y)=5+\frac{3}{5}(x-3)+\frac{4}{5}(y-4)+\frac{8}{125}(x-3)^2-\frac{12}{125}(x-3)(y-4)+\frac{9}{250}(y-4)^2.}\)
Spørgsmål b#
I dette spørgsmål skal vi illustrere den fejl, vi får hvis vi anvender det approksimerende 2. gradspolynomium i stedet for den eksakte værdi.
Bestem ved hjælp af resultatet i spørgsmål a længden af diagonalen i et rektangel med sidelængerne 2.9 og 4.2 (brug gerne SymPy til udregningen).
Hint
Afstanden fra origo til et vilkårligt punkt \((x,y)\) er en funktion af 2 variable. Ja det er jo netop \(f(x,y)=\sqrt{x^2+y^2}\).
Hint
Forestil dig rektanglet placeret i \((x,y)\)-koordinatsystemet således at diagonalen forbinder punkterne \((0,0)\) og \((2.9,4.2)\).
Svar
Længden kan approksimeres ved hjælp af \(P_2\) som vi fandt ovenfor med udviklingspunktet \((3,4)\). Kort sagt \(P_{2}(2.9,4.2)=5.10400\).
Spørgsmål c#
Sammenlign med en SymPy-værdi af diagonallængden.
Svar
Computerværdien er cirka 5.10392, så approksimationen er ikke så ringe endda.
Spørgsmål d#
Er forskellen signifikant?
Svar
Forskellen er ca. \(8\cdot10^{-5}\), hvilket ikke er meget i forhold til diagonalens længde. Forskellen \(8\cdot10^{-5}\) kaldes den absolutte fejl, men det absolutte fejl i forhold til (dvs. divideret med) diagonalens længde kaldes den relative fejl.