R1 eksamenVår 2026LK20

Matematikk R1 eksamen – vår 2026

ifingo
Norsk (Bokmål)

ifingo · Matematikk R1

Matematikk R1 - våren 2026, LK20 (REA3056)

Løsningsforslag til eksamenssettet fra Utdanningsdirektoratet.

Del 1 - uten hjelpemidler

Del 1 - Oppgave 1Derivasjon av polynom og brøkledd

Oppgave 1

Oppgave: Deriver \[h(x)=3x^2-5+\frac{3}{x-2}.\]
Vis løsning

Hva spør oppgaven om? Vi deriverer hvert ledd og skriver brøkleddet som en negativ potens.

Steg 1 - Skriv om brøkleddet

\(\frac{3}{x-2}=3(x-2)^{-1}\).

Steg 2 - Deriver polynomleddene

\(\frac{d}{dx}(3x^2)=6x\), mens konstanten \(-5\) har derivert lik 0.

Steg 3 - Bruk kjerneregelen

\[\frac{d}{dx}\left(3(x-2)^{-1}\right)=3\cdot(-1)(x-2)^{-2}\cdot1=-\frac{3}{(x-2)^2}.\]

Steg 4 - Sett sammen

\[h\prime(x)=6x-\frac{3}{(x-2)^2},\qquad x\ne2.\]

Steg 5 - Kontroller definisjonsmengden

Den deriverte er bare definert der den opprinnelige funksjonen er definert, altså for \(x\ne2\).

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Derivative[3x^2-5+3/(x-2)]
\(6x-3/(x-2)^2\)

Tolkning: CAS bekrefter potens- og kjerneregelen.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x")
h = 3*x**2 - 5 + 3/(x-2)
h_prime = sp.simplify(sp.diff(h,x))
print("h(x) =", h)
print("Derivative of 3*x**2 =", sp.diff(3*x**2,x))
print("Derivative of -5 =", sp.diff(-5,x))
print("Derivative of 3/(x-2) =", sp.diff(3/(x-2),x))
print("h'(x) =", h_prime)
print("Domain restriction: x != 2")
Utskrift fra Python:
h(x) = 3*x**2 - 5 + 3/(x - 2)
Derivative of 3*x**2 = 6*x
Derivative of -5 = 0
Derivative of 3/(x-2) = -3/(x - 2)**2
h'(x) = 6*x - 3/(x - 2)**2
Domain restriction: x != 2

Fasit: \(h\prime(x)=6x-\frac{3}{(x-2)^2}\), for \(x\ne2\).

Vanlig feil: Å glemme minusfortegnet når \((x-2)^{-1}\) deriveres.
Sensorpunkt: Sensor forventer synlig potensregel, kjerneregel og korrekt definisjonsbegrensning.
Del 1 - Oppgave 2aNullpunkt i eksponentialfunksjon

Oppgave 2a

Oppgave: Funksjonen er \[f(x)=e^x(6-e^x).\] Bestem eventuelle nullpunkter.
Vis løsning

Hva spør oppgaven om? Vi bruker nullproduktregelen og at \(e^x\) alltid er positiv.

Steg 1 - Bruk nullproduktregelen

Et produkt er null dersom minst en faktor er null.

Steg 2 - Undersok eksponentialfaktoren

\(e^x>0\) for alle reelle \(x\). Faktoren kan derfor aldri bli null.

Steg 3 - Løs den andre faktoren

\[6-e^x=0\Rightarrow e^x=6\Rightarrow x=\ln6.\]

Steg 4 - Oppgi punktet

Funksjonsverdien er 0, så nullpunktet er \((\ln6,0)\).

Steg 5 - Rimelighetskontroll

\(\ln6\approx1,792\), og da er \(e^x\approx6\).

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Solve[exp(x)(6-exp(x))=0,x]
\(x=\ln6\)

Tolkning: Eksponentialfaktoren er positiv og den andre faktoren gir eneste løsning.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
f = sp.exp(x)*(6-sp.exp(x))
solutions = sp.solve(sp.Eq(f,0),x)
print("f(x) =", f)
print("e**x is positive for every real x")
print("Solutions =", solutions)
for value in solutions:
    print("x =", value, "f(x) =", sp.simplify(f.subs(x,value)))
print("Decimal x =", sp.N(solutions[0],12))
Utskrift fra Python:
f(x) = (6 - exp(x))*exp(x)
e**x is positive for every real x
Solutions = [log(6)]
x = log(6) f(x) = 0
Decimal x = 1.79175946923

Fasit: Nullpunktet er \((\ln6,0)\).

Vanlig feil: Å sette \(e^x=0\). Det finnes ingen reell løsning av den likningen.
Sensorpunkt: Begrunnelsen om at \(e^x>0\) og det eksakte koordinatet skal være med.
Del 1 - Oppgave 2bProduktregel og faktorisering

Oppgave 2b

Oppgave: Vis at \[f\prime(x)=2e^x(3-e^x).\]
Vis løsning

Hva spør oppgaven om? Vi deriverer produktet og faktoriserer resultatet.

Steg 1 - Del opp produktet

La \(u=e^x\) og \(v=6-e^x\). Da er \(u\prime=e^x\) og \(v\prime=-e^x\).

Steg 2 - Bruk produktregelen

\[f\prime=u\prime v+uv\prime=e^x(6-e^x)-e^{2x}.\]

Steg 3 - Samle ledd

\[f\prime(x)=6e^x-2e^{2x}.\]

Steg 4 - Faktoriser

Trekk ut \(2e^x\): \[6e^x-2e^{2x}=2e^x(3-e^x).\]

Steg 5 - Konklusjon

Dermed er uttrykket i oppgaven vist.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Factor[Derivative[exp(x)(6-exp(x))]]
\(2e^x(3-e^x)\)

Tolkning: CAS deriverer og trekker ut felles faktor.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
f = sp.exp(x)*(6-sp.exp(x))
raw = sp.diff(f,x)
factored = sp.factor(raw)
target = 2*sp.exp(x)*(3-sp.exp(x))
print("f(x) =", f)
print("Product-rule derivative =", raw)
print("Expanded derivative =", sp.expand(raw))
print("Factored derivative =", factored)
print("Target =", target)
print("Difference =", sp.simplify(raw-target))
Utskrift fra Python:
f(x) = (6 - exp(x))*exp(x)
Product-rule derivative = (6 - exp(x))*exp(x) - exp(2*x)
Expanded derivative = -2*exp(2*x) + 6*exp(x)
Factored derivative = -2*(exp(x) - 3)*exp(x)
Target = 2*(3 - exp(x))*exp(x)
Difference = 0

Fasit: \(f\prime(x)=2e^x(3-e^x)\).

Vanlig feil: Å derivere produktet som produktet av de deriverte.
Sensorpunkt: Produktregelen og faktoriseringen må være synlige.
Del 1 - Oppgave 2cToppunkt ved fortegnsanalyse

Oppgave 2c

Oppgave: Bestem koordinatene til eventuelle topp- eller bunnpunkter på grafen til \(f\).
Vis løsning

Hva spør oppgaven om? Vi løser \(f\prime(x)=0\) og undersøker fortegnet til den deriverte.

Steg 1 - Sett den deriverte lik null

\[2e^x(3-e^x)=0.\] Siden \(2e^x>0\), må \(3-e^x=0\).

Steg 2 - Finn kritisk x-verdi

\[e^x=3\Rightarrow x=\ln3.\]

Steg 3 - Finn funksjonsverdien

\[f(\ln3)=3(6-3)=9.\]

Steg 4 - Fortegn for den deriverte

For \(x<\ln3\) er \(e^x<3\), så \(f\prime>0\). For \(x>\ln3\) er \(f\prime<0\).

Steg 5 - Klassifiser punktet

Grafen går fra voksende til avtakende, så \((\ln3,9)\) er et toppunkt. Det finnes ikke noe bunnpunkt.

Grafen vokser fram til (ln 3, 9) og avtar deretter.
Grafen vokser fram til (ln 3, 9) og avtar deretter.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Solve[Derivative[exp(x)(6-exp(x))]=0,x]
\(x=\ln3\), \(f(x)=9\)

Tolkning: Fortegnsskiftet er fra pluss til minus.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
f = sp.exp(x)*(6-sp.exp(x))
f_prime = sp.factor(sp.diff(f,x))
critical = sp.solve(sp.Eq(f_prime,0),x)
print("f'(x) =", f_prime)
print("Critical x-values =", critical)
for value in critical:
    print("Point =", (value,sp.simplify(f.subs(x,value))))
print("f'(ln(3)-1) =", sp.N(f_prime.subs(x,sp.log(3)-1),10))
print("f'(ln(3)+1) =", sp.N(f_prime.subs(x,sp.log(3)+1),10))
print("Classification: maximum")
Utskrift fra Python:
f'(x) = -2*(exp(x) - 3)*exp(x)
Critical x-values = [log(3)]
Point = (log(3), 9)
f'(ln(3)-1) = 4.185794843
f'(ln(3)+1) = -84.07393687
Classification: maximum

Fasit: Toppunktet er \((\ln3,9)\). Det finnes ikke noe bunnpunkt.

Vanlig feil: Å bare løse \(f\prime=0\) uten å klassifisere punktet.
Sensorpunkt: Sensor ser etter kritisk verdi, funksjonsverdi og et tydelig fortegnsskifte.
Del 1 - Oppgave 3aSammenlikning av logaritmer og potenser

Oppgave 3a

Oppgave: Sorter \(\log_2 8\), \(e^{3\ln1}\), \(\lg7\) og \(\sqrt[4]{3^3}\) i stigende rekkefolge.
Vis løsning

Hva spør oppgaven om? Vi regner ut eller vurderer hvert uttrykk.

Steg 1 - Tiertallslogaritmen

\(\lg7\approx0,8451\).

Steg 2 - Eksponentialuttrykket

\(\ln1=0\), så \(e^{3\ln1}=e^0=1\).

Steg 3 - Fjerderoten

\[\sqrt[4]{3^3}=3^{3/4}\approx2,2795.\]

Steg 4 - Logaritmen med grunntall 2

\(\log_2 8=3\), fordi \(2^3=8\).

Steg 5 - Sorter

\[\lg7<e^{3\ln1}<\sqrt[4]{3^3}<\log_2 8.\]

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Numeric[{log(7)/log(10),exp(3 ln(1)),3^(3/4),log(8)/log(2)}]
\(0,8451<1<2,2795<3\)

Tolkning: Tallverdiene gir rekkefolgen direkte.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
values = {
    "lg(7)": sp.log(7,10),
    "exp(3*ln(1))": sp.exp(3*sp.log(1)),
    "fourth_root(3**3)": 3**sp.Rational(3,4),
    "log_2(8)": sp.log(8,2)
}
for name,value in values.items():
    print(name,"=",value,"=",sp.N(value,12))
print("Ascending order:")
for item in sorted(values.items(),key=lambda pair: float(sp.N(pair[1]))):
    print(item[0])
Utskrift fra Python:
lg(7) = log(7)/log(10) = 0.845098040014
exp(3*ln(1)) = 1 = 1.00000000000
fourth_root(3**3) = 3**(3/4) = 2.27950705695
log_2(8) = 3 = 3.00000000000
Ascending order:
lg(7)
exp(3*ln(1))
fourth_root(3**3)
log_2(8)

Fasit: \(\lg7<e^{3\ln1}<\sqrt[4]{3^3}<\log_2 8\).

Vanlig feil: Å tro at \(\lg7=7\), eller å lese fjerderoten som \(4\sqrt{27}\).
Sensorpunkt: Alle fire uttrykk må begrunnes, ikke bare listes.
Del 1 - Oppgave 3bLogaritmeregler

Oppgave 3b

Oppgave: Forenkle \[\lg(ab)-\lg\left(\frac ab\right)+\lg(100b^3).\]
Vis løsning

Hva spør oppgaven om? Vi samler logaritmene og bruker at argumentene er positive.

Steg 1 - Bruk differanseregelen

\[\lg(ab)-\lg(a/b)=\lg\left(\frac{ab}{a/b}\right)=\lg(b^2).\]

Steg 2 - Legg sammen logaritmene

\[\lg(b^2)+\lg(100b^3)=\lg(100b^5).\]

Steg 3 - Skill ut 100

\[\lg(100b^5)=\lg100+\lg(b^5).\]

Steg 4 - Bruk potensregelen

\(\lg100=2\) og \(\lg(b^5)=5\lg b\).

Steg 5 - Ferdig uttrykk

\[2+5\lg b.\] Logaritmene forutsetter \(a>0\) og \(b>0\).

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Simplify[log(10,a*b)-log(10,a/b)+log(10,100*b^3)]
\(2+5\lg b\)

Tolkning: Logaritmereglene reduserer produktet til 100b^5.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
a,b = sp.symbols("a b", positive=True)
combined_argument = sp.simplify((a*b)/(a/b)*(100*b**3))
print("Combined argument =", combined_argument)
print("lg(100*b**5) = lg(100) + lg(b**5)")
print("lg(100) = 2")
print("lg(b**5) = 5*lg(b)")
print("Simplified expression = 2 + 5*lg(b)")
print("Check at a=2, b=3:")
original = sp.log(a*b,10)-sp.log(a/b,10)+sp.log(100*b**3,10)
result = 2+5*sp.log(b,10)
print(sp.N(original.subs({a:2,b:3}),12), sp.N(result.subs(b,3),12))
Utskrift fra Python:
Combined argument = 100*b**5
lg(100*b**5) = lg(100) + lg(b**5)
lg(100) = 2
lg(b**5) = 5*lg(b)
Simplified expression = 2 + 5*lg(b)
Check at a=2, b=3:
4.38560627360 4.38560627360

Fasit: Uttrykket blir \(2+5\lg b\).

Vanlig feil: Å bruke \(\lg u-\lg v=\lg(u-v)\). Differansen blir logaritmen av en kvotient.
Sensorpunkt: Sensor forventer korrekt sammenslåing og at logaritmenes vilkår er ivaretatt.
Del 1 - Oppgave 4Grenseverdi ved uendelig

Oppgave 4

Oppgave: Bestem \[\lim_{x\to\infty}\frac{2x+2}{3x^2+3}.\]
Vis løsning

Hva spør oppgaven om? Vi sammenlikner vekstgraden i teller og nevner.

Steg 1 - Del på høyeste potens

Del teller og nevner på \(x^2\): \[\frac{2/x+2/x^2}{3+3/x^2}.\]

Steg 2 - Ta grensen

Når \(x\to\infty\), går \(2/x\), \(2/x^2\) og \(3/x^2\) mot 0.

Steg 3 - Regn ut

\[\frac{0+0}{3+0}=0.\]

Steg 4 - Tolkning

Nevneren vokser som \(x^2\), raskere enn telleren som vokser som \(x\).

Steg 5 - Konklusjon

Den horisontale asymptoten mot høyre er \(y=0\).

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Limit[(2x+2)/(3x^2+3),x,infinity]
\(0\)

Tolkning: Nevnerens grad er større enn tellerens grad.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", positive=True)
expr = (2*x+2)/(3*x**2+3)
normalized = sp.simplify(expr/x**0)
limit_value = sp.limit(expr,x,sp.oo)
print("Expression =", expr)
print("After dividing numerator and denominator by x**2:")
print("(2/x + 2/x**2)/(3 + 3/x**2)")
print("Limit =", limit_value)
for value in [10,100,1000]:
    print("x =",value,"value =",sp.N(expr.subs(x,value),12))
Utskrift fra Python:
Expression = (2*x + 2)/(3*x**2 + 3)
After dividing numerator and denominator by x**2:
(2/x + 2/x**2)/(3 + 3/x**2)
Limit = 0
x = 10 value = 0.0726072607261
x = 100 value = 0.00673266006733
x = 1000 value = 0.000667332666001

Fasit: Grenseverdien er \(0\).

Vanlig feil: Å dele bare telleren eller bare nevneren på \(x^2\).
Sensorpunkt: En kort gradssammenlikning eller korrekt normalisering er tilstrekkelig.
Del 1 - Oppgave 5aVertikal asymptote eller fjernbart hull

Oppgave 5a

Oppgave: Vurder påstanden: Alle funksjoner \(f(x)=\frac{ax^2+bx+c}{x-d}\) har vertikal asymptote \(x=d\).
Vis løsning

Hva spør oppgaven om? Vi må avgjøre om påstanden gjelder for alle valg av koeffisienter.

Steg 1 - Finn mulig problemsted

Nevneren er 0 ved \(x=d\), men det er ikke nok alene til å gi en vertikal asymptote.

Steg 2 - Lag et moteksempel

Velg telleren lik \(x-d\), for eksempel \(a=0\), \(b=1\), \(c=-d\).

Steg 3 - Forkort

Da blir \[f(x)=\frac{x-d}{x-d}=1,\qquad x\ne d.\]

Steg 4 - Tolk grafen

Grafen er linjen \(y=1\) med et hull ved \(x=d\), ikke en vertikal asymptote.

Steg 5 - Konklusjon

Påstanden er usann. Vertikal asymptote oppstår bare dersom faktoren ikke kanselleres og funksjonen går mot uendelig.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Simplify[(x-d)/(x-d)]
\(1\), for \(x\ne d\)

Tolkning: Et kansellert nullpunkt gir et hull, ikke asymptote.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x,d = sp.symbols("x d")
numerator = x-d
denominator = x-d
f = numerator/denominator
print("Counterexample numerator =", numerator)
print("Denominator =", denominator)
print("Simplified f(x) =", sp.cancel(f))
print("Original domain excludes x = d")
print("Limit as x approaches d =", sp.limit(f,x,d))
print("Conclusion: removable hole, not a vertical asymptote")
Utskrift fra Python:
Counterexample numerator = -d + x
Denominator = -d + x
Simplified f(x) = 1
Original domain excludes x = d
Limit as x approaches d = 1
Conclusion: removable hole, not a vertical asymptote

Fasit: Påstanden er usann.

Vanlig feil: Å konkludere med asymptote bare fordi nevneren blir null.
Sensorpunkt: Et gyldig moteksempel med forklaring er den tydeligste begrunnelsen.
Del 1 - Oppgave 5bOmvendt eksponentialfunksjon

Oppgave 5b

Oppgave: Vurder påstanden: For \(g(x)=e^x-3\) er \(g^{-1}(x)=\ln x+3\) med definisjonsmengde \((0,\infty)\).
Vis løsning

Hva spør oppgaven om? Vi finner den omvendte funksjonen ved å løse likningen for x.

Steg 1 - Sett y lik funksjonen

\[y=e^x-3.\]

Steg 2 - Isoler eksponentialleddet

\[y+3=e^x.\]

Steg 3 - Ta naturlig logaritme

\[x=\ln(y+3).\]

Steg 4 - Bytt variabelnavn

\[g^{-1}(x)=\ln(x+3).\]

Steg 5 - Bestem domenet

Vi må ha \(x+3>0\), altså \(x>-3\). Påstanden er derfor usann både i formel og domene.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Invert[exp(x)-3]
\(g^{-1}(x)=\ln(x+3),\ x>-3\)

Tolkning: Den horisontale forskyvningen blir liggende inne i logaritmen.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x,y = sp.symbols("x y", real=True)
solution = sp.solve(sp.Eq(y,sp.exp(x)-3),x)[0]
print("Equation: y = exp(x) - 3")
print("Solve for x:", solution)
print("Therefore g_inverse(x) = log(x + 3)")
print("Domain condition: x + 3 > 0, so x > -3")
check = sp.simplify(sp.log((sp.exp(x)-3)+3))
print("Composition g_inverse(g(x)) =", check)
Utskrift fra Python:
Equation: y = exp(x) - 3
Solve for x: log(y + 3)
Therefore g_inverse(x) = log(x + 3)
Domain condition: x + 3 > 0, so x > -3
Composition g_inverse(g(x)) = x

Fasit: Påstanden er usann. Riktig er \(g^{-1}(x)=\ln(x+3)\), med \(x>-3\).

Vanlig feil: Å flytte \(-3\) utenfor logaritmen som \(+3\).
Sensorpunkt: Formelen og definisjonsmengden må begge vurderes.
Del 1 - Oppgave 6Derivert av omvendt funksjon

Oppgave 6

Oppgave: Funksjonen \(f(x)=\ln(x+2)\) har omvendt funksjon \(g\). Bestem \(g\prime(1)\).
Vis løsning

Hva spør oppgaven om? Vi kan finne g direkte eller bruke formelen for den deriverte av en omvendt funksjon.

Steg 1 - Finn den omvendte funksjonen

Sett \(y=\ln(x+2)\). Da er \(e^y=x+2\), altså \(x=e^y-2\).

Steg 2 - Skriv g

\[g(x)=e^x-2.\]

Steg 3 - Deriver

\[g\prime(x)=e^x.\]

Steg 4 - Sett inn x=1

\[g\prime(1)=e.\]

Steg 5 - Alternativ kontroll

\(g(1)=e-2\) og \(f\prime(e-2)=1/e\), så \(g\prime(1)=1/(1/e)=e\).

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
InverseFunction[ln(x+2)]
\(g(x)=e^x-2\), \(g\prime(1)=e\)

Tolkning: Direkte inversjon og inversderivert-formelen gir samme svar.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
g = sp.exp(x)-2
g_prime = sp.diff(g,x)
print("f(x) = log(x + 2)")
print("Inverse function g(x) =", g)
print("g'(x) =", g_prime)
print("g'(1) =", sp.simplify(g_prime.subs(x,1)))
preimage = g.subs(x,1)
f_prime_at_preimage = 1/(preimage+2)
print("g(1) =", preimage)
print("f'(g(1)) =", f_prime_at_preimage)
print("1/f'(g(1)) =", sp.simplify(1/f_prime_at_preimage))
Utskrift fra Python:
f(x) = log(x + 2)
Inverse function g(x) = exp(x) - 2
g'(x) = exp(x)
g'(1) = E
g(1) = -2 + E
f'(g(1)) = exp(-1)
1/f'(g(1)) = E

Fasit: \(g\prime(1)=e\).

Vanlig feil: Å beregne \(f\prime(1)\) i stedet for \(g\prime(1)\).
Sensorpunkt: Vis enten den omvendte funksjonen eller bruk inversderivert-formelen korrekt.
Del 1 - Oppgave 7aVinkelretthet med skalarprodukt

Oppgave 7a

Oppgave: Gitt \(A(1,-3)\), \(B(4,1)\) og \(C(-2,a)\). Bestem a slik at \(\angle BAC=90^\circ\).
Vis løsning

Hva spør oppgaven om? Vinkelen ved A er rett når vektorene fra A til B og C har skalarprodukt 0.

Steg 1 - Finn vektorene

\[\overrightarrow{AB}=(4-1,1-(-3))=(3,4),\] \[\overrightarrow{AC}=(-2-1,a-(-3))=(-3,a+3).\]

Steg 2 - Sett skalarproduktet lik null

\[(3,4)\cdot(-3,a+3)=0.\]

Steg 3 - Regn ut

\[-9+4(a+3)=0.\]

Steg 4 - Løs for a

\[-9+4a+12=0\Rightarrow4a+3=0\Rightarrow a=-\frac34.\]

Steg 5 - Kontroll

Da er \(\overrightarrow{AC}=(-3,9/4)\), og \(3(-3)+4(9/4)=0\).

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Dot[(3,4),(-3,a+3)]=0
\(a=-3/4\)

Tolkning: Skalarproduktet blir 0 for denne verdien.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
a = sp.symbols("a", real=True)
AB = sp.Matrix([3,4])
AC = sp.Matrix([-3,a+3])
dot = sp.expand(AB.dot(AC))
solution = sp.solve(sp.Eq(dot,0),a)[0]
print("AB =", tuple(AB))
print("AC =", tuple(AC))
print("Dot product =", dot)
print("Solution a =", solution)
print("Check =", sp.simplify(dot.subs(a,solution)))
Utskrift fra Python:
AB = (3, 4)
AC = (-3, a + 3)
Dot product = 4*a + 3
Solution a = -3/4
Check = 0

Fasit: \(a=-\frac34\).

Vanlig feil: Å bruke vektorene med ulike startpunkt.
Sensorpunkt: Vektorene må starte i A, og skalarproduktvilkåret må vises.
Del 1 - Oppgave 7bLike vektorlengder

Oppgave 7b

Oppgave: Bestem a slik at \(|\overrightarrow{AB}|=|\overrightarrow{AC}|\).
Vis løsning

Hva spør oppgaven om? Vi setter kvadratene av lengdene like for å unngå unodvendige rotuttrykk.

Steg 1 - Lengden av AB

\[|\overrightarrow{AB}|^2=3^2+4^2=25.\]

Steg 2 - Lengden av AC

\[|\overrightarrow{AC}|^2=(-3)^2+(a+3)^2=9+(a+3)^2.\]

Steg 3 - Sett like

\[25=9+(a+3)^2.\]

Steg 4 - Løs andregradslikningen

\[(a+3)^2=16\Rightarrow a+3=\pm4.\]

Steg 5 - Oppgi begge løsninger

\[a=1\quad\text{eller}\quad a=-7.\]

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Solve[25=9+(a+3)^2,a]
\(a=1\) eller \(a=-7\)

Tolkning: Begge fortegn fra kvadratroten gir gyldige løsninger.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
a = sp.symbols("a", real=True)
AB_squared = 3**2 + 4**2
AC_squared = (-3)**2 + (a+3)**2
solutions = sp.solve(sp.Eq(AB_squared,AC_squared),a)
print("|AB|^2 =", AB_squared)
print("|AC|^2 =", AC_squared)
print("Equation =", sp.Eq(AB_squared,AC_squared))
print("Solutions =", solutions)
for value in solutions:
    print("a =",value,"|AC|^2 =",sp.simplify(AC_squared.subs(a,value)))
Utskrift fra Python:
|AB|^2 = 25
|AC|^2 = (a + 3)**2 + 9
Equation = Eq(25, (a + 3)**2 + 9)
Solutions = [-7, 1]
a = -7 |AC|^2 = 25
a = 1 |AC|^2 = 25

Fasit: \(a=1\) eller \(a=-7\).

Vanlig feil: Å ta bare den positive kvadratroten og miste en løsning.
Sensorpunkt: Begge verdiene og kontroll av lengdene skal framgå.
Del 1 - Oppgave 8aVektorer mellom punkter

Oppgave 8a

Oppgave: I trekanten er \(\vec a=\overrightarrow{OA}\), \(\vec b=\overrightarrow{OB}\), \(\overrightarrow{OP}=\frac23\vec a\) og \(\overrightarrow{OR}=\frac23\vec b\). Uttrykk \(\overrightarrow{AB}\) og \(\overrightarrow{PR}\).
Vis løsning

Hva spør oppgaven om? En vektor mellom to punkter er posisjonsvektoren til sluttpunktet minus posisjonsvektoren til startpunktet.

Steg 1 - Vektoren AB

\[\overrightarrow{AB}=\overrightarrow{OB}-\overrightarrow{OA}=\vec b-\vec a.\]

Steg 2 - Posisjonsvektoren til P

\[\overrightarrow{OP}=\frac23\vec a.\]

Steg 3 - Posisjonsvektoren til R

\[\overrightarrow{OR}=\frac23\vec b.\]

Steg 4 - Vektoren PR

\[\overrightarrow{PR}=\overrightarrow{OR}-\overrightarrow{OP}=\frac23\vec b-\frac23\vec a.\]

Steg 5 - Faktoriser

\[\overrightarrow{PR}=\frac23(\vec b-\vec a).\]

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Vector[B]-Vector[A]; Vector[R]-Vector[P]
\(\overrightarrow{AB}=\vec b-\vec a\), \(\overrightarrow{PR}=\frac23(\vec b-\vec a)\)

Tolkning: Begge vektorene uttrykkes ved posisjonsvektorer.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
a1,a2,b1,b2 = sp.symbols("a1 a2 b1 b2")
a = sp.Matrix([a1,a2]); b = sp.Matrix([b1,b2])
AB = b-a
P = sp.Rational(2,3)*a
R = sp.Rational(2,3)*b
PR = sp.simplify(R-P)
print("a =",tuple(a),"b =",tuple(b))
print("AB = b-a =",tuple(AB))
print("P =",tuple(P))
print("R =",tuple(R))
print("PR = R-P =",tuple(PR))
print("PR - (2/3)AB =",tuple(sp.simplify(PR-sp.Rational(2,3)*AB)))
Utskrift fra Python:
a = (a1, a2) b = (b1, b2)
AB = b-a = (-a1 + b1, -a2 + b2)
P = (2*a1/3, 2*a2/3)
R = (2*b1/3, 2*b2/3)
PR = R-P = (-2*a1/3 + 2*b1/3, -2*a2/3 + 2*b2/3)
PR - (2/3)AB = (0, 0)

Fasit: \(\overrightarrow{AB}=\vec b-\vec a\) og \(\overrightarrow{PR}=\frac23(\vec b-\vec a)\).

Vanlig feil: Å bruke start minus slutt og få motsatt retning.
Sensorpunkt: Posisjonsvektorregelen skal brukes konsekvent.
Del 1 - Oppgave 8bParallelle vektorer

Oppgave 8b

Oppgave: Vis at \(\overrightarrow{AB}\parallel\overrightarrow{PR}\).
Vis løsning

Hva spør oppgaven om? Vektorer er parallelle når den ene er et reelt multiplum av den andre.

Steg 1 - Bruk uttrykkene fra a

\[\overrightarrow{AB}=\vec b-\vec a.\]

Steg 2 - Sammenlikn med PR

\[\overrightarrow{PR}=\frac23(\vec b-\vec a).\]

Steg 3 - Skriv som skalarmultiplum

\[\overrightarrow{PR}=\frac23\overrightarrow{AB}.\]

Steg 4 - Tolk faktoren

Faktoren \(2/3\) er et positivt reelt tall, så vektorene har samme retning.

Steg 5 - Konklusjon

Derfor er linjestykkene parallelle.

P og R ligger i samme forhold fra O, derfor er PR parallell med AB.
P og R ligger i samme forhold fra O, derfor er PR parallell med AB.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
AreParallel[Vector[AB],Vector[PR]]
true

Tolkning: PR er 2/3 av AB.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
u1,u2 = sp.symbols("u1 u2")
AB = sp.Matrix([u1,u2])
PR = sp.Rational(2,3)*AB
cross_2d = sp.simplify(AB[0]*PR[1]-AB[1]*PR[0])
print("AB =",tuple(AB))
print("PR =",tuple(PR))
print("Scale factor = 2/3")
print("2D cross determinant =",cross_2d)
print("Conclusion: vectors are parallel and point in the same direction")
Utskrift fra Python:
AB = (u1, u2)
PR = (2*u1/3, 2*u2/3)
Scale factor = 2/3
2D cross determinant = 0
Conclusion: vectors are parallel and point in the same direction

Fasit: \(\overrightarrow{PR}=\frac23\overrightarrow{AB}\), altså \(AB\parallel PR\).

Vanlig feil: Å hevde parallellitet bare fordi punktene ser slik ut på figuren.
Sensorpunkt: Et eksplisitt skalarmultiplum er en fullstendig begrunnelse.
Del 1 - Oppgave 8cLengde ved skalering

Oppgave 8c

Oppgave: Hvor langt er linjestykket AB dersom \(|\overrightarrow{PR}|=\frac{\sqrt2}{3}\)?
Vis løsning

Hva spør oppgaven om? Lengder skaleres med absoluttverdien av skalarfaktoren.

Steg 1 - Bruk vektorforholdet

\[\overrightarrow{PR}=\frac23\overrightarrow{AB}.\]

Steg 2 - Ta lengder

\[|\overrightarrow{PR}|=\frac23|\overrightarrow{AB}|.\]

Steg 3 - Sett inn opplysningen

\[\frac{\sqrt2}{3}=\frac23|\overrightarrow{AB}|.\]

Steg 4 - Isoler AB

\[|\overrightarrow{AB}|=\frac32\cdot\frac{\sqrt2}{3}=\frac{\sqrt2}{2}.\]

Steg 5 - Oppgi lengden

Linjestykket AB er \(\sqrt2/2\) langt.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Solve[sqrt(2)/3=(2/3)L,L]
\(L=\sqrt2/2\)

Tolkning: Lengden multipliseres med den omvendte skaleringsfaktoren 3/2.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
PR_length = sp.sqrt(2)/3
AB_length = sp.simplify(sp.Rational(3,2)*PR_length)
print("|PR| =",PR_length)
print("PR = (2/3)AB, so |AB| = (3/2)|PR|")
print("|AB| =",AB_length)
print("Decimal value =",sp.N(AB_length,12))
print("Check: (2/3)|AB| =",sp.simplify(sp.Rational(2,3)*AB_length))
Utskrift fra Python:
|PR| = sqrt(2)/3
PR = (2/3)AB, so |AB| = (3/2)|PR|
|AB| = sqrt(2)/2
Decimal value = 0.707106781187
Check: (2/3)|AB| = sqrt(2)/3

Fasit: \(|AB|=\frac{\sqrt2}{2}\).

Vanlig feil: Å gange med \(2/3\) en gang til i stedet for å dele på \(2/3\).
Sensorpunkt: Forholdet mellom lengdene og den eksakte forenklingen må vises.
Del 1 - Oppgave 9aNumerisk derivert

Oppgave 9a

Oppgave: Forklar sammenhengen mellom \(f(x)\) og \(g(x)\) i programkoden.
Vis løsning

Hva spør oppgaven om? Funksjonen g bruker en liten endring h og en differansekvotient.

Steg 1 - Les uttrykket i koden

\[g(x)=\frac{f(x+h)-f(x)}{h},\qquad h=10^{-6}.\]

Steg 2 - Sammenlikn med definisjonen

Den deriverte er \[f\prime(x)=\lim_{h\to0}\frac{f(x+h)-f(x)}{h}.\]

Steg 3 - Tolk h

Programmet bruker et lite, men ikke null, h. Derfor beregner g en numerisk tilnærming til den deriverte.

Steg 4 - Finn den eksakte deriverte

For \(f(x)=\frac13x^3+\frac53x^2+\frac{25}{9}x\) er \[f\prime(x)=x^2+\frac{10}{3}x+\frac{25}{9}=\left(x+\frac53\right)^2.\]

Steg 5 - Konklusjon

\(g(x)\approx f\prime(x)\), med en liten numerisk feil som avhenger av h.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Derivative[(1/3)x^3+(5/3)x^2+(25/9)x]
\((x+5/3)^2\)

Tolkning: g er en framoverdifferanse for denne deriverte.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x,h = sp.symbols("x h", real=True)
f = sp.Rational(1,3)*x**3+sp.Rational(5,3)*x**2+sp.Rational(25,9)*x
exact = sp.factor(sp.diff(f,x))
forward = sp.simplify((f.subs(x,x+h)-f)/h)
print("f(x) =",f)
print("Exact f'(x) =",exact)
print("Forward difference =",sp.expand(forward))
print("Difference from exact derivative =",sp.factor(forward-exact))
print("With h = 0.000001, g(x) is a numerical approximation to f'(x)")
Utskrift fra Python:
f(x) = x**3/3 + 5*x**2/3 + 25*x/9
Exact f'(x) = (3*x + 5)**2/9
Forward difference = h**2/3 + h*x + 5*h/3 + x**2 + 10*x/3 + 25/9
Difference from exact derivative = h*(h + 3*x + 5)/3
With h = 0.000001, g(x) is a numerical approximation to f'(x)

Fasit: \(g(x)\) er en numerisk tilnærming til \(f\prime(x)\).

Vanlig feil: Å si at g er den eksakte deriverte uten å nevne at h er endelig.
Sensorpunkt: Differansekvotienten og forbindelsen til definisjonen av den deriverte må forklares.
Del 1 - Oppgave 9bKlassifisering av stasjonære punkt

Oppgave 9b

Oppgave: Hvilke tre begreper skal erstatte A, B og C i linje 18, 21 og 24?
Vis løsning

Hva spør oppgaven om? Koden undersøker fortegnet til den deriverte på hver side av et punkt der g er nær 0.

Steg 1 - Tilfellet A

Hvis \(g(x-dx)g(x+dx)>0\), har den deriverte samme fortegn på begge sider. Et stasjonært punkt uten fortegnsskifte er et terrassepunkt.

Steg 2 - Tilfellet B

Hvis \(g(x-dx)<g(x+dx)\), er situasjonen rundt en enkel nullpassering fra negativ til positiv. Funksjonen går fra avtakende til voksende: bunnpunkt.

Steg 3 - Tilfellet C

Hvis \(g(x-dx)>g(x+dx)\), går den deriverte fra positiv til negativ: toppunkt.

Steg 4 - Sett inn ordene

\[A=\text{terrassepunkt},\quad B=\text{bunnpunkt},\quad C=\text{toppunkt}.\]

Steg 5 - Knytt til f

Her er \(f\prime(x)=(x+5/3)^2\ge0\), så det aktuelle punktet er et terrassepunkt.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Factor[Derivative[(1/3)x^3+(5/3)x^2+(25/9)x]]
\((x+5/3)^2\ge0\)

Tolkning: Den deriverte berører 0 uten fortegnsskifte.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
f_prime = (x+sp.Rational(5,3))**2
root = -sp.Rational(5,3)
left = sp.simplify(f_prime.subs(x,root-sp.Rational(1,100)))
right = sp.simplify(f_prime.subs(x,root+sp.Rational(1,100)))
print("f'(x) =",f_prime)
print("Stationary x =",root)
print("Derivative just left =",left)
print("Derivative just right =",right)
print("A = terrassepunkt")
print("B = bunnpunkt")
print("C = toppunkt")
Utskrift fra Python:
f'(x) = (x + 5/3)**2
Stationary x = -5/3
Derivative just left = 1/10000
Derivative just right = 1/10000
A = terrassepunkt
B = bunnpunkt
C = toppunkt

Fasit: A er terrassepunkt, B er bunnpunkt, og C er toppunkt.

Vanlig feil: Å bytte topp- og bunnpunkt fordi man sammenlikner funksjonsverdier i stedet for fortegn til den deriverte.
Sensorpunkt: Forklar hva hver test sier om fortegnsskiftet.
Del 1 - Oppgave 9cSporing av programkode

Oppgave 9c

Oppgave: Programmet skriver ut en setning. I hvilken linje står setningen?
Vis løsning

Hva spør oppgaven om? Vi må finne det stasjonære punktet og se hvilken if-gren som blir sann i den faktiske løkken.

Steg 1 - Finn den eksakte deriverte

\[f\prime(x)=\left(x+\frac53\right)^2.\] Den er 0 ved \(x=-5/3\).

Steg 2 - Se på fortegnet

Den deriverte er positiv på begge sider av punktet.

Steg 3 - Knytt til testen

Dermed er produktet \(g(x-dx)g(x+dx)>0\) når programmet finner en x-verdi med \(|g(x)|<10^{-6}\).

Steg 4 - Finn linjen

Den første print-setningen i denne grenen står i linje 18.

Steg 5 - Faktisk kjøring

Med skrittstørrelse 0,002 finner programmet omtrent \(x=-1,666\) og skriver ut linje 18.

f er voksende på begge sider av x=-5/3, mens den deriverte bare berører null.
f er voksende på begge sider av x=-5/3, mens den deriverte bare berører null.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Run original program
Linje 18

Tolkning: Den numeriske løkken treffer terrassepunktgrenen.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
def f(x):
    return 1/3*x**3 + 5/3*x**2 + 25/9*x

def g(x):
    h = 0.000001
    return (f(x+h)-f(x))/h

x = -4
slutt = 4
dx = 0.002
maks_avvik = 0.000001
printed_line = None
while x < slutt:
    x = x + dx
    if abs(g(x)) < maks_avvik:
        if g(x-dx)*g(x+dx) > 0:
            printed_line = 18
            print("f har et terrassepunkt for x =",x)
        elif g(x-dx) < g(x+dx):
            printed_line = 21
            print("f har et bunnpunkt for x =",x)
        elif g(x-dx) > g(x+dx):
            printed_line = 24
            print("f har et toppunkt for x =",x)
print("Printed line =",printed_line)
print("g(x) =",g(x))
Utskrift fra Python:
f har et terrassepunkt for x = -1.66600000000022
Printed line = 18
g(x) = 32.1337874567007

Fasit: Setningen står i linje 18.

Vanlig feil: Å velge linje 21 bare fordi den deriverte har et minimum ved null. Det er f, ikke f-prime, som klassifiseres.
Sensorpunkt: Begrunn med fortegnet til f-prime og knytt det til den konkrete if-grenen.

Del 2 - med hjelpemidler

Del 2 - Oppgave 1aLogistisk regresjon

Oppgave 1a

Oppgave: Tabellen viser rakettfart. Lag en modell \[V(t)=\frac{C}{1+a e^{-kt}}.\]
Vis løsning

Hva spør oppgaven om? Vi tilpasser de tre parameterne C, a og k ved ikke-lineær regresjon.

Steg 1 - Registrer data

Tidspunktene er \(1,5,10,20,50,100,150\) sekunder, med tilhørende fart \(7,3,9,2,10,7,25,6,61,3,183,0,218,2\) m/s.

Steg 2 - Velg modelltype

Modellen er logistisk. Parameteren \(C\) er den langsiktige grensen for farten.

Steg 3 - Kjør regresjon

En ikke-lineær minste-kvadraters tilpasning gir omtrent \[C=223,477,\quad a=27,327,\quad k=0,0478003.\]

Steg 4 - Skriv modellen

\[V(t)=\frac{223,477}{1+27,327e^{-0,0478003t}}.\]

Steg 5 - Vurder tilpasningen

Modellen nærmer seg 223,5 m/s og ligger nær målingene. Små avvik er forventet fordi dataene ikke ligger eksakt på en logistisk kurve.

Steg 6 - Dokumentasjon

Ved eksamen skal regresjonsvindu, parameterverdier og gjerne en graf med datapunkter dokumenteres.

Datapunkter, logistisk fartskurve og den deriverte fartsøkningen.
Datapunkter, logistisk fartskurve og den deriverte fartsøkningen.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Fit[(1,7.3),(5,9.2),... , C/(1+a exp(-k t))]
\(C\approx223,477,\ a\approx27,327,\ k\approx0,0478003\)

Tolkning: Regresjonen gir en metningsfart rundt 223,5 m/s.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import numpy as np
from scipy.optimize import curve_fit

t = np.array([1,5,10,20,50,100,150],dtype=float)
v = np.array([7.3,9.2,10.7,25.6,61.3,183.0,218.2],dtype=float)

def V(t,C,a,k):
    return C/(1+a*np.exp(-k*t))

parameters,covariance = curve_fit(
    V,t,v,p0=(230,30,0.05),bounds=(0,np.inf),maxfev=100000
)
C,a,k = parameters
predicted = V(t,C,a,k)
residuals = v-predicted
print("C =",C)
print("a =",a)
print("k =",k)
print("Model: V(t) = C/(1 + a*exp(-k*t))")
print("Predicted values =",np.round(predicted,6))
print("Residuals =",np.round(residuals,6))
print("Sum of squared residuals =",np.sum(residuals**2))
Utskrift fra Python:
C = 223.47744061662513
a = 27.327224883704183
k = 0.04780026368243623
Model: V(t) = C/(1 + a*exp(-k*t))
Predicted values = [  8.261122   9.924464  12.454547  19.423899  63.778683 181.772724
 218.876091]
Residuals = [-0.961122 -0.724464 -1.754547  6.176101 -2.478683  1.227276 -0.676091]
Sum of squared residuals = 50.77843185802303

Fasit: En egnet modell er \(V(t)=\frac{223,477}{1+27,327e^{-0,0478003t}}\).

Vanlig feil: Å bruke lineær regresjon på de opprinnelige dataene. Modellen er ikke lineær i parameterne.
Sensorpunkt: Parameterne, modellen og dokumentasjon av regresjonen må framgå.
Del 2 - Oppgave 1bLøsning av logistisk likning

Oppgave 1b

Oppgave: Hvor lang tid tar det for raketten å oppnå 100 m/s?
Vis løsning

Hva spør oppgaven om? Vi setter modellen lik 100 og løser for t.

Steg 1 - Sett opp likningen

\[100=\frac{223,477}{1+27,327e^{-0,0478003t}}.\]

Steg 2 - Isoler nevneren

\[1+27,327e^{-0,0478003t}=\frac{223,477}{100}.\]

Steg 3 - Isoler eksponentialleddet

\[e^{-0,0478003t}=\frac{223,477/100-1}{27,327}.\]

Steg 4 - Ta logaritmen

\[t=-\frac{1}{0,0478003}\ln\left(\frac{223,477/100-1}{27,327}\right).\]

Steg 5 - Beregn

\[t\approx64,79\text{ s}.\]

Steg 6 - Kontroll

Innsetting i modellen gir \(V(64,79)\approx100,0\) m/s.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Solve[223.477/(1+27.327 exp(-0.0478003t))=100,t]
\(t\approx64,79\)

Tolkning: Den positive løsningen ligger mellom målingene ved 50 og 100 sekunder.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import math
C = 223.4774387576481
a = 27.32722297785643
k = 0.04780026364436009
t = math.log(a/(C/100-1))/k
V = C/(1+a*math.exp(-k*t))
print("C =",C,"a =",a,"k =",k)
print("Equation: C/(1+a*exp(-k*t)) = 100")
print("t =",t,"seconds")
print("Check V(t) =",V,"m/s")
print("Rounded answer =",round(t,2),"seconds")
Utskrift fra Python:
C = 223.4774387576481 a = 27.32722297785643 k = 0.04780026364436009
Equation: C/(1+a*exp(-k*t)) = 100
t = 64.79033537951585 seconds
Check V(t) = 100.0 m/s
Rounded answer = 64.79 seconds

Fasit: Raketten oppnår 100 m/s etter omtrent \(64,8\) sekunder.

Vanlig feil: Å glemme minusfortegnet når eksponentialleddet logaritmeres.
Sensorpunkt: Likningen, numerisk løsning og enhet skal vises.
Del 2 - Oppgave 1cStørst fartsøkning i logistisk modell

Oppgave 1c

Oppgave: Når er fartsøkningen størst, og hvor stor er den?
Vis løsning

Hva spør oppgaven om? Fartsøkningen er \(V\prime(t)\). For en logistisk funksjon er den størst i vendepunktet.

Steg 1 - Bruk logistisk struktur

For \(V(t)=\frac{C}{1+ae^{-kt}}\) oppnås vendepunktet når \(ae^{-kt}=1\).

Steg 2 - Finn tidspunktet

\[t=\frac{\ln a}{k}=\frac{\ln27,327}{0,0478003}\approx69,20\text{ s}.\]

Steg 3 - Deriver modellen

\[V\prime(t)=\frac{Cake^{-kt}}{(1+ae^{-kt})^2}.\]

Steg 4 - Sett inn vendepunktvilkåret

Når \(ae^{-kt}=1\), blir \[V\prime_{\max}=\frac{Ck}{4}.\]

Steg 5 - Beregn akselerasjonen

\[\frac{223,477\cdot0,0478003}{4}\approx2,671\text{ m/s}^2.\]

Steg 6 - Tolkning

Raketten har altså størst fartsøkning omtrent 69,2 sekunder etter start.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Extremum[Derivative[C/(1+a exp(-k t))]]
\(t\approx69,20\), \(V\prime\approx2,671\)

Tolkning: Logistisk vendepunkt gir maksimal stigning.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import math
C = 223.4774387576481
a = 27.32722297785643
k = 0.04780026364436009
t_inflection = math.log(a)/k
maximum_acceleration = C*k/4
V_at_inflection = C/2
print("Inflection time ln(a)/k =",t_inflection,"seconds")
print("Speed at inflection C/2 =",V_at_inflection,"m/s")
print("Maximum acceleration C*k/4 =",maximum_acceleration,"m/s**2")
print("Rounded time =",round(t_inflection,2))
print("Rounded acceleration =",round(maximum_acceleration,3))
Utskrift fra Python:
Inflection time ln(a)/k = 69.20219956579434 seconds
Speed at inflection C/2 = 111.73871937882404 m/s
Maximum acceleration C*k/4 = 2.6705701227954783 m/s**2
Rounded time = 69.2
Rounded acceleration = 2.671

Fasit: Størst fartsøkning er omtrent \(2,67\text{ m/s}^2\) ved \(t\approx69,2\text{ s}\).

Vanlig feil: Å svare med den største farten C i stedet for den største deriverte.
Sensorpunkt: Sensor forventer tidspunkt, maksimal verdi og korrekte enheter.
Del 2 - Oppgave 1dUlikhet for den deriverte

Oppgave 1d

Oppgave: Hvor lenge øker farten med mer enn \(2\text{ m/s}^2\)?
Vis løsning

Hva spør oppgaven om? Vi løser ulikheten \(V\prime(t)>2\) ved å finne de to grensetidspunktene.

Steg 1 - Skriv den deriverte

\[V\prime(t)=\frac{Cake^{-kt}}{(1+ae^{-kt})^2}.\]

Steg 2 - Sett lik 2

Grensene for intervallet finnes ved \[V\prime(t)=2.\]

Steg 3 - Løs numerisk

De to løsningene er omtrent \[t_1=46,16\text{ s},\qquad t_2=92,25\text{ s}.\]

Steg 4 - Undersok intervallet

Mellom løsningene ligger den deriverte over 2, fordi maksimum ved 69,2 s er omtrent 2,67.

Steg 5 - Finn varigheten

\[t_2-t_1\approx92,25-46,16=46,09\text{ s}.\]

Steg 6 - Konklusjon

Farten øker med mer enn \(2\text{ m/s}^2\) i omtrent 46,1 sekunder.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Solve[Derivative[V(t)]=2,t]
\(t\approx46,16\) og \(92,25\)

Tolkning: Ulikheten gjelder mellom de to skjaringene.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import math
from scipy.optimize import brentq
C = 223.4774387576481
a = 27.32722297785643
k = 0.04780026364436009

def acceleration(t):
    return C*a*k*math.exp(-k*t)/(1+a*math.exp(-k*t))**2

t1 = brentq(lambda t: acceleration(t)-2,0,69.2)
t2 = brentq(lambda t: acceleration(t)-2,69.2,200)
print("First boundary t1 =",t1,"seconds")
print("Second boundary t2 =",t2,"seconds")
print("Acceleration at t1 =",acceleration(t1))
print("Acceleration at midpoint =",acceleration((t1+t2)/2))
print("Acceleration at t2 =",acceleration(t2))
print("Duration =",t2-t1,"seconds")
print("Rounded duration =",round(t2-t1,2),"seconds")
Utskrift fra Python:
First boundary t1 = 46.15767103392101 seconds
Second boundary t2 = 92.24672809766767 seconds
Acceleration at t1 = 2.0000000000000004
Acceleration at midpoint = 2.6705701227954783
Acceleration at t2 = 2.000000000000001
Duration = 46.08905706374666 seconds
Rounded duration = 46.09 seconds

Fasit: Fra omtrent \(46,16\) s til \(92,25\) s, altså i omtrent \(46,09\) s.

Vanlig feil: Å oppgi tidspunktet for maksimum som varigheten.
Sensorpunkt: Begge grensepunktene, riktig ulikhetsintervall og differansen må dokumenteres.
Del 2 - Oppgave 2aBanefart og posisjon fra parameterframstilling

Oppgave 2a

Oppgave: Skøyteløperens posisjon er \(l(t)=(6t+120,\frac53t+50)\). Bestem banefarten og posisjonen etter et halvt minutt.
Vis løsning

Hva spør oppgaven om? Vi deriverer posisjonen for å få hastighetsvektoren og setter inn \(t=30\).

Steg 1 - Hastighetsvektoren

\[l\prime(t)=\left(6,\frac53\right)\text{ m/s}.\]

Steg 2 - Banefarten

\[|l\prime(t)|=\sqrt{6^2+(5/3)^2}=\frac{\sqrt{349}}3\text{ m/s}.\]

Steg 3 - Numerisk fart

\[\frac{\sqrt{349}}3\approx6,227\text{ m/s}.\]

Steg 4 - Halvt minutt

Et halvt minutt er 30 sekunder.

Steg 5 - Sett inn t=30

\[l(30)=(6\cdot30+120,\frac53\cdot30+50)=(300,100).\]

Steg 6 - Svar

Banefarten er konstant, og posisjonen etter 30 s er \((300,100)\) meter.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Length[(6,5/3)]; l(30)
\(\sqrt{349}/3\approx6,227\), \((300,100)\)

Tolkning: Normen av hastighetsvektoren gir banefarten.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
t = sp.symbols("t", real=True)
l = sp.Matrix([6*t+120,sp.Rational(5,3)*t+50])
velocity = l.diff(t)
speed = sp.sqrt(velocity.dot(velocity))
position_30 = l.subs(t,30)
print("l(t) =",tuple(l))
print("Velocity vector =",tuple(velocity),"m/s")
print("Exact speed =",speed,"m/s")
print("Speed decimal =",sp.N(speed,12),"m/s")
print("Position after 30 seconds =",tuple(position_30),"m")
Utskrift fra Python:
l(t) = (6*t + 120, 5*t/3 + 50)
Velocity vector = (6, 5/3) m/s
Exact speed = sqrt(349)/3 m/s
Speed decimal = 6.22718056409 m/s
Position after 30 seconds = (300, 100) m

Fasit: Banefarten er \(\frac{\sqrt{349}}3\approx6,23\text{ m/s}\), og posisjonen er \((300,100)\).

Vanlig feil: Å bruke 0,5 som tid i stedet for 30 sekunder.
Sensorpunkt: Tidsenheten, hastighetsvektoren, normen og posisjonen skal være tydelige.
Del 2 - Oppgave 2bKollisjon krever samme tidspunkt

Oppgave 2b

Oppgave: Hundens posisjon er \(m(t)=(\frac{13}{2}t+250,-\frac95t+520)\). Vis at skøyteløperen ikke treffer hunden.
Vis løsning

Hva spør oppgaven om? Et treff krever at begge koordinatene er like ved samme t.

Steg 1 - Sammenlikn x-koordinatene

\[6t+120=\frac{13}{2}t+250.\] Dette gir \[t=-260\text{ s}.\]

Steg 2 - Vurder tidsintervallet

Tiden \(-260\) ligger ikke i intervallet \([0,200]\). Allerede dette viser at x-koordinatene aldri er like under bevegelsen.

Steg 3 - Se direkte på forskjellen

Hundens x-koordinat minus skøyteløperens er \[\left(\frac{13}{2}-6\right)t+130=\frac12t+130>0\] for alle \(t\ge0\).

Steg 4 - Kontroll med y-koordinatene

Y-koordinatene ville vært like ved \(t=3525/26\approx135,58\) s, men da er x-koordinatene forskjellige.

Steg 5 - Konklusjon

De er aldri i samme punkt ved samme tidspunkt, så skøyteløperen treffer ikke hunden.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Solve[l(t)=m(t),t]
Ingen løsning i \([0,200]\)

Tolkning: X-forskjellen er alltid positiv.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
t = sp.symbols("t", real=True)
l = sp.Matrix([6*t+120,sp.Rational(5,3)*t+50])
m = sp.Matrix([sp.Rational(13,2)*t+250,-sp.Rational(9,5)*t+520])
x_solution = sp.solve(sp.Eq(l[0],m[0]),t)
y_solution = sp.solve(sp.Eq(l[1],m[1]),t)
print("Skater position =",tuple(l))
print("Dog position =",tuple(m))
print("Times with equal x-coordinate =",x_solution)
print("Times with equal y-coordinate =",y_solution)
print("Dog x minus skater x =",sp.simplify(m[0]-l[0]))
print("At the y-equality time, x-difference =",sp.simplify((m[0]-l[0]).subs(t,y_solution[0])))
print("Conclusion: no common position at the same time")
Utskrift fra Python:
Skater position = (6*t + 120, 5*t/3 + 50)
Dog position = (13*t/2 + 250, 520 - 9*t/5)
Times with equal x-coordinate = [-260]
Times with equal y-coordinate = [3525/26]
Dog x minus skater x = t/2 + 130
At the y-equality time, x-difference = 10285/52
Conclusion: no common position at the same time

Fasit: Skøyteløperen og hunden kolliderer ikke.

Vanlig feil: Å løse x- og y-likningene hver for seg og godta ulike tidsverdier som et treff.
Sensorpunkt: Sensor forventer at samme tidspunkt må oppfylle begge koordinatlikningene.
Del 2 - Oppgave 2cFangst med ny fart i fast retning

Oppgave 2c

Oppgave: Etter 60 s øker skøyteløperen banefarten uten å endre retning. Hvilken konstant fart må han holde for å fange hunden?
Vis løsning

Hva spør oppgaven om? Vi finner skjaringen mellom hundens videre bane og strålen fra skøyteløperens posisjon i den opprinnelige retningen.

Steg 1 - Posisjoner ved t=60

\[l(60)=(480,150),\qquad m(60)=(640,412).\]

Steg 2 - Behold retningen

Den opprinnelige retningsvektoren er \((6,5/3)\), som er parallell med \((18,5)\). La skøyteløperens nye posisjon etter \(\tau\) sekunder være \[(480,150)+\lambda(18,5).\]

Steg 3 - Hundens videre posisjon

\[(640,412)+\tau\left(\frac{13}{2},-\frac95\right).\]

Steg 4 - Løs likningssystemet

Koordinatlikningene gir \[\lambda=\frac{1810}{59},\qquad \tau=\frac{3560}{59}\text{ s}.\]

Steg 5 - Finn tilbakelagt lengde

Skøyteløperens forflytning har lengde \[\lambda\sqrt{18^2+5^2}=\lambda\sqrt{349}.\]

Steg 6 - Beregn banefarten

\[v=\frac{\lambda\sqrt{349}}{\tau}=\frac{181\sqrt{349}}{356}\approx9,498\text{ m/s}.\]

Den nye rette banen fra t=60 skjærer hundens videre bane i fangstpunktet.
Den nye rette banen fra t=60 skjærer hundens videre bane i fangstpunktet.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Solve[(480,150)+lambda(18,5)=(640,412)+tau(13/2,-9/5)]
\(v=181\sqrt{349}/356\approx9,498\text{ m/s}\)

Tolkning: Skjæringspunkt og tid bestemmer den nødvendige farten.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
lam,tau = sp.symbols("lam tau", real=True)
L60 = sp.Matrix([480,150])
M60 = sp.Matrix([640,412])
direction = sp.Matrix([18,5])
dog_velocity = sp.Matrix([sp.Rational(13,2),-sp.Rational(9,5)])
solution = sp.solve(L60+lam*direction-(M60+tau*dog_velocity),(lam,tau),dict=True)[0]
lam_value = solution[lam]
tau_value = solution[tau]
speed = sp.simplify(lam_value*sp.sqrt(direction.dot(direction))/tau_value)
meeting = sp.simplify(L60+lam_value*direction)
print("L(60) =",tuple(L60))
print("M(60) =",tuple(M60))
print("lambda =",lam_value)
print("tau =",tau_value,"seconds")
print("Meeting point =",tuple(meeting))
print("Exact new speed =",speed,"m/s")
print("New speed decimal =",sp.N(speed,12),"m/s")
Utskrift fra Python:
L(60) = (480, 150)
M(60) = (640, 412)
lambda = 1810/59
tau = 3560/59 seconds
Meeting point = (60900/59, 17900/59)
Exact new speed = 181*sqrt(349)/356 m/s
New speed decimal = 9.49819956826 m/s

Fasit: Den nye konstante banefarten må være omtrent \(9,50\text{ m/s}\).

Vanlig feil: Å sikte direkte mot hundens posisjon ved 60 s. Hunden fortsetter å bevege seg mens jakten pågår.
Sensorpunkt: Retningen må beholdes, og fangstpunktet må oppfylle begge bevegelsene ved samme tid.
Del 2 - Oppgave 3aLengder i et rektangel under en graf

Oppgave 3a

Oppgave: Grafen er \(f(x)=100\cdot0,8^x\). Punktet A er \((a,f(a))\), B og C har x-koordinat 5, og C og D har y-koordinat 200. Uttrykk AB og AD ved a.
Vis løsning

Hva spør oppgaven om? Vi leser av horisontal og vertikal avstand mellom punktene.

Steg 1 - Skriv koordinatene

\[A=(a,f(a)),\quad B=(5,f(a)),\quad C=(5,200),\quad D=(a,200).\]

Steg 2 - Horisontal side

AB er forskjellen mellom x-koordinatene: \[AB=5-a.\]

Steg 3 - Vertikal side

AD er forskjellen mellom y-koordinatene: \[AD=200-f(a).\]

Steg 4 - Sett inn funksjonsuttrykket

\[AD=200-100\cdot0,8^a.\]

Steg 5 - Fortegn

For \(0\le a\le5\) er begge lengdene ikke-negative.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Distance[(a,f(a)),(5,f(a))]; Distance[(a,f(a)),(a,200)]
\(AB=5-a\), \(AD=200-100\cdot0,8^a\)

Tolkning: Sidekantene er koordinatforskjeller.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
a = sp.symbols("a", real=True)
f_a = 100*sp.Rational(4,5)**a
A = sp.Matrix([a,f_a])
B = sp.Matrix([5,f_a])
D = sp.Matrix([a,200])
AB = sp.simplify(B[0]-A[0])
AD = sp.simplify(D[1]-A[1])
print("A =",tuple(A))
print("B =",tuple(B))
print("D =",tuple(D))
print("AB =",AB)
print("AD =",AD)
print("Area expression =",sp.expand(AB*AD))
Utskrift fra Python:
A = (a, 100*(4/5)**a)
B = (5, 100*(4/5)**a)
D = (a, 200)
AB = 5 - a
AD = -100*4**a/5**a + 200
Area expression = 100*4**a*a/5**a - 500*4**a/5**a - 200*a + 1000

Fasit: \(AB=5-a\) og \(AD=200-100\cdot0,8^a\).

Vanlig feil: Å bruke \(f(a)-200\), som blir negativ i intervallet.
Sensorpunkt: Koordinatene og de to positive lengdeuttrykkene skal vises.
Del 2 - Oppgave 3bDerivasjon og arealoptimering

Oppgave 3b

Oppgave: Bruk derivasjon til å bestemme det største arealet rektangelet ABCD kan få.
Vis løsning

Hva spør oppgaven om? Vi lager arealfunksjonen, deriverer og sammenlikner kritisk punkt med endepunktene.

Steg 1 - Arealfunksjonen

\[A(a)=(5-a)\left(200-100\cdot0,8^a\right),\qquad 0\le a\le5.\]

Steg 2 - Deriver produktet

\[A\prime(a)=-\left(200-100\cdot0,8^a\right)+(5-a)\left(-100\cdot0,8^a\ln0,8\right).\]

Steg 3 - Løs A-prime lik null

Likningen har den relevante numeriske løsningen \[a\approx0,170666.\]

Steg 4 - Beregn arealet

\[A(0,170666)\approx500,979.\]

Steg 5 - Kontroller endepunktene

\[A(0)=500,\qquad A(5)=0.\] Det indre kritiske punktet gir størst verdi.

Steg 6 - Konklusjon

Det maksimale arealet er omtrent \(501\) kvadratenheter.

Venstre: grafen og rektangelets rammer. Høyre: arealfunksjonen med maksimum.
Venstre: grafen og rektangelets rammer. Høyre: arealfunksjonen med maksimum.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Extremum[(5-a)(200-100*0.8^a),0<=a<=5]
\(a\approx0,170666\), \(A_{max}\approx500,979\)

Tolkning: Den eneste indre kritiske verdien gir globalt maksimum.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import math
from scipy.optimize import brentq

def area(a):
    return (5-a)*(200-100*0.8**a)

def area_prime(a):
    return -(200-100*0.8**a)+(5-a)*(-100*0.8**a*math.log(0.8))

a_star = brentq(area_prime,0,1)
print("A(a) = (5-a)*(200-100*0.8**a)")
print("Critical a =",a_star)
print("A'(a*) =",area_prime(a_star))
print("A(a*) =",area(a_star))
print("A(0) =",area(0))
print("A(5) =",area(5))
print("Maximum area rounded =",round(area(a_star),3))
Utskrift fra Python:
A(a) = (5-a)*(200-100*0.8**a)
Critical a = 0.17066571014717044
A'(a*) = 1.4210854715202004e-14
A(a*) = 500.97916156327324
A(0) = 500.0
A(5) = 0.0
Maximum area rounded = 500.979

Fasit: Største areal er omtrent \(500,98\), oppnådd ved \(a\approx0,171\).

Vanlig feil: Å finne et kritisk punkt uten å kontrollere endepunktene.
Sensorpunkt: Arealfunksjon, derivert, numerisk nullpunkt og maksimumskontroll må dokumenteres.
Del 2 - Oppgave 4aDelt og kontinuerlig støttefunksjon

Oppgave 4a

Oppgave: Forklar hvorfor strømprisfunksjonen f har delt forskrift, og hvorfor den må være kontinuerlig.
Vis løsning

Hva spør oppgaven om? Støtteordningen gjelder bare når spotprisen overstiger 75 øre/kWh.

Steg 1 - To prisområder

For \(x\le75\) gis ingen støtte, så husholdningen betaler hele spotprisen.

Steg 2 - Over terskelen

For \(x>75\) dekker staten 90 prosent av den delen av prisen som ligger over 75 øre/kWh.

Steg 3 - Derfor delt forskrift

Regelen for hva husholdningen betaler endres ved \(x=75\), så ett enkelt lineært uttrykk gjelder ikke på begge sider.

Steg 4 - Kontinuitet ved terskelen

Idet spotprisen passerer 75, er den støtteberettigede overskytende delen 0. Det skal derfor ikke oppstå et plutselig hopp i kundens pris.

Steg 5 - Matematisk vilkår

Venstre og høyre funksjonsverdi ved 75 må være like. Begge blir 75.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
LeftLimit[f,75]=RightLimit[f,75]=75
Kontinuerlig ved \(x=75\)

Tolkning: Støtten starter fra null akkurat ved terskelen.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
left = x
right = x-sp.Rational(9,10)*(x-75)
left_at_75 = left.subs(x,75)
right_at_75 = sp.simplify(right.subs(x,75))
print("No-support branch =",left)
print("Support branch before simplification =",right)
print("Support branch simplified =",sp.expand(right))
print("Left value at 75 =",left_at_75)
print("Right value at 75 =",right_at_75)
print("Difference at threshold =",sp.simplify(left_at_75-right_at_75))
print("Conclusion: continuous at x = 75")
Utskrift fra Python:
No-support branch = x
Support branch before simplification = x/10 + 135/2
Support branch simplified = x/10 + 135/2
Left value at 75 = 75
Right value at 75 = 75
Difference at threshold = 0
Conclusion: continuous at x = 75

Fasit: Funksjonen er delt fordi støtteregelen endres ved 75 øre/kWh, og den er kontinuerlig fordi støtten starter uten prissteg.

Vanlig feil: Å tro at husholdningen bare betaler 10 prosent av hele spotprisen når x er over 75.
Sensorpunkt: Forklar både terskelen og hvorfor de to grenene motes i samme punkt.
Del 2 - Oppgave 4bOppsett av delt funksjonsuttrykk

Oppgave 4b

Oppgave: Sett opp et funksjonsuttrykk for husholdningens pris f(x) etter støtte.
Vis løsning

Hva spør oppgaven om? Vi uttrykker betalingen under og over terskelen 75 øre/kWh.

Steg 1 - Ingen støtte

For \(0\le x\le75\) betaler husholdningen \[f(x)=x.\]

Steg 2 - Finn støttebeløpet

For \(x>75\) er støtten \[0,9(x-75).\]

Steg 3 - Trekk fra støtten

\[f(x)=x-0,9(x-75).\]

Steg 4 - Forenkle

\[x-0,9x+67,5=0,1x+67,5.\]

Steg 5 - Skriv delt forskrift

\[f(x)=\begin{cases}x,&0\le x\le75,\\0,1x+67,5,&x>75.\end{cases}\]

Steg 6 - Kontroller terskelen

Begge uttrykk gir 75 når \(x=75\).

Etter terskelen stiger husholdningens pris bare med 0,1 øre for hver ekstra øre i spotpris.
Etter terskelen stiger husholdningens pris bare med 0,1 øre for hver ekstra øre i spotpris.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
If[x<=75,x,x-0.9(x-75)]
\(f(x)=x\) for \(x\le75\), ellers \(0,1x+67,5\)

Tolkning: Den overskytende delen reduseres med 90 prosent.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", nonnegative=True)
support = sp.Rational(9,10)*(x-75)
price_above = sp.expand(x-support)
print("Support above threshold =",support)
print("Household price above threshold =",price_above)
print("Piecewise function:")
print("f(x) = x, for 0 <= x <= 75")
print("f(x) =",price_above,", for x > 75")
for value in [50,75,100,200]:
    result = value if value <= 75 else sp.Rational(1,10)*value+sp.Rational(135,2)
    print("x =",value,"f(x) =",result)
print("Continuity check at 75:",75,price_above.subs(x,75))
Utskrift fra Python:
Support above threshold = 9*x/10 - 135/2
Household price above threshold = x/10 + 135/2
Piecewise function:
f(x) = x, for 0 <= x <= 75
f(x) = x/10 + 135/2 , for x > 75
x = 50 f(x) = 50
x = 75 f(x) = 75
x = 100 f(x) = 155/2
x = 200 f(x) = 175/2
Continuity check at 75: 75 75

Fasit: \[f(x)=\begin{cases}x,&0\le x\le75,\\0,1x+67,5,&x>75.\end{cases}\]

Vanlig feil: Å trekke 90 prosent av hele x i stedet for bare av \(x-75\).
Sensorpunkt: Den delte forskriften og kontinuitetskontrollen ved 75 må være med.
Del 2 - Oppgave 5Tangent gjennom origo

Oppgave 5

Oppgave: For \(f(x)=e^{2x}\) har grafen en tangent som går gjennom origo. Bestem eksakte koordinater til tangeringspunktet.
Vis løsning

Hva spør oppgaven om? Vi lar tangeringspunktet ha x-koordinat a og krever at tangentlikningen passerer \((0,0)\).

Steg 1 - Punkt og stigningstall

Tangeringspunktet er \(T=(a,e^{2a})\). Den deriverte er \[f\prime(x)=2e^{2x},\] så stigningstallet i T er \(2e^{2a}\).

Steg 2 - Skriv tangentlikningen

\[y-e^{2a}=2e^{2a}(x-a).\]

Steg 3 - Sett inn origo

\[0-e^{2a}=2e^{2a}(0-a).\]

Steg 4 - Del på den positive faktoren

Siden \(e^{2a}>0\), kan vi dele på den: \[-1=-2a.\]

Steg 5 - Finn a

\[a=\frac12.\]

Steg 6 - Finn y-koordinaten

\[f(1/2)=e^{1}=e.\] Tangeringspunktet er derfor \((1/2,e)\). Tangenten blir \(y=2ex\).

Grafen til e^(2x) og den unike tangenten gjennom origo.
Grafen til e^(2x) og den unike tangenten gjennom origo.

GeoGebra/CAS-kontroll

GeoGebra - CAS/grafikk
1
Solve[Tangent[(a,exp(2a)),exp(2x)] passes through (0,0),a]
\(a=1/2\), punkt \((1/2,e)\)

Tolkning: Tangentvilkåret gjennom origo bestemmer a eksakt.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
a,x = sp.symbols("a x", real=True)
f_a = sp.exp(2*a)
slope = 2*sp.exp(2*a)
tangent = sp.expand(f_a+slope*(x-a))
condition = sp.simplify(tangent.subs(x,0))
solution = sp.solve(sp.Eq(condition,0),a)[0]
point = (solution,sp.simplify(sp.exp(2*solution)))
final_tangent = sp.simplify(tangent.subs(a,solution))
print("Generic tangent =",tangent)
print("Tangent value at x=0 =",condition)
print("Equation through origin:",sp.Eq(condition,0))
print("a =",solution)
print("Tangency point =",point)
print("Final tangent line y =",final_tangent)
print("Check at origin =",final_tangent.subs(x,0))
Utskrift fra Python:
Generic tangent = -2*a*exp(2*a) + 2*x*exp(2*a) + exp(2*a)
Tangent value at x=0 = (1 - 2*a)*exp(2*a)
Equation through origin: Eq((1 - 2*a)*exp(2*a), 0)
a = 1/2
Tangency point = (1/2, E)
Final tangent line y = 2*E*x
Check at origin = 0

Fasit: Tangeringspunktet er \(\left(\frac12,e\right)\).

Vanlig feil: Å sette \(f(a)=0\). Tangenten, ikke grafen, skal gå gjennom origo.
Sensorpunkt: Tangentlikningen med generell a og innsetting av origo gir en komplett løsning.
Kilde og metode: Oppgavetekstene er transkribert fra Utdanningsdirektoratets eksamenssett REA3056 Matematikk R1, våren 2026 (LK20). Løsningene er originale. Alle Python-blokker er kjørt ved generering, og lagret utskrift er hentet direkte fra kjøringen. Programkoden i del 1, tabellverdier, figurer, symboler og støttesatsen i del 2 er kontrollert mot de renderte PDF-sidene.