R2 eksamenHøst 2018

Matematikk R2 eksamen – høst 2018

ifingo
Norsk (Bokmål)

ifingo · Matematikk R2

Matematikk R2 - eksamen høst 2018

Løsningsforslag til eksamenssettet fra Utdanningsdirektoratet.

Del 1 - uten hjelpemidler

Del 1 / Oppgave 1aDerivasjon og kjerneregel

Oppgave 1a

Oppgave: Deriver funksjonen \(f(x)=6\cos(2x-1)\).
Original poengangivelse: Oppgave 1 (3 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal derivere en sammensatt cosinusfunksjon. Konstanten 6 beholdes, mens kjerneregelen gir både et minusfortegn og faktoren 2.

  1. Skill mellom ytre og indre funksjon
    Den ytre funksjonen er \(6\cos u\), og kjernen er \(u=2x-1\).
  2. Deriver den ytre funksjonen
    Derivert av \(6\cos u\) med hensyn på \(u\) er \(-6\sin u\).
  3. Deriver kjernen
    \(u\prime=2\).
  4. Bruk kjerneregelen
    \(f\prime(x)=-6\sin(2x-1)\cdot2\).
  5. Forenkle konstantfaktoren
    \(-6\cdot2=-12\).
  6. Skriv endelig svar
    \[f\prime(x)=-12\sin(2x-1)\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Derivative(6*cos(2*x-1),x)
Resultat: \(-12\sin(2x-1)\)
Tolkning: CAS bekrefter minusfortegnet og faktoren 2 fra kjerneregelen.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, cos, sin, diff, simplify

x = symbols('x', real=True)
f = 6*cos(2*x - 1)
derivative = diff(f, x)
expected = -12*sin(2*x - 1)

print("Funksjon f(x) =", f)
print("Derivert f'(x) =", derivative)
print("Forventet uttrykk =", expected)
print("Symbolsk differanse =", simplify(derivative - expected))
print("Kontroll ved x = 1/2:", derivative.subs(x, 1/2).evalf(12))
print("Kontroll ved x = 0:", derivative.subs(x, 0).evalf(12))

assert simplify(derivative - expected) == 0
Kjørt utskriftFunksjon f(x) = 6*cos(2*x - 1)
Derivert f'(x) = -12*sin(2*x - 1)
Forventet uttrykk = -12*sin(2*x - 1)
Symbolsk differanse = 0
Kontroll ved x = 1/2: 0
Kontroll ved x = 0: 10.0976518177

Fasit: \(f\prime(x)=-12\sin(2x-1)\).

Vanlig feil: Å glemme minusfortegnet fra cosinus eller faktoren 2 fra den indre funksjonen.
Sensorpunkt: Sensor ser etter korrekt kjerneregel, konstantfaktor og ryddig sluttresultat.
Del 1 / Oppgave 1bTrigonometrisk identitet og derivasjon

Oppgave 1b

Oppgave: Deriver funksjonen \(g(x)=\cos^2x+\sin^2x\).
Original poengangivelse: Oppgave 1 (3 poeng).
Vis løsning

Hva spør oppgaven om? Uttrykket kan enten deriveres leddvis med kjerneregelen eller forenkles først med identiteten \(\cos^2x+\sin^2x=1\). Begge metoder skal gi null.

  1. Bruk den trigonometriske identiteten
    For alle reelle \(x\) gjelder \(\cos^2x+\sin^2x=1\).
  2. Forenkle funksjonen
    Dermed er \(g(x)=1\).
  3. Deriver konstanten
    Den deriverte av en konstant er 0.
  4. Kontroller ved direkte derivasjon
    \(2\cos x(-\sin x)+2\sin x\cos x=0\).
  5. Se kanselleringen
    De to leddene er motsatte og summerer seg til null.
  6. Skriv svaret
    \[g\prime(x)=0\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Simplify(Derivative(cos(x)^2+sin(x)^2,x))
Resultat: \(0\)
Tolkning: CAS bruker identiteten og viser at den deriverte er null for alle x.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, sin, cos, diff, simplify, trigsimp

x = symbols('x', real=True)
g = cos(x)**2 + sin(x)**2
raw_derivative = diff(g, x)
simplified_function = trigsimp(g)
simplified_derivative = trigsimp(raw_derivative)

print("Funksjon g(x) =", g)
print("Trigonometrisk forenkling av g =", simplified_function)
print("Direkte derivert =", raw_derivative)
print("Forenklet derivert =", simplified_derivative)
print("Kontroll ved x = 0 =", raw_derivative.subs(x, 0))
print("Kontroll ved x = pi/7 =", trigsimp(raw_derivative.subs(x, 3.141592653589793/7)).evalf(12))

assert simplify(simplified_function - 1) == 0
assert simplified_derivative == 0
Kjørt utskriftFunksjon g(x) = sin(x)**2 + cos(x)**2
Trigonometrisk forenkling av g = 1
Direkte derivert = 0
Forenklet derivert = 0
Kontroll ved x = 0 = 0
Kontroll ved x = pi/7 = 0

Fasit: \(g\prime(x)=0\).

Vanlig feil: Å derivere \(\cos^2x\) som \(-\sin^2x\), eller å overse at funksjonen identisk er lik 1.
Sensorpunkt: Sensor ser etter korrekt bruk av identitet eller full kjerneregel med tydelig kansellering.
Del 1 / Oppgave 2aUbestemt integral og potensregel

Oppgave 2a

Oppgave: Bestem integralet \(\displaystyle\int(2x^2-3x)\,dx\).
Original poengangivelse: Oppgave 2 (5 poeng).
Vis løsning

Hva spør oppgaven om? Vi integrerer polynomet ledd for ledd ved hjelp av potensregelen og tar med integrasjonskonstanten.

  1. Del integralet opp
    \(\int(2x^2-3x)dx=2\int x^2dx-3\int xdx\).
  2. Integrer første ledd
    \(\int x^2dx=x^3/3\), så bidraget blir \(2x^3/3\).
  3. Integrer andre ledd
    \(\int xdx=x^2/2\), så bidraget blir \(-3x^2/2\).
  4. Samle leddene
    En stamfunksjon er \(F(x)=\frac23x^3-\frac32x^2\).
  5. Legg til konstanten
    Alle stamfunksjoner skiller seg med en konstant \(C\).
  6. Kontroller ved derivasjon
    \(F\prime(x)=2x^2-3x\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(2*x^2-3*x,x)
Resultat: \(\frac23x^3-\frac32x^2\)
Tolkning: GeoGebra viser én stamfunksjon; den generelle løsningen inkluderer \(+C\).

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, integrate, diff, simplify, Rational

x = symbols('x', real=True)
integrand = 2*x**2 - 3*x
antiderivative = integrate(integrand, x)
expected = Rational(2,3)*x**3 - Rational(3,2)*x**2
check = simplify(diff(expected, x) - integrand)

print("Integrand =", integrand)
print("Stamfunksjon fra SymPy =", antiderivative)
print("Forventet stamfunksjon =", expected)
print("Derivert tilbake =", diff(expected, x))
print("Kontrollforskjell =", check)
print("Eksempelverdi F(2) =", expected.subs(x, 2))

assert simplify(antiderivative - expected) == 0
assert check == 0
Kjørt utskriftIntegrand = 2*x**2 - 3*x
Stamfunksjon fra SymPy = 2*x**3/3 - 3*x**2/2
Forventet stamfunksjon = 2*x**3/3 - 3*x**2/2
Derivert tilbake = 2*x**2 - 3*x
Kontrollforskjell = 0
Eksempelverdi F(2) = -2/3

Fasit: \(\displaystyle\int(2x^2-3x)dx=\frac23x^3-\frac32x^2+C\).

Vanlig feil: Å redusere eksponenten ved integrasjon eller å glemme integrasjonskonstanten.
Sensorpunkt: Sensor ser etter korrekt potensregel, konstantfaktorer og \(+C\).
Del 1 / Oppgave 2bSubstitusjon

Oppgave 2b

Oppgave: Bestem integralet \(\displaystyle\int4x\cos(x^2+2)\,dx\).
Original poengangivelse: Oppgave 2 (5 poeng).
Vis løsning

Hva spør oppgaven om? Argumentet \(x^2+2\) har derivert \(2x\), som allerede finnes som faktor i integranden. Derfor bruker vi substitusjon.

  1. Velg substitusjon
    Sett \(u=x^2+2\).
  2. Finn differensialet
    \(du=2x\,dx\).
  3. Omskriv faktoren
    \(4x\,dx=2\,du\).
  4. Bytt variabel
    Integral blir \(2\int\cos u\,du\).
  5. Integrer cosinus
    \(2\int\cos u\,du=2\sin u+C\).
  6. Sett tilbake
    \[2\sin(x^2+2)+C\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(4*x*cos(x^2+2),x)
Resultat: \(2\sin(x^2+2)\)
Tolkning: CAS bekrefter substitusjonsfaktoren 2 og den sammensatte stamfunksjonen.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, cos, sin, integrate, diff, simplify

x = symbols('x', real=True)
integrand = 4*x*cos(x**2 + 2)
antiderivative = integrate(integrand, x)
expected = 2*sin(x**2 + 2)
residual = simplify(diff(expected, x) - integrand)

print("Integrand =", integrand)
print("Stamfunksjon fra SymPy =", antiderivative)
print("Forventet stamfunksjon =", expected)
print("Derivert av forventet =", diff(expected, x))
print("Residual =", residual)
print("Numerisk kontroll ved x = 1:", residual.subs(x, 1))

assert simplify(antiderivative - expected) == 0
assert residual == 0
Kjørt utskriftIntegrand = 4*x*cos(x**2 + 2)
Stamfunksjon fra SymPy = 2*sin(x**2 + 2)
Forventet stamfunksjon = 2*sin(x**2 + 2)
Derivert av forventet = 4*x*cos(x**2 + 2)
Residual = 0
Numerisk kontroll ved x = 1: 0

Fasit: \(\displaystyle\int4x\cos(x^2+2)dx=2\sin(x^2+2)+C\).

Vanlig feil: Å sette \(u=x^2+2\) uten å justere faktoren fra \(du=2x\,dx\).
Sensorpunkt: Sensor ser etter eksplisitt substitusjon, korrekt faktor og tilbakebytte.
Del 1 / Oppgave 2cDelbrøkoppspalting

Oppgave 2c

Oppgave: Bestem integralet \(\displaystyle\int\frac{4}{x^2-4}\,dx\).
Original poengangivelse: Oppgave 2 (5 poeng).
Vis løsning

Hva spør oppgaven om? Nevneren faktoriseres i to lineære faktorer. Delbrøkoppspalting gir to standardintegraler med logaritmer.

  1. Faktoriser nevneren
    \(x^2-4=(x-2)(x+2)\).
  2. Sett opp delbrøkene
    \(\frac4{(x-2)(x+2)}=\frac A{x-2}+\frac B{x+2}\).
  3. Bestem A
    Sett \(x=2\): \(4=4A\), altså \(A=1\).
  4. Bestem B
    Sett \(x=-2\): \(4=-4B\), altså \(B=-1\).
  5. Integrer leddvis
    \(\int\left(\frac1{x-2}-\frac1{x+2}\right)dx\).
  6. Skriv svaret og domenet
    \[\ln|x-2|-\ln|x+2|+C,\qquad x\ne\pm2\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1PartialFractions(4/(x^2-4))
Resultat: \(\frac1{x-2}-\frac1{x+2}\)
Tolkning: Oppspaltingen gir to logaritmeintegraler.
2Integral(4/(x^2-4),x)
Resultat: \(\ln|x-2|-\ln|x+2|\)
Tolkning: Svaret gjelder på intervaller som ikke krysser singularitetene \(x=\pm2\).

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, apart, integrate, diff, simplify, log

x = symbols('x', real=True)
integrand = 4/(x**2 - 4)
partial = apart(integrand, x)
antiderivative = integrate(integrand, x)
# På hvert intervall som ikke krysser x=±2 har logaritmeformen samme derivert.
log_form = log(x-2) - log(x+2)
expected_derivative = diff(log_form, x)

print("Integrand =", integrand)
print("Faktorisert nevner = (x - 2)*(x + 2)")
print("Delbrøkoppspalting =", partial)
print("Stamfunksjon fra SymPy =", antiderivative)
print("Derivert av logaritmeformen =", simplify(expected_derivative))
print("Kontrollforskjell =", simplify(expected_derivative - integrand))
print("Utelukkede x-verdier: -2 og 2")

assert simplify(partial - (1/(x-2)-1/(x+2))) == 0
assert simplify(expected_derivative - integrand) == 0
Kjørt utskriftIntegrand = 4/(x**2 - 4)
Faktorisert nevner = (x - 2)*(x + 2)
Delbrøkoppspalting = -1/(x + 2) + 1/(x - 2)
Stamfunksjon fra SymPy = log(x - 2) - log(x + 2)
Derivert av logaritmeformen = 4/(x**2 - 4)
Kontrollforskjell = 0
Utelukkede x-verdier: -2 og 2

Fasit: \(\displaystyle\ln|x-2|-\ln|x+2|+C=\ln\left|\frac{x-2}{x+2}\right|+C\), for \(x\ne\pm2\).

Vanlig feil: Å glemme absoluttverdier, bruke feil fortegn i delbrøkene eller overse at \(x=\pm2\) ikke er i definisjonsmengden.
Sensorpunkt: Sensor ser etter faktorisering, korrekte koeffisienter, logaritmer og domene.
Del 1 / Oppgave 3aGeometrisk rekke og konvergens

Oppgave 3a

Oppgave: Den geometriske rekken er \(S(x)=1+e^{-x}+e^{-2x}+e^{-3x}+\cdots\). For hvilke verdier av \(x\) konvergerer rekken?
Original poengangivelse: Oppgave 3 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi identifiserer kvotienten \(q=e^{-x}\) og bruker kravet \(|q|<1\) for en uendelig geometrisk rekke.

  1. Identifiser første ledd
    Første ledd er \(a_1=1\).
  2. Identifiser kvotienten
    Hvert ledd fås ved å multiplisere med \(q=e^{-x}\).
  3. Bruk konvergenskravet
    Rekken konvergerer når \(|e^{-x}|<1\).
  4. Bruk at eksponentialfunksjonen er positiv
    \(|e^{-x}|=e^{-x}\).
  5. Løs ulikheten
    \(e^{-x}<1\) gjelder akkurat når \(-x<0\), altså \(x>0\).
  6. Kontroller grensen
    Ved \(x=0\) er \(q=1\), og rekken divergerer. Dermed er grensen ikke med.
Sumfunksjonen er definert for x>0 og nærmer seg 1 når x øker.
Sumfunksjonen er definert for x>0 og nærmer seg 1 når x øker.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(abs(exp(-x))<1,x)
Resultat: \(x>0\)
Tolkning: CAS bekrefter det åpne konvergensområdet.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, exp, Abs, solve_univariate_inequality

x = symbols('x', real=True)
q = exp(-x)
condition = Abs(q) < 1
solution = solve_univariate_inequality(condition, x)

print("Kvotient q =", q)
print("Konvergenskrav =", condition)
print("Løsningsmengde =", solution)
print("q ved x = 0 =", q.subs(x, 0))
print("q ved x = 1 =", q.subs(x, 1).evalf(12))
print("q ved x = -1 =", q.subs(x, -1).evalf(12))

assert str(solution) == "0 < x"
Kjørt utskriftKvotient q = exp(-x)
Konvergenskrav = exp(-x) < 1
Løsningsmengde = 0 < x
q ved x = 0 = 1
q ved x = 1 = 0.367879441171
q ved x = -1 = 2.71828182846

Fasit: Rekken konvergerer for \(x>0\).

Vanlig feil: Å bruke \(q<1\) uten absoluttverdi eller å ta med \(x=0\).
Sensorpunkt: Sensor ser etter kvotienten, absoluttverdikravet og korrekt åpent intervall.
Del 1 / Oppgave 3bSum av geometrisk rekke

Oppgave 3b

Oppgave: Bestem \(x\) slik at rekken \(S(x)=1+e^{-x}+e^{-2x}+\cdots\) konvergerer mot 3.
Original poengangivelse: Oppgave 3 (4 poeng).
Vis løsning

Hva spør oppgaven om? Innen konvergensområdet bruker vi sumformelen \(S=a_1/(1-q)\) og løser den resulterende eksponentiallikningen.

  1. Skriv sumformelen
    \(S(x)=\frac1{1-e^{-x}}\), for \(x>0\).
  2. Sett summen lik 3
    \(\frac1{1-e^{-x}}=3\).
  3. Inverter likningen
    \(1-e^{-x}=\frac13\).
  4. Isoler eksponentialleddet
    \(e^{-x}=\frac23\).
  5. Ta naturlig logaritme
    \(-x=\ln(2/3)\).
  6. Isoler og kontroller x
    \[x=-\ln(2/3)=\ln(3/2)>0\]
Den horisontale linjen S=3 skjærer sumfunksjonen ved x=ln(3/2).
Den horisontale linjen S=3 skjærer sumfunksjonen ved x=ln(3/2).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(1/(1-exp(-x))=3,x)
Resultat: \(x=\ln(3/2)\)
Tolkning: Løsningen ligger i konvergensområdet \(x>0\).

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, exp, log, solve, Eq, simplify, N, Rational

x = symbols('x', real=True)
S = 1/(1-exp(-x))
solutions = solve(Eq(S, 3), x)
expected = log(Rational(3,2))
check = simplify(S.subs(x, expected))

print("Sumfunksjon S(x) =", S)
print("Likning S(x) = 3")
print("Løsninger fra SymPy =", solutions)
print("Eksakt løsning =", expected)
print("Desimalverdi =", N(expected, 12))
print("Kontroll S(ln(3/2)) =", check)
print("Ligger løsningen i x > 0?", bool(expected > 0))

assert simplify(solutions[0] - expected) == 0
assert check == 3
Kjørt utskriftSumfunksjon S(x) = 1/(1 - exp(-x))
Likning S(x) = 3
Løsninger fra SymPy = [log(3/2)]
Eksakt løsning = log(3/2)
Desimalverdi = 0.405465108108
Kontroll S(ln(3/2)) = 3
Ligger løsningen i x > 0? True

Fasit: \(x=\ln(3/2)\approx0{,}4055\).

Vanlig feil: Å løse den algebraiske likningen uten å kontrollere at \(x\) ligger i konvergensområdet.
Sensorpunkt: Sensor ser etter korrekt sumformel, logaritmeregning og domenekontroll.
Del 1 / Oppgave 4aTrigonometriske grafer

Oppgave 4a

Oppgave: Funksjonene er \(f(x)=\sin x\) og \(g(x)=\cos x\) for \(0\le x\le2\pi\). Lag en skisse av grafene i samme koordinatsystem.
Original poengangivelse: Oppgave 4 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal bruke kjente nøkkelpunkter for sinus og cosinus og tegne begge grafene på ett helt omløp.

  1. Marker intervallet
    Begge funksjonene tegnes for \(0\le x\le2\pi\).
  2. Finn nøkkelpunkter for sinus
    \(\sin x\) har nullpunkter ved \(0,\pi,2\pi\), topp ved \(\pi/2\) og bunn ved \(3\pi/2\).
  3. Finn nøkkelpunkter for cosinus
    \(\cos x\) starter i 1, har nullpunkter ved \(\pi/2\) og \(3\pi/2\), og minimum ved \(\pi\).
  4. Bruk samme skala
    Begge grafene har amplitude 1 og periode \(2\pi\).
  5. Tegn glatte kurver
    Koble nøkkelpunktene med den vanlige sinusformen.
  6. Kontroller faseforskyvningen
    Cosinus ligger \(\pi/2\) foran sinus, siden \(\cos x=\sin(x+\pi/2)\).
Sinus- og cosinusgrafene med skjæringspunkter og det avgrensede området.
Sinus- og cosinusgrafene med skjæringspunkter og det avgrensede området.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1f(x)=sin(x)
Resultat: Sinusgraf på \([0,2\pi]\)
Tolkning: Grafen har amplitude 1 og periode \(2\pi\).
2g(x)=cos(x)
Resultat: Cosinusgraf på \([0,2\pi]\)
Tolkning: Grafen er faseforskjøvet \(\pi/2\) i forhold til sinus.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import pi, sin, cos, simplify

key_x = [0, pi/2, pi, 3*pi/2, 2*pi]
sine_values = [simplify(sin(v)) for v in key_x]
cosine_values = [simplify(cos(v)) for v in key_x]

print("Nøkkelpunkter x =", key_x)
print("sinusverdier =", sine_values)
print("cosinusverdier =", cosine_values)
print("Amplitude for begge funksjoner = 1")
print("Periode for begge funksjoner =", 2*pi)
print("Kontroll cos(x) = sin(x + pi/2):")
for value in key_x:
    print(value, simplify(cos(value)-sin(value+pi/2)))

assert all(simplify(cos(v)-sin(v+pi/2)) == 0 for v in key_x)
Kjørt utskriftNøkkelpunkter x = [0, pi/2, pi, 3*pi/2, 2*pi]
sinusverdier = [0, 1, 0, -1, 0]
cosinusverdier = [1, 0, -1, 0, 1]
Amplitude for begge funksjoner = 1
Periode for begge funksjoner = 2*pi
Kontroll cos(x) = sin(x + pi/2):
0 0
pi/2 0
pi 0
3*pi/2 0
2*pi 0

Fasit: Skissen skal vise standardgrafene til sinus og cosinus på \([0,2\pi]\).

Vanlig feil: Å bruke grader i stedet for radianer eller å plassere topp- og bunnpunkter på feil x-verdier.
Sensorpunkt: Sensor ser etter riktige akser, radianverdier, amplitude, periode og begge kurvene i samme system.
Del 1 / Oppgave 4bTrigonometrisk likning

Oppgave 4b

Oppgave: Bestem eventuelle skjæringspunkt mellom grafene til \(f(x)=\sin x\) og \(g(x)=\cos x\) på \([0,2\pi]\).
Original poengangivelse: Oppgave 4 (6 poeng).
Vis løsning

Hva spør oppgaven om? Skjæringspunkter finnes ved å løse \(\sin x=\cos x\) og deretter beregne den felles y-verdien.

  1. Sett funksjonene lik hverandre
    \(\sin x=\cos x\).
  2. Del på cosinus
    I løsningene er \(\cos x\ne0\), så \(\tan x=1\).
  3. Skriv generell løsning
    \(x=\pi/4+k\pi\), der \(k\in\mathbb Z\).
  4. Filtrer intervallet
    På \([0,2\pi]\) får vi \(x=\pi/4\) og \(x=5\pi/4\).
  5. Finn y-verdiene
    Ved \(\pi/4\) er y-verdien \(\sqrt2/2\), og ved \(5\pi/4\) er den \(-\sqrt2/2\).
  6. Skriv punktene
    \[\left(\frac\pi4,\frac{\sqrt2}{2}\right),\qquad\left(\frac{5\pi}{4},-\frac{\sqrt2}{2}\right)\]
De to markerte punktene er de eneste skjæringspunktene på intervallet.
De to markerte punktene er de eneste skjæringspunktene på intervallet.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(sin(x)=cos(x),x)
Resultat: \(x=\pi/4+k\pi\)
Tolkning: Når løsningen avgrenses til \([0,2\pi]\), beholdes to x-verdier.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, sin, cos, pi, sqrt, solveset, Interval, simplify

x = symbols('x', real=True)
solutions = solveset(sin(x)-cos(x), x, domain=Interval(0, 2*pi))
points = [(value, simplify(sin(value))) for value in solutions]

print("Likning: sin(x) = cos(x)")
print("Løsninger på [0, 2*pi] =", solutions)
print("Skjæringspunkter =", points)
for value, y_value in points:
    print("x =", value, "sin(x) =", y_value, "cos(x) =", simplify(cos(value)))
print("Antall skjæringspunkter =", len(points))

assert set(solutions) == {pi/4, 5*pi/4}
assert points[0][1] in {sqrt(2)/2, -sqrt(2)/2}
Kjørt utskriftLikning: sin(x) = cos(x)
Løsninger på [0, 2*pi] = {pi/4, 5*pi/4}
Skjæringspunkter = [(pi/4, sqrt(2)/2), (5*pi/4, -sqrt(2)/2)]
x = pi/4 sin(x) = sqrt(2)/2 cos(x) = sqrt(2)/2
x = 5*pi/4 sin(x) = -sqrt(2)/2 cos(x) = -sqrt(2)/2
Antall skjæringspunkter = 2

Fasit: Skjæringspunktene er \(\left(\pi/4,\sqrt2/2\right)\) og \(\left(5\pi/4,-\sqrt2/2\right)\).

Vanlig feil: Å bare finne \(x=\pi/4\), eller å oppgi x-verdier uten tilhørende y-koordinater.
Sensorpunkt: Sensor ser etter generell løsning, intervallkontroll og fullstendige koordinater.
Del 1 / Oppgave 4cAreal mellom grafer

Oppgave 4c

Oppgave: Grafene til \(f(x)=\sin x\) og \(g(x)=\cos x\) avgrenser et område. Bestem arealet.
Original poengangivelse: Oppgave 4 (6 poeng).
Vis løsning

Hva spør oppgaven om? Det lukkede området ligger mellom skjæringspunktene \(x=\pi/4\) og \(x=5\pi/4\). På dette intervallet ligger sinus over cosinus.

  1. Finn integrasjonsgrensene
    Grensene er skjæringsverdiene \(\pi/4\) og \(5\pi/4\).
  2. Bestem øvre graf
    Ved \(x=\pi/2\) er \(\sin x=1\) og \(\cos x=0\), så \(f\) ligger over \(g\).
  3. Sett opp arealintegralet
    \(A=\int_{\pi/4}^{5\pi/4}(\sin x-\cos x)dx\).
  4. Finn en stamfunksjon
    En stamfunksjon er \(-\cos x-\sin x\).
  5. Sett inn grensene
    Ved øvre grense fås \(\sqrt2\), og ved nedre grense fås \(-\sqrt2\).
  6. Trekk fra
    \[A=\sqrt2-(-\sqrt2)=2\sqrt2\]
Det fargelagte området mellom x=π/4 og x=5π/4 har areal 2√2.
Det fargelagte området mellom x=π/4 og x=5π/4 har areal 2√2.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(sin(x)-cos(x),x,pi/4,5*pi/4)
Resultat: \(2\sqrt2\)
Tolkning: CAS integrerer øvre graf minus nedre graf mellom skjæringspunktene.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, sin, cos, pi, integrate, simplify, sqrt, N

x = symbols('x', real=True)
integrand = sin(x) - cos(x)
lower = pi/4
upper = 5*pi/4
antiderivative = integrate(integrand, x)
area = simplify(integrate(integrand, (x, lower, upper)))

print("Integrand (øvre - nedre) =", integrand)
print("Nedre grense =", lower)
print("Øvre grense =", upper)
print("Stamfunksjon =", antiderivative)
print("Eksakt areal =", area)
print("Desimalareal =", N(area, 12))
print("Kontroll mot 2*sqrt(2) =", simplify(area-2*sqrt(2)))

assert simplify(area-2*sqrt(2)) == 0
assert area > 0
Kjørt utskriftIntegrand (øvre - nedre) = sin(x) - cos(x)
Nedre grense = pi/4
Øvre grense = 5*pi/4
Stamfunksjon = -sin(x) - cos(x)
Eksakt areal = 2*sqrt(2)
Desimalareal = 2.82842712475
Kontroll mot 2*sqrt(2) = 0

Fasit: Arealet er \(2\sqrt2\approx2{,}828\).

Vanlig feil: Å integrere fra 0 til \(2\pi\), eller å glemme å bruke øvre graf minus nedre graf.
Sensorpunkt: Sensor ser etter riktige skjæringsgrenser, korrekt fortegn og eksakt areal.
Del 1 / Oppgave 5aHarmonisk bevegelse

Oppgave 5a

Oppgave: En bøye bruker 4 s fra høyeste til laveste punkt og beveger seg 2,4 m vertikalt. Anta at \(f(t)=A\sin(ct+\varphi)\), og at bøyen er høyest når \(t=0\). Bestem \(f\).
Original poengangivelse: Oppgave 5 (4 poeng).
Vis løsning

Hva spør oppgaven om? Avstanden fra topp til bunn er to amplituder, og tiden fra topp til bunn er en halv periode. Dette bestemmer A, periode, vinkelhastighet og fase.

  1. Bestem amplituden
    Topp-til-bunn-avstanden er \(2A=2{,}4\), så \(A=1{,}2\).
  2. Bestem perioden
    Fire sekunder er en halv periode, derfor er \(T=8\) s.
  3. Bestem vinkelhastigheten
    \(c=2\pi/T=\pi/4\).
  4. Bruk startbetingelsen
    Når \(t=0\), skal sinusverdien være 1.
  5. Bestem fasen
    \(\sin\varphi=1\), og vi kan velge \(\varphi=\pi/2\).
  6. Skriv modellen
    \[f(t)=1{,}2\sin\left(\frac\pi4t+\frac\pi2\right)=1{,}2\cos\left(\frac\pi4t\right)\]
Modellen starter i høyeste punkt, når laveste punkt etter 4 s og gjentar seg etter 8 s.
Modellen starter i høyeste punkt, når laveste punkt etter 4 s og gjentar seg etter 8 s.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1f(t)=1.2*sin(pi*t/4+pi/2)
Resultat: \(f(t)=1{,}2\cos(\pi t/4)\)
Tolkning: Modellen har amplitude 1,2, periode 8 s og maksimum ved t=0.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, sin, cos, pi, simplify, diff

t = symbols('t', real=True)
A = 1.2
T = 8
c = 2*pi/T
phi = pi/2
f = A*sin(c*t + phi)
cosine_form = A*cos(pi*t/4)

print("Amplitude A =", A)
print("Periode T =", T)
print("Vinkelhastighet c =", c)
print("Fase phi =", phi)
print("Sinusform f(t) =", f)
print("Cosinusform =", cosine_form)
print("Kontroll f(0) =", f.subs(t, 0))
print("Kontroll f(4) =", f.subs(t, 4))
print("Symbolsk forskjell mellom formene =", simplify(f-cosine_form))

assert simplify(f-cosine_form) == 0
assert abs(float(f.subs(t,0))-1.2) < 1e-12
assert abs(float(f.subs(t,4))+1.2) < 1e-12
Kjørt utskriftAmplitude A = 1.2
Periode T = 8
Vinkelhastighet c = pi/4
Fase phi = pi/2
Sinusform f(t) = 1.2*cos(pi*t/4)
Cosinusform = 1.2*cos(pi*t/4)
Kontroll f(0) = 1.20000000000000
Kontroll f(4) = -1.20000000000000
Symbolsk forskjell mellom formene = 0

Fasit: \(f(t)=1{,}2\sin(\pi t/4+\pi/2)\), ekvivalent med \(f(t)=1{,}2\cos(\pi t/4)\).

Vanlig feil: Å bruke 4 s som hele perioden eller 2,4 m som amplituden.
Sensorpunkt: Sensor ser etter amplitude 1,2 m, periode 8 s, \(c=\pi/4\) og korrekt fase.
Del 1 / Oppgave 5bTrigonometrisk modell og tidspunkt

Oppgave 5b

Oppgave: Når er bøyen 0,6 m over likevektslinjen i løpet av de 10 første sekundene?
Original poengangivelse: Oppgave 5 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi setter høydefunksjonen lik 0,6 og finner alle løsninger i intervallet \(0\le t\le10\).

  1. Sett opp likningen
    \(1{,}2\cos(\pi t/4)=0{,}6\).
  2. Del på amplituden
    \(\cos(\pi t/4)=1/2\).
  3. Bruk standardvinklene
    \(\theta=\pm\pi/3+2k\pi\).
  4. Gå tilbake til t
    \(\pi t/4=\pm\pi/3+2k\pi\).
  5. Finn kandidater i intervallet
    Dette gir \(t=4/3\), \(20/3\) og \(28/3\) i de første 10 sekundene.
  6. Kontroller høyden
    Alle tre verdiene gir \(f(t)=0{,}6\).
Den stiplede linjen y=0,6 skjærer bevegelseskurven tre ganger i de første 10 sekundene.
Den stiplede linjen y=0,6 skjærer bevegelseskurven tre ganger i de første 10 sekundene.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(1.2*cos(pi*t/4)=0.6,t)
Resultat: \(t=4/3+8k\) eller \(t=-4/3+8k\)
Tolkning: Filtrering til \([0,10]\) gir tre tidspunkter.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, cos, pi, solveset, Interval, Rational, simplify, N

t = symbols('t', real=True)
f = Rational(6,5)*cos(pi*t/4)
solutions = solveset(f-Rational(3,5), t, domain=Interval(0,10))
values = sorted(list(solutions), key=lambda z: float(z))

print("Høydefunksjon f(t) =", f)
print("Likning f(t) = 3/5")
print("Løsninger på [0,10] =", solutions)
for value in values:
    print("t =", value, "≈", N(value,10), "og f(t) =", simplify(f.subs(t,value)))
print("Antall tidspunkter =", len(values))

expected = {Rational(4,3), Rational(20,3), Rational(28,3)}
assert set(values) == expected
assert all(simplify(f.subs(t,v)-Rational(3,5)) == 0 for v in values)
Kjørt utskriftHøydefunksjon f(t) = 6*cos(pi*t/4)/5
Likning f(t) = 3/5
Løsninger på [0,10] = {4/3, 20/3, 28/3}
t = 4/3 ≈ 1.333333333 og f(t) = 3/5
t = 20/3 ≈ 6.666666667 og f(t) = 3/5
t = 28/3 ≈ 9.333333333 og f(t) = 3/5
Antall tidspunkter = 3

Fasit: Bøyen er 0,6 m over likevektslinjen ved \(t=4/3\), \(20/3\) og \(28/3\) s, altså omtrent 1,33 s, 6,67 s og 9,33 s.

Vanlig feil: Å oppgi bare den første løsningen eller å bruke grader i stedet for radianer.
Sensorpunkt: Sensor ser etter alle løsninger i tidsintervallet og korrekt intervallkontroll.
Del 1 / Oppgave 6aRetningsdiagram

Oppgave 6a

Oppgave: Retningsdiagrammet tilhører én av likningene \(y\prime=x+y\), \(y\prime=x/y\) og \(y\prime=xy\). Avgjør hvilke to som ikke kan ha diagrammet.
Original poengangivelse: Oppgave 6 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi sammenligner karakteristiske helninger langs koordinataksene. Figuren viser horisontale retningsstreker på y-aksen og svært bratte retninger nær x-aksen.

  1. Undersøk y-aksen i figuren
    Når \(x=0\), er helningen 0 for alle \(y\ne0\).
  2. Test likning 1
    For \(y\prime=x+y\) blir helningen på y-aksen \(y\), ikke 0. Likning 1 passer ikke.
  3. Test likning 3 på x-aksen
    For \(y\prime=xy\) blir helningen 0 langs hele x-aksen.
  4. Sammenlign med figuren
    Figuren viser i stedet svært bratte retningsstreker nær x-aksen når \(x\ne0\). Likning 3 passer ikke.
  5. Test likning 2
    For \(y\prime=x/y\) er helningen 0 på y-aksen og udefinert/stor nær x-aksen.
  6. Konkluder
    Diagrammet tilhører likning 2; likning 1 og 3 kan ikke passe.
Retningsfeltet for y′=x/y er horisontalt på y-aksen og blir bratt nær x-aksen.
Retningsfeltet for y′=x/y er horisontalt på y-aksen og blir bratt nær x-aksen.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1m1(x,y)=x+y; m2(x,y)=x/y; m3(x,y)=x*y
Resultat: På x=0: \(m_1=y\), \(m_2=0\), \(m_3=0\)
Tolkning: Bare \(x/y\) kombinerer nullhelning på y-aksen med vertikal tendens nær x-aksen.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, simplify, limit, oo

x, y = symbols('x y', real=True)
m1 = x + y
m2 = x/y
m3 = x*y

print("Helningsfunksjon 1 =", m1)
print("Helningsfunksjon 2 =", m2)
print("Helningsfunksjon 3 =", m3)
print("På y-aksen (x=0):", m1.subs(x,0), m2.subs(x,0), m3.subs(x,0))
print("På x-aksen for likning 3 (y=0):", m3.subs(y,0))
print("Grense for x/y når y går mot 0 fra høyre og x=1:", limit(m2.subs(x,1), y, 0, dir='+'))
print("Grense for x/y når y går mot 0 fra venstre og x=1:", limit(m2.subs(x,1), y, 0, dir='-'))

assert m2.subs(x,0) == 0
assert m3.subs(y,0) == 0
assert limit(m2.subs(x,1), y, 0, dir='+') == oo
Kjørt utskriftHelningsfunksjon 1 = x + y
Helningsfunksjon 2 = x/y
Helningsfunksjon 3 = x*y
På y-aksen (x=0): y 0 0
På x-aksen for likning 3 (y=0): 0
Grense for x/y når y går mot 0 fra høyre og x=1: oo
Grense for x/y når y går mot 0 fra venstre og x=1: -oo

Fasit: Likning 1 og 3 kan ikke ha diagrammet. Diagrammet tilhører \(y\prime=x/y\).

Vanlig feil: Å bare se på ett punkt i feltet eller å overse at \(x/y\) ikke er definert på x-aksen.
Sensorpunkt: Sensor ser etter en begrunnelse basert på helninger langs aksene, ikke bare et gjetningssvar.
Del 1 / Oppgave 6bSeparerbar differensiallikning

Oppgave 6b

Oppgave: Løs differensiallikningen som retningsdiagrammet tilhører.
Original poengangivelse: Oppgave 6 (4 poeng).
Vis løsning

Hva spør oppgaven om? Likningen er \(y\prime=x/y\). Den er separabel, og vi kan samle y-ledd på venstre side og x-ledd på høyre side.

  1. Skriv med differensialer
    \(dy/dx=x/y\).
  2. Separer variablene
    \(y\,dy=x\,dx\).
  3. Integrer begge sider
    \(\int y\,dy=\int x\,dx\).
  4. Beregn integralene
    \(y^2/2=x^2/2+C_1\).
  5. Samle konstanten
    \(y^2-x^2=C\).
  6. Skriv eksplisitt ved behov
    \(y=\pm\sqrt{x^2+C}\), på intervaller der uttrykket er definert og \(y\ne0\).
Noen kurver y²−x²=C følger retningsfeltet.
Noen kurver y²−x²=C følger retningsfeltet.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1SolveODE(y\prime=x/y)
Resultat: \(y^2-x^2=C\)
Tolkning: CAS gir den implisitte familien av hyperbelliknende løsningskurver.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, Function, Eq, diff, dsolve, simplify

x = symbols('x', real=True)
y = Function('y')
ode = Eq(diff(y(x), x), x/y(x))
solution = dsolve(ode)
implicit_expression = y(x)**2 - x**2
check_derivative = diff(implicit_expression, x)

print("Differensiallikning =", ode)
print("Løsning fra SymPy =", solution)
print("Implisitt løsningsfamilie: y(x)^2 - x^2 = C")
print("Derivert av venstresiden =", check_derivative)
print("Setter vi y' = x/y inn, får vi =", simplify(check_derivative.subs(diff(y(x),x), x/y(x))))
print("Eksplisitte grener: y = sqrt(x^2 + C) eller y = -sqrt(x^2 + C)")

assert simplify(check_derivative.subs(diff(y(x),x), x/y(x))) == 0
Kjørt utskriftDifferensiallikning = Eq(Derivative(y(x), x), x/y(x))
Løsning fra SymPy = [Eq(y(x), -sqrt(C1 + x**2)), Eq(y(x), sqrt(C1 + x**2))]
Implisitt løsningsfamilie: y(x)^2 - x^2 = C
Derivert av venstresiden = -2*x + 2*y(x)*Derivative(y(x), x)
Setter vi y' = x/y inn, får vi = 0
Eksplisitte grener: y = sqrt(x^2 + C) eller y = -sqrt(x^2 + C)

Fasit: Den generelle løsningen er \(y^2-x^2=C\), eller \(y=\pm\sqrt{x^2+C}\).

Vanlig feil: Å integrere \(y\,dy\) som \(y^2\) uten faktoren 1/2, eller å glemme de to eksplisitte grenene.
Sensorpunkt: Sensor ser etter separasjon, integrasjon og korrekt konstantbehandling.
Del 1 / Oppgave 7aVektorer i rommet

Oppgave 7a

Oppgave: Gitt \(A=(-1,1,1)\), \(B=(1,-1,0)\) og \(C=(-1,0,2)\). Bestem \(\overrightarrow{AB}\) og \(\overrightarrow{AC}\).
Original poengangivelse: Oppgave 7 (7 poeng).
Vis løsning

Hva spør oppgaven om? En vektor fra et punkt til et annet finnes ved å trekke koordinatene til startpunktet fra koordinatene til endepunktet.

  1. Skriv punktene
    \(A=(-1,1,1)\), \(B=(1,-1,0)\), \(C=(-1,0,2)\).
  2. Beregn AB i x-retning
    \(1-(-1)=2\).
  3. Beregn AB i y- og z-retning
    \(-1-1=-2\) og \(0-1=-1\).
  4. Samle AB
    \(\overrightarrow{AB}=(2,-2,-1)\).
  5. Beregn AC
    \((-1)-(-1)=0\), \(0-1=-1\), \(2-1=1\).
  6. Samle AC
    \[\overrightarrow{AC}=(0,-1,1)\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Vector(A,B)
Resultat: \((2,-2,-1)\)
Tolkning: Vektoren går fra A til B.
2Vector(A,C)
Resultat: \((0,-1,1)\)
Tolkning: Vektoren går fra A til C.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import Matrix

A = Matrix([-1,1,1])
B = Matrix([1,-1,0])
C = Matrix([-1,0,2])
AB = B - A
AC = C - A

print("A =", A.T)
print("B =", B.T)
print("C =", C.T)
print("AB = B - A =", AB.T)
print("AC = C - A =", AC.T)
print("Lengde AB =", AB.norm())
print("Lengde AC =", AC.norm())

assert AB == Matrix([2,-2,-1])
assert AC == Matrix([0,-1,1])
Kjørt utskriftA = Matrix([[-1, 1, 1]])
B = Matrix([[1, -1, 0]])
C = Matrix([[-1, 0, 2]])
AB = B - A = Matrix([[2, -2, -1]])
AC = C - A = Matrix([[0, -1, 1]])
Lengde AB = 3
Lengde AC = sqrt(2)

Fasit: \(\overrightarrow{AB}=(2,-2,-1)\) og \(\overrightarrow{AC}=(0,-1,1)\).

Vanlig feil: Å trekke i motsatt rekkefølge og dermed få \(\overrightarrow{BA}\) eller \(\overrightarrow{CA}\).
Sensorpunkt: Sensor ser etter komponentvis subtraksjon i riktig retning.
Del 1 / Oppgave 7bPlanlikning og punktkontroll

Oppgave 7b

Oppgave: Vis at punktene A, B og C ligger i planet \(3x+2y+2z-1=0\).
Original poengangivelse: Oppgave 7 (7 poeng).
Vis løsning

Hva spør oppgaven om? Et punkt ligger i planet dersom koordinatene innsatt i venstresiden gir 0. Vi kontrollerer alle tre punktene.

  1. Definer planuttrykket
    \(P(x,y,z)=3x+2y+2z-1\).
  2. Sett inn A
    \(3(-1)+2(1)+2(1)-1=0\).
  3. Sett inn B
    \(3(1)+2(-1)+2(0)-1=0\).
  4. Sett inn C
    \(3(-1)+2(0)+2(2)-1=0\).
  5. Tolk resultatene
    Alle tre innsettingene gir 0.
  6. Konkluder
    Dermed ligger A, B og C i det oppgitte planet.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Substitute(3x+2y+2z-1,{x=-1,y=1,z=1})
Resultat: \(0\)
Tolkning: Punkt A oppfyller planlikningen.
2Substitute(...,B), Substitute(...,C)
Resultat: \(0,0\)
Tolkning: Også B og C ligger i planet.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols

x, y, z = symbols('x y z', real=True)
plane = 3*x + 2*y + 2*z - 1
points = {
    "A": (-1,1,1),
    "B": (1,-1,0),
    "C": (-1,0,2),
}

print("Planuttrykk =", plane)
results = {}
for name, point in points.items():
    value = plane.subs({x:point[0], y:point[1], z:point[2]})
    results[name] = value
    print(f"{name}{point}: planuttrykk = {value}")
print("Alle verdier er 0?", all(value == 0 for value in results.values()))
print("Normalvektor til planet = (3, 2, 2)")

assert all(value == 0 for value in results.values())
Kjørt utskriftPlanuttrykk = 3*x + 2*y + 2*z - 1
A(-1, 1, 1): planuttrykk = 0
B(1, -1, 0): planuttrykk = 0
C(-1, 0, 2): planuttrykk = 0
Alle verdier er 0? True
Normalvektor til planet = (3, 2, 2)

Fasit: A, B og C ligger i planet fordi planuttrykket blir 0 for hvert punkt.

Vanlig feil: Å kontrollere bare ett av punktene eller å regne feil med negative koordinater.
Sensorpunkt: Sensor ser etter eksplisitt innsetting av alle tre punktene og en tydelig konklusjon.
Del 1 / Oppgave 7cVolum av tetraeder med parameter

Oppgave 7c

Oppgave: Gitt \(D=(s^2-1,3s+1,10)\). Bestem volumet av tetraederet ABCD uttrykt ved s.
Original poengangivelse: Oppgave 7 (7 poeng).
Vis løsning

Hva spør oppgaven om? Volumet er en sjettedel av absoluttverdien til skalartrippelproduktet \((AB\times AC)\cdot AD\).

  1. Finn AD
    \(\overrightarrow{AD}=D-A=(s^2,3s,9)\).
  2. Bruk vektorene fra a
    \(AB=(2,-2,-1)\) og \(AC=(0,-1,1)\).
  3. Beregn kryssproduktet
    \(AB\times AC=(-3,-2,-2)\).
  4. Finn skalartrippelproduktet
    \((-3,-2,-2)\cdot(s^2,3s,9)=-3s^2-6s-18\).
  5. Ta absoluttverdi og del på 6
    \(V=\frac16|-3(s^2+2s+6)|\).
  6. Forenkle fortegnet
    Siden \(s^2+2s+6=(s+1)^2+5>0\), blir \[V(s)=\frac{s^2+2s+6}{2}\]
Volumfunksjonen er en oppadgående parabel og er alltid positiv.
Volumfunksjonen er en oppadgående parabel og er alltid positiv.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Abs(Determinant({{2,0,s^2},{-2,-1,3s},{-1,1,9}}))/6
Resultat: \(\frac{s^2+2s+6}{2}\)
Tolkning: Determinanten gir seks ganger det orienterte volumet; absoluttverdien gjør volumet positivt.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, Matrix, factor, simplify, Abs, Rational

s = symbols('s', real=True)
AB = Matrix([2,-2,-1])
AC = Matrix([0,-1,1])
AD = Matrix([s**2,3*s,9])
cross = AB.cross(AC)
triple = simplify(cross.dot(AD))
volume = simplify(Abs(triple)/6)
positive_form = simplify((s**2+2*s+6)/2)

print("AB =", AB.T)
print("AC =", AC.T)
print("AD =", AD.T)
print("AB x AC =", cross.T)
print("Skalartrippelprodukt =", triple)
print("Faktorisert =", factor(triple))
print("Volum med absoluttverdi =", volume)
print("Forenklet positiv form =", positive_form)
print("s^2 + 2s + 6 = (s+1)^2 + 5 > 0")

assert cross == Matrix([-3,-2,-2])
assert triple == -3*(s**2+2*s+6)
Kjørt utskriftAB = Matrix([[2, -2, -1]])
AC = Matrix([[0, -1, 1]])
AD = Matrix([[s**2, 3*s, 9]])
AB x AC = Matrix([[-3, -2, -2]])
Skalartrippelprodukt = -3*s**2 - 6*s - 18
Faktorisert = -3*(s**2 + 2*s + 6)
Volum med absoluttverdi = Abs(s**2 + 2*s + 6)/2
Forenklet positiv form = s**2/2 + s + 3
s^2 + 2s + 6 = (s+1)^2 + 5 > 0

Fasit: \(\displaystyle V(s)=\frac{s^2+2s+6}{2}=\frac{(s+1)^2+5}{2}\).

Vanlig feil: Å glemme absoluttverdien eller å bruke parallellogramvolumet uten å dele på 6.
Sensorpunkt: Sensor ser etter korrekt AD, skalartrippelprodukt, absoluttverdi og faktoren 1/6.
Del 1 / Oppgave 7dMinimering av kvadratisk uttrykk

Oppgave 7d

Oppgave: Bestem det minste volumet tetraederet ABCD kan ha.
Original poengangivelse: Oppgave 7 (7 poeng).
Vis løsning

Hva spør oppgaven om? Volumfunksjonen er et kvadratisk uttrykk. Ved å fullføre kvadratet ser vi direkte hvor minimum oppnås.

  1. Start med volumfunksjonen
    \(V(s)=\frac12(s^2+2s+6)\).
  2. Fullfør kvadratet
    \(s^2+2s+6=(s+1)^2+5\).
  3. Bruk at et kvadrat er ikke-negativt
    \((s+1)^2\ge0\).
  4. Finn minste verdi av kvadratet
    Minimum 0 oppnås når \(s=-1\).
  5. Beregn volumet
    \(V(-1)=\frac12(0+5)=5/2\).
  6. Konkluder
    Det minste volumet er \(5/2\) volumenheter, ved \(s=-1\).
Minimumspunktet er (−1, 2,5).
Minimumspunktet er (−1, 2,5).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Extremum((s^2+2s+6)/2)
Resultat: Minimum i \((-1,5/2)\)
Tolkning: CAS bekrefter toppunktet til volumparabelen.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, diff, solve, simplify, Rational

s = symbols('s', real=True)
V = (s**2 + 2*s + 6)/2
derivative = diff(V, s)
critical = solve(derivative, s)
second_derivative = diff(V, s, 2)
minimum = simplify(V.subs(s, critical[0]))

print("Volumfunksjon V(s) =", V)
print("Fullført kvadrat = ((s + 1)^2 + 5)/2")
print("V'(s) =", derivative)
print("Kritisk punkt =", critical)
print("V''(s) =", second_derivative)
print("Minste volum =", minimum)
print("Desimalverdi =", minimum.evalf(10))

assert critical == [-1]
assert second_derivative > 0
assert minimum == Rational(5,2)
Kjørt utskriftVolumfunksjon V(s) = s**2/2 + s + 3
Fullført kvadrat = ((s + 1)^2 + 5)/2
V'(s) = s + 1
Kritisk punkt = [-1]
V''(s) = 1
Minste volum = 5/2
Desimalverdi = 2.500000000

Fasit: Minste volum er \(5/2=2{,}5\), og det oppnås når \(s=-1\).

Vanlig feil: Å finne s-verdien uten å oppgi volumet, eller å glemme faktoren 1/2.
Sensorpunkt: Sensor ser etter minimumsargument, korrekt s-verdi og den tilhørende volumverdien.
Del 1 / Oppgave 8Matematisk induksjon

Oppgave 8

Oppgave: Bruk induksjon til å bevise \(1^3+2^3+\cdots+n^3=\frac{n^2(n+1)^2}{4}\) for alle \(n\in\mathbb N\).
Original poengangivelse: Oppgave 8 (3 poeng).
Vis løsning

Hva spør oppgaven om? Et induksjonsbevis består av et startsteg, en induksjonsantakelse og et induksjonssteg fra k til k+1.

  1. Startsteg
    For \(n=1\): venstresiden er 1, og høyresiden er \(1^2\cdot2^2/4=1\). Påstanden gjelder.
  2. Induksjonsantakelse
    Anta at \(1^3+\cdots+k^3=\frac{k^2(k+1)^2}{4}\) for en vilkårlig \(k\in\mathbb N\).
  3. Legg til neste ledd
    \(1^3+\cdots+k^3+(k+1)^3=\frac{k^2(k+1)^2}{4}+(k+1)^3\).
  4. Faktoriser
    \((k+1)^2\left(\frac{k^2}{4}+k+1\right)\).
  5. Gjør parentesen til et kvadrat
    \(\frac{k^2+4k+4}{4}=\frac{(k+2)^2}{4}\).
  6. Få ønsket form
    Uttrykket blir \(\frac{(k+1)^2(k+2)^2}{4}\), som er formelen med \(n=k+1\).
  7. Konkluder
    Dermed er påstanden sann for alle \(n\in\mathbb N\) ved induksjonsprinsippet.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Factor(k^2*(k+1)^2/4+(k+1)^3)
Resultat: \(\frac{(k+1)^2(k+2)^2}{4}\)
Tolkning: CAS bekrefter den avgjørende algebraiske omformingen i induksjonssteget.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, summation, factor, simplify, Rational

k, n, i = symbols('k n i', integer=True, positive=True)
formula = n**2*(n+1)**2/4
base_left = 1**3
base_right = formula.subs(n,1)
induction_left = k**2*(k+1)**2/4 + (k+1)**3
induction_target = (k+1)**2*(k+2)**2/4
symbolic_sum = summation(i**3, (i,1,n))

print("Startsteg venstre =", base_left)
print("Startsteg høyre =", base_right)
print("Uttrykk i induksjonssteget =", induction_left)
print("Faktorisert induksjonsuttrykk =", factor(induction_left))
print("Mål for P(k+1) =", induction_target)
print("Forskjell =", simplify(induction_left-induction_target))
print("SymPy-sum =", factor(symbolic_sum))
print("Forskjell mot formelen =", simplify(symbolic_sum-formula))

assert base_left == base_right
assert simplify(induction_left-induction_target) == 0
assert simplify(symbolic_sum-formula) == 0
Kjørt utskriftStartsteg venstre = 1
Startsteg høyre = 1
Uttrykk i induksjonssteget = k**2*(k + 1)**2/4 + (k + 1)**3
Faktorisert induksjonsuttrykk = (k + 1)**2*(k + 2)**2/4
Mål for P(k+1) = (k + 1)**2*(k + 2)**2/4
Forskjell = 0
SymPy-sum = n**2*(n + 1)**2/4
Forskjell mot formelen = 0

Fasit: Påstanden er sann for alle \(n\in\mathbb N\).

Vanlig feil: Å bare kontrollere noen tallverdier, eller å glemme å bruke induksjonsantakelsen i steget fra k til k+1.
Sensorpunkt: Sensor ser etter startsteg, tydelig antakelse, full algebra i induksjonssteget og korrekt konklusjon.

Del 2 - med hjelpemidler

Del 2 / Oppgave 1aGraftegning og polynomfunksjoner

Oppgave 1a

Oppgave: Funksjonene er \(f(x)=x^4-4x-1\) og \(g(x)=4x^3-6x^2-1\). Tegn grafene i et koordinatsystem.
Original poengangivelse: Oppgave 1 (5 poeng).
Vis løsning

Hva spør oppgaven om? Vi tegner begge polynomene i samme koordinatsystem og finner sentrale kjennetegn som skjæringspunkter og relativ plassering.

  1. Definer funksjonene
    \(f(x)=x^4-4x-1\) og \(g(x)=4x^3-6x^2-1\).
  2. Finn fellespunktene algebraisk
    \(f-g=(x-2)(x^2-2x+2)x\), så de reelle skjæringsverdiene er \(x=0\) og \(x=2\).
  3. Finn koordinatene
    \(f(0)=g(0)=-1\), og \(f(2)=g(2)=7\).
  4. Undersøk mellom skjæringspunktene
    Ved \(x=1\) er \(f(1)=-4\) og \(g(1)=-3\), så g ligger over f.
  5. Velg egnet vindu
    Et vindu omtrent \(-0{,}5\le x\le2{,}5\) og \(-6\le y\le12\) viser området tydelig.
  6. Tegn og marker
    Tegn glatte polynomkurver og marker punktene \((0,-1)\) og \((2,7)\).
Grafene avgrenser området M mellom x=0 og x=2.
Grafene avgrenser området M mellom x=0 og x=2.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1f(x)=x^4-4*x-1
Resultat: Grafen til f
Tolkning: Fjerdegradsfunksjonen vokser mot positiv uendelig i begge retninger.
2g(x)=4*x^3-6*x^2-1
Resultat: Grafen til g
Tolkning: Tredjegradsfunksjonen skjærer f i x=0 og x=2.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, factor, solve, simplify

x = symbols('x', real=True)
f = x**4 - 4*x - 1
g = 4*x**3 - 6*x**2 - 1
difference = factor(f-g)
intersections = solve(f-g, x)
real_intersections = [v for v in intersections if v.is_real]
points = [(v, simplify(f.subs(x,v))) for v in real_intersections]

print("f(x) =", f)
print("g(x) =", g)
print("Faktorisert f-g =", difference)
print("Alle algebraiske løsninger av f=g =", intersections)
print("Reelle skjæringsverdier =", real_intersections)
print("Skjæringspunkter =", points)
print("f(1) =", f.subs(x,1), "g(1) =", g.subs(x,1))
print("På intervallet (0,2) ligger g over f")

assert set(real_intersections) == {0,2}
assert points == [(0,-1),(2,7)]
Kjørt utskriftf(x) = x**4 - 4*x - 1
g(x) = 4*x**3 - 6*x**2 - 1
Faktorisert f-g = x*(x - 2)*(x**2 - 2*x + 2)
Alle algebraiske løsninger av f=g = [0, 2]
Reelle skjæringsverdier = [0, 2]
Skjæringspunkter = [(0, -1), (2, 7)]
f(1) = -4 g(1) = -3
På intervallet (0,2) ligger g over f

Fasit: Grafene skjærer hverandre i \((0,-1)\) og \((2,7)\); mellom punktene ligger g over f.

Vanlig feil: Å tegne grafene med et vindu som skjuler området eller å overse det andre skjæringspunktet.
Sensorpunkt: Sensor ser etter begge grafer, riktige skjæringspunkter, tydelige akser og et lesbart vindu.
Del 2 / Oppgave 1bAreal mellom polynomgrafer

Oppgave 1b

Oppgave: De to grafene avgrenser et område M. Bestem arealet av M.
Original poengangivelse: Oppgave 1 (5 poeng).
Vis løsning

Hva spør oppgaven om? Området ligger mellom de reelle skjæringsverdiene 0 og 2. Vi integrerer øvre graf g minus nedre graf f.

  1. Finn grensene
    Fra \(f=g\) fikk vi \(x=0\) og \(x=2\).
  2. Bestem øvre graf
    Ved \(x=1\) er \(g(1)=-3>-4=f(1)\).
  3. Sett opp integralet
    \(A=\int_0^2[g(x)-f(x)]dx\).
  4. Finn integranden
    \(g-f=-x^4+4x^3-6x^2+4x\).
  5. Integrer
    En stamfunksjon er \(-x^5/5+x^4-2x^3+2x^2\).
  6. Sett inn grensene
    \[A=\left[-\frac{x^5}{5}+x^4-2x^3+2x^2\right]_0^2=\frac85\]
Det fargelagte området M har areal 8/5.
Det fargelagte området M har areal 8/5.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(g(x)-f(x),x,0,2)
Resultat: \(8/5\)
Tolkning: CAS beregner det positive arealet mellom kurvene.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, integrate, simplify, Rational, factor

x = symbols('x', real=True)
f = x**4 - 4*x - 1
g = 4*x**3 - 6*x**2 - 1
integrand = simplify(g-f)
antiderivative = integrate(integrand, x)
area = simplify(integrate(integrand, (x,0,2)))

print("Øvre graf på [0,2]: g")
print("Nedre graf på [0,2]: f")
print("Integrand g-f =", integrand)
print("Faktorisert integrand =", factor(integrand))
print("Stamfunksjon =", antiderivative)
print("Areal M =", area)
print("Desimalareal =", area.evalf(12))
print("Kontroll mot 8/5 =", simplify(area-Rational(8,5)))

assert area == Rational(8,5)
assert area > 0
Kjørt utskriftØvre graf på [0,2]: g
Nedre graf på [0,2]: f
Integrand g-f = x*(-x**3 + 4*x**2 - 6*x + 4)
Faktorisert integrand = -x*(x - 2)*(x**2 - 2*x + 2)
Stamfunksjon = -x**5/5 + x**4 - 2*x**3 + 2*x**2
Areal M = 8/5
Desimalareal = 1.60000000000
Kontroll mot 8/5 = 0

Fasit: Arealet av M er \(8/5=1{,}6\).

Vanlig feil: Å integrere f−g og få negativt resultat uten å ta absoluttverdi, eller å bruke feil grenser.
Sensorpunkt: Sensor ser etter skjæringsgrenser, riktig øvre graf og eksakt areal.
Del 2 / Oppgave 1cParameter, translasjon og CAS

Oppgave 1c

Oppgave: Funksjonene er \(F(x)=x^4-4r^3x-1\) og \(G(x)=4rx^3-6r^2x^2-r^4\). Bruk CAS til å vise at arealet av området N er uavhengig av r.
Original poengangivelse: Oppgave 1 (5 poeng).
Vis løsning

Hva spør oppgaven om? Vi forenkler differansen F−G, finner skjæringsgrensene uttrykt ved r og gjør substitusjonen \(u=x-r\).

  1. Beregn differansen
    \(F-G=x^4-4rx^3+6r^2x^2-4r^3x+r^4-1\).
  2. Gjenkjenn fjerdepotensen
    \(F-G=(x-r)^4-1\).
  3. Finn skjæringspunktene
    \((x-r)^4=1\) gir \(x=r-1\) og \(x=r+1\).
  4. Bestem øvre graf
    Mellom grensene er \((x-r)^4<1\), så \(G-F=1-(x-r)^4>0\).
  5. Sett opp arealet
    \(A_N=\int_{r-1}^{r+1}[1-(x-r)^4]dx\).
  6. Substituer
    Med \(u=x-r\) blir grensene −1 og 1, uten r i integranden.
  7. Beregn
    \[A_N=\int_{-1}^{1}(1-u^4)du=\left[u-\frac{u^5}{5}\right]_{-1}^{1}=\frac85\]
Når u=x−r, blir alle områdene identiske og arealet er alltid 8/5.
Når u=x−r, blir alle områdene identiske og arealet er alltid 8/5.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Factor(F(x)-G(x))
Resultat: \((x-r)^4-1\)
Tolkning: Differansen avhenger bare av x−r.
2Integral(1-(x-r)^4,x,r-1,r+1)
Resultat: \(8/5\)
Tolkning: Arealet inneholder ikke r og er derfor invariant under translasjonen.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, factor, solve, integrate, simplify, Rational

x, r, u = symbols('x r u', real=True)
F = x**4 - 4*r**3*x - 1
G = 4*r*x**3 - 6*r**2*x**2 - r**4
difference = factor(F-G)
intersection_equation = factor(difference)
area = simplify(integrate(G-F, (x,r-1,r+1)))
substituted_area = simplify(integrate(1-u**4, (u,-1,1)))

print("F(x) =", F)
print("G(x) =", G)
print("F-G, faktorisert =", difference)
print("Skjæringsbetingelse: (x-r)^4 = 1")
print("Reelle grenser: x = r-1 og x = r+1")
print("Areal beregnet direkte =", area)
print("Areal etter u=x-r =", substituted_area)
print("Inneholder arealet parameteren r?", area.has(r))
print("Kontroll mot 8/5 =", simplify(area-Rational(8,5)))

assert simplify(difference-((x-r)**4-1)) == 0
assert area == Rational(8,5)
assert not area.has(r)
Kjørt utskriftF(x) = -4*r**3*x + x**4 - 1
G(x) = -r**4 - 6*r**2*x**2 + 4*r*x**3
F-G, faktorisert = (-r + x - 1)*(-r + x + 1)*(r**2 - 2*r*x + x**2 + 1)
Skjæringsbetingelse: (x-r)^4 = 1
Reelle grenser: x = r-1 og x = r+1
Areal beregnet direkte = 8/5
Areal etter u=x-r = 8/5
Inneholder arealet parameteren r? False
Kontroll mot 8/5 = 0

Fasit: Arealet av N er alltid \(8/5\), uavhengig av r.

Vanlig feil: Å finne bare skjæringspunktene uten å vise at integralet mister parameteren r.
Sensorpunkt: Sensor ser etter CAS-faktorisering, riktige parametergrenser, korrekt øvre graf og et r-fritt sluttresultat.
Del 2 / Oppgave 2aKulelikning med parameter

Oppgave 2a

Oppgave: Sentrum i kuleflaten \(K_1\) har koordinatene \((2t,1,3)\), og radiusen er 2. Bestem en likning for \(K_1\) uttrykt ved t.
Original poengangivelse: Oppgave 2 (7 poeng).
Vis løsning

Hva spør oppgaven om? En kule med sentrum \((a,b,c)\) og radius R har likningen \((x-a)^2+(y-b)^2+(z-c)^2=R^2\).

  1. Skriv standardformen
    \((x-a)^2+(y-b)^2+(z-c)^2=R^2\).
  2. Sett inn sentrum
    Her er \(a=2t\), \(b=1\) og \(c=3\).
  3. Sett inn radius
    Radiusen er \(R=2\), så \(R^2=4\).
  4. Skriv kulelikningen
    \((x-2t)^2+(y-1)^2+(z-3)^2=4\).
  5. Kontroller sentrum
    Ved \((x,y,z)=(2t,1,3)\) er venstresiden 0.
  6. Tolk parameteren
    Når t varierer, flyttes sentrum langs linjen \((0,1,3)+t(2,0,0)\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Sphere((2t,1,3),2)
Resultat: \((x-2t)^2+(y-1)^2+(z-3)^2=4\)
Tolkning: GeoGebra oppretter kuleflaten med parameteravhengig sentrum.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, expand, simplify

x, y, z, t = symbols('x y z t', real=True)
center = (2*t, 1, 3)
radius = 2
equation_left = (x-2*t)**2 + (y-1)**2 + (z-3)**2
center_value = simplify(equation_left.subs({x:2*t,y:1,z:3}))

print("Sentrum S(t) =", center)
print("Radius =", radius)
print("Kulelikning:")
print("(x - 2*t)^2 + (y - 1)^2 + (z - 3)^2 = 4")
print("Utvidet venstreside =", expand(equation_left))
print("Venstreside i sentrum =", center_value)
print("Høyreside radius^2 =", radius**2)
print("Senterbanens retningsvektor = (2, 0, 0)")

assert center_value == 0
assert radius**2 == 4
Kjørt utskriftSentrum S(t) = (2*t, 1, 3)
Radius = 2
Kulelikning:
(x - 2*t)^2 + (y - 1)^2 + (z - 3)^2 = 4
Utvidet venstreside = 4*t**2 - 4*t*x + x**2 + y**2 - 2*y + z**2 - 6*z + 10
Venstreside i sentrum = 0
Høyreside radius^2 = 4
Senterbanens retningsvektor = (2, 0, 0)

Fasit: \(K_1:(x-2t)^2+(y-1)^2+(z-3)^2=4\).

Vanlig feil: Å bruke radius 2 på høyresiden i stedet for radiusens kvadrat 4.
Sensorpunkt: Sensor ser etter korrekt standardform, sentrum og radiuskvadrat.
Del 2 / Oppgave 2bTangering med koordinatplan

Oppgave 2b

Oppgave: Ved hvilke tidspunkt vil \(K_1\) tangere yz-planet?
Original poengangivelse: Oppgave 2 (7 poeng).
Vis løsning

Hva spør oppgaven om? yz-planet har likningen x=0. En kule tangerer planet når avstanden fra sentrum til planet er lik radiusen.

  1. Finn planet
    yz-planet er \(x=0\).
  2. Finn avstanden fra sentrum
    Sentrum har x-koordinat \(2t\), så avstanden til planet er \(|2t|\).
  3. Sett avstand lik radius
    \(|2t|=2\).
  4. Del på 2
    \(|t|=1\).
  5. Løs absoluttverdien
    \(t=-1\) eller \(t=1\).
  6. Tolk
    Ved disse tidspunktene er senterets avstand til yz-planet nøyaktig 2.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(abs(2t)=2,t)
Resultat: \(t=-1,1\)
Tolkning: Begge senterposisjonene ligger to enheter fra yz-planet.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, Abs, solve, Eq

t = symbols('t', real=True)
distance = Abs(2*t)
solutions = solve(Eq(distance,2), t)

print("yz-planet: x = 0")
print("Senterets x-koordinat = 2*t")
print("Avstand til yz-planet =", distance)
print("Tangensbetingelse: |2*t| = 2")
print("Løsninger =", solutions)
for value in solutions:
    print("t =", value, "avstand =", distance.subs(t,value))
print("Antall tangenttidspunkt =", len(solutions))

assert set(solutions) == {-1,1}
assert all(distance.subs(t,v) == 2 for v in solutions)
Kjørt utskriftyz-planet: x = 0
Senterets x-koordinat = 2*t
Avstand til yz-planet = 2*Abs(t)
Tangensbetingelse: |2*t| = 2
Løsninger = [-1, 1]
t = -1 avstand = 2
t = 1 avstand = 2
Antall tangenttidspunkt = 2

Fasit: \(K_1\) tangerer yz-planet ved \(t=-1\) og \(t=1\).

Vanlig feil: Å løse \(2t=2\) og glemme den negative løsningen fra absoluttverdien.
Sensorpunkt: Sensor ser etter avstandsformelen og begge løsninger.
Del 2 / Oppgave 2cTangering mellom to kuler

Oppgave 2c

Oppgave: Kuleflaten \(K_2:x^2+y^2+z^2=r^2\). Ved hvilke tidspunkt tangerer \(K_1\) og \(K_2\) hverandre når \(r=2\)?
Original poengangivelse: Oppgave 2 (7 poeng).
Vis løsning

Hva spør oppgaven om? Begge kulene har radius 2. Ved utvendig tangering er avstanden mellom sentrene summen av radiene, altså 4.

  1. Finn sentrene
    \(S_1=(2t,1,3)\) og \(S_2=(0,0,0)\).
  2. Finn senteravstanden
    \(d=\sqrt{(2t)^2+1^2+3^2}=\sqrt{4t^2+10}\).
  3. Bruk tangensbetingelsen
    For to ulike kuler med radius 2 er utvendig tangering gitt ved \(d=2+2=4\).
  4. Kvadrer likningen
    \(4t^2+10=16\).
  5. Løs for t
    \(4t^2=6\), så \(t^2=3/2\).
  6. Skriv eksakte løsninger
    \[t=\pm\sqrt{\frac32}=\pm\frac{\sqrt6}{2}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(sqrt(4t^2+10)=4,t)
Resultat: \(t=\pm\sqrt6/2\)
Tolkning: Senteravstanden er da nøyaktig 4, summen av radiene.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, sqrt, solve, Eq, simplify, N

t = symbols('t', real=True)
distance = sqrt(4*t**2 + 10)
solutions = solve(Eq(distance,4), t)

print("Senteravstand d(t) =", distance)
print("Begge radier = 2")
print("Tangensbetingelse d = 4")
print("Løsninger =", solutions)
for value in solutions:
    print("t =", value, "≈", N(value,10), "d(t) =", simplify(distance.subs(t,value)))
print("Eksakt absoluttverdi av t = sqrt(6)/2")

assert set(solutions) == {-sqrt(6)/2, sqrt(6)/2}
assert all(simplify(distance.subs(t,v)-4) == 0 for v in solutions)
Kjørt utskriftSenteravstand d(t) = sqrt(4*t**2 + 10)
Begge radier = 2
Tangensbetingelse d = 4
Løsninger = [-sqrt(6)/2, sqrt(6)/2]
t = -sqrt(6)/2 ≈ -1.224744871 d(t) = 4
t = sqrt(6)/2 ≈ 1.224744871 d(t) = 4
Eksakt absoluttverdi av t = sqrt(6)/2

Fasit: Kulene tangerer hverandre ved \(t=\pm\sqrt6/2\).

Vanlig feil: Å sette senteravstanden lik radiusen 2 i stedet for summen 4.
Sensorpunkt: Sensor ser etter korrekt senteravstand, tangensbetingelse og begge tidspunkt.
Del 2 / Oppgave 2dMinimering og kulegeometri

Oppgave 2d

Oppgave: Bestem eksakt den minste verdien til r som gjør at de to kulene tangerer hverandre.
Original poengangivelse: Oppgave 2 (7 poeng).
Vis løsning

Hva spør oppgaven om? For en gitt senteravstand d kan den minste positive K2-radiusen ved tangering fås ved utvendig tangering: \(r=d-2\). Vi minimerer d langs senterbanen.

  1. Skriv senteravstanden
    \(d(t)=\sqrt{4t^2+10}\).
  2. Finn minste avstand
    Uttrykket \(4t^2+10\) er minst når \(t=0\).
  3. Beregn minimumsavstanden
    \(d_{\min}=\sqrt{10}\).
  4. Bruk utvendig tangering
    Ved utvendig tangering gjelder \(d=2+r\).
  5. Isoler r
    \(r=d-2\).
  6. Sett inn minste d
    \[r_{\min}=\sqrt{10}-2\]
  7. Kontroller andre tangeringstype
    Innvendig tangering ville kreve en større radius \(r=d+2\), så den gir ikke minimum.
Ved t=0 er senteravstanden √10, og den minste K2-radiusen er √10−2.
Ved t=0 er senteravstanden √10, og den minste K2-radiusen er √10−2.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Derivative(sqrt(4t^2+10),t)
Resultat: \(4t/\sqrt{4t^2+10}\)
Tolkning: Den deriverte er null ved t=0.
2Substitute(sqrt(4t^2+10)-2,t,0)
Resultat: \(\sqrt{10}-2\)
Tolkning: Dette er den minste radiusen for utvendig tangering.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, sqrt, diff, solve, simplify, N

t = symbols('t', real=True)
d = sqrt(4*t**2 + 10)
r_external = d - 2
derivative = simplify(diff(d,t))
critical = solve(diff(d,t), t)
r_min = simplify(r_external.subs(t,0))

print("Senteravstand d(t) =", d)
print("d'(t) =", derivative)
print("Kritisk punkt =", critical)
print("Minste senteravstand d(0) =", d.subs(t,0))
print("Utvendig tangent radius r = d - 2")
print("Eksakt minste radius =", r_min)
print("Desimalverdi =", N(r_min,12))
print("Kontroll: r_min + 2 =", simplify(r_min+2))

assert critical == [0]
assert r_min == sqrt(10)-2
assert simplify(r_min+2-sqrt(10)) == 0
Kjørt utskriftSenteravstand d(t) = sqrt(4*t**2 + 10)
d'(t) = 2*sqrt(2)*t/sqrt(2*t**2 + 5)
Kritisk punkt = [0]
Minste senteravstand d(0) = sqrt(10)
Utvendig tangent radius r = d - 2
Eksakt minste radius = -2 + sqrt(10)
Desimalverdi = 1.16227766017
Kontroll: r_min + 2 = sqrt(10)

Fasit: Den minste radiusen er \(r=\sqrt{10}-2\).

Vanlig feil: Å minimere radiusen uten å ta hensyn til at K1 allerede har radius 2, eller å bruke innvendig tangering og få en større verdi.
Sensorpunkt: Sensor ser etter minimering av senteravstanden og korrekt tangensrelasjon.
Del 2 / Oppgave 3aGeometrisk sum og utslippsmodell

Oppgave 3a

Oppgave: En bedrift slipper ut 20 000 tonn CO₂ i 2018 og reduserer de årlige utslippene med 15 % hvert år fra og med 2019. Hvor mye slipper den ut til sammen i årene 2018–2027?
Original poengangivelse: Oppgave 3 (4 poeng).
Vis løsning

Hva spør oppgaven om? De årlige utslippene danner en geometrisk følge med første ledd 20 000, kvotient 0,85 og ti ledd.

  1. Tell antall år
    Årene 2018–2027 utgjør 10 år og dermed 10 ledd.
  2. Finn første ledd
    \(a_1=20000\) tonn.
  3. Finn kvotienten
    En reduksjon på 15 % betyr at 85 % gjenstår: \(q=0{,}85\).
  4. Bruk sumformelen
    \(S_{10}=a_1\frac{1-q^{10}}{1-q}\).
  5. Sett inn tall
    \(S_{10}=20000\frac{1-0{,}85^{10}}{1-0{,}85}\).
  6. Beregn og rund av
    \[S_{10}\approx107083{,}4\text{ tonn CO}_2\]
Bedrift 1 følger en geometrisk nedgang med kvotient 0,85.
Bedrift 1 følger en geometrisk nedgang med kvotient 0,85.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Sum(20000*0.85^k,k,0,9)
Resultat: \(107083{,}4128\)
Tolkning: Summen inkluderer 2018-leddet og ni reduserte årsutslipp.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, summation, Rational, simplify, N

k = symbols('k', integer=True, nonnegative=True)
a1 = 20000
q = Rational(85,100)
terms = [simplify(a1*q**j) for j in range(10)]
sum_direct = simplify(sum(terms))
sum_formula = simplify(a1*(1-q**10)/(1-q))

print("Første ledd a1 =", a1)
print("Kvotient q =", q, "=", N(q,4))
print("Antall ledd = 10")
print("Årlige utslipp =")
for year, value in zip(range(2018,2028), terms):
    print(year, ":", N(value,12), "tonn")
print("Sum direkte =", sum_direct)
print("Sum med formel =", sum_formula)
print("Desimalverdi =", N(sum_formula,15))
print("Avrundet til nærmeste tonn =", round(float(sum_formula)))

assert simplify(sum_direct-sum_formula) == 0
Kjørt utskriftFørste ledd a1 = 20000
Kvotient q = 17/20 = 0.8500
Antall ledd = 10
Årlige utslipp =
2018 : 20000.0000000 tonn
2019 : 17000.0000000 tonn
2020 : 14450.0000000 tonn
2021 : 12282.5000000 tonn
2022 : 10440.1250000 tonn
2023 : 8874.10625000 tonn
2024 : 7542.99031250 tonn
2025 : 6411.54176562 tonn
2026 : 5449.81050078 tonn
2027 : 4632.33892566 tonn
Sum direkte = 2741335366517/25600000
Sum med formel = 2741335366517/25600000
Desimalverdi = 107083.412754570
Avrundet til nærmeste tonn = 107083

Fasit: Bedriften slipper ut omtrent \(107\,083\) tonn CO₂ til sammen i perioden.

Vanlig feil: Å bruke 9 ledd fordi reduksjonen starter i 2019, eller å bruke kvotienten 0,15 i stedet for 0,85.
Sensorpunkt: Sensor ser etter 10 ledd, korrekt kvotient, sumformel og passende avrunding.
Del 2 / Oppgave 3bNumerisk løsning av geometrisk modell

Oppgave 3b

Oppgave: En annen bedrift slipper ut 30 000 tonn CO₂ i 2018. Hvor mange prosent må den redusere utslippene med per år for at totalutslippet i 2018–2027 skal bli det samme?
Original poengangivelse: Oppgave 3 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi lar q være den årlige restfaktoren. Summen av ti ledd settes lik totalsummen fra a), og likningen løses numerisk.

  1. Definer restfaktoren
    La \(q\) være andelen utslipp som gjenstår hvert år, med \(0
  2. Skriv totalsummen
    \(S(q)=30000\frac{1-q^{10}}{1-q}\).
  3. Sett lik bedrift 1
    \(30000\frac{1-q^{10}}{1-q}=107083{,}412754\ldots\).
  4. Løs numerisk
    CAS gir \(q\approx0{,}7322631072\).
  5. Finn reduksjonsandelen
    \(p=1-q\approx0{,}2677368928\).
  6. Gjør om til prosent
    \[100p\approx26{,}77\%\]
  7. Kontroller
    Med denne kvotienten blir tiårssummen den samme som for bedrift 1.
Den brattere kurven for bedrift 2 gir samme samlede utslipp over ti år.
Den brattere kurven for bedrift 2 gir samme samlede utslipp over ti år.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1NSolve(30000*(1-q^10)/(1-q)=107083.4127545703,q)
Resultat: \(q\approx0{,}7322631072\)
Tolkning: Den relevante løsningen ligger mellom 0 og 1.
2100*(1-q)
Resultat: \(26{,}773689\%\)
Tolkning: Dette er den årlige prosentvise reduksjonen.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, Rational, nsolve, N, simplify

q = symbols('q', real=True)
q1 = Rational(85,100)
target = simplify(20000*(1-q1**10)/(1-q1))
equation = 30000*(1-q**10)/(1-q) - target
q_solution = nsolve(equation, 0.73, tol=1e-30, maxsteps=100, prec=50)
reduction = 1-q_solution
check_sum = 30000*(1-q_solution**10)/(1-q_solution)

print("Målsum fra bedrift 1 =", N(target,20))
print("Likning: 30000*(1-q^10)/(1-q) = målsum")
print("Numerisk restfaktor q =", N(q_solution,20))
print("Reduksjonsandel p = 1-q =", N(reduction,20))
print("Årlig reduksjon i prosent =", N(100*reduction,15), "%")
print("Kontrollsum bedrift 2 =", N(check_sum,20))
print("Avvik fra målsum =", N(check_sum-target,20))
print("q ligger mellom 0 og 1?", bool(0 < q_solution < 1))

assert abs(float(check_sum-target)) < 1e-9
assert 0 < q_solution < 1
Kjørt utskriftMålsum fra bedrift 1 = 107083.41275457031250
Likning: 30000*(1-q^10)/(1-q) = målsum
Numerisk restfaktor q = 0.73226310724425957496
Reduksjonsandel p = 1-q = 0.26773689275574042504
Årlig reduksjon i prosent = 26.7736892755740 %
Kontrollsum bedrift 2 = 107083.41275457031250
Avvik fra målsum = 0
q ligger mellom 0 og 1? True

Fasit: Den andre bedriften må redusere utslippene med omtrent \(26{,}77\%\) per år.

Vanlig feil: Å oppgi restfaktoren 73,23 % som reduksjonsprosent, eller å glemme at perioden har 10 ledd.
Sensorpunkt: Sensor ser etter korrekt modell, relevant numerisk rot, omregning fra q til reduksjon og kontroll av totalsummen.
Del 2 / Oppgave 4aTolkning av differensiallikning

Oppgave 4a

Oppgave: Vannmengden y(t) i en tank oppfyller \(y\prime=3{,}2-0{,}14y\), \(y(0)=200\). Forklar hva tallene 3,2, 0,14 og 200 står for.
Original poengangivelse: Oppgave 4 (8 poeng).
Vis løsning

Hva spør oppgaven om? Likningen beskriver netto endring som konstant innstrømning minus en utstrømning proporsjonal med vannmengden.

  1. Tolk y og y-prime
    \(y(t)\) måles i liter, og \(y\prime(t)\) er endringen i liter per minutt.
  2. Tolk 3,2
    Tallet 3,2 er den konstante innstrømningsfarten: 3,2 L/min.
  3. Tolk 0,14y
    Utstrømningsfarten er \(0{,}14y\) L/min og øker proporsjonalt med vannmengden.
  4. Tolk 0,14
    Proporsjonalitetskonstanten 0,14 har enhet per minutt.
  5. Tolk 200
    Initialbetingelsen \(y(0)=200\) betyr at tanken inneholder 200 L ved start.
  6. Kontroller netto startendring
    \(y\prime(0)=3{,}2-0{,}14\cdot200=-24{,}8\) L/min, så vannmengden synker i starten.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Substitute(3.2-0.14*y,y,200)
Resultat: \(-24{,}8\)
Tolkning: Ved start strømmer det netto 24,8 L/min ut av tanken.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, Rational, simplify

y = symbols('y', nonnegative=True)
inflow = Rational(32,10)
outflow_coefficient = Rational(14,100)
initial_amount = 200
net_rate = inflow - outflow_coefficient*y
initial_rate = simplify(net_rate.subs(y,initial_amount))
equilibrium = simplify(inflow/outflow_coefficient)

print("Innstrømning =", inflow, "liter per minutt")
print("Utstrømning =", outflow_coefficient, "* y liter per minutt")
print("Netto endringsfart =", net_rate)
print("Startmengde y(0) =", initial_amount, "liter")
print("Netto endringsfart ved start =", initial_rate, "liter per minutt")
print("Likevektsmengde =", equilibrium, "liter")
print("Siden 200 > likevekten, synker vannmengden i starten")

assert initial_rate == Rational(-124,5)
assert equilibrium == Rational(160,7)
Kjørt utskriftInnstrømning = 16/5 liter per minutt
Utstrømning = 7/50 * y liter per minutt
Netto endringsfart = 16/5 - 7*y/50
Startmengde y(0) = 200 liter
Netto endringsfart ved start = -124/5 liter per minutt
Likevektsmengde = 160/7 liter
Siden 200 > likevekten, synker vannmengden i starten

Fasit: 3,2 er innstrømningen i L/min, 0,14 er utstrømningskonstanten per minutt, og 200 L er startmengden.

Vanlig feil: Å tolke 0,14 som en fast utstrømning på 0,14 L/min i stedet for en proporsjonal faktor.
Sensorpunkt: Sensor ser etter enheter, fysisk tolkning av hvert tall og initialbetingelsen.
Del 2 / Oppgave 4bLineær differensiallikning

Oppgave 4b

Oppgave: Løs differensiallikningen \(y\prime=3{,}2-0{,}14y\), \(y(0)=200\).
Original poengangivelse: Oppgave 4 (8 poeng).
Vis løsning

Hva spør oppgaven om? Likningen er lineær og har en konstant likevektsløsning. Vi skriver løsningen som likevekt pluss et eksponentielt avvik.

  1. Finn likevekten
    Sett \(y\prime=0\): \(3{,}2-0{,}14y=0\), så \(y_L=3{,}2/0{,}14=160/7\).
  2. Skriv generell form
    For \(y\prime=a-by\) er \(y(t)=a/b+Ce^{-bt}\).
  3. Sett inn koeffisientene
    \(y(t)=160/7+Ce^{-0{,}14t}\).
  4. Bruk initialbetingelsen
    \(200=160/7+C\).
  5. Finn C
    \(C=200-160/7=1240/7\).
  6. Skriv løsningen
    \[y(t)=\frac{160}{7}+\frac{1240}{7}e^{-0{,}14t}\]
  7. Kontroller langtidsatferd
    Når \(t\to\infty\), går eksponentialleddet mot 0 og y går mot \(160/7\).
Tank 1 synker fra 200 L mot likevekten 160/7 L.
Tank 1 synker fra 200 L mot likevekten 160/7 L.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1SolveODE(y\prime=3.2-0.14*y,y(0)=200)
Resultat: \(y=160/7+(1240/7)e^{-0.14t}\)
Tolkning: CAS bruker initialbetingelsen og gir den bestemte løsningen.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, Function, Eq, diff, dsolve, Rational, exp, simplify, limit, oo

t = symbols('t', nonnegative=True)
y = Function('y')
ode = Eq(diff(y(t),t), Rational(16,5)-Rational(7,50)*y(t))
solution = dsolve(ode, ics={y(0):200})
model = Rational(160,7) + Rational(1240,7)*exp(-Rational(7,50)*t)
residual = simplify(diff(model,t) - (Rational(16,5)-Rational(7,50)*model))

print("Differensiallikning =", ode)
print("Løsning fra SymPy =", solution)
print("Løsning i ønsket form =", model)
print("Initialverdi y(0) =", simplify(model.subs(t,0)))
print("Residual i differensiallikningen =", residual)
print("Grense når t går mot uendelig =", limit(model,t,oo))
print("Likevektsmengde = 160/7 liter")

assert simplify(solution.rhs-model) == 0
assert model.subs(t,0) == 200
assert residual == 0
Kjørt utskriftDifferensiallikning = Eq(Derivative(y(t), t), 16/5 - 7*y(t)/50)
Løsning fra SymPy = Eq(y(t), 160/7 + 1240*exp(-7*t/50)/7)
Løsning i ønsket form = 160/7 + 1240*exp(-7*t/50)/7
Initialverdi y(0) = 200
Residual i differensiallikningen = 0
Grense når t går mot uendelig = 160/7
Likevektsmengde = 160/7 liter

Fasit: \(\displaystyle y(t)=\frac{160}{7}+\frac{1240}{7}e^{-0{,}14t}\).

Vanlig feil: Å få positiv eksponent eller å bruke 200 som konstant C uten å trekke fra likevektsnivået.
Sensorpunkt: Sensor ser etter likevekt, eksponentialledd, initialbetingelse og verifikasjon.
Del 2 / Oppgave 4cNumerisk evaluering av modell

Oppgave 4c

Oppgave: Hvor mye vann er det i den første tanken etter 20 minutter?
Original poengangivelse: Oppgave 4 (8 poeng).
Vis løsning

Hva spør oppgaven om? Vi setter t=20 inn i den bestemte løsningen og beregner vannmengden med passende nøyaktighet.

  1. Bruk løsningen
    \(y(t)=160/7+(1240/7)e^{-0{,}14t}\).
  2. Sett inn t=20
    \(y(20)=160/7+(1240/7)e^{-2{,}8}\).
  3. Beregn eksponentialleddet
    \(e^{-2{,}8}\approx0{,}0608101\).
  4. Beregn bidragene
    Likevektsleddet er ca. 22,857 L, og avviksleddet er ca. 10,772 L.
  5. Summer
    \(y(20)\approx33{,}6292\) L.
  6. Rund av
    Det er omtrent 33,6 L vann i tanken etter 20 min.
Det markerte punktet på tank 1-kurven er y(20)≈33,6 L.
Det markerte punktet på tank 1-kurven er y(20)≈33,6 L.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Substitute(160/7+(1240/7)*exp(-0.14t),t,20)
Resultat: \(33{,}6292\)
Tolkning: Modellen gir en vannmengde som fortsatt ligger over likevektsnivået.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import Rational, exp, N, simplify

t_value = 20
model_value = Rational(160,7) + Rational(1240,7)*exp(-Rational(7,50)*t_value)
equilibrium_part = Rational(160,7)
transient_part = Rational(1240,7)*exp(-Rational(14,5))

print("t =", t_value, "minutter")
print("Eksakt y(20) =", model_value)
print("Likevektsledd =", N(equilibrium_part,15))
print("Eksponentialfaktor e^(-2.8) =", N(exp(-Rational(14,5)),15))
print("Avviksledd =", N(transient_part,15))
print("y(20) =", N(model_value,15), "liter")
print("Avrundet til én desimal =", round(float(model_value),1), "liter")
print("Over likevekten?", bool(model_value > equilibrium_part))

assert abs(float(model_value)-33.62921109361004) < 1e-10
Kjørt utskriftt = 20 minutter
Eksakt y(20) = 1240*exp(-14/5)/7 + 160/7
Likevektsledd = 22.8571428571429
Eksponentialfaktor e^(-2.8) = 0.0608100626252180
Avviksledd = 10.7720682364672
y(20) = 33.6292110936100 liter
Avrundet til én desimal = 33.6 liter
Over likevekten? True

Fasit: Etter 20 minutter er det omtrent \(33{,}6\) L vann i tanken.

Vanlig feil: Å sette inn 20 i eksponenten uten faktoren −0,14 eller å runde for tidlig.
Sensorpunkt: Sensor ser etter korrekt innsetting, enhet og rimelig avrunding.
Del 2 / Oppgave 4dModellering fra likevektsnivå

Oppgave 4d

Oppgave: I en annen tank renner det inn 1,5 L/min. Utstrømningen er proporsjonal med vannmengden, y(0)=0, og langtidsnivået er 10 L. Hvor mye vann er det etter 20 min?
Original poengangivelse: Oppgave 4 (8 poeng).
Vis løsning

Hva spør oppgaven om? Langtidsnivået bestemmer utstrømningskonstanten. Deretter løser vi den lineære differensiallikningen og evaluerer ved t=20.

  1. Sett opp modellen
    \(y\prime=1{,}5-ky\), der k er utstrømningskonstanten.
  2. Bruk likevekten
    Ved \(y=10\) er \(y\prime=0\): \(1{,}5-10k=0\).
  3. Finn k
    \(k=0{,}15\) per minutt.
  4. Løs differensiallikningen
    Likevekten er 10, så \(y(t)=10+Ce^{-0{,}15t}\).
  5. Bruk y(0)=0
    \(0=10+C\), altså \(C=-10\).
  6. Skriv modellen
    \(y(t)=10(1-e^{-0{,}15t})\).
  7. Sett inn t=20
    \[y(20)=10(1-e^{-3})\approx9{,}502\text{ L}\]
Tank 2 vokser fra 0 L mot likevekten 10 L; etter 20 min er den på ca. 9,50 L.
Tank 2 vokser fra 0 L mot likevekten 10 L; etter 20 min er den på ca. 9,50 L.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(1.5-10*k=0,k)
Resultat: \(k=0{,}15\)
Tolkning: Likevektsbetingelsen bestemmer proporsjonalitetskonstanten.
2SolveODE(y\prime=1.5-0.15*y,y(0)=0)
Resultat: \(y=10(1-e^{-0.15t})\)
Tolkning: Modellen vokser fra 0 L mot 10 L.
3Substitute(10*(1-exp(-0.15t)),t,20)
Resultat: \(9{,}5021\)
Tolkning: Etter 20 minutter er tanken nær likevektsnivået.

Digital kontroll i Python (SymPy)

Python 3.12 / SymPy - faktisk kjørt
from sympy import symbols, Function, Eq, diff, dsolve, Rational, exp, solve, simplify, N, limit, oo

t, k = symbols('t k', nonnegative=True)
y = Function('y')
k_solution = solve(Eq(Rational(3,2)-10*k,0), k)[0]
ode = Eq(diff(y(t),t), Rational(3,2)-k_solution*y(t))
solution = dsolve(ode, ics={y(0):0})
model = 10*(1-exp(-Rational(3,20)*t))
value_20 = simplify(model.subs(t,20))
residual = simplify(diff(model,t)-(Rational(3,2)-k_solution*model))

print("Innstrømning = 1.5 liter per minutt")
print("Likevektslikning: 1.5 - 10*k = 0")
print("Utstrømningskonstant k =", k_solution)
print("Differensiallikning =", ode)
print("Løsning fra SymPy =", solution)
print("Modell y(t) =", model)
print("Residual =", residual)
print("y(20) eksakt =", value_20)
print("y(20) numerisk =", N(value_20,15), "liter")
print("Langtidsgrense =", limit(model,t,oo))

assert k_solution == Rational(3,20)
assert simplify(solution.rhs-model) == 0
assert residual == 0
assert abs(float(value_20)-9.50212931632136) < 1e-10
Kjørt utskriftInnstrømning = 1.5 liter per minutt
Likevektslikning: 1.5 - 10*k = 0
Utstrømningskonstant k = 3/20
Differensiallikning = Eq(Derivative(y(t), t), 3/2 - 3*y(t)/20)
Løsning fra SymPy = Eq(y(t), 10 - 10*exp(-3*t/20))
Modell y(t) = 10 - 10*exp(-3*t/20)
Residual = 0
y(20) eksakt = 10 - 10*exp(-3)
y(20) numerisk = 9.50212931632136 liter
Langtidsgrense = 10

Fasit: Etter 20 minutter er det \(10(1-e^{-3})\approx9{,}50\) L vann i den andre tanken.

Vanlig feil: Å bruke 10 som startmengde eller å sette k=1,5/10 uten å forklare likevektsbetingelsen.
Sensorpunkt: Sensor ser etter modell, beregning av k fra langtidsnivået, initialbetingelse og numerisk svar.