F3 - Invers funktion

KTH/ICT: IX1304, VT-2012
Göran Andersson, goeran@kth.se
120327

Mål

Att kunna redogöra för följande begrepp

Invers funktion

Exponential- och logaritmfunktion

att kunna

ge exempel på några vanliga inversa funktioner

bestämma enkla inverser

formulera tillväxtproblem som en diffekvation

åskådliggöra modeller med logaritmiska plottar

Innehåll

Teori

Adams chapter 3

Invers funktion

Injektiv funktion

Betrakta bilden med funktionen f. Mängden 𝒟(f), the domain of f, kallas definitionsmängd på svenska och mängden ℛ(f), the range of f kallas värdemängd.

Låt f(x) vara definierad för x∈𝒟(f) och ha värdemängd y∈ℛ(f). Om då för varje (Subscript[x, 1]),(Subscript[x, 2])∈𝒟(f) gäller

f((Subscript[x, 1]))=f((Subscript[x, 2]))=>(Subscript[x, 1])=(Subscript[x, 2])

sägs funktionen vara injektiv eller one-to-one.

För att avgöra om en funktion är injektiv visas att  () är sann. Ett ekvivalent alternativ till () är

(Subscript[x, 1])≠(Subscript[x, 2])=>f((Subscript[x, 1]))≠f((Subscript[x, 2]))

En reell funktion f(x) som definierad i ett intervall och är strängt växande eller strängt avtagande i hela intervallet är injektiv.

Exempel

Funktionen f(x)=3x+1, x∈ℝ är injektiv.

Bevis:

f((Subscript[x, 1]))=f((Subscript[x, 2]))⇔3(Subscript[x, 1])+1=3(Subscript[x, 2])+1⇔(Subscript[x, 1])=(Subscript[x, 2])

∴() sann⇔f injektiv

Exempel

Funktionen f(x)=3(x^2)+1, x∈ℝ är inte injektiv.

Bevis:

Vi kan här använda () för att visa ett moteexempel. Sätt (Subscript[x, 1])=1,(Subscript[x, 2])=-1. Då är (Subscript[x, 1])≠(Subscript[x, 2]) men

f((Subscript[x, 1]))=3(Subscript[x, 1]^2)+1=3·(1^2)+1=4=3·(((-1))^2)+1=f((Subscript[x, 2]))

∴() falsk=>f ej injektiv

Exempel

Visa att f(x)=3(x^2)+1, x∈(SuperPlus[ℝ]) är injektiv.

Bevis:

f((Subscript[x, 1]))=f((Subscript[x, 2]))⇔3(Subscript[x, 1]^2)+1=3(Subscript[x, 2]^2)+1⇔(Subscript[x, 1]^2)=(Subscript[x, 2]^2)

(Overscript[⟺, (Subscript[x, 1]),(Subscript[x, 2])>0])(Subscript[x, 1])=(Subscript[x, 2])

∴() sann⇔f injektiv

Exempel  (svårt)

Visa att f(x)=(x^5)+(x^3)+1, x∈ℝ är injektiv.

Bevis:

Vi kan inte använda enkel ekvationslösning här, men faktorisering är ett alternativ.

f((Subscript[x, 1]))=f((Subscript[x, 2]))⇔f((Subscript[x, 1]))-f((Subscript[x, 2]))=0⇔(Subscript[x, 1]^5)+(Subscript[x, 1]^3)+1-((Subscript[x, 2]^5)+(Subscript[x, 2]^3)+1)=0⇔(Subscript[x, 1]^5)+(Subscript[x, 1]^3)-(Subscript[x, 2]^5)-(Subscript[x, 2]^3)=0

Eftersom (x^5)+(x^3) är udda måste (Subscript[x, 1]) och (Subscript[x, 2]) ha samma tecken.

⇔(Subscript[x, 1]^5)+(Subscript[x, 1]^3)-(Subscript[x, 2]^5)-(Subscript[x, 2]^3)=0⇔((Subscript[x, 1])-(Subscript[x, 2]))((Subscript[x, 1]^4)+(Subscript[x, 1]^2)+(Subscript[x, 1]^3) (Subscript[x, 2])+(Subscript[x, 1]^2) (Subscript[x, 2]^2)+(Subscript[x, 1]) (Subscript[x, 2])+(Subscript[x, 1]) (Subscript[x, 2]^3)+(Subscript[x, 2]^2)+(Subscript[x, 2]^4))

Om (Subscript[x, 1])≠(Subscript[x, 2]) måste den andra faktorn vara 0. Det kan den emellertid inte, eftersom (Subscript[x, 1]) och (Subscript[x, 2]) har samma tecken. Motsägelse.

∴(Subscript[x, 1])=(Subscript[x, 2]) =>() sann⇔f injektiv

Factor[x1^5+x1^3-x2^5-x2^3]

Invers funktion

In injektiv funktion kan sägas vara informationsbevarande, dvs. man kan avgöra indata med hjälp av utdata. Om en funktion (lokalt) är injektiv är funktionen (lokalt) inverterbar.

y=f(x)⇔x=(f^(-1))(y)

En invers funktion (f^(-1))(x) är en spegling i linjen y=x (identitetsavbildningen).

Om man betraktar den sammansatta funktionen med inversen får man identitetsavbildningen I(x)=x.

(Piecewise[{{((f^(-1))∘f)(x)=(f^(-1))(f(x))=x}, {(f∘(f^(-1)))(y)=f((f^(-1))(y))=y}}])

Observera att ordningen spelar roll (vilket ju är normalt för (f∘g)(x)). Den första sammansättningen avbildar x∈𝒟(f) på sig självt, medan den andra sammansättningen avbildar y∈ℛ(f) på sig självt.

A(Overscript[→, f])B=>(Piecewise[{{((f^(-1))∘f)=(Subscript[I, A])}, {(f∘(f^(-1)))(y)=(Subscript[I, B])}}])

Exempel

Bestäm (f^(-1))(x) om f(x)=(x^2), x≥0.

Lösning

Funktionen f(x)=(x^2) är injektiv då x≥0, eftersom (Subscript[x, 1]^2)=(Subscript[x, 2]^2)⇔(Subscript[x, 1])=(Subscript[x, 2]). Det finns därmed en invers. Inversen bestäms enligt

Funktionen f(x)=(x^2) är injektiv då x≥0 så det finns en invers.

y=(x^2)(Overscript[⇔, x≥0])x=(Sqrt[y])⇔(f^(-1))(y)=(Sqrt[y]),y≥0

∴(f^(-1))(x)=(Sqrt[x]),x≥0

Observera att då man bestämmer inversen av A(Overscript[→, f])B är alla tre komponenterna f,A,B betydelsefulla.

Mathematica

ClearAll["`*"]

f[x_]:=(x^2)

Reduce[{f[x]==y,x≥0},x,Reals]

f1[y_]:=(Sqrt[y])

Plot[{f[x],x,f1[x]},{x,0,2},
PlotRange->{{0,2},{0,2}},
AspectRatio->Automatic,
PlotStyle->{Black,Dashed,Red},
AxesLabel->{"x","y"}
]

Exempel

Bestäm (f^(-1))(x) om f(x)=(x^2), x≤0.

Lösning

Funktionen f(x)=(x^2) är injektiv då x≤0, eftersom (Subscript[x, 1]^2)=(Subscript[x, 2]^2)⇔(Subscript[x, 1])=(Subscript[x, 2]). Det finns därmed en invers. Inversen bestäms enligt

y=(x^2)(Overscript[⇔, x≤0])x=-(Sqrt[y])⇔(f^(-1))(y)=-(Sqrt[y]),y≥0

∴(f^(-1))(x)=-(Sqrt[x]),x≥0

Mathematica

ClearAll["`*"]

f[x_]:=(x^2)

Reduce[{f[x]==y,x≤0},x,Reals]

f1[y_]:=-(Sqrt[y])

fplot=
Plot[f[x],{x,-5,0},PlotRange->{{-5,5},{-5,5}},AspectRatio->Automatic,PlotStyle->Black,
AxesLabel->{"x","y"}
];
idplot=Plot[x,{x,-5,5},PlotStyle->Dashed];
invplot=Plot[f1[x],{x,0,5},PlotStyle->Red];
Show[fplot,idplot,invplot]

Exempel

Bestäm (f^(-1))(x) om f(x)=(Sqrt[3x+2]).

Lösning

Vi förutsätter (här) funktionen är reellvärd så att 3x+2≥0⇔x≥-2/3. Antag att definitionsmängden är

𝒟(f)={x∈ℝ:x≥-2/3} =>ℛ(f)= {y∈ℝ:y≥0}

y=(Sqrt[3x+2])(Overscript[⇔, x≥-2/3])(y^2)=3x+2⇔⇔x=(((y^2)-2)/3)⇔(f^(-1))(y)=(((y^2)-2)/3)

∴(f^(-1))(x)=(((x^2)-2)/3),x≥0

Mathematica

ClearAll["`*"]

f[x_]:=(Sqrt[3x+2])

Reduce[{f[x]==y,x≥-2/3},x,Reals]

f1[y_]:=(1/3) (-2+(y^2))

fplot=
Plot[f[x],{x,-3/2,5},PlotRange->{{-2,5},{-2,5}},AspectRatio->Automatic,PlotStyle->Black,
AxesLabel->{"x","y"}
];
idplot=Plot[x,{x,-2,5},PlotStyle->Dashed];
invplot=Plot[f1[x],{x,0,5},PlotStyle->Red];
Show[fplot,idplot,invplot]

Generalisering av begreppet injektiv (överkurs)

Om man betraktar en funktion A(Overscript[→, f])B kan mängden B innehålla element som saknar ursprungselement (figuren ovan). Det räcker då inte att kräva att funktionen är injektiv för att den ska ha en invers. Nedan ges de generella begreppen.

För att en funktion ska vara inverterbar krävs då att den är bijektiv.

Derivata av invers funktion

Om en funktion f(x) är deriverbar på ett intervall (a,b) och f'(x)>0 eller f'(x)<0 (dvs. funktionen är strängt växande eller strängt avtagande) så är funktionen injektiv och funktionen har invers (f^(-1))(x) i intervallet. Antag att vi vill bestämma inversens derivata. Kedjeregeln ger vid derivering m.a.p. x:

y=(f^(-1))(x)⇔x=f(y)=>1=f'(y) y'⇔y'=(1/(f'(y)))⇔(d/(dx))(f^(-1))(x)=(1/(f'((f^(-1))(x))))

Exempel

Bestäm (d/(dx))(f^(-1))(x) om f(x)=3(x^2)-1,x>0.

Lösning

Funktionen f(x)=3(x^2)-1 är injektiv för x>0. Dvs. inversen existerar.

f'(x)=3·2x-0=6x

y=3(x^2)-1(Overscript[⇔, x>0])x=(Sqrt[((y+1)/3)])⇔(f^(-1))(y)=(Sqrt[((y+1)/3)])⇔(f^(-1))(x)=(Sqrt[((x+1)/3)]),x>-1

∴(d/(dx))(f^(-1))(x)=(1/(f'((f^(-1))(x))))=(1/(6((f^(-1))(x))))=(1/(6 ((Sqrt[((x+1)/3)]))))=(1/6)(Sqrt[(3/(x+1))]),x>-1

Mathematica

ClearAll["`*"]

f[x_]:=3(x^2)-1

solution=Reduce[{f[x]==y,x>0},x,Reals]

f1[x_]:=((Sqrt[1+x])/(Sqrt[3]))

fplot=
Plot[f[x],{x,0,5},PlotRange->{{-2,5},{-2,5}},AspectRatio->Automatic,PlotStyle->Black,
AxesLabel->{"x","y"}
];
idplot=Plot[x,{x,-2,5},PlotStyle->Dashed];
invplot=Plot[f1[x],{x,-1,5},PlotStyle->Red];
Show[fplot,idplot,invplot]

fprimplot=
Plot[f'[x],{x,0,5},PlotRange->{{-2,5},{-2,5}},AspectRatio->Automatic,PlotStyle->Black,
AxesLabel->{"x","y"}
];
invprimplot=Plot[(1/(f'[f1[x]])),{x,-1,5},PlotStyle->Red];
Show[fprimplot,invprimplot]

(1/(f'[f1[x]]))==f1'[x]

Exempel

Bestäm (d/(dx))(f^(-1))(x) om f(x)=(x^3).

Lösning

Funktionen f(x)=(x^3) är injektiv för alla reella tal. Dvs. inversen existerar på hela reella axeln.

f'(x)=3(x^2)

y=(x^3)=>x=(y^(1/3))⇔(f^(-1))(y)=(y^(1/3))⇔(f^(-1))(x)=(x^(1/3))

∴(d/(dx))(f^(-1))(x)=(1/(f'((f^(-1))(x))))=(1/(3((((f^(-1))(x)))^2)))=(1/(3((((x^(1/3))))^2)))=(1/3)(x^(-2/3)),x≠0

Observera att derivatan (d/(dx))(f^(-1))(x) inte existerar för x=0.

Mathematica

ClearAll["`*"]

f[x_]:=(x^3)

Kommentar: Denna enkla funktion är besvärlig att invertera i Mathematica på grund av att programmet default räknar med komplexa tal. Lösningen uttrycks här med Root som är overkill för denna enkla ekvation men som är en generell representation för mycket komplicerade lösningar.

solution=Solve[f[x]==y,x,Reals]

Observera att detta betyder (x^(1/3)). Du kan definiera funktionen m.h.a. detta, t.ex.

f1[y_] = x /. solution[[1]]

Vi kan testa (8^(1/3))=2

f1[8]

fplot=
Plot[f[x],{x,-5,5},PlotRange->{{-5,5},{-5,5}},AspectRatio->Automatic,PlotStyle->Black,
AxesLabel->{"x","y"}
];
idplot=Plot[x,{x,-5,5},PlotStyle->Dashed];
invplot=Plot[f1[x],{x,-5,5},PlotStyle->Red];
Show[fplot,idplot,invplot]

I grafen kan du se att den röda inversfunktionen är vertikal vid x=0, dvs. den saknar derivata.

Invers trigonometrisk funktion

arcsin

Många (de flesta) inversa funktioner kan inte lösas ut med hjälp av ekvationen y=f(x). Man kan då kringgå svårigheten genom att definiera nya “elementära” funktioner. Om f(x)=sin(x) definieras inversen (f^(-1))(y) av

y=sin(x), -(π/2)≤x≤(π/2)⇔x=arcsin(y)

Funktionen arcsin(x) betecknas ofta (sin^(-1))(x).

Om f(x)=sin(x),-(π/2)≤x≤(π/2) och (f^(-1))(x)=arcsin(x) kan derivatan till arcsin(x) bestämmas enligt

-(π/2)≤x≤(π/2)=>(cos^2)(x)+(sin^2)(x)=1⇔cos(x)=+(Sqrt[1-(sin^2)(x)])

(d/(dx))arcsin(x)=(1/(f'((f^(-1))(x))))=(1/(f'(arcsin(x))))=(1/(cos(arcsin(x))))=(1/(Sqrt[1-(sin^2)(arcsin(x))]))

∴(d/(dx))arcsin(x)=(1/(Sqrt[1-(x^2)]))

Exempel

Bestäm inversen och dess derivata till f(x)=sin(2x), -(π/4)≤x≤(π/4).

Lösning

Observera att -(π/2)≤2x≤(π/2). Funktionen f(x)=sin(2x) är därför injektiv och har invers.

y=sin(2x)⇔arcsin(y)=2x⇔x=(1/2)arcsin(y)

∴(f^(-1))(x)=(1/2)arcsin(x),-1≤x≤1

Derivatan blir:

∴(d/(dx))(f^(-1))(x)=(d/(dx))((1/2)arcsin(x))=(1/(2(Sqrt[1-(x^2)])))

Mathematica

ClearAll["`*"]

f[x_]:=Sin[2x];
f1[x_]:=(1/2)ArcSin[x]

D[f1[x],x]

fplot=
Plot[f[x],{x,-(π/4),(π/4)},PlotRange->{{-1.5,1.5},{-1.5,1.5}},AspectRatio->Automatic,PlotStyle->Black,
AxesLabel->{"x","y"}
];
idplot=Plot[x,{x,-2,2},PlotStyle->Dashed];
invplot=Plot[f1[x],{x,-1,1},PlotStyle->Red];
Show[fplot,idplot,invplot]

Exempel

Bestäm inversen till om f(x)=sin(3x),(π/2)≤x≤((3π)/2).

Lösning

Funktionen f(x)=sin(3x),(π/4)≤x≤(π/2) är injektiv. Dvs. inversen existerar. Eftersom arcsin har värdemängden  {x:-(π/2)≤x≤(π/2)} “flyttar” vi f(x) till detta intervall genom att betrakta g(x)=f(x+(π/3)) istället.

g(x)=f(x+(π/3))=sin(3(x+(π/3)))=-sin(3x),(π/4)-(π/3)≤x≤(π/2)-(π/3)⇔-(π/12)≤x≤(π/6)

y=-sin(3x)⇔-y=sin(3x)⇔arcsin(-y)=3x⇔-arcsin(y)=3x⇔x=-(1/3)arcsin(y)

(g^(-1))(x)=-(1/3)arcsin(x) => (f^(-1))(x)=(g^(-1))(x)+(π/3)=(1/3)(π-arcsin(x))

Mathematica

ClearAll["`*"]

f[x_]:=Sin[3x]

solution=Reduce[{f[x]==y,(π/4)≤x≤(π/2)},x,Reals]

f1[y_] = (1/3) (π-ArcSin[y])

fplot=
Plot[f[x],{x,(π/4),(π/2)},PlotRange->{{-2,2},{-2,2}},AspectRatio->Automatic,PlotStyle->Black,
AxesLabel->{"x","y"}
];
idplot=Plot[x,{x,-2,2},PlotStyle->Dashed];
invplot=Plot[f1[x],{x,-1,(1/(Sqrt[2]))},PlotStyle->Red];
Show[fplot,idplot,invplot]

arccos och arctan

Inversen till cos(x) definieras analogt med inversen till sin(x)

y=cos(x), 0≤x≤π⇔x=arccos(y)

Derivatan till arccos(x) härleds på liknande sätt som för ().

(d/(dx))arccos(x)=-(1/(Sqrt[1-(x^2)]))

Inversen till tan(x) definieras analogt med inversen till sin(x)

y=tan(x), -(π/2)<x<(π/2)⇔x=arctan(y)

Notera att arctan(x) (röda kurvan) är definierad för alla reella tal (till skillnad från arcsin(x) och arccos(x)).

Om man använder att (d/(dx)) tan(x)=1+(tan^2)(x) kan derivatan till arctan(x) härleds på liknande sätt som för ().

(d/(dx))arctan(x)=(1/(1+(x^2)))

Anmärkning Mathematica

I Mathematica finns ett flertal trigonometriska funktioner som används i amerikanska skolor, men som inte används i svensk standard. Det kan dock vara bra att känna till funktionerna eftersom resultaten i Mathematica ofta innehåller dessa funktioner. Funktionerna hittar du i manualen genom att klicka på nedanstående länkar.

Trigonometric Functions, Elementary Transcendental Functions.

Här är ett par exempel:

Simplify[(1/(Sin[x]))]

Simplify[(1/(Cos[x]))]

Exponential- och logaritmfunktion

Exponentiafunktion

En potensfunktion (x^a) har variabeln i basen, medan en exponentialfunktion med basen a har variabeln i exponenten.

f(x)=(a^x)

Mathematica

ClearAll["`*"]

a=2;
Plot[(a^x),{x,-3,3},AxesLabel->Automatic]

Alla exponentialfunktioner passerar punkten (0,1) eftersom (a^0)=1,a≠0.

Clear[a];
Manipulate[
Plot[(a^x),{x,-3,3},AxesLabel->Automatic,PlotRange->{{-3,3},{0,10}}],
{a,0.1,10}
]

Om a,b>0 och x,y∈ℝ gäller följande regler

(Piecewise[{{(a^(x+y))=(a^x)(a^y), (a^(-x))=(1/(a^x))}, {((((a^x)))^y)=(a^(x y)), (((a b))^x)=(a^x)(b^x)}}])

Logaritmfunktion

Observera att funktion f(x)=(a^x),a∉{0,1} är injektiv. Den är ju strängt växande eller strängt avtagande för alla reella tal. Funktionen har alltså en invers. Denna skrivs

(f^(-1))(x)=(Subscript[log, a])(x)

och kallas logaritmfunktionen med basen a.

y=(a^x)⇔x=(Subscript[log, a])(y)

Observera följande samband

(Piecewise[{{(Subscript[log, a])((a^x))=x}, {(a^((Subscript[log, a])(x)))=x}}])

ClearAll["`*"]

a=2;
Plot[{(a^x),Log[a,x]},{x,-3,3},AxesLabel->Automatic,PlotStyle->{Blue,Red}]

Alla logaritmfunktioner passerar punkten (1,0) eftersom (Subscript[log, a])(1)=0,a∉{0,1}.

Clear[a];
Manipulate[
Plot[
{(a^x),x,Log[a,x]},{x,-5,5},
AxesLabel->Automatic,PlotRange->{{-5,5},{-5,5}},AspectRatio->Automatic,PlotStyle->{Blue,Dashed,Red}
],
{{a,2,"base"},0.1,10}
]

Om a≠1,b≠1,x,y∈(SuperPlus[ℝ]) gäller följande regler

(Piecewise[{{(Subscript[log, a])(x y)=(Subscript[log, a])(x)+(Subscript[log, a])(y), (Subscript[log, a])((1/x))=-(Subscript[log, a])(x)}, {(Subscript[log, a])((x^y))=y (Subscript[log, a])(x), (Subscript[log, a])(x)=(((Subscript[log, b])(x))/((Subscript[log, b])(a)))}}])

Reglerna följer av exponentlagarna:

(a^((Subscript[log, a])(x y)))=x y=(a^((Subscript[log, a])(x)))(a^((Subscript[log, a])(y)))=(a^((Subscript[log, a])(x)+(Subscript[log, a])(y)))

0=(Subscript[log, a])(1)=(Subscript[log, a])((1/x)x)=(Subscript[log, a])((1/x))+(Subscript[log, a])(x)

(Subscript[log, a])((x^y))=(Subscript[log, a])(((((a^((Subscript[log, a])(x)))))^y))=(Subscript[log, a])((a^(y (Subscript[log, a])(x))))=y (Subscript[log, a])(x)

(b^((Subscript[log, b])(x)))=x=(a^((Subscript[log, a])(x)))=((((b^((Subscript[log, b])(a)))))^((Subscript[log, a])(x)))=(b^((Subscript[log, b])(a)(Subscript[log, a])(x)))

Exempel

Bestäm (f^(-1))(x) om f(x)=(5^(-3x)).

Lösning

Funktionen f(x)=(5^(-3x)) är injektiv.

y>0=>(5^(-3x))=y⇔(Subscript[log, 5])((5^(-3x)))=(Subscript[log, 5])(y)⇔-3x=(Subscript[log, 5])(y)

⇔x=-(1/3)(Subscript[log, 5])(y)⇔(f^(-1))(y)=-(1/3)(Subscript[log, 5])(y),y>0

∴(f^(-1))(x)=-(1/3)(Subscript[log, 5])(x),x>0

Mathematica

ClearAll["`*"]

f[x_]:=(5^(-3x))

f1[x_]:=-(1/3)Log[5,x]

Plot[{f[x],x,f1[x]},{x,-.5,2},
PlotRange->{{-.5,2},{-.5,2}},
AspectRatio->Automatic,
PlotStyle->{Black,Dashed,Red},
AxesLabel->{"x","y"}
]

-(1/3)Log[5,x]==(1/3)Log[(1/5),x]

Vi kan förstås lösa ut inversen med Reduce:

Reduce[{f[x]==y},x,Reals]

Observera att (Subscript[log, a])(x) automatiskt översätts till ((ln(x))/(ln(a)))=((Log[x])/(Log[a])).

f1[y_]:=((Log[(1/y)])/(3 Log[5]))

Naturliga exponential- och logaritmfunktionen

En speciell exponentialfunktion har derivatan 1 för x=0. I detta fall kallas basen e och exponentialfunktionen skrivs (e^x). Inversa funktionen skrivs ln(x) och kallas naturliga logaritmfunktionen.

f(x)=(e^x)⇔(f^(-1))(x)=ln(x)

Konstanten e i (e^x) definieras så att derivatan i punkten (0,1) är 1. Detta innebär att vi kan definiera följande gränsvärde.

(lim_(h->0)) (((e^(0+h))-(e^0))/h)=1⇔(lim_(h->0)) (((e^h)-1)/h)=1

Med hjälp av detta kan vi nu visa derivatan av (e^x) och ln(x).

(d/(dx))(e^x)=(lim_(h->0)) (((e^(x+h))-(e^x))/h)=(lim_(h->0)) (((e^x) ((e^h)-1))/h)=(e^x)(lim_(h->0)) (((e^h)-1)/h)=(e^x)·1=(e^x)

Eftersom vi ju har en formel för inversderivatan kan vi skriva med f(x)=(e^x)

(d/(dx))ln(x)=(1/(f'(ln(x))))=(1/(e^(ln(x))))=(1/x)

Av detta följer det kända gränsvärdet för e:

(lim_(n->∞)) ln((((1+(1/n)))^n))=(lim_(n->∞)) n ln(1+(1/n))=(lim_(n->∞)) ((ln(1+1/n))/(1/n))

=(lim_(h->0)) ((ln(1+h))/h)=(lim_(h->0)) ((ln(1+h)-ln(1))/h)=(Subscript[((d/(dt))ln(t)), t=1])=(1/1)=1

∴(lim_(n->∞)) ln((((1+(1/n)))^n))=1⇔(lim_(n->∞)) (((1+(1/n)))^n)=e

Mathematica

ClearAll["`*"]

Table[(((1+(1/n)))^n),{n,{1,10,100,1000,(10^6)}}]//N

Limit[(((1+(1/n)))^n),n->∞]

N[E,100]

Exempel

Bestäm f'(x) om f(x)=3ln(3x+(e^(2x))).

Lösning

Vi använder kedjeregeln

f'(x)=3(1/(3x+(e^(2x))))(3·1+(e^(2x))·2)=3((3+2(e^(2x)))/(3x+(e^(2x))))

Mathematica

ClearAll["`*"]

f[x_]:=3Log[3 x+(E^(2 x))]

f'[x]

Exempel

Vad blir (d/(dt))(x(t)(e^(-k t)))?

Lösning

Vi använder produktregeln

(d/(dt))(x(t)(e^(-k t)))=x'(t)(e^(-k t))+x(t)(d/(dt))((e^(-k t)))=x'(t)(e^(k t))+x(t)(e^(k t))(-k)=x'(t)(e^(k t))-k x(t)(e^(k t))

Mathematica

ClearAll["`*"]

D[x[t](E^(-k t)),t]

Exponentiell tillväxt

I många sammanhang är tillväxt proportionell mot nuvarande mängd x (i någon form). Det kan t.ex. gälla befolkningstillväxt, räntebelopp, bakterietillväxt, radioaktivt sönderfall, etc. Denna egenskap kan skrivas som att tillväxtfarten ((dx)/(dt)) (den momentana) är proportionell mot x.

((dx)/(dt))=k x

Om k=0 är farten konstant och oberoende av x. Om k>0 har vi en tillväxt och om k<0 avtagande. Ekvationen, som kallas för en differentialekvation, innehåller en obekant funktion x(t) och dess derivata. Vi ska lösa denna ekvation genom ett trix och med kunskap om derivatan av exponentialfunktionen.

((dx)/(dt))=k x⇔x'(t)-k x(t)=0⇔x'(t)(e^(-k x))-k x(t)(e^(-k x))=0

I sista steget multiplicerade vi med (e^(-k x)). Enligt exempel 2 under “Naturliga exponential- och logaritmfunktionen” ovan gäller:

((dx)/(dt))(x(t) (e^(-k t)))=0⇔x(t)(e^(-k t))=C⇔x(t)=C (e^(k t))

där C är en konstant. Om derivatan av ett uttryck är 0 måste uttrycket vara konstant C. Låt oss anta att vi vet att x(0)=(Subscript[x, 0]). Vi kan då sätta konstanten C=(Subscript[x, 0]).

En sådan här differentialekvation kan lösas i Mathematica med DSolve.

ClearAll["`*"]

DSolve[{x'[t]==k x[t], x[0]==x0},x[t],t]

Exempel

En nyfött barn, Osquar, vägde två veckor efter födseln 4.4kg. Efter ytterligare en månad vägde Osquar 5.2kg. Hur mycket kan man förvänta sig att Osquar väger då han fyller 4 månader? Hur mycket vägde Osquar som nyfödd?

Lösning

Vi antar exponentiell tillväxt, x(t)=(Subscript[x, 0])(e^(k t)).

(Piecewise[{{x(0.5)=4.4}, {x(1.5)=5.2}}])⇔(Piecewise[{{(Subscript[x, 0])(e^(k 0.5))=4.4}, {(Subscript[x, 0])(e^(k 1.5))=5.2}}])

⇔(Piecewise[{{(Subscript[x, 0])(e^(k 0.5))=4.4}, {(((Subscript[x, 0])(e^(k 1.5)))/((Subscript[x, 0])(e^(k 0.5))))=(5.2/4.4)}}])⇔(Piecewise[{{(Subscript[x, 0])(e^(k 0.5))=4.4}, {(e^k)=(5.2/4.4)}}])⇔(Piecewise[{{(Subscript[x, 0]) ((((5.2/4.4)))^0.5)=4.4}, {k=ln((5.2/4.4))}}])

⇔(Piecewise[{{(Subscript[x, 0])=4.4 ((((5.2/4.4)))^(-0.5))}, {(e^k)=(5.2/4.4)}}])

Ur detta får vi vikten som nyfödd:

(Subscript[x, 0])=4.4 ((((5.2/4.4)))^(-0.5))≈4.0 kg

Efter 4 månader kan vi förvänta os vikten

x(4)=(Subscript[x, 0])(e^(k 4))=(Subscript[x, 0]) ((((5.2/4.4)))^4)=4.4 ((((5.2/4.4)))^(-0.5))((((5.2/4.4)))^4)=4.4  ((((5.2/4.4)))^3.5)≈7.9kg

Mathematica

ClearAll["`*"]

x[t_]:=x0 (E^(k t))

solution=FindRoot[{
x[0.5]==4.4,
x[1.5]==5.2
},
{{k,1},{x0,4}}
]

xsol[t_]=x[t]/.solution

xsol[0]

xsol[4]

Plot[xsol[t],{t,0,6},AxesLabel->{"t [mån]","vikt [kg]"}]

Logaritmisk skala

I analysen används funktionsbegreppet flitigt. Man kan därför undra hur får man tag på funktionen? Du har följande data tillgängliga:

ClearAll["`*"]

data={{5,7.58},{10,4.85},{15,3.19},{20,2.01},{25,1.27},{30,0.94},{35,0.64},{40,0.42},{45,0.25},{50,0.16}}

dataplot=ListPlot[data,PlotRange->{{0,All},{0,All}},AxesLabel->{"x","y"}]

Antag att vi vill prova följande modeller.

y=((a(x-(Subscript[x, 0])))^2)

y=(Subscript[x, 0])(e^(-k x))

Modell 1

Vi börjar med att anpassa data till modellen

solution1=FindFit[data,a (((x-x0))^2),{a,x0},x]

f1[x_]=a (((x-x0))^2)/.solution1

modell1Plot=Plot[f1[x],{x,0,50}];
Show[dataplot,modell1Plot]

Detta verkar vara en passande modell. Eller? För att avgöra detta kan vi invertera y-värdena och se om plotten verkar kunna anpassa sig till linjen y=x. I så fall har vi en bra modell.

{f11inv[y_],f12inv[y_]}=x/.Solve[a (((x-x0))^2)==y,x]/.solution1

Vilken av funktionerna ska vi välja? Vi kan se att (Subscript[f, 1])(25)≈1.5.

{f11inv[1.5],f12inv[1.5]}

Vi väljer alltså den första. Plotta gärna inversfunktionen för att se att det är en spegelbild av (Subscript[f, 1])(x) i linjen y=x (men glöm inte AspectRatio->Automatic). Vi ska nu använda denna inversfunktion på våra data, dvs. på y-värdena.

data1i=Table[{data[[k,1]],f11inv[data[[k,2]]]},{k,1,Length[data]}]

data1iplot=ListPlot[data1i,PlotRange->{{0,All},All},AxesLabel->{"x","y"},AspectRatio->Automatic];
linje=Plot[x,{x,0,50}];
Show[data1iplot,linje]

Vi kan se att anpassningen verkar bli usel för stora x-värden. Ett polynom av grad 3 eller 4 ger en bättre anpassning, men polynom av högre gradtal är komplicerade och mycket vanskliga ur stabilitetssynpunkt. Se följande exempel med grad 9.

n=9;
p[x_]=Sum[a[k](x^k),{k,0,n}];
solution9=FindFit[data,p[x],Table[a[k],{k,0,n}],x];
modell9Plot=Plot[p[x]/.solution9,{x,0,53}];
Show[dataplot,modell9Plot]

I allmänhet kan sägas att polynom av högre gradtal kan användas för att approximera data inom dataintervallet, men knappast som modell för att göra förutsägelser utanför intervallet.

Modell 2

Vi börjar med att anpassa data till modellen

solution2=FindFit[data,x0 (E^(-k x)),{x0,k},x]

f2[x_]=x0 (E^(-k x))/.solution2

modell1Plot=Plot[f2[x],{x,0,50}];
Show[dataplot,modell1Plot]

Detta verkar vara också en passande modell. Eller? För att avgöra detta kan vi invertera y-värdena och se om plotten verkar kunna anpassa sig till linjen y=x. I så fall har vi en bra modell.

{f2inv[y_]}=x/.Solve[x0 (E^(-k x))==y,x]/.solution2

Vi får en varning om att inversfunktion har använts. Detta är ju vad vi vill här.

f2inv[4]

f1[%]

Vi ska nu använda denna inversfunktion på våra data, dvs. på y-värdena.

data1i=Table[{data[[k,1]],f2inv[data[[k,2]]]},{k,1,Length[data]}]

data1iplot=ListPlot[data1i,PlotRange->{{0,All},{0,All}},AxesLabel->{"x","y"},AspectRatio->Automatic];
linje=Plot[x,{x,0,50}];
Show[data1iplot,linje]

Här verkar anpassningen vara stabil. Vidare är modellen mycket enkel så detta får bli vårt val.

Just exponentiella data är mycket vanligt förekommande så det kan vara på sin plats att nämna några tips. Om man ska anpassa exponentiella data eller snabbt växande data ar det ur stabilitetssynpunkt mycket lämpligt att logaritmera innan funktionsanpassningen görs. Exempel:

data2=Table[{x,(E^(7x+1))},{x,0,8,0.25}]

Här ger FindFit felaktigt svar trots att modellen är enkel. Det beror på den extremt snabba tillväxten.

FindFit[data2,(E^(k x+m)),{k,m},x]

Lösningen här är att logaritmera data och sedan anpassa. Istället för modellen y=(e^(k x+m)) får vi ln(y)=k x+m.

data3=Table[{data2[[k,1]],Log[data2[[k,2]]]},{k,1,Length[data2]}]

solution3=FindFit[data3,k x+m,{k,m},x]

lny=k x+m/.solution3

Plot[lny,{x,0,10},AxesLabel->{"x","ln(y)"}]

eller

y=(E^(k x+m))/.solution3

Plot[y,{x,0,10},AxesLabel->{"x","y"}]

Den senaste plotten är tämligen värdelös eftersom skalan är ohanterligt och avläsningen (runt 8) är osäker. Därför är plotten av ln(y) att föredra. Den går emellertid att förbättra genom att använda (Subscript[log, 10])(y) istället då motsvaras ju 1,10,100,1000,... av 0,1,2,3,.... Det finns flera metoder som utnyttjar detta och dessutom skriver 1,10,100,1000,... istället för 0,1,2,3,... på axlarna.

?*Log*Plot*

LogPlot[y,{x,0,10},AxesLabel->{"x","y"}]