Vanlig feil: Å derivere \(e^{2x}\) som \(e^{2x}\) og glemme faktoren 2.
Sensorpunkt: Kvotientregelen, kjerneregelen og domenet skal framgå tydelig.
Del 1 – Oppgave 2Algoritme og toppunkt
Oppgave 2
Oppgave: Bestem verdien som skrives ut av programmet med \(O(x)=-0,1x^2+2000x-50000\), start \(x=0\), og løkken while O(x+1) > O(x): x=x+1.
Vis løsning
Hva spør oppgaven om? Vi skal forstå at programmet øker heltallsverdien \(x\) så lenge funksjonsverdien stiger.
Steg 1 – Se på funksjonstypen
\(O\) er en andregradsfunksjon med negativ koeffisient foran \(x^2\), så grafen har et maksimum.
Steg 2 – Finn toppunktets x-verdi
For \(ax^2+bx+c\) er toppunktet ved \(-b/(2a)\). Her blir \[x=-\frac{2000}{2(-0,1)}=10000.\]
Steg 3 – Analyser løkkebetingelsen
Programmet sammenlikner naboverdiene \(O(x+1)\) og \(O(x)\).
Steg 4 – Beregn differansen
\[O(x+1)-O(x)=1999,9-0,2x.\]
Steg 5 – Finn siste økning
Differansen er positiv for heltall \(x\le9999\). Derfor økes \(x\) fra 9999 til 10000.
Steg 6 – Stopp
Når \(x=10000\), er \(O(10001)-O(10000)=-0,1\), så løkken stopper og programmet skriver ut 10000.
GeoGebra/CAS-kontroll
GeoGebra – CAS/grafikk
1
O(x)=-0.1x^2+2000x-50000; Extremum(O)
Toppunkt ved \(x=10000\)
Tolkning: Løkken finner heltallet ved funksjonens maksimum.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
defO(x):return-0.1*x**2+2000*x-50000x=0iterations=0whileO(x+1)>O(x):x=x+1iterations+=1print("Printed x =",x)print("Iterations =",iterations)print("O(9999) =",O(9999))print("O(10000) =",O(10000))print("O(10001) =",O(10001))print("Next difference =",O(x+1)-O(x))
Utskrift fra Python:
Printed x = 10000
Iterations = 10000
O(9999) = 9949999.9
O(10000) = 9950000.0
O(10001) = 9949999.9
Next difference = -0.09999999962747097
Fasit: Programmet skriver ut \(10000\).
Vanlig feil: Å tro at løkken skriver ut den største funksjonsverdien; den skriver ut x-verdien.
Sensorpunkt: Forklar både hva løkken gjør og hvorfor den stopper akkurat ved 10000.
Del 1 – Oppgave 3Eksponentiallikning med substitusjon
Oppgave 3
Oppgave: Løs likningen \[100^x-3\cdot10^x=4.\]
Vis løsning
Hva spør oppgaven om? Vi skal bruke at \(100^x=(10^x)^2\), slik at likningen blir en andregradslikning.
Steg 1 – Innfør variabel
Sett \(y=10^x\). Da er \(y>0\).
Steg 2 – Skriv om 100-potensen
\[100^x=(10^2)^x=10^{2x}=(10^x)^2=y^2.\]
Steg 3 – Få en andregradslikning
\[y^2-3y=4\quad\Longrightarrow\quad y^2-3y-4=0.\]
Steg 4 – Faktoriser
\[(y-4)(y+1)=0.\]
Steg 5 – Bruk positivitet
Løsningene er \(y=4\) og \(y=-1\), men \(10^x\) kan ikke være negativ. Derfor er \(10^x=4\).
Steg 6 – Løs for x
\[x=\lg4\approx0,60206.\]
GeoGebra/CAS-kontroll
GeoGebra – CAS/grafikk
1
Solve(100^x-3*10^x=4,x)
\(x=\lg4\)
Tolkning: CAS gir den eneste reelle løsningen.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
importsympyasspx,y=sp.symbols("x y",real=True)quadratic=y**2-3*y-4roots=sp.solve(sp.Eq(quadratic,0),y)valid=[rootforrootinrootsifroot.is_positive]solution_x=sp.log(valid[0],10)print("Quadratic =",sp.factor(quadratic))print("Roots for y = 10^x:",roots)print("Positive root =",valid[0])print("x =",solution_x)print("Decimal x =",sp.N(solution_x,12))print("Equation check =",sp.simplify(100**solution_x-3*10**solution_x))
Utskrift fra Python:
Quadratic = (y - 4)*(y + 1)
Roots for y = 10^x: [-1, 4]
Positive root = 4
x = log(4)/log(10)
Decimal x = 0.602059991328
Equation check = 4
Fasit: \(x=\lg4\approx0,6021\).
Vanlig feil: Å beholde \(y=-1\), selv om \(10^x>0\) for alle reelle x.
Sensorpunkt: Substitusjon, forkasting av negativ rot og tilbakeføring til x må vises.
Del 1 – Oppgave 4Grenseverdi for rasjonal funksjon
Oppgave 4
Oppgave: Finn \[\lim_{x\to\infty}\frac{x^2+x-12}{2x^2-18}.\]
Vis løsning
Hva spør oppgaven om? Vi skal sammenlikne de høyeste potensene i teller og nevner.
Steg 1 – Del på høyeste potens
Del teller og nevner på \(x^2\).
Steg 2 – Skriv om
\[\frac{1+1/x-12/x^2}{2-18/x^2}.\]
Steg 3 – Bruk standardgrenser
Når \(x\to\infty\), går \(1/x\to0\) og \(1/x^2\to0\).
Steg 4 – Sett inn grenseverdiene
\[\frac{1+0-0}{2-0}=\frac12.\]
Steg 5 – Alternativ regel
Teller og nevner har samme grad, så grensen er forholdet mellom ledende koeffisienter, \(1/2\).
Steg 6 – Konklusjon
Grenseverdien eksisterer og er endelig.
GeoGebra/CAS-kontroll
GeoGebra – CAS/grafikk
1
Limit((x^2+x-12)/(2x^2-18),x,Infinity)
\(1/2\)
Tolkning: CAS bekrefter forholdet mellom de ledende koeffisientene.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
importsympyasspx=sp.symbols("x",positive=True)expr=(x**2+x-12)/(2*x**2-18)normalized=sp.simplify(expr.subs(x,1/sp.symbols("u")))limit_value=sp.limit(expr,x,sp.oo)print("Expression =",expr)print("Limit as x -> infinity =",limit_value)forvaluein[10,100,1000]:print("x =",value,"value =",sp.N(expr.subs(x,value),12))
Utskrift fra Python:
Expression = (x**2 + x - 12)/(2*x**2 - 18)
Limit as x -> infinity = 1/2
x = 10 value = 0.538461538462
x = 100 value = 0.504854368932
x = 1000 value = 0.500498504487
Fasit: \(\displaystyle\frac12\).
Vanlig feil: Å ta forholdet mellom konstantleddene i stedet for de høyeste gradsleddene.
Sensorpunkt: En korrekt normalisering eller ledende-koeffisientregel gir full uttelling.
Del 1 – Oppgave 5aLengder og ortogonalitet
Oppgave 5a
Oppgave: Vektorene er \(\vec u=[3,-2]\), \(\vec v=[4,-6]\), \(\vec w=[2,-3]\) og \(\vec p=[8,12]\). Avgjør om noen er like lange eller ortogonale.
Vis løsning
Hva spør oppgaven om? Vi skal sammenlikne kvadrerte lengder og beregne skalarprodukt for alle relevante par.
Vanlig feil: Å sette hele vektoruttrykket lik én skalar likning.
Sensorpunkt: Begge komponentlikningene og en sluttkontroll bør være med.
Del 1 – Oppgave 6Gjennomsnittlig og momentan vekstfart
Oppgave 6
Oppgave: Grafene til \(f\), \(g\) og \(h\) er gitt. Én funksjon har gjennomsnittlig vekstfart \(1/2\) på \([0,4]\) og derivert lik 1 når \(x=1\). Hvilken?
Vis løsning
Hva spør oppgaven om? Vi skal først bruke sekantkravet og deretter kontrollere tangentstigningen ved x=1.
Steg 1 – Les av f i endepunktene
Fra grafen er \(f(0)=0\) og \(f(4)=2\).
Steg 2 – Gjennomsnittlig vekstfart for f
\[\frac{f(4)-f(0)}{4-0}=\frac{2-0}{4}=\frac12.\]
Steg 3 – Kontroller g
Linjen \(g\) har stigningstall \(1/2\) overalt. Derfor er \(g^{\prime}(1)=1/2\), ikke 1.
Steg 4 – Kontroller h
Avlesningen viser at \(h(0)\) og \(h(4)\) ikke gir riktig kombinasjon av sekant- og tangentstigning.
Steg 5 – Tangenten til f ved x=1
Grafen til \(f\) har tangentstigning 1 ved \(x=1\). En modell som passer grafen, \(f(x)=-\tfrac14x^2+\tfrac32x\), gir \(f^{\prime}(1)=1\).
Steg 6 – Konklusjon
Bare \(f\) oppfyller begge krav samtidig.
Sekanten til f på intervallet [0,4] har stigning 1/2.
GeoGebra/CAS-kontroll
GeoGebra – CAS/grafikk
1
f(x)=-x^2/4+3x/2; (f(4)-f(0))/4; f'(1)
\(1/2\) og \(1\)
Tolkning: Graf- og derivertkontrollen peker på f.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
importsympyasspx=sp.symbols("x",real=True)f=-sp.Rational(1,4)*x**2+sp.Rational(3,2)*xg=sp.Rational(1,2)*x+2average_f=sp.simplify((f.subs(x,4)-f.subs(x,0))/4)print("f(0) =",f.subs(x,0),"f(4) =",f.subs(x,4))print("Average slope of f on [0,4] =",average_f)print("f'(1) =",sp.diff(f,x).subs(x,1))print("g'(1) =",sp.diff(g,x).subs(x,1))print("Conclusion: f satisfies both conditions")
Utskrift fra Python:
f(0) = 0 f(4) = 2
Average slope of f on [0,4] = 1/2
f'(1) = 1
g'(1) = 1/2
Conclusion: f satisfies both conditions
Fasit: Funksjonen er \(f\).
Vanlig feil: Å velge g bare fordi den har gjennomsnittlig vekstfart 1/2; det andre kravet må også kontrolleres.
Sensorpunkt: Sensor forventer bruk av både sekantstigning og tangentstigning.
Del 2 – med hjelpemidler
Del 2 – Oppgave 1aEksponentiallikning i praktisk modell
Oppgave 1a
Oppgave: \(V(t)=10000e^{-0,07t}+500\). Hvor lang tid går det før vannmengden er halvert?
Vis løsning
Hva spør oppgaven om? Vi skal halvere startmengden \(V(0)=10500\) liter og løse en eksponentiallikning.
Steg 1 – Startmengden
\[V(0)=10000+500=10500\text{ liter}.\]
Steg 2 – Halv mengde
Halvparten er \(5250\) liter.
Steg 3 – Sett opp likningen
\[10000e^{-0,07t}+500=5250.\]
Steg 4 – Isoler eksponentialleddet
\[e^{-0,07t}=\frac{4750}{10000}=0,475.\]
Steg 5 – Ta naturlig logaritme
\[-0,07t=\ln(0,475).\]
Steg 6 – Beregn tiden
\[t=-\frac{\ln(0,475)}{0,07}\approx10,63.\]
Modellen nærmer seg 500 liter og passerer halv startmengde etter ca. 10,63 timer.
GeoGebra/CAS-kontroll
GeoGebra – CAS/grafikk
1
Solve(10000 exp(-0.07t)+500=5250,t)
\(t\approx10,63\)
Tolkning: CAS løser eksponentiallikningen.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
importsympyasspt=sp.symbols("t",real=True)V=10000*sp.exp(-sp.Rational(7,100)*t)+500initial=V.subs(t,0)half=initial/2solution=sp.solve(sp.Eq(V,half),t)[0]print("V(0) =",initial,"liters")print("Half of initial amount =",half,"liters")print("Exact time =",solution)print("Time in hours =",sp.N(solution,12))print("Check V(t) =",sp.N(V.subs(t,solution),12))
Utskrift fra Python:
V(0) = 10500 liters
Half of initial amount = 5250 liters
Exact time = 100*log(19**(6/7)*40**(1/7)/19)
Time in hours = 10.6348639278
Check V(t) = 5250.00000000
Fasit: Vannmengden er halvert etter omtrent \(10,63\) timer.
Vanlig feil: Å halvere bare 10000-leddet og glemme at startmengden også inneholder 500 liter.
Sensorpunkt: Startmengde, likning, logaritmetrinn og enhet skal være tydelige.
Del 2 – Oppgave 1bFørste- og andrederivert i kontekst
Oppgave 1b
Oppgave: Bestem \(V^{\prime}(12)\) og \(V^{\prime\prime}(12)\), og tolk svarene.
Vis løsning
Hva spør oppgaven om? Vi skal finne momentan lekkasjefart og hvordan denne farten endrer seg etter 12 timer.
Vanlig feil: Å tolke positiv andrederivert som at vannmengden øker; det er den negative lekkasjefarten som avtar i størrelse.
Sensorpunkt: Både tall, enheter og praktisk fortolkning må være med.
Del 2 – Oppgave 1cAsymptote og langtidsatferd
Oppgave 1c
Oppgave: Undersøk om \(V\) har asymptoter, og tolk eventuelle asymptoter.
Vis løsning
Hva spør oppgaven om? Vi skal undersøke grensen når tiden blir stor og om uttrykket har steder der det ikke er definert.
Steg 1 – Definisjon
Uttrykket er definert for alle reelle \(t\), og praktisk bruker vi \(t\ge0\). Derfor finnes ingen vertikal asymptote.
Steg 2 – Langtidsgrensen
Når \(t\to\infty\), går \(e^{-0,07t}\to0\).
Steg 3 – Beregn grensen
\[\lim_{t\to\infty}V(t)=10000\cdot0+500=500.\]
Steg 4 – Horisontal asymptote
Grafen har den horisontale asymptoten \(V=500\).
Steg 5 – Praktisk tolkning
Modellen sier at vannmengden nærmer seg 500 liter, men ikke går under dette nivået.
Steg 6 – Modellkritikk
I virkeligheten kan lekkasjeforløpet endre seg, men innen modellen representerer 500 liter en restmengde.
GeoGebra/CAS-kontroll
GeoGebra – CAS/grafikk
1
Limit(10000 exp(-0.07t)+500,t,Infinity)
\(500\)
Tolkning: Grensen gir den horisontale asymptoten.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
importsympyasspt=sp.symbols("t",real=True)V=10000*sp.exp(-sp.Rational(7,100)*t)+500limit_value=sp.limit(V,t,sp.oo)print("Limit as t -> infinity =",limit_value)print("Horizontal asymptote: V =",limit_value)forvaluein[24,48,96,200]:print("t =",value,"V(t) =",sp.N(V.subs(t,value),10))print("Expression is defined for every real t")
Utskrift fra Python:
Limit as t -> infinity = 500
Horizontal asymptote: V = 500
t = 24 V(t) = 2363.739760
t = 48 V(t) = 847.3525895
t = 96 V(t) = 512.0653821
t = 200 V(t) = 500.0083153
Expression is defined for every real t
Fasit: Den horisontale asymptoten er \(V=500\) liter. Det finnes ingen vertikal asymptote.
Vanlig feil: Å si at reservoaret når nøyaktig 500 liter på et endelig tidspunkt.
Sensorpunkt: Grenseberegningen og den praktiske betydningen av 500 liter skal forklares.
Del 2 – Oppgave 2aMoteksempel til påstand om grenser
Oppgave 2a
Oppgave: Påstand: Hvis \(\lim_{x\to\infty}f=\lim_{x\to\infty}g\) og \(\lim_{x\to-\infty}f=\lim_{x\to-\infty}g\), så er \(f(x)=g(x)\).
Vis løsning
Hva spør oppgaven om? Vi skal avgjøre påstanden ved å finne to ulike funksjoner med samme grenser i begge retninger.
Steg 1 – Strategi
Én moteksempel er nok til å vise at en universell påstand er usann.
Steg 2 – Velg funksjoner
La \(f(x)=0\) og \(g(x)=1/(x^2+1)\).
Steg 3 – Grense mot pluss uendelig
Begge funksjonene har grense 0 når \(x\to\infty\).
Steg 4 – Grense mot minus uendelig
Begge funksjonene har også grense 0 når \(x\to-\infty\).
Steg 5 – Sammenlikn funksjonene
Likevel er \(g(0)=1\), mens \(f(0)=0\).
Steg 6 – Konklusjon
Samme endeadferd bestemmer ikke hele funksjonen. Påstanden er usann.
importsympyasspx=sp.symbols("x",real=True)f=sp.Integer(0)g=1/(x**2+1)print("lim f as x -> +infinity =",sp.limit(f,x,sp.oo))print("lim g as x -> +infinity =",sp.limit(g,x,sp.oo))print("lim f as x -> -infinity =",sp.limit(f,x,-sp.oo))print("lim g as x -> -infinity =",sp.limit(g,x,-sp.oo))print("f(0) =",f)print("g(0) =",g.subs(x,0))print("The functions are not identical")
Utskrift fra Python:
lim f as x -> +infinity = 0
lim g as x -> +infinity = 0
lim f as x -> -infinity = 0
lim g as x -> -infinity = 0
f(0) = 0
g(0) = 1
The functions are not identical
Fasit: Påstanden er usann.
Vanlig feil: Å forsøke å bevise påstanden uten å teste enkle moteksempler.
Sensorpunkt: Et konkret moteksempel med begge grensekontrollene gir et fullstendig argument.
Del 2 – Oppgave 2bDeriverbarhet til absoluttverdi
Oppgave 2b
Oppgave: Påstand: \(f(x)=|x|\) er deriverbar for alle reelle x, bortsett fra i \(x=0\).
Vis løsning
Hva spør oppgaven om? Vi skal bruke den stykkevise definisjonen og sammenlikne ensidige deriverte i null.
Venstresidig derivert er \(-1\), mens høyresidig derivert er \(1\). De er ikke like.
Steg 5 – Utenfor null
På hvert av intervallene \(( -\infty,0)\) og \((0,\infty)\) er funksjonen lineær og deriverbar.
Steg 6 – Konklusjon
Påstanden er sann.
GeoGebra/CAS-kontroll
GeoGebra – CAS/grafikk
1
Derivative(abs(x))
\(-1\) for \(x<0\), \(1\) for \(x>0\), ikke definert i 0
Tolkning: Grafen har et hjørne i origo.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
importsympyasspx=sp.symbols("x",real=True)f=sp.Abs(x)right=sp.limit((f-f.subs(x,0))/x,x,0,dir="+")left=sp.limit((f-f.subs(x,0))/x,x,0,dir="-")print("Piecewise derivative =",sp.diff(f,x))print("Left derivative at 0 =",left)print("Right derivative at 0 =",right)print("Equal one-sided derivatives?",left==right)print("Conclusion: differentiable for x != 0 only")
Utskrift fra Python:
Piecewise derivative = sign(x)
Left derivative at 0 = -1
Right derivative at 0 = 1
Equal one-sided derivatives? False
Conclusion: differentiable for x != 0 only
Fasit: Påstanden er sann.
Vanlig feil: Å tro at kontinuitet automatisk betyr deriverbarhet.
Sensorpunkt: De ensidige derivertene i null må sammenliknes eksplisitt.
Del 2 – Oppgave 2cEksponentiallikning og vilkår på grunntallet
Oppgave 2c
Oppgave: Påstand: For \(a^x=a^y\), der \(a\in\mathbb R\), er løsningen alltid \(x=y\).
Vis løsning
Hva spør oppgaven om? Vi skal kontrollere om funksjonen \(a^x\) alltid er én-til-én for alle reelle verdier av a.
Steg 1 – Når regelen gjelder
For \(a>0\) og \(a\ne1\) er eksponentialfunksjonen strengt monoton, og da følger \(x=y\).
Steg 2 – Test a=1
Når \(a=1\), er \(1^x=1\) for alle reelle \(x\).
Steg 3 – Lag moteksempel
Velg for eksempel \(x=0\) og \(y=2\). Da er \(1^0=1^2=1\), men \(0\ne2\).
Steg 4 – Andre problematiske baser
For \(a\le0\) er \(a^x\) heller ikke en reell funksjon for alle reelle eksponenter.
Steg 5 – Presis regel
Implikasjonen \(a^x=a^y\Rightarrow x=y\) krever normalt \(a>0\) og \(a\ne1\).
Steg 6 – Konklusjon
Påstanden slik den står, er usann.
GeoGebra/CAS-kontroll
GeoGebra – CAS/grafikk
1
1^0 = 1^2
Sant selv om \(0\ne2\)
Tolkning: a=1 er et direkte moteksempel.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
fromfractionsimportFractionexamples=[(1,0,2),(2,0,2),(0,1,2),(-1,2,4)]fora,x,yinexamples:try:left=a**xright=a**yprint("a, x, y =",(a,x,y),"values =",(left,right),"equal =",left==right)exceptExceptionasexc:print("a, x, y =",(a,x,y),"error =",exc)print("Counterexample: 1^0 = 1^2, but 0 != 2")print("Injectivity rule requires a > 0 and a != 1")
Utskrift fra Python:
a, x, y = (1, 0, 2) values = (1, 1) equal = True
a, x, y = (2, 0, 2) values = (1, 4) equal = False
a, x, y = (0, 1, 2) values = (0, 0) equal = True
a, x, y = (-1, 2, 4) values = (1, 1) equal = True
Counterexample: 1^0 = 1^2, but 0 != 2
Injectivity rule requires a > 0 and a != 1
Fasit: Påstanden er usann; \(a=1\), \(x=0\), \(y=2\) er et moteksempel.
Vanlig feil: Å bruke regelen uten å oppgi vilkårene \(a>0\) og \(a
e1\).
Sensorpunkt: Et enkelt moteksempel og den korrekte betingelsen bør oppgis.
Del 2 – Oppgave 3aEksponentiell regresjon
Oppgave 3a
Oppgave: Dataene for antall tusen fisk modelleres med \(A(t)=A_0k^t\). Bestem \(A_0\) og \(k\), og tolk dem.
Vis løsning
Hva spør oppgaven om? Vi skal utføre eksponentiell regresjon på alle datapunktene og tolke startverdi og vekstfaktor.
Steg 1 – Registrer dataene
Vi bruker \(t=0,1,\ldots,8\) og fisketallene \(1,2,5,\ldots,60\) tusen.
Steg 2 – Lineariser
Logaritmering gir \(\ln A=\ln A_0+t\ln k\), som kan tilpasses med lineær regresjon.
Steg 3 – Regresjonsresultat
Regresjonen gir omtrent \[\ln A_0=0,4707,\qquad \ln k=0,4911.\]
Tolkning: Regresjonen tilpasser en S-formet kurve med øvre grense.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
importnumpyasnpfromscipy.optimizeimportcurve_fitmonths=np.arange(9,dtype=float)fish=np.array([1,2.5,5.5,9,14,22,32,45,60],dtype=float)deflogistic(t,N0,B,r):returnB/(1+(B-N0)/N0*np.exp(-r*t))params,covariance=curve_fit(logistic,months,fish,p0=(1.8,110,0.52),bounds=([0.01,60,0.001],[10,1000,5]),maxfev=100000)N0,B,r=paramsresiduals=fish-logistic(months,*params)print("N0 =",round(N0,9))print("B =",round(B,9))print("r =",round(r,9))print("Predictions =",[round(v,3)forvinlogistic(months,*params)])print("Sum of squared residuals =",round(float(np.sum(residuals**2)),9))
Utskrift fra Python:
N0 = 1.913476344
B = 111.373427311
r = 0.524392535
Predictions = [np.float64(1.913), np.float64(3.195), np.float64(5.293), np.float64(8.658), np.float64(13.883), np.float64(21.599), np.float64(32.186), np.float64(45.342), np.float64(59.814)]
Sum of squared residuals = 1.838113198
Fasit: \(N_0\approx1,913\), \(B\approx111,37\) og \(r\approx0,5244\).
Vanlig feil: Å sette \(N_0=1\) automatisk; i en regresjonsmodell kan den tilpassede startverdien avvike fra første observasjon.
Sensorpunkt: Parametrene skal komme fra dokumentert logistisk regresjon, ikke fra gjetting.
Del 2 – Oppgave 3cDeriverte og vekstfart
Oppgave 3c
Oppgave: Bestem de deriverte til den eksponentielle og logistiske modellen. Forklar hvordan vekstfarten endrer seg.
Vis løsning
Hva spør oppgaven om? Vi skal derivere begge modeller og bruke fortegn og modellstruktur til å beskrive veksten.
Steg 1 – Eksponentiell derivert
For \(A(t)=A_0k^t\) er \[A^{\prime}(t)=A_0k^t\ln k=A(t)\ln k.\]
Steg 2 – Eksponentiell vekstfart
Fordi \(k>1\), er \(\ln k>0\). Både populasjonen og den absolutte vekstfarten øker uten øvre grense i modellen.
Steg 3 – Logistisk derivert
Den logistiske modellen kan deriveres til \[N^{\prime}(t)=rN(t)\left(1-\frac{N(t)}B\right).\]
Steg 4 – Tidlig logistisk vekst
Når \(N\) er liten sammenliknet med \(B\), er vekstfarten omtrent proporsjonal med \(N\) og øker.
Steg 5 – Maksimal vekstfart
Vekstfarten er størst når \(N=B/2\), ved omtrent \(t=7,72\) måneder. Maksimal fart er \(rB/4\approx14,60\) tusen fisk per måned.
Steg 6 – Sen logistisk vekst
Etter vendepunktet avtar vekstfarten og nærmer seg 0 når \(N\to B\).
GeoGebra/CAS-kontroll
GeoGebra – CAS/grafikk
1
Derivative(A); Derivative(N)
\(A\prime=A\ln k\), \(N\prime=rN(1-N/B)\)
Tolkning: CAS viser de standardiserte derivertformene.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
importsympyasspt=sp.symbols("t",real=True)A0=sp.Float("1.6011561978436937")k=sp.Float("1.634066102994754")N0=sp.Float("1.91347567")B=sp.Float("111.3733952")r=sp.Float("0.52439262")A=A0*k**tN=B/(1+(B-N0)/N0*sp.exp(-r*t))A_prime=sp.diff(A,t)N_prime=sp.simplify(sp.diff(N,t))t_inflection=sp.log((B-N0)/N0)/rprint("A'(t) =",A_prime)print("A'(t)/A(t) =",sp.N(sp.log(k),10))print("N'(t) =",N_prime)print("Inflection time =",sp.N(t_inflection,10))print("N at inflection =",sp.N(N.subs(t,t_inflection),10))print("Maximum logistic growth rate =",sp.N(r*B/4,10))
Utskrift fra Python:
A'(t) = 0.78628209627787874*1.634066102994754**t
A'(t)/A(t) = 0.4910714503
N'(t) = 3340.951801786*exp(0.52439262*t)/(exp(0.52439262*t) + 57.2047616001305)**2
Inflection time = 7.716807951
N at inflection = 55.68669760
Maximum logistic growth rate = 14.60084663
Fasit: \(A^{\prime}(t)=A_0k^t\ln k\), og \(N^{\prime}(t)=rN(t)(1-N(t)/B)\).
Vanlig feil: Å si at logistisk vekstfart alltid øker fordi selve populasjonen øker.
Sensorpunkt: Forklar både formel og hvordan vekstfarten utvikler seg før og etter vendepunktet.
Del 2 – Oppgave 3dModellvalg og prognose
Oppgave 3d
Oppgave: Hvilken modell beskriver situasjonen best, og hvor mange fisk gir den etter 12 måneder?
Vis løsning
Hva spør oppgaven om? Vi skal vurdere langtidsoppførselen og bruke den mest realistiske modellen til prognosen.
Steg 1 – Eksponentiell langtidsoppførsel
Den eksponentielle modellen vokser uten grense og gir etter 12 måneder omtrent 580 tusen fisk.
Steg 2 – Biologisk begrensning
En innsjø har begrenset næring, plass og oksygen. Ubegrenset vekst er derfor lite realistisk over lang tid.
Steg 3 – Logistisk langtidsoppførsel
Den logistiske modellen flater ut mot bæreevnen \(B\approx111,37\) tusen fisk.
Steg 4 – Velg modell
Den logistiske modellen er derfor den mest rimelige av de to for en populasjon i en avgrenset innsjø.
Steg 5 – Beregn N(12)
\[N(12)\approx100,72\text{ tusen fisk}.\]
Steg 6 – Praktisk svar
Modellen anslår omtrent \(101\,000\) fisk 12 måneder etter første registrering.
GeoGebra/CAS-kontroll
GeoGebra – CAS/grafikk
1
N(12)
\(100,72\) tusen
Tolkning: Den logistiske modellen gir en prognose under bæreevnen.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
importmathA0=1.6011561978436937k=1.634066102994754N0=1.91347567B=111.3733952r=0.52439262defA(t):returnA0*k**tdefN(t):returnB/(1+(B-N0)/N0*math.exp(-r*t))print("Exponential A(12) =",round(A(12),6),"thousand fish")print("Logistic N(12) =",round(N(12),6),"thousand fish")print("Logistic estimate in individual fish =",round(N(12)*1000))print("Carrying capacity =",round(B,6),"thousand fish")print("Chosen model: logistic")
Utskrift fra Python:
Exponential A(12) = 580.322159 thousand fish
Logistic N(12) = 100.716228 thousand fish
Logistic estimate in individual fish = 100716
Carrying capacity = 111.373395 thousand fish
Chosen model: logistic
Fasit: Logistisk modell; omtrent \(100,7\) tusen, altså ca. \(101\,000\) fisk.
Vanlig feil: Å velge modell bare fordi den gir høyest tall, uten å vurdere praktisk plausibilitet.
Sensorpunkt: Modellvalget skal begrunnes biologisk, og prognosen skal ha riktig enhet.
Del 2 – Oppgave 4Bestemmelse av logaritmebase
Oppgave 4
Oppgave: Grafen til \(f(x)=\log_a(x)\) er gitt. Bestem \(a\).
Vis løsning
Hva spør oppgaven om? Vi skal bruke kjennetegnspunktet \((a,1)\), siden \(\log_a(a)=1\).
Steg 1 – Les av et sikkert punkt
Grafen går gjennom omtrent \((5,1)\).
Steg 2 – Bruk logaritmedefinisjonen
\[\log_a(a)=1.\] Derfor er x-koordinaten når y=1 lik grunntallet.
Steg 3 – Finn a
Avlesningen gir \(a=5\).
Steg 4 – Ekstra kontroll
Grafen går også gjennom omtrent \((25,2)\).
Steg 5 – Kontroller andre punkt
\[\log_5(25)=\log_5(5^2)=2.\]
Steg 6 – Retning
Siden grafen er voksende, må \(a>1\), noe som også stemmer med \(a=5\).
Grafen passer med logaritme med grunntall 5.
GeoGebra/CAS-kontroll
GeoGebra – CAS/grafikk
1
log(5,5); log(5,25)
\(1\) og \(2\)
Tolkning: Punktene (5,1) og (25,2) bekrefter basen.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
importsympyasspa=sp.Integer(5)print("log base 5 of 5 =",sp.log(5,a))print("log base 5 of 25 =",sp.log(25,a))print("log base 5 of 1 =",sp.log(1,a))print("Because log_a(a)=1, the graph point (5,1) gives a=5")forxin[1,5,25]:print("x =",x,"f(x) =",sp.N(sp.log(x,a),8))
Utskrift fra Python:
log base 5 of 5 = 1
log base 5 of 25 = 2
log base 5 of 1 = 0
Because log_a(a)=1, the graph point (5,1) gives a=5
x = 1 f(x) = 0
x = 5 f(x) = 1.0000000
x = 25 f(x) = 2.0000000
Fasit: \(a=5\).
Vanlig feil: Å bruke punktet \((1,0)\), som alle logaritmefunksjoner går gjennom, til å bestemme basen.
Sensorpunkt: Argumentet \(\log_a(a)=1\) og gjerne kontrollen med \(a^2\) gir et robust svar.
Del 2 – Oppgave 5aÉn-til-én-test og omvendt funksjon
Oppgave 5a
Oppgave: Avgjør og begrunn for hver av funksjonene \(f\), \(g\) og \(h\) om de har en omvendt funksjon.
Vis løsning
Hva spør oppgaven om? Vi skal bruke den horisontale linjetesten: hver y-verdi kan forekomme høyst én gang.
Steg 1 – Funksjonen f
Den viste grenen til \(f(x)=x^2+3\) har domene \(x\ge0\) og er strengt voksende. Den består den horisontale linjetesten.
Steg 2 – Konklusjon for f
\(f\) er én-til-én og har en omvendt funksjon.
Steg 3 – Funksjonen g
De to lineære grenene gir gjentatte y-verdier. For eksempel kan \(y=0\) knyttes til mer enn én x-verdi i den viste grafen.
Steg 4 – Konklusjon for g
\(g\) er ikke én-til-én og har derfor ingen omvendt funksjon på hele domenet.
Steg 5 – Funksjonen h
Kubikkgrafen har både lokalt maksimum og lokalt minimum. Mange horisontale linjer skjærer grafen tre ganger.
Steg 6 – Konklusjon for h
\(h\) er ikke én-til-én og har ingen omvendt funksjon på hele domenet.
Bare den monotone grenen f er én-til-én på det viste domenet.
Tolkning: Grafisk kontroll av antall skjæringer med horisontale linjer.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
importsympyasspx=sp.symbols("x",real=True)f=x**2+3h=x**3-2*x+5print("f'(x) =",sp.diff(f,x))print("On x >= 0, f'(x) >= 0 and f is strictly increasing except at the endpoint")print("h'(x) =",sp.factor(sp.diff(h,x)))critical_h=sp.solve(sp.Eq(sp.diff(h,x),0),x)print("Critical points of h =",critical_h)print("h-values at critical points =",[sp.N(h.subs(x,c),8)forcincritical_h])print("g has overlapping output values from its two linear branches")print("Inverse existence: f yes, g no, h no")
Utskrift fra Python:
f'(x) = 2*x
On x >= 0, f'(x) >= 0 and f is strictly increasing except at the endpoint
h'(x) = 3*x**2 - 2
Critical points of h = [-sqrt(6)/3, sqrt(6)/3]
h-values at critical points = [6.0886621, 3.9113379]
g has overlapping output values from its two linear branches
Inverse existence: f yes, g no, h no
Fasit: \(f\) har omvendt funksjon; \(g\) og \(h\) har ikke.
Vanlig feil: Å tro at alle funksjoner automatisk har en omvendt funksjon.
Sensorpunkt: Begrunnelsen skal knyttes til én-til-én-egenskap eller horisontal linjetest.
Del 2 – Oppgave 5bUtledning av omvendt funksjon
Oppgave 5b
Oppgave: Bestem funksjonsuttrykk og definisjonsmengde til den omvendte funksjonen der den eksisterer.
Vis løsning
Hva spør oppgaven om? Vi skal løse \(y=x^2+3\) for x under betingelsen \(x\ge0\), og bytte roller mellom x og y.
Steg 1 – Start med f
Fra grafen er \[f(x)=x^2+3,\qquad x\ge0.\]
Steg 2 – Sett y=f(x)
\[y=x^2+3.\]
Steg 3 – Isoler x²
\[x^2=y-3.\]
Steg 4 – Velg riktig rot
Siden originaldomenet er \(x\ge0\), velger vi den positive roten: \[x=\sqrt{y-3}.\]
Steg 5 – Bytt variabelnavn
\[f^{-1}(x)=\sqrt{x-3}.\]
Steg 6 – Definisjonsmengde
Verdimengden til f er \([3,\infty)\), og blir domenet til den omvendte: \[D_{f^{-1}}=[3,\infty).\]
GeoGebra/CAS-kontroll
GeoGebra – CAS/grafikk
1
Invert(x^2+3, x>=0)
\(f^{-1}(x)=\sqrt{x-3}\), \(x\ge3\)
Tolkning: Komposisjonene gir identiteten på de riktige domenene.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
importsympyasspx=sp.symbols("x",nonnegative=True)y=sp.symbols("y",real=True)f=x**2+3inverse=sp.sqrt(y-3)print("f(x) =",f,"for x >= 0")print("Solve y = f(x) with x >= 0 gives x =",inverse)print("f inverse(y) =",inverse)print("Check f(f_inverse(y)) =",sp.simplify(inverse**2+3))print("Check f_inverse(f(x)) =",sp.simplify(sp.sqrt(f-3)))print("Domain of inverse: y >= 3")
Utskrift fra Python:
f(x) = x**2 + 3 for x >= 0
Solve y = f(x) with x >= 0 gives x = sqrt(y - 3)
f inverse(y) = sqrt(y - 3)
Check f(f_inverse(y)) = y
Check f_inverse(f(x)) = x
Domain of inverse: y >= 3
Fasit: \(f^{-1}(x)=\sqrt{x-3}\) med definisjonsmengde \([3,\infty)\).
Vanlig feil: Å ta med både positiv og negativ kvadratrot; den opprinnelige funksjonen er begrenset til x≥0.
Sensorpunkt: Riktig rotvalg og bytte mellom verdi- og definisjonsmengde er sentralt.
Del 2 – Oppgave 6aFart fra parameterfunksjon
Oppgave 6a
Oppgave: \(\vec r_1(t)=[-10+6t,35-3t]\) og \(\vec r_2(t)=[2+5t,4t]\). Hvor fort flyr hver fugl?
Vis løsning
Hva spør oppgaven om? Vi skal derivere posisjonsvektorene og finne lengden av hver konstante hastighetsvektor.
importsympyasspt=sp.symbols("t",real=True)relative=sp.Matrix([t-12,35-7*t])D=sp.expand(relative.dot(relative))critical=sp.solve(sp.Eq(sp.diff(D,t),0),t)[0]D_min=sp.simplify(D.subs(t,critical))d_min=sp.sqrt(D_min)print("Relative position =",tuple(relative))print("Squared distance D(t) =",D)print("D'(t) =",sp.diff(D,t))print("Minimum time =",critical,"=",sp.N(critical,10),"s")print("Minimum squared distance =",D_min)print("Minimum distance =",d_min,"=",sp.N(d_min,10),"m")
Utskrift fra Python:
Relative position = (t - 12, 35 - 7*t)
Squared distance D(t) = 50*t**2 - 514*t + 1369
D'(t) = 100*t - 514
Minimum time = 257/50 = 5.140000000 s
Minimum squared distance = 2401/50
Minimum distance = 49*sqrt(2)/10 = 6.929646456 m
Fasit: Fuglene er nærmest etter \(5,14\) s, med avstand \(\frac{49\sqrt2}{10}\approx6,93\) m.
Vanlig feil: Å minimere en av koordinatforskjellene i stedet for den samlede avstanden.
Sensorpunkt: Bruk kvadrert avstand og vis at kritisk punkt er et minimum.
Del 2 – Oppgave 6dAnalyse av jakt med parameterkurver
Oppgave 6d
Oppgave: Rovfuglen har posisjon \(\vec r_R(t)=[7t-10,2t^2-6t+5]\) for \(0\le t\le6\). Beskriv jakten med nødvendige beregninger.
Vis løsning
Hva spør oppgaven om? Vi skal undersøke om rovfuglen treffer en småfugl, og finne minste avstand til hver av dem i tidsintervallet.
Steg 1 – Startavstander
Ved \(t=0\) er rovfuglen 30 m fra fugl 1 og 13 m fra fugl 2. Den starter altså nærmest fugl 2.
Steg 2 – Trefftest
Likningssystemene \(\vec r_R(t)=\vec r_1(t)\) og \(\vec r_R(t)=\vec r_2(t)\) har ingen felles løsning i \([0,6]\). Rovfuglen fanger ingen av dem.
Steg 3 – Avstand til fugl 1
Kvadrert avstand blir \[D_1(t)=4t^4-12t^3-110t^2+180t+900.\] Globalt minimum i intervallet opptrer ved \(t\approx4,676\).
Steg 4 – Minste avstand til fugl 1
\[d_1\approx4,69\text{ m}.\]
Steg 5 – Avstand til fugl 2
\[D_2(t)=4t^4-40t^3+124t^2-148t+169.\] Globalt minimum er ved \(t\approx4,528\), med \(d_2\approx3,03\) m.
Steg 6 – Beskrivelse
Rovfuglen dykker først og stiger deretter. Den holder seg nærmest fugl 2 gjennom intervallet, kommer svært nær etter ca. 4,53 s, men bommer og avstanden øker igjen.
Rovfuglen kommer nærmest småfugl 2, men avstanden blir aldri null.
Ingen treff; minste avstander ca. 4,69 m og 3,03 m
Tolkning: Graf og numerisk minimering beskriver jakten.
Python-kontroll med SymPy
Python 3 – faktisk kjøring
importsympyasspt=sp.symbols("t",real=True)r1=sp.Matrix([-10+6*t,35-3*t])r2=sp.Matrix([2+5*t,4*t])rR=sp.Matrix([7*t-10,2*t**2-6*t+5])defsquared_distance(a,b):returnsp.expand(sum((a[i]-b[i])**2foriinrange(2)))D1=squared_distance(rR,r1)D2=squared_distance(rR,r2)print("D1(t) =",D1)print("D2(t) =",D2)forname,Din[("bird 1",D1),("bird 2",D2)]:roots=[complex(z)forzinsp.nroots(sp.diff(D,t))]candidates=[0.0,6.0]+[z.realforzinrootsifabs(z.imag)<1e-9and0<=z.real<=6]best_t=min(candidates,key=lambdavalue:float(D.subs(t,value)))best_d=float(sp.sqrt(D.subs(t,best_t)))print(name,"critical candidates =",[round(v,9)forvincandidates])print(name,"minimum at t =",round(best_t,9),"distance =",round(best_d,9),"m")print("Exact same-time intersections with bird 1 =",sp.solve([sp.Eq(rR[0],r1[0]),sp.Eq(rR[1],r1[1])],[t],dict=True))print("Exact same-time intersections with bird 2 =",sp.solve([sp.Eq(rR[0],r2[0]),sp.Eq(rR[1],r2[1])],[t],dict=True))
Utskrift fra Python:
D1(t) = 4*t**4 - 12*t**3 - 110*t**2 + 180*t + 900
D2(t) = 4*t**4 - 40*t**3 + 124*t**2 - 148*t + 169
bird 1 critical candidates = [0.0, 6.0, 0.756072889, 4.676018447]
bird 1 minimum at t = 4.676018447 distance = 4.685489145 m
bird 2 critical candidates = [0.0, 6.0, 1.079388965, 1.892580882, 4.528030153]
bird 2 minimum at t = 4.528030153 distance = 3.032092488 m
Exact same-time intersections with bird 1 = []
Exact same-time intersections with bird 2 = []
Fasit: Rovfuglen fanger ingen. Den kommer nærmest fugl 2 ved \(t\approx4,528\) s, med avstand ca. \(3,03\) m; nærmest fugl 1 ved \(t\approx4,676\) s, med avstand ca. \(4,69\) m.
Vanlig feil: Å sammenlikne banene geometrisk uten å kreve samme tidspunkt t.
Sensorpunkt: En full beskrivelse bør inneholde trefftest, minimumsavstander, tidspunkter og en verbal tolkning.
Kilde og metode: Oppgavetekstene er transkribert fra Utdanningsdirektoratets eksamenssett REA3056 Matematikk R1, høsten 2024 (LK20). Løsningene er originale. Alle Python-blokker er kjørt ved generering, og utskriften er hentet direkte fra kjøringen. Programkode, grafer, matematiske symboler og tabellverdier er kontrollert mot de renderte PDF-sidene.
ifingo-lærerenHjelper deg å forstå
ifingo-læreren hjelper deg å forstå – ikke å gjøre leksene for deg 💜