R2 eksamenVår 2023

Matematikk R2 eksamen – vår 2023

ifingo
Norsk (Bokmål)

ifingo · Matematikk R2

Matematikk R2 - eksamen vår 2023 (K06)

Løsningsforslag til eksamenssettet fra Utdanningsdirektoratet.

Del 1 - uten hjelpemidler

Del 1 / Oppgave 1aProduktregelen

Oppgave 1a

Oppgave: Deriver funksjonen \(f(x)=x\sin x\).
Original poengangivelse: Oppgave 1 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal derivere et produkt av funksjonene x og sin x. Begge produktleddene må tas med.

  1. Del produktet i to faktorer
    Sett \(u(x)=x\) og \(v(x)=\sin x\).
  2. Deriver faktorene
    Vi får \(u\prime(x)=1\) og \(v\prime(x)=\cos x\).
  3. Bruk produktregelen
    \[(uv)\prime=u\prime v+uv\prime\]
  4. Sett inn uttrykkene
    \[f\prime(x)=1\cdot\sin x+x\cos x\]
  5. Forenkle
    \[f\prime(x)=\sin x+x\cos x\]
  6. Rimelighetskontroll
    Ved \(x=0\) er \(f\prime(0)=0\), noe som stemmer med at \(x\sin x\) har horisontal tangent i origo.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Derivative(x*sin(x),x)
Resultat: \(\sin x+x\cos x\)
Tolkning: CAS bekrefter at produktregelen gir to ledd.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, sin, cos, diff, simplify
x = symbols('x', real=True)
f = x*sin(x)
derivative = diff(f, x)
expected = sin(x) + x*cos(x)
print("f(x) =", f)
print("f'(x) =", derivative)
print("Forventet form =", expected)
print("Symbolsk kontroll =", simplify(derivative - expected))
print("Kontroll ved x=0 =", derivative.subs(x, 0))
print("Kontroll ved x=1 =", derivative.subs(x, 1).evalf(12))
assert simplify(derivative - expected) == 0
Kjørt utskriftf(x) = x*sin(x)
f'(x) = x*cos(x) + sin(x)
Forventet form = x*cos(x) + sin(x)
Symbolsk kontroll = 0
Kontroll ved x=0 = 0
Kontroll ved x=1 = 1.38177329068

Fasit: \(f\prime(x)=\sin x+x\cos x\).

Vanlig feil: Å derivere faktorene hver for seg og multiplisere dem, slik at produktregelen mangler.
Sensorpunkt: Sensor ser etter begge produktleddene og korrekt derivert av sinus.
Del 1 / Oppgave 1bKvotientregel og trigonometrisk forenkling

Oppgave 1b

Oppgave: Deriver funksjonen \(g(x)=\dfrac{\cos(2x)}{\sin x}\).
Original poengangivelse: Oppgave 1 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal derivere en kvotient og samtidig håndtere kjerneregelen i cos(2x).

  1. Oppgi definisjonsområdet
    Uttrykket krever \(\sin x\ne0\), altså \(x\ne k\pi\).
  2. Deriver telleren
    \((\cos(2x))\prime=-2\sin(2x)\).
  3. Deriver nevneren
    \((\sin x)\prime=\cos x\).
  4. Bruk kvotientregelen
    \[g\prime(x)=\frac{-2\sin(2x)\sin x-\cos(2x)\cos x}{\sin^2x}\]
  5. Forenkle med trigonometriske identiteter
    Siden \(\cos(2x)=1-2\sin^2x\), kan \(g(x)=\csc x-2\sin x\).
  6. Skriv en ryddig sluttform
    \[g\prime(x)=-\frac{\cos x}{\sin^2x}-2\cos x\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Derivative(cos(2x)/sin(x),x)
Resultat: \(\dfrac{-2\sin(2x)\sin x-\cos(2x)\cos x}{\sin^2x}\)
2TrigSimplify(%)
Resultat: \(-\dfrac{\cos x}{\sin^2x}-2\cos x\)
Tolkning: Begge formene er ekvivalente på funksjonens definisjonsområde.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, sin, cos, diff, simplify, trigsimp, together
x = symbols('x', real=True)
g = cos(2*x)/sin(x)
raw_derivative = diff(g, x)
expected = -cos(x)/sin(x)**2 - 2*cos(x)
difference = simplify(trigsimp(together(raw_derivative - expected)))
print("g(x) =", g)
print("Direkte derivert =", raw_derivative)
print("Forenklet derivert =", trigsimp(raw_derivative))
print("Forventet form =", expected)
print("Symbolsk kontroll =", difference)
print("Definisjonskrav: sin(x) != 0")
print("Numerisk kontroll ved x=1 =", raw_derivative.subs(x, 1).evalf(12))
assert difference == 0
Kjørt utskriftg(x) = cos(2*x)/sin(x)
Direkte derivert = -2*sin(2*x)/sin(x) - cos(x)*cos(2*x)/sin(x)**2
Forenklet derivert = -(2 + sin(x)**(-2))*cos(x)
Forventet form = -2*cos(x) - cos(x)/sin(x)**2
Symbolsk kontroll = 0
Definisjonskrav: sin(x) != 0
Numerisk kontroll ved x=1 = -1.84366433397

Fasit: \(g\prime(x)=-\dfrac{\cos x}{\sin^2x}-2\cos x\), for \(x\ne k\pi\).

Vanlig feil: Å glemme faktoren 2 fra kjerneregelen når cos(2x) deriveres.
Sensorpunkt: Sensor ser etter korrekt kvotientregel, kjerneregel og domenebegrensning.
Del 1 / Oppgave 2aBestemt integral og symmetri

Oppgave 2a

Oppgave: Regn ut \(\displaystyle\int_{-1}^{1}(4x^3-x)\,dx\).
Original poengangivelse: Oppgave 2 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal beregne et bestemt integral. Integranden er en odde funksjon på et symmetrisk intervall.

  1. Undersøk symmetrien
    \(h(x)=4x^3-x\) oppfyller \(h(-x)=-h(x)\).
  2. Bruk symmetriregelen
    Integral av en odde funksjon fra \(-a\) til \(a\) er 0.
  3. Alternativ: finn en stamfunksjon
    \[H(x)=x^4-\frac{x^2}{2}\]
  4. Sett inn øvre grense
    \(H(1)=1-1/2=1/2\).
  5. Sett inn nedre grense
    \(H(-1)=1-1/2=1/2\).
  6. Trekk fra
    \[H(1)-H(-1)=0\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(4*x^3-x,x,-1,1)
Resultat: 0
Tolkning: CAS bekrefter både symmetrien og den eksakte integralverdien.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, integrate, simplify
x = symbols('x', real=True)
integrand = 4*x**3 - x
antiderivative = integrate(integrand, x)
value = integrate(integrand, (x, -1, 1))
print("Integrand =", integrand)
print("h(-x) + h(x) =", simplify(integrand.subs(x, -x) + integrand))
print("Stamfunksjon =", antiderivative)
print("H(1) =", antiderivative.subs(x, 1))
print("H(-1) =", antiderivative.subs(x, -1))
print("Bestemt integral =", value)
assert value == 0
Kjørt utskriftIntegrand = 4*x**3 - x
h(-x) + h(x) = 0
Stamfunksjon = x**4 - x**2/2
H(1) = 1/2
H(-1) = 1/2
Bestemt integral = 0

Fasit: 0.

Vanlig feil: Å overse at intervallet er symmetrisk og gjøre unødvendig kompliserte beregninger med fortegnsfeil.
Sensorpunkt: Sensor godtar symmetriargument eller korrekt bruk av en stamfunksjon.
Del 1 / Oppgave 2bBestemt eksponentialintegral

Oppgave 2b

Oppgave: Regn ut \(\displaystyle\int_{0}^{\ln 2}e^{2x}\,dx\).
Original poengangivelse: Oppgave 2 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal finne en stamfunksjon til e^(2x), sette inn grensene og bruke at e^(ln 2)=2.

  1. Integrer med kjerneregel baklengs
    \[\int e^{2x}\,dx=\frac12e^{2x}+C\]
  2. Sett inn grensene
    \[\int_0^{\ln2}e^{2x}\,dx=\left[\frac12e^{2x}\right]_0^{\ln2}\]
  3. Beregn øvre verdi
    \(e^{2\ln2}=e^{\ln4}=4\), så øvre verdi er 2.
  4. Beregn nedre verdi
    Ved \(x=0\) får vi \(\frac12e^0=1/2\).
  5. Trekk fra
    \[2-\frac12=\frac32\]
  6. Kontroller fortegn
    Integranden er positiv, så et positivt svar er nødvendig.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(exp(2x),x,0,ln(2))
Resultat: \(3/2\)
Tolkning: CAS gir den eksakte verdien 3/2.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, exp, log, integrate, Rational, simplify
x = symbols('x', real=True)
integrand = exp(2*x)
F = integrate(integrand, x)
value = integrate(integrand, (x, 0, log(2)))
print("Integrand =", integrand)
print("Stamfunksjon =", F)
print("Øvre verdi =", simplify(F.subs(x, log(2))))
print("Nedre verdi =", simplify(F.subs(x, 0)))
print("Bestemt integral =", value)
print("Kontroll mot 3/2 =", simplify(value - Rational(3,2)))
assert simplify(value - Rational(3,2)) == 0
Kjørt utskriftIntegrand = exp(2*x)
Stamfunksjon = exp(2*x)/2
Øvre verdi = 2
Nedre verdi = 1/2
Bestemt integral = 3/2
Kontroll mot 3/2 = 0

Fasit: \(\displaystyle\frac32\).

Vanlig feil: Å glemme faktoren 1/2 i stamfunksjonen til e^(2x).
Sensorpunkt: Sensor ser etter korrekt stamfunksjon og eksakt grenseinnsetting.
Del 1 / Oppgave 3aDerivasjon av tangens

Oppgave 3a

Oppgave: Vis at dersom \(f(x)=\tan x\), så er \(f\prime(x)=1+\tan^2x\).
Original poengangivelse: Oppgave 3 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal bevise den oppgitte derivasjonsformelen ved å skrive tan x som sin x / cos x.

  1. Skriv tangens som kvotient
    \[\tan x=\frac{\sin x}{\cos x}\]
  2. Bruk kvotientregelen
    \[f\prime(x)=\frac{\cos x\cos x-\sin x(-\sin x)}{\cos^2x}\]
  3. Forenkle telleren
    \[\cos^2x+\sin^2x=1\]
  4. Få standardformen
    \[f\prime(x)=\frac1{\cos^2x}\]
  5. Skriv 1 med felles nevner
    \[1+\tan^2x=1+\frac{\sin^2x}{\cos^2x}=\frac{\cos^2x+\sin^2x}{\cos^2x}\]
  6. Konkluder
    Begge uttrykkene er \(1/\cos^2x\), derfor er \(f\prime(x)=1+\tan^2x\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Derivative(tan(x),x)
Resultat: \(\sec^2x\)
2TrigSimplify(sec(x)^2-(1+tan(x)^2))
Resultat: 0
Tolkning: CAS bekrefter identiteten, men det algebraiske beviset må vises.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, tan, sin, cos, diff, simplify, trigsimp
x = symbols('x', real=True)
f = tan(x)
derivative = diff(f, x)
identity_form = 1 + tan(x)**2
quotient_form = diff(sin(x)/cos(x), x)
print("f(x) =", f)
print("Derivert av tan(x) =", derivative)
print("Derivert via sin/cos =", quotient_form)
print("1 + tan(x)^2 =", identity_form)
print("Kontroll derivative - identity =", trigsimp(derivative - identity_form))
print("Kontroll kvotientform =", simplify(trigsimp(quotient_form - identity_form)))
assert trigsimp(derivative - identity_form) == 0
Kjørt utskriftf(x) = tan(x)
Derivert av tan(x) = tan(x)**2 + 1
Derivert via sin/cos = sin(x)**2/cos(x)**2 + 1
1 + tan(x)^2 = tan(x)**2 + 1
Kontroll derivative - identity = 0
Kontroll kvotientform = 0

Fasit: \(f\prime(x)=1+\tan^2x\).

Vanlig feil: Å skrive at formelen er kjent uten å vise hvorfor den følger av kvotientregelen og identiteten sin²x+cos²x=1.
Sensorpunkt: Sensor ser etter et faktisk bevis, ikke bare sluttformelen.
Del 1 / Oppgave 3bUbestemt trigonometrisk integral

Oppgave 3b

Oppgave: Regn ut \(\displaystyle\int\frac{1+\tan^2x}{\tan x}\,dx\).
Original poengangivelse: Oppgave 3 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal bruke resultatet fra a eller omskrive integranden til en sum av tan x og cot x.

  1. Del brøken
    \[\frac{1+\tan^2x}{\tan x}=\frac1{\tan x}+\tan x=\cot x+\tan x\]
  2. Integrer cotangens
    \[\int\cot x\,dx=\ln|\sin x|\]
  3. Integrer tangens
    \[\int\tan x\,dx=-\ln|\cos x|\]
  4. Sett sammen
    \[\ln|\sin x|-\ln|\cos x|+C\]
  5. Bruk logaritmeregelen
    \[\ln\left|\frac{\sin x}{\cos x}\right|+C=\ln|\tan x|+C\]
  6. Oppgi gyldighet
    Uttrykket gjelder på intervaller der både \(\tan x\) og integranden er definert.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral((1+tan(x)^2)/tan(x),x)
Resultat: \(\ln|\tan x|\)
Tolkning: Derivasjon av ln|tan x| gir integranden på hvert gyldig intervall.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, tan, sin, cos, log, diff, simplify, trigsimp
x = symbols('x', real=True)
integrand = (1 + tan(x)**2)/tan(x)
F = log(tan(x))
rewritten = cos(x)/sin(x) + sin(x)/cos(x)
print("Integrand =", integrand)
print("Omskrevet =", rewritten)
print("Trigonometrisk kontroll =", trigsimp(integrand - rewritten))
print("Foreslått stamfunksjon = log(tan(x))")
print("Derivert tilbake =", diff(F, x))
print("Kontroll =", simplify(trigsimp(diff(F, x) - integrand)))
print("Merk: absoluttverdi brukes i den reelle stamfunksjonen.")
assert simplify(trigsimp(diff(F, x) - integrand)) == 0
Kjørt utskriftIntegrand = (tan(x)**2 + 1)/tan(x)
Omskrevet = sin(x)/cos(x) + cos(x)/sin(x)
Trigonometrisk kontroll = -tan(x) - 1/tan(x) + 2/sin(2*x)
Foreslått stamfunksjon = log(tan(x))
Derivert tilbake = (tan(x)**2 + 1)/tan(x)
Kontroll = 0
Merk: absoluttverdi brukes i den reelle stamfunksjonen.

Fasit: \(\ln|\tan x|+C\).

Vanlig feil: Å integrere telleren og nevneren hver for seg, eller å glemme absoluttverdien.
Sensorpunkt: Sensor ser etter korrekt omskriving og en stamfunksjon med +C.
Del 1 / Oppgave 4aAritmetisk rekke

Oppgave 4a

Oppgave: Regn ut summen av den aritmetiske rekken \(2+8+14+\cdots+296\).
Original poengangivelse: Oppgave 4 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal finne antall ledd og deretter bruke sumformelen for en aritmetisk rekke.

  1. Finn differansen
    \(d=8-2=6\).
  2. Bruk formelen for ledd nummer n
    \[a_n=a_1+(n-1)d=2+6(n-1)\]
  3. Sett siste ledd lik 296
    \[2+6(n-1)=296\]
  4. Løs for n
    \(6n-4=296\), derfor \(n=50\).
  5. Bruk sumformelen
    \[S_{50}=\frac{50}{2}(2+296)\]
  6. Beregn
    \[S_{50}=25\cdot298=7450\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(2+6(n-1)=296,n)
Resultat: 50
2Sequence(2+6(k-1),k,1,50)
Resultat: 50 ledd
3Sum(Sequence(...))
Resultat: 7450
Tolkning: CAS bekrefter både leddtallet og summen.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, Eq, solve, summation
n, k = symbols('n k', integer=True, positive=True)
a_n = 2 + 6*(n-1)
number_of_terms = solve(Eq(a_n, 296), n)[0]
sequence_sum = summation(2 + 6*(k-1), (k, 1, number_of_terms))
print("Generelt ledd a_n =", a_n)
print("Likning for siste ledd =", Eq(a_n, 296))
print("Antall ledd =", number_of_terms)
print("Første ledd =", 2)
print("Siste ledd =", a_n.subs(n, number_of_terms))
print("Sum fra SymPy =", sequence_sum)
print("Sumformelkontroll =", number_of_terms*(2+296)/2)
assert number_of_terms == 50
assert sequence_sum == 7450
Kjørt utskriftGenerelt ledd a_n = 6*n - 4
Likning for siste ledd = Eq(6*n - 4, 296)
Antall ledd = 50
Første ledd = 2
Siste ledd = 296
Sum fra SymPy = 7450
Sumformelkontroll = 7450

Fasit: 7450.

Vanlig feil: Å anta at 296 er ledd nummer 49 fordi man teller antall sprang i stedet for antall ledd.
Sensorpunkt: Sensor ser etter n=50 og korrekt sumformel.
Del 1 / Oppgave 4bUendelig geometrisk rekke

Oppgave 4b

Oppgave: Regn ut summen av den geometriske rekken \(5+\frac53+\frac59+\frac5{27}+\cdots\).
Original poengangivelse: Oppgave 4 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal identifisere første ledd og kvotient og bruke formelen for en konvergent uendelig geometrisk rekke.

  1. Finn første ledd
    \(a_1=5\).
  2. Finn kvotienten
    \[q=\frac{5/3}{5}=\frac13\]
  3. Kontroller konvergens
    \(|q|=1/3<1\), så rekken konvergerer.
  4. Bruk sumformelen
    \[S=\frac{a_1}{1-q}\]
  5. Sett inn
    \[S=\frac5{1-1/3}\]
  6. Forenkle
    \[S=\frac5{2/3}=\frac{15}{2}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Sum(5*(1/3)^k,k,0,infinity)
Resultat: \(15/2\)
Tolkning: CAS summerer den uendelige rekken fordi absoluttverdien av kvotienten er mindre enn 1.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, summation, oo, Rational, simplify
k = symbols('k', integer=True, nonnegative=True)
a1 = 5
q = Rational(1, 3)
series_sum = summation(a1*q**k, (k, 0, oo))
formula_sum = a1/(1-q)
print("Første ledd =", a1)
print("Kvotient =", q)
print("Konvergenskontroll |q| < 1 =", abs(q) < 1)
print("Sum fra SymPy =", series_sum)
print("Sum fra formel =", formula_sum)
print("Kontroll =", simplify(series_sum - formula_sum))
assert series_sum == Rational(15,2)
Kjørt utskriftFørste ledd = 5
Kvotient = 1/3
Konvergenskontroll |q| < 1 = True
Sum fra SymPy = 15/2
Sum fra formel = 15/2
Kontroll = 0

Fasit: \(\displaystyle\frac{15}{2}=7{,}5\).

Vanlig feil: Å bruke formelen for en endelig geometrisk rekke eller å sette q=3.
Sensorpunkt: Sensor ser etter q=1/3, konvergenskontroll og riktig sum.
Del 1 / Oppgave 5Lineær differensiallikning

Oppgave 5

Oppgave: Løs differensiallikningen \(y\prime+3y=3\), \(y(0)=5\).
Original poengangivelse: Oppgave 5 (3 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal finne den generelle løsningen til en lineær førsteordens likning og bruke initialbetingelsen.

  1. Finn likevektsløsningen
    En konstant løsning oppfyller \(3y=3\), altså \(y=1\).
  2. Løs den homogene likningen
    \(y_h\prime+3y_h=0\) gir \(y_h=Ce^{-3x}\).
  3. Skriv generell løsning
    \[y=1+Ce^{-3x}\]
  4. Bruk initialbetingelsen
    \[5=1+C\]
  5. Finn konstanten
    \(C=4\).
  6. Skriv og kontroller løsningen
    \[y(x)=1+4e^{-3x}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1SolveODE(y\prime+3y=3,y(0)=5)
Resultat: \(y=1+4e^{-3x}\)
Tolkning: CAS-løsningen oppfyller både differensiallikningen og initialverdien.
Visualisering for Oppgave 5
Initialverdien er 5, og løsningen nærmer seg likevekten y = 1.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, Function, Eq, dsolve, diff, exp, simplify
x = symbols('x', real=True)
y = Function('y')
ode = Eq(diff(y(x), x) + 3*y(x), 3)
solution = dsolve(ode, ics={y(0): 5})
explicit = 1 + 4*exp(-3*x)
residual = simplify(diff(explicit, x) + 3*explicit - 3)
print("Differensiallikning =", ode)
print("Løsning fra SymPy =", solution)
print("Eksplisitt løsning =", explicit)
print("Initialverdi y(0) =", explicit.subs(x, 0))
print("Residual i ODE =", residual)
print("Grense når x går mot uendelig = 1")
assert solution.rhs == explicit
assert residual == 0
assert explicit.subs(x, 0) == 5
Kjørt utskriftDifferensiallikning = Eq(3*y(x) + Derivative(y(x), x), 3)
Løsning fra SymPy = Eq(y(x), 1 + 4*exp(-3*x))
Eksplisitt løsning = 1 + 4*exp(-3*x)
Initialverdi y(0) = 5
Residual i ODE = 0
Grense når x går mot uendelig = 1

Fasit: \(y(x)=1+4e^{-3x}\).

Vanlig feil: Å finne bare den homogene løsningen og glemme den konstante likevektsløsningen.
Sensorpunkt: Sensor ser etter en full løsning og korrekt bruk av y(0)=5.
Del 1 / Oppgave 6Sinusmodell og grafavlesning

Oppgave 6

Oppgave: Grafen kan skrives som \(f(x)=A\sin(cx+\varphi)+d\). Bestem \(f\prime(0)\).
Original poengangivelse: Oppgave 6 (3 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal lese amplitude, midtlinje, periode og fase fra grafen og deretter derivere modellen.

  1. Les av maksimum og minimum
    Grafen har maksimum 2 og minimum -4.
  2. Finn amplitude og midtlinje
    \[A=\frac{2-(-4)}2=3,\qquad d=\frac{2+(-4)}2=-1\]
  3. Finn perioden
    Avstanden mellom to toppunkter er \(\pi/2\), derfor er \(T=\pi/2\).
  4. Finn c
    \[c=\frac{2\pi}{T}=4\]
  5. Bestem fase fra et toppunkt
    Toppunktet ved \(x=7\pi/24\) gir \(4x+\varphi=\pi/2\), altså \(\varphi=-2\pi/3\).
  6. Deriver og sett x=0
    \[f\prime(x)=12\cos(4x-2\pi/3),\qquad f\prime(0)=12\cos(-2\pi/3)=-6\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1A=3, d=-1, T=pi/2
Resultat: \(c=4\)
2Derivative(3*sin(4x-2pi/3)-1,x)
Resultat: \(12\cos(4x-2\pi/3)\)
3Substitute(x=0)
Resultat: -6
Tolkning: Modellen reproducerer grafens topp- og bunnpunkter og gir den etterspurte tangentstigningen.
Visualisering for Oppgave 6
Grafen har amplitude 3, midtlinje y = -1 og periode π/2. Dette gir c = 4 og f′(0) = -6.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, sin, cos, pi, diff, simplify
x = symbols('x', real=True)
A = 3
c = 4
phi = -2*pi/3
d = -1
f = A*sin(c*x + phi) + d
derivative = diff(f, x)
value = simplify(derivative.subs(x, 0))
print("Modell f(x) =", f)
print("Amplitude A =", A)
print("Midtlinje d =", d)
print("Periode =", 2*pi/c)
print("Fase phi =", phi)
print("f'(x) =", derivative)
print("f'(0) =", value)
print("Kontroll toppunkt x=7*pi/24: f =", simplify(f.subs(x, 7*pi/24)))
assert value == -6
assert simplify(f.subs(x, 7*pi/24)) == 2
Kjørt utskriftModell f(x) = -3*sin(4*x + pi/3) - 1
Amplitude A = 3
Midtlinje d = -1
Periode = pi/2
Fase phi = -2*pi/3
f'(x) = -12*cos(4*x + pi/3)
f'(0) = -6
Kontroll toppunkt x=7*pi/24: f = 2

Fasit: -6.

Vanlig feil: Å bruke avstanden mellom et toppunkt og et bunnpunkt som hele perioden; det er bare en halv periode.
Sensorpunkt: Sensor ser etter korrekt avlesning og en tydelig derivasjon, ikke bare et tall.
Del 1 / Oppgave 7aVolum av pyramide

Oppgave 7a

Oppgave: Punktene \(A(0,0,0)\), \(B(5,0,0)\), \(C(4,2,0)\) og \(T(0,0,5)\) danner en pyramide. Regn ut volumet.
Original poengangivelse: Oppgave 7 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal finne arealet av grunnflaten ABC og høyden fra T til xy-planet.

  1. Velg grunnflate
    Trekanten ABC ligger i planet \(z=0\).
  2. Finn to sidevektorer
    \(\overrightarrow{AB}=(5,0,0)\) og \(\overrightarrow{AC}=(4,2,0)\).
  3. Finn kryssproduktet
    \[\overrightarrow{AB}\times\overrightarrow{AC}=(0,0,10)\]
  4. Finn trekantarealet
    \[G=\frac12\cdot10=5\]
  5. Finn høyden
    T har z-koordinat 5, så avstanden til z=0 er \(h=5\).
  6. Bruk pyramideformelen
    \[V=\frac13Gh=\frac13\cdot5\cdot5=\frac{25}{3}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Cross((5,0,0),(4,2,0))
Resultat: (0,0,10)
21/3*Area(Triangle(A,B,C))*5
Resultat: \(25/3\)
Tolkning: Kryssproduktet gir dobbelt areal av trekanten, og høyden står vinkelrett på grunnplanet.
Visualisering for Oppgave 7a
Pyramiden har grunnflate ABC i xy-planet og toppunkt T fem enheter over planet.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import Matrix, Rational
A = Matrix([0,0,0])
B = Matrix([5,0,0])
C = Matrix([4,2,0])
T = Matrix([0,0,5])
AB = B-A
AC = C-A
cross = AB.cross(AC)
base_area = cross.norm()/2
height = 5
volume = Rational(1,3)*base_area*height
print("AB =", tuple(AB))
print("AC =", tuple(AC))
print("AB x AC =", tuple(cross))
print("Grunnflateareal =", base_area)
print("Høyde =", height)
print("Volum =", volume)
assert base_area == 5
assert volume == Rational(25,3)
Kjørt utskriftAB = (5, 0, 0)
AC = (4, 2, 0)
AB x AC = (0, 0, 10)
Grunnflateareal = 5
Høyde = 5
Volum = 25/3

Fasit: \(\displaystyle V=\frac{25}{3}\).

Vanlig feil: Å bruke parallellogramarealet 10 som grunnflateareal i stedet for trekantarealet 5.
Sensorpunkt: Sensor ser etter trekantareal, høyde og faktoren 1/3.
Del 1 / Oppgave 7bAreal i rommet

Oppgave 7b

Oppgave: Regn ut arealet av \(\triangle BCT\).
Original poengangivelse: Oppgave 7 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal bruke kryssproduktet av to sidevektorer i trekanten BCT.

  1. Finn vektorene fra B
    \[\overrightarrow{BC}=(-1,2,0),\qquad\overrightarrow{BT}=(-5,0,5)\]
  2. Beregn kryssproduktet
    \[\overrightarrow{BC}\times\overrightarrow{BT}=(10,5,10)\]
  3. Finn lengden
    \[\|(10,5,10)\|=\sqrt{100+25+100}=15\]
  4. Tolk lengden
    Kryssproduktets lengde er arealet av parallellogrammet spent ut av vektorene.
  5. Del på to
    \[A_{BCT}=\frac12\cdot15\]
  6. Skriv svaret
    \[A_{BCT}=\frac{15}{2}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Cross(C-B,T-B)
Resultat: (10,5,10)
2Length(%)/2
Resultat: \(15/2\)
Tolkning: CAS bekrefter kryssproduktet og trekantarealet.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import Matrix, Rational, sqrt, simplify
B = Matrix([5,0,0])
C = Matrix([4,2,0])
T = Matrix([0,0,5])
BC = C-B
BT = T-B
cross = BC.cross(BT)
norm = simplify(cross.norm())
area = norm/2
print("BC =", tuple(BC))
print("BT =", tuple(BT))
print("BC x BT =", tuple(cross))
print("Lengde av kryssprodukt =", norm)
print("Areal av trekant BCT =", area)
print("Kontroll mot 15/2 =", simplify(area - Rational(15,2)))
assert area == Rational(15,2)
Kjørt utskriftBC = (-1, 2, 0)
BT = (-5, 0, 5)
BC x BT = (10, 5, 10)
Lengde av kryssprodukt = 15
Areal av trekant BCT = 15/2
Kontroll mot 15/2 = 0

Fasit: \(\displaystyle\frac{15}{2}\).

Vanlig feil: Å glemme å dele kryssproduktets lengde på 2.
Sensorpunkt: Sensor ser etter egnede sidevektorer og korrekt kryssprodukt.
Del 1 / Oppgave 7cAvstand fra punkt til plan

Oppgave 7c

Oppgave: Bestem avstanden fra A til planet som går gjennom B, C og T.
Original poengangivelse: Oppgave 7 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal finne en normalvektor til planet BCT, skrive planlikningen og bruke avstandsformelen.

  1. Bruk normalvektoren fra b
    \((10,5,10)\) kan forkortes til \(\mathbf n=(2,1,2)\).
  2. Skriv planet gjennom B
    \[2(x-5)+1(y-0)+2(z-0)=0\]
  3. Forenkle planlikningen
    \[2x+y+2z-10=0\]
  4. Bruk avstandsformelen
    For \(A=(0,0,0)\): \[d=\frac{|2\cdot0+0+2\cdot0-10|}{\sqrt{2^2+1^2+2^2}}\]
  5. Beregn nevneren
    \(\sqrt{4+1+4}=3\).
  6. Konkluder
    \[d=\frac{10}{3}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Plane(B,C,T)
Resultat: \(2x+y+2z=10\)
2Distance(A,Plane(B,C,T))
Resultat: \(10/3\)
Tolkning: Planets normalvektor og avstandsformelen gir den eksakte avstanden.
Visualisering for Oppgave 7c
Pyramiden har grunnflate ABC i xy-planet og toppunkt T fem enheter over planet.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import Matrix, sqrt, Rational, simplify
A = Matrix([0,0,0])
B = Matrix([5,0,0])
C = Matrix([4,2,0])
T = Matrix([0,0,5])
normal = (C-B).cross(T-B)
primitive_normal = normal/5
constant = primitive_normal.dot(B)
distance = abs(primitive_normal.dot(A)-constant)/primitive_normal.norm()
print("Normalvektor fra kryssprodukt =", tuple(normal))
print("Forenklet normalvektor =", tuple(primitive_normal))
print("Planlikning: 2*x + y + 2*z =", constant)
print("Avstand fra A til planet =", distance)
print("Kontroll mot 10/3 =", simplify(distance - Rational(10,3)))
assert distance == Rational(10,3)
Kjørt utskriftNormalvektor fra kryssprodukt = (10, 5, 10)
Forenklet normalvektor = (2, 1, 2)
Planlikning: 2*x + y + 2*z = 10
Avstand fra A til planet = 10/3
Kontroll mot 10/3 = 0

Fasit: \(\displaystyle\frac{10}{3}\).

Vanlig feil: Å bruke lengden av normalvektoren 3 i telleren eller glemme absoluttverdien.
Sensorpunkt: Sensor ser etter planlikning og korrekt punkt-plan-avstand.
Del 1 / Oppgave 8aAreal mellom grafer

Oppgave 8a

Oppgave: For \(f(x)=\cos(2x)\), \(D_f=[-\pi/2,\pi/2]\), bestem arealet mellom grafen og linjen \(y=1/2\) i det fargelagte området.
Original poengangivelse: Oppgave 8 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal finne skjæringspunktene og integrere øvre funksjon minus nedre funksjon.

  1. Finn skjæringspunktene
    \[\cos(2x)=\frac12\]
  2. Løs i det aktuelle området
    \(2x=\pm\pi/3\), derfor \(x=\pm\pi/6\).
  3. Sett opp arealintegralet
    \[A=\int_{-\pi/6}^{\pi/6}\left(\cos(2x)-\frac12\right)dx\]
  4. Finn stamfunksjonen
    \[\frac12\sin(2x)-\frac{x}{2}\]
  5. Sett inn grensene
    \[A=\left[\frac12\sin(2x)-\frac{x}{2}\right]_{-\pi/6}^{\pi/6}\]
  6. Forenkle
    \[A=\frac{\sqrt3}{2}-\frac{\pi}{6}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(cos(2x)=1/2,-pi/2<=x<=pi/2)
Resultat: \(x=-\pi/6,\pi/6\)
2Integral(cos(2x)-1/2,x,-pi/6,pi/6)
Resultat: \(\sqrt3/2-\pi/6\)
Tolkning: CAS finner grensene og det eksakte arealet.
Visualisering for Oppgave 8a
Skjæringspunktene er x = ±π/6, og det fargelagte arealet ligger mellom cos(2x) og 1/2.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, cos, pi, Eq, solveset, Interval, integrate, sqrt, Rational, simplify
x = symbols('x', real=True)
solutions = solveset(Eq(cos(2*x), Rational(1,2)), x, domain=Interval(-pi/2, pi/2))
area = integrate(cos(2*x)-Rational(1,2), (x, -pi/6, pi/6))
expected = sqrt(3)/2 - pi/6
print("Skjæringspunkter =", solutions)
print("Arealintegrand = cos(2*x) - 1/2")
print("Eksakt areal =", area)
print("Desimalverdi =", area.evalf(12))
print("Forventet form =", expected)
print("Kontroll =", simplify(area - expected))
assert simplify(area - expected) == 0
Kjørt utskriftSkjæringspunkter = {-pi/6, pi/6}
Arealintegrand = cos(2*x) - 1/2
Eksakt areal = -pi/6 + sqrt(3)/2
Desimalverdi = 0.342426628186
Forventet form = -pi/6 + sqrt(3)/2
Kontroll = 0

Fasit: \(\displaystyle A=\frac{\sqrt3}{2}-\frac{\pi}{6}\).

Vanlig feil: Å integrere over hele definisjonsområdet eller bruke feil skjæringspunkter.
Sensorpunkt: Sensor ser etter skjæringspunktene ±π/6 og øvre minus nedre funksjon.
Del 1 / Oppgave 8bTrigonometrisk identitet

Oppgave 8b

Oppgave: Bruk \(\cos(u+v)=\cos u\cos v-\sin u\sin v\) til å vise at \((f(x))^2=\frac12(\cos4x+1)\).
Original poengangivelse: Oppgave 8 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal utlede dobbeltvinkelidentiteten for cos²(2x) fra addisjonsformelen.

  1. Sett u=v=2x
    \[\cos(4x)=\cos(2x+2x)\]
  2. Bruk addisjonsformelen
    \[\cos(4x)=\cos^2(2x)-\sin^2(2x)\]
  3. Bruk enhetsidentiteten
    \(\sin^2(2x)=1-\cos^2(2x)\).
  4. Sett inn
    \[\cos(4x)=\cos^2(2x)-(1-\cos^2(2x))\]
  5. Forenkle
    \[\cos(4x)=2\cos^2(2x)-1\]
  6. Isoler cos²(2x)
    \[\cos^2(2x)=\frac12(\cos4x+1)\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1TrigExpand(cos(4x))
Resultat: \(\cos^2(2x)-\sin^2(2x)\)
2TrigSimplify(cos(2x)^2-(cos(4x)+1)/2)
Resultat: 0
Tolkning: CAS bekrefter identiteten, mens utledningen viser hvordan den følger av den oppgitte formelen.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, cos, sin, expand_trig, trigsimp, simplify
x = symbols('x', real=True)
left = cos(2*x)**2
right = (cos(4*x)+1)/2
expanded = expand_trig(cos(4*x))
print("cos(4*x) utvidet =", expanded)
print("Venstreside cos(2*x)^2 =", left)
print("Høyreside =", right)
print("Trigonometrisk differanse =", trigsimp(left-right))
print("Kontroll ved x=1 =", (left-right).subs(x,1).evalf(12))
assert simplify(trigsimp(left-right)) == 0
Kjørt utskriftcos(4*x) utvidet = 8*cos(x)**4 - 8*cos(x)**2 + 1
Venstreside cos(2*x)^2 = cos(2*x)**2
Høyreside = cos(4*x)/2 + 1/2
Trigonometrisk differanse = 0
Kontroll ved x=1 = -0.e-127

Fasit: \((f(x))^2=\cos^2(2x)=\frac12(\cos4x+1)\).

Vanlig feil: Å bruke identiteten som et sitat uten å vise hvordan den følger av addisjonsformelen som oppgaven krever.
Sensorpunkt: Sensor ser etter innsettingen u=v=2x og korrekt isolering av cos²(2x).
Del 1 / Oppgave 8cOmdreiningsvolum med skiver

Oppgave 8c

Oppgave: Bestem volumet når det fargelagte området roteres om x-aksen.
Original poengangivelse: Oppgave 8 (6 poeng).
Vis løsning

Hva spør oppgaven om? Området ligger mellom to positive grafer. Rotasjon gir skiver med ytre radius cos(2x) og indre radius 1/2.

  1. Oppgi grensene
    Fra a er \(x\in[-\pi/6,\pi/6]\).
  2. Sett opp skiveformelen
    \[V=\pi\int_{-\pi/6}^{\pi/6}\left((\cos2x)^2-\left(\frac12\right)^2\right)dx\]
  3. Bruk identiteten fra b
    \[(\cos2x)^2-\frac14=\frac12\cos4x+\frac14\]
  4. Integrer
    \[\int\left(\frac12\cos4x+\frac14\right)dx=\frac18\sin4x+\frac{x}{4}\]
  5. Sett inn grensene
    Integralverdien blir \(\sqrt3/8+\pi/12\).
  6. Multipliser med π
    \[V=\frac{\pi\sqrt3}{8}+\frac{\pi^2}{12}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(pi*(cos(2x)^2-(1/2)^2),x,-pi/6,pi/6)
Resultat: \(\pi\sqrt3/8+\pi^2/12\)
Tolkning: CAS bekrefter skiveintegralet og den eksakte volumverdien.
Visualisering for Oppgave 8c
Rotasjonen gir skiver med ytre radius cos(2x) og indre radius 1/2.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, cos, pi, integrate, sqrt, Rational, simplify
x = symbols('x', real=True)
outer_radius = cos(2*x)
inner_radius = Rational(1,2)
integrand = pi*(outer_radius**2-inner_radius**2)
volume = integrate(integrand, (x, -pi/6, pi/6))
expected = pi*sqrt(3)/8 + pi**2/12
print("Ytre radius =", outer_radius)
print("Indre radius =", inner_radius)
print("Volumintegrand =", integrand)
print("Eksakt volum =", volume)
print("Desimalverdi =", volume.evalf(12))
print("Forventet form =", expected)
print("Kontroll =", simplify(volume-expected))
assert simplify(volume-expected) == 0
Kjørt utskriftYtre radius = cos(2*x)
Indre radius = 1/2
Volumintegrand = pi*(cos(2*x)**2 - 1/4)
Eksakt volum = pi*(sqrt(3)/16 + pi/24) - pi*(-pi/24 - sqrt(3)/16)
Desimalverdi = 1.50264179501
Forventet form = sqrt(3)*pi/8 + pi**2/12
Kontroll = 0

Fasit: \(\displaystyle V=\frac{\pi\sqrt3}{8}+\frac{\pi^2}{12}\).

Vanlig feil: Å bruke bare π∫f² og dermed fylle inn hullet med radius 1/2.
Sensorpunkt: Sensor ser etter ytre radius, indre radius og riktig skiveformel.
Del 1 / Oppgave 9Matematisk induksjon

Oppgave 9

Oppgave: Bruk induksjon til å vise at \(1\cdot6+2\cdot7+\cdots+n(n+5)=\dfrac{n(n+1)(n+8)}3\) for alle \(n\in\mathbb N\).
Original poengangivelse: Oppgave 9 (2 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal vise basissteget og at påstanden for n medfører påstanden for n+1.

  1. Basis n=1
    Venstresiden er \(1\cdot6=6\), og høyresiden er \(1\cdot2\cdot9/3=6\).
  2. Induksjonshypotese
    Anta \(S_n=\frac{n(n+1)(n+8)}3\).
  3. Legg til neste ledd
    \[S_{n+1}=S_n+(n+1)(n+6)\]
  4. Sett inn hypotesen
    \[S_{n+1}=\frac{n(n+1)(n+8)}3+(n+1)(n+6)\]
  5. Faktoriser og samle
    \[S_{n+1}=\frac{(n+1)(n^2+11n+18)}3\]
  6. Faktoriser andregradsuttrykket
    \[n^2+11n+18=(n+2)(n+9)\]
  7. Få målformen
    \[S_{n+1}=\frac{(n+1)(n+2)(n+9)}3\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1FullSimplify(n(n+1)(n+8)/3+(n+1)(n+6))
Resultat: \((n+1)(n+2)(n+9)/3\)
Tolkning: CAS kontrollerer algebraen i induksjonssteget, mens basis og implikasjonen må forklares.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, simplify, factor
n = symbols('n', integer=True, positive=True)
formula_n = n*(n+1)*(n+8)/3
next_from_hypothesis = formula_n + (n+1)*(n+6)
formula_next = (n+1)*(n+2)*(n+9)/3
print("Basis venstreside n=1 =", 1*6)
print("Basis høyreside n=1 =", formula_n.subs(n,1))
print("Induksjonssteg før forenkling =", next_from_hypothesis)
print("Faktorisert induksjonssteg =", factor(next_from_hypothesis))
print("Målform for n+1 =", formula_next)
print("Differanse =", simplify(next_from_hypothesis-formula_next))
for N in range(1,7):
    lhs = sum(k*(k+5) for k in range(1,N+1))
    rhs = formula_n.subs(n,N)
    print(f"n={N}: venstre={lhs}, høyre={rhs}")
assert simplify(next_from_hypothesis-formula_next) == 0
Kjørt utskriftBasis venstreside n=1 = 6
Basis høyreside n=1 = 6
Induksjonssteg før forenkling = n*(n + 1)*(n + 8)/3 + (n + 1)*(n + 6)
Faktorisert induksjonssteg = (n + 1)*(n + 2)*(n + 9)/3
Målform for n+1 = (n + 1)*(n + 2)*(n + 9)/3
Differanse = 0
n=1: venstre=6, høyre=6
n=2: venstre=20, høyre=20
n=3: venstre=44, høyre=44
n=4: venstre=80, høyre=80
n=5: venstre=130, høyre=130
n=6: venstre=196, høyre=196

Fasit: Formelen gjelder for alle naturlige tall n ved matematisk induksjon.

Vanlig feil: Å kontrollere noen få tallverdier uten å gjennomføre induksjonssteget.
Sensorpunkt: Sensor ser etter basis, hypotese og korrekt overgang fra n til n+1.

Del 2 - med hjelpemidler

Del 2 / Oppgave 1aLogistisk regresjon

Oppgave 1a

Oppgave: Tabellen gir strømmingsutgifter i millioner kroner for årene 2008–2018. Lag en modell \(F\) med \(F(0)\) som verdien i 2008, og begrunn modellen.
Original poengangivelse: Oppgave 1 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal velge x som antall år etter 2008 og tilpasse en modell som beskriver sterk vekst med gradvis utflating.

  1. Velg x-verdier
    Bruk \(x=0,2,4,6,8,10\) for årene 2008, 2010, ..., 2018.
  2. Vurder datamønsteret
    Tallene vokser først raskt og flater deretter ut. En logistisk modell er derfor mer realistisk enn en eksponentialmodell på lang sikt.
  3. Bruk logistisk regresjon
    Modellformen er \[F(x)=\frac{L}{1+A e^{-kx}}\]
  4. Finn regresjonskoeffisientene
    Regresjon gir omtrent \(L=660{,}363\), \(A=30{,}721\) og \(k=0{,}70656\).
  5. Skriv modellen
    \[F(x)=\frac{660{,}363}{1+30{,}721e^{-0{,}70656x}}\]
  6. Vurder tilpasningen
    Modellen har \(R^2\approx0{,}9976\) og en naturlig horisontal asymptote, så den er godt egnet til perioden og nær framtid.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1FitLogistic({(0,2),(2,70),(4,246),(6,456),(8,582),(10,655)})
Resultat: \(F(x)\approx660{,}363/(1+30{,}721e^{-0{,}70656x})\)
Tolkning: Den logistiske regresjonen gir en svært høy forklaringsgrad og modellerer utflatingen i dataene.
Visualisering for Oppgave 1a
Den logistiske modellen beskriver rask vekst etterfulgt av utflating mot omtrent 660 millioner kroner per år.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
import numpy as np
from scipy.optimize import curve_fit

x_data = np.array([0, 2, 4, 6, 8, 10], dtype=float)
y_data = np.array([2, 70, 246, 456, 582, 655], dtype=float)

def logistic(x, L, A, k):
    return L/(1 + A*np.exp(-k*x))

parameters, covariance = curve_fit(
    logistic, x_data, y_data,
    p0=(700, 30, 0.7), bounds=(0, np.inf), maxfev=100000
)
L, A, k = parameters
predicted = logistic(x_data, L, A, k)
ss_res = np.sum((y_data-predicted)**2)
ss_tot = np.sum((y_data-y_data.mean())**2)
r_squared = 1-ss_res/ss_tot
print(f"L = {L:.9f}")
print(f"A = {A:.9f}")
print(f"k = {k:.9f}")
print(f"R^2 = {r_squared:.12f}")
for x_value, observed, model_value in zip(x_data, y_data, predicted):
    print(f"x={x_value:>4.1f}: observert={observed:>6.1f}, modell={model_value:>10.4f}")
assert r_squared > 0.997
Kjørt utskriftL = 660.363710742
A = 30.720705867
k = 0.706557278
R^2 = 0.997574316686
x= 0.0: observert=   2.0, modell=   20.8181
x= 2.0: observert=  70.0, modell=   77.9013
x= 4.0: observert= 246.0, modell=  234.1910
x= 6.0: observert= 456.0, modell=  457.6636
x= 8.0: observert= 582.0, modell=  596.1063
x=10.0: observert= 655.0, modell=  643.4816

Fasit: Et gyldig modellvalg er \(F(x)=\dfrac{660{,}363}{1+30{,}721e^{-0{,}70656x}}\), der x er år etter 2008.

Vanlig feil: Å bruke de faktiske årstallene 2008, 2010, ... som x når oppgaven krever at F(0) svarer til 2008.
Sensorpunkt: Sensor vurderer både modellvalg, dokumentert regresjon og faglig begrunnelse.
Del 2 / Oppgave 1bIntegral, gjennomsnitt, sum og derivert

Oppgave 1b

Oppgave: For modellen F skal du bestemme \(I=\int_{-0,5}^{10,5}F(x)dx\), \(G=\frac15\int_{2,5}^{7,5}F(x)dx\), \(S=\sum_{i=0}^{10}F(i)\) og \(D=\frac{F(5,001)-F(5)}{0,001}\).
Original poengangivelse: Oppgave 1 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal bruke den valgte logistiske modellen til fire ulike beregninger med forskjellige matematiske betydninger.

  1. Bruk samme modell som i a
    \[F(x)=\frac{660{,}3634667}{1+30{,}72074684e^{-0{,}70655791x}}\]
  2. Beregn I numerisk
    \[I\approx3728{,}74\]
  3. Beregn gjennomsnittsverdien G
    \[G=\frac15\int_{2,5}^{7,5}F(x)dx\approx344{,}45\]
  4. Beregn den diskrete summen S
    \[S=F(0)+F(1)+\cdots+F(10)\approx3728{,}82\]
  5. Beregn differansekvotienten D
    \[D\approx116{,}31\]
  6. Oppgi enheter
    I og S måles i millioner kroner, G i millioner kroner per år, og D i millioner kroner per år per år.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(F,-0.5,10.5)
Resultat: \(I\approx3728{,}74\)
2Integral(F,2.5,7.5)/5
Resultat: \(G\approx344{,}45\)
3Sum(F(i),i,0,10)
Resultat: \(S\approx3728{,}82\)
4(F(5.001)-F(5))/0.001
Resultat: \(D\approx116{,}31\)
Tolkning: Numerisk integrasjon, diskret summering og differansekvotient gir de fire verdiene.
Visualisering for Oppgave 1b
Den logistiske modellen beskriver rask vekst etterfulgt av utflating mot omtrent 660 millioner kroner per år.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
import numpy as np
from scipy.integrate import quad

L = 660.3634667
A = 30.72074684
k = 0.70655791

def F(x):
    return L/(1 + A*np.exp(-k*x))

I, I_error = quad(F, -0.5, 10.5)
G_integral, G_error = quad(F, 2.5, 7.5)
G = G_integral/5
S = sum(F(i) for i in range(11))
D = (F(5.001)-F(5))/0.001
print(f"I = {I:.12f}")
print(f"Estimert integrasjonsfeil for I = {I_error:.3e}")
print(f"G = {G:.12f}")
print(f"S = {S:.12f}")
print(f"F(5) = {F(5):.12f}")
print(f"F(5.001) = {F(5.001):.12f}")
print(f"D = {D:.12f}")
assert abs(I-3728.736936638496) < 1e-6
assert abs(G-344.4484764815358) < 1e-6
assert abs(S-3728.815494779811) < 1e-6
assert abs(D-116.30549114943278) < 1e-6
Kjørt utskriftI = 3728.736936638496
Estimert integrasjonsfeil for I = 4.835e-11
G = 344.448476481536
S = 3728.815494779811
F(5) = 347.969763971638
F(5.001) = 348.086069462788
D = 116.305491149433

Fasit: \(I\approx3728{,}74\), \(G\approx344{,}45\), \(S\approx3728{,}82\) og \(D\approx116{,}31\).

Vanlig feil: Å bruke en annen modell i b enn den som ble definert i a, eller å glemme faktoren 1/5 i G.
Sensorpunkt: Sensor ser etter dokumenterte digitale beregninger og konsistent bruk av modellen.
Del 2 / Oppgave 1cPraktisk tolkning av modeller

Oppgave 1c

Oppgave: Gi en praktisk tolkning av svarene I, G, S og D.
Original poengangivelse: Oppgave 1 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal koble hvert matematisk uttrykk til år, enheter og hva størrelsen sier om strømmingsmarkedet.

  1. Tolk I
    Intervallet \([-0,5,10,5]\) dekker omtrent kalenderårene 2008–2018. I er modellert samlet strømmingsbruk i denne perioden, omtrent 3729 millioner kroner.
  2. Tolk G
    G er gjennomsnittlig årlig strømmingsbruk fra 2,5 til 7,5 år etter 2008, altså omtrent fra midten av 2010 til midten av 2015: 344,45 millioner kroner per år.
  3. Tolk S
    S summerer modellens årstallverdier for 2008, 2009, ..., 2018. Resultatet er omtrent 3729 millioner kroner.
  4. Tolk D
    x=5 svarer til 2013. D er en framoverdifferanse som tilnærmer \(F\prime(5)\).
  5. Oppgi veksttolkningen
    I 2013 økte den årlige strømmingsbruken ifølge modellen med omtrent 116 millioner kroner per år.
  6. Skille mellom nivå og endring
    F(5) er selve årlige beløpet, mens D beskriver hvor raskt dette beløpet endrer seg.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Derivative(F,x)
Resultat: \(F\prime(5)\approx116{,}31\)
2Year=2008+x
Resultat: \(x=5\leftrightarrow2013\)
Tolkning: Differansekvotienten ligger svært nær den analytiske deriverte i x=5.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
import math
L = 660.3634667
A = 30.72074684
k = 0.70655791

def F(x):
    return L/(1 + A*math.exp(-k*x))

def F_prime(x):
    exponential = math.exp(-k*x)
    return L*A*k*exponential/(1 + A*exponential)**2

D = (F(5.001)-F(5))/0.001
analytic = F_prime(5)
print("x=5 svarer til år", 2008+5)
print(f"F(5) = {F(5):.6f} millioner kroner per år")
print(f"Differansekvotient D = {D:.6f}")
print(f"Analytisk F'(5) = {analytic:.6f}")
print(f"Forskjell = {D-analytic:.6f}")
print("I og S tolkes som omtrent samlet beløp i millioner kroner.")
print("G tolkes som gjennomsnittlig årlig beløp.")
assert abs(D-analytic) < 0.02
Kjørt utskriftx=5 svarer til år 2013
F(5) = 347.969764 millioner kroner per år
Differansekvotient D = 116.305491
Analytisk F'(5) = 116.307710
Forskjell = -0.002218
I og S tolkes som omtrent samlet beløp i millioner kroner.
G tolkes som gjennomsnittlig årlig beløp.

Fasit: I og S er omtrent samlet beløp for 2008–2018, G er et femårig gjennomsnitt, og D er modellens årlige veksttakt rundt 2013.

Vanlig feil: Å gi bare tallene på nytt uten årstall, enheter eller forklaring av forskjellen mellom sum, gjennomsnitt og derivert.
Sensorpunkt: Sensor ser etter praktiske tolkninger med riktige enheter.
Del 2 / Oppgave 2aPlanlikning

Oppgave 2a

Oppgave: Planet \(\alpha\) går gjennom \(A(1,0,3)\), \(B(0,1,2)\) og \(C(2,3,2)\). Bestem en likning for planet \(\beta\) som er parallelt med \(\alpha\) og går gjennom \(P(2,-5,5)\).
Original poengangivelse: Oppgave 2 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal finne en normalvektor til α og bruke den samme normalvektoren for det parallelle planet β.

  1. Finn to retningsvektorer i α
    \[\overrightarrow{AB}=(-1,1,-1),\qquad\overrightarrow{AC}=(1,3,-1)\]
  2. Finn en normalvektor
    \[\overrightarrow{AB}\times\overrightarrow{AC}=(2,-2,-4)\sim(1,-1,-2)\]
  3. Skriv generell parallell planlikning
    \[x-y-2z+d=0\]
  4. Sett inn P
    \[2-(-5)-2\cdot5+d=0\]
  5. Finn konstanten
    \(7-10+d=0\), derfor \(d=3\).
  6. Skriv β
    \[\beta:\ x-y-2z+3=0\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Cross(B-A,C-A)
Resultat: (2,-2,-4)
2Plane(P,(1,-1,-2))
Resultat: \(x-y-2z+3=0\)
Tolkning: Parallelle plan har proporsjonale normalvektorer, og P oppfyller den nye likningen.
Visualisering for Oppgave 2a
Planene er parallelle. A og Q ligger på samme normal, og kulens sentrum S er midtpunktet mellom tangentpunktene.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import Matrix, symbols, simplify
A = Matrix([1,0,3])
B = Matrix([0,1,2])
C = Matrix([2,3,2])
P = Matrix([2,-5,5])
AB = B-A
AC = C-A
normal = AB.cross(AC)
primitive = normal/2
constant_beta = -primitive.dot(P)
print("AB =", tuple(AB))
print("AC =", tuple(AC))
print("AB x AC =", tuple(normal))
print("Forenklet normalvektor =", tuple(primitive))
print("Beta: x - y - 2*z + d = 0")
print("d =", constant_beta)
print("Kontroll i P =", primitive.dot(P)+constant_beta)
assert tuple(primitive) == (1,-1,-2)
assert constant_beta == 3
assert primitive.dot(P)+constant_beta == 0
Kjørt utskriftAB = (-1, 1, -1)
AC = (1, 3, -1)
AB x AC = (2, -2, -4)
Forenklet normalvektor = (1, -1, -2)
Beta: x - y - 2*z + d = 0
d = 3
Kontroll i P = 0

Fasit: \(\beta:\ x-y-2z+3=0\).

Vanlig feil: Å bruke punktene A, B og C direkte i β; de ligger i α, ikke nødvendigvis i det parallelle planet β.
Sensorpunkt: Sensor ser etter normalvektor, parallellitet og innsetting av P.
Del 2 / Oppgave 2bTangentpunkter mellom parallelle plan

Oppgave 2b

Oppgave: En kule tangerer \(\alpha\) i A og \(\beta\) i et punkt Q. Bestem eksakte koordinater til Q.
Original poengangivelse: Oppgave 2 (4 poeng).
Vis løsning

Hva spør oppgaven om? Radiene til tangentpunktene står normalt på planene. Derfor ligger A og Q på samme linje parallell med normalvektoren.

  1. Finn α-likningen
    Med normalvektor \((1,-1,-2)\) og punkt A får vi \[\alpha:x-y-2z+5=0\]
  2. Parametriser normalen gjennom A
    \[Q=A+t(1,-1,-2)=(1+t,-t,3-2t)\]
  3. Krev at Q ligger i β
    \[(1+t)-(-t)-2(3-2t)+3=0\]
  4. Løs for t
    \[-2+6t=0\Rightarrow t=1/3\]
  5. Finn Q
    \[Q=\left(1+\frac13,-\frac13,3-\frac23\right)\]
  6. Skriv eksakt svar
    \[Q=\left(\frac43,-\frac13,\frac73\right)\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Line(A,A+(1,-1,-2))
Resultat: normalen gjennom A
2Intersect(Line(...),beta)
Resultat: \(Q=(4/3,-1/3,7/3)\)
Tolkning: Q ligger i β, og vektoren AQ er parallell med begge planenes normalvektor.
Visualisering for Oppgave 2b
Planene er parallelle. A og Q ligger på samme normal, og kulens sentrum S er midtpunktet mellom tangentpunktene.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import Matrix, symbols, Eq, solve, Rational, simplify
t = symbols('t', real=True)
A = Matrix([1,0,3])
normal = Matrix([1,-1,-2])
Q_t = A + t*normal
beta_expression = Q_t[0]-Q_t[1]-2*Q_t[2]+3
parameter = solve(Eq(beta_expression,0), t)[0]
Q = Q_t.subs(t, parameter)
center = (A+Q)/2
print("Normalen gjennom A: A + t*n =", tuple(Q_t))
print("Beta-uttrykk langs normalen =", beta_expression)
print("t =", parameter)
print("Q =", tuple(Q))
print("Kontroll Q i beta =", simplify(Q[0]-Q[1]-2*Q[2]+3))
print("Kulens sentrum =", tuple(center))
print("AQ =", tuple(Q-A))
assert parameter == Rational(1,3)
assert tuple(Q) == (Rational(4,3),Rational(-1,3),Rational(7,3))
Kjørt utskriftNormalen gjennom A: A + t*n = (t + 1, -t, 3 - 2*t)
Beta-uttrykk langs normalen = 6*t - 2
t = 1/3
Q = (4/3, -1/3, 7/3)
Kontroll Q i beta = 0
Kulens sentrum = (7/6, -1/6, 8/3)
AQ = (1/3, -1/3, -2/3)

Fasit: \(Q=(4/3,-1/3,7/3)\).

Vanlig feil: Å velge et vilkårlig punkt i β i stedet for skjæringen mellom β og normalen gjennom A.
Sensorpunkt: Sensor ser etter normalretningen og eksakt skjæring med β.
Del 2 / Oppgave 3aDifferensiallikning for fart

Oppgave 3a

Oppgave: En mopedbil har \(F=250\,\text{N}\), og farten oppfyller \(350v\prime=F-10v\). Finn \(v(t)\) når bilen starter fra ro.
Original poengangivelse: Oppgave 3 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal løse en lineær differensiallikning med initialbetingelsen v(0)=0.

  1. Sett inn motorkraften
    \[350v\prime=250-10v\]
  2. Skriv standardform
    \[v\prime+\frac1{35}v=\frac57\]
  3. Finn likevektsfarten
    Når \(v\prime=0\), er \(250-10v=0\), altså \(v=25\).
  4. Skriv generell løsning
    \[v(t)=25+Ce^{-t/35}\]
  5. Bruk v(0)=0
    \[0=25+C\Rightarrow C=-25\]
  6. Konkluder
    \[v(t)=25(1-e^{-t/35})\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1SolveODE(350v\prime=250-10v,v(0)=0)
Resultat: \(v=25(1-e^{-t/35})\)
Tolkning: CAS-løsningen har null initialfart og null residual i differensiallikningen.
Visualisering for Oppgave 3a
Farten øker fra 0 og nærmer seg 25 m/s, som tilsvarer 90 km/h.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, Function, Eq, dsolve, diff, exp, simplify
t = symbols('t', nonnegative=True)
v = Function('v')
ode = Eq(350*diff(v(t),t), 250-10*v(t))
solution = dsolve(ode, ics={v(0):0})
explicit = 25*(1-exp(-t/35))
residual = simplify(350*diff(explicit,t)-(250-10*explicit))
print("Differensiallikning =", ode)
print("Løsning fra SymPy =", solution)
print("Eksplisitt løsning =", explicit)
print("v(0) =", explicit.subs(t,0))
print("ODE-residual =", residual)
print("v(35) =", explicit.subs(t,35).evalf(12), "m/s")
assert simplify(solution.rhs-explicit) == 0
assert residual == 0
Kjørt utskriftDifferensiallikning = Eq(350*Derivative(v(t), t), 250 - 10*v(t))
Løsning fra SymPy = Eq(v(t), 25 - 25*exp(-t/35))
Eksplisitt løsning = 25 - 25*exp(-t/35)
v(0) = 0
ODE-residual = 0
v(35) = 15.8030139707 m/s

Fasit: \(v(t)=25(1-e^{-t/35})\,\text{m/s}\).

Vanlig feil: Å glemme initialbetingelsen eller anta konstant akselerasjon.
Sensorpunkt: Sensor ser etter en løst ODE og bruk av at bilen starter fra ro.
Del 2 / Oppgave 3bGrenseverdi og toppfart

Oppgave 3b

Oppgave: Hva er den største farten mopedbilen kan oppnå?
Original poengangivelse: Oppgave 3 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal finne grenseverdien til v(t) når tiden går mot uendelig og konvertere til km/h.

  1. Bruk uttrykket fra a
    \[v(t)=25(1-e^{-t/35})\]
  2. Ta grensen
    Når \(t\to\infty\), går \(e^{-t/35}\to0\).
  3. Finn toppfarten i m/s
    \[v_{\max}=25\,\text{m/s}\]
  4. Konverter enheten
    \[25\cdot3{,}6=90\]
  5. Tolk fysisk
    Motorkraften og motstanden balanserer når farten er 25 m/s.
  6. Skriv sluttresultatet
    Toppfarten er \(90\,\text{km/h}\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Limit(25*(1-exp(-t/35)),t,infinity)
Resultat: 25
225*3.6
Resultat: 90
Tolkning: Grensen stemmer også med likevektsbetingelsen F-10v=0.
Visualisering for Oppgave 3b
Farten øker fra 0 og nærmer seg 25 m/s, som tilsvarer 90 km/h.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, exp, limit, oo, Rational
t = symbols('t', nonnegative=True)
v = 25*(1-exp(-t/35))
top_speed_ms = limit(v, t, oo)
top_speed_kmh = top_speed_ms*Rational(18,5)
equilibrium = Rational(250,10)
print("v(t) =", v)
print("Grense t -> uendelig =", top_speed_ms, "m/s")
print("Omregnet =", top_speed_kmh, "km/h")
print("Likevekt fra F/10 =", equilibrium, "m/s")
print("Kontroll toppfart = likevekt:", top_speed_ms == equilibrium)
assert top_speed_ms == 25
assert top_speed_kmh == 90
Kjørt utskriftv(t) = 25 - 25*exp(-t/35)
Grense t -> uendelig = 25 m/s
Omregnet = 90 km/h
Likevekt fra F/10 = 25 m/s
Kontroll toppfart = likevekt: True

Fasit: \(25\,\text{m/s}=90\,\text{km/h}\).

Vanlig feil: Å oppgi 25 som km/h uten enhetskonvertering.
Sensorpunkt: Sensor ser etter grenseverdi eller kraftbalanse og korrekt omregning.
Del 2 / Oppgave 3cKraftbalanse

Oppgave 3c

Oppgave: Hvilken motorkraft F gir toppfarten \(60\,\text{km/h}\)?
Original poengangivelse: Oppgave 3 (6 poeng).
Vis løsning

Hva spør oppgaven om? Ved toppfart er akselerasjonen null. Vi skal konvertere 60 km/h til m/s og bruke kraftbalansen.

  1. Konverter ønsket fart
    \[60\,\text{km/h}=\frac{60}{3{,}6}=\frac{50}{3}\,\text{m/s}\]
  2. Bruk toppfartsbetingelsen
    Ved konstant toppfart er \(v\prime=0\).
  3. Sett inn i differensiallikningen
    \[0=F-10v_{\max}\]
  4. Isoler F
    \[F=10v_{\max}\]
  5. Sett inn farten
    \[F=10\cdot\frac{50}{3}=\frac{500}{3}\]
  6. Oppgi avrundet verdi
    \[F\approx166{,}7\,\text{N}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(F-10*(60/3.6)=0,F)
Resultat: \(F=500/3\approx166{,}7\)
Tolkning: Kraften er mindre enn 250 N fordi ønsket toppfart er lavere enn 90 km/h.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import Rational, symbols, Eq, solve, N
F = symbols('F', real=True)
top_speed_kmh = 60
top_speed_ms = Rational(60,1)/Rational(18,5)
force = solve(Eq(F-10*top_speed_ms,0),F)[0]
print("Ønsket toppfart =", top_speed_kmh, "km/h")
print("Toppfart i m/s =", top_speed_ms)
print("Likevektslikning = F - 10*v = 0")
print("Eksakt motorkraft =", force, "N")
print("Desimalverdi =", N(force,12), "N")
print("Kontroll toppfart F/10 =", force/10, "m/s")
assert force == Rational(500,3)
Kjørt utskriftØnsket toppfart = 60 km/h
Toppfart i m/s = 50/3
Likevektslikning = F - 10*v = 0
Eksakt motorkraft = 500/3 N
Desimalverdi = 166.666666667 N
Kontroll toppfart F/10 = 50/3 m/s

Fasit: \(F=500/3\,\text{N}\approx166{,}7\,\text{N}\).

Vanlig feil: Å sette 60 direkte inn som m/s eller bruke 350-leddet selv om v′=0 ved toppfart.
Sensorpunkt: Sensor ser etter enhetskonvertering og kraftbalanse.
Del 2 / Oppgave 4aKonvergensområde

Oppgave 4a

Oppgave: Bestem konvergensområdet til \(1+(x/2-3)+(x/2-3)^2+(x/2-3)^3+\cdots\).
Original poengangivelse: Oppgave 4 (4 poeng).
Vis løsning

Hva spør oppgaven om? Dette er en uendelig geometrisk rekke med variabel kvotient. Den konvergerer når absoluttverdien av kvotienten er mindre enn 1.

  1. Identifiser første ledd
    \(a_1=1\).
  2. Identifiser kvotienten
    \[q(x)=\frac{x}{2}-3\]
  3. Skriv konvergenskravet
    \[\left|\frac{x}{2}-3\right|<1\]
  4. Løs dobbeltulikheten
    \[-1<\frac{x}{2}-3<1\]
  5. Legg til 3 og multipliser med 2
    \[2<\frac{x}{2}<4\Rightarrow4
  6. Kontroller endepunktene
    Ved x=4 er q=-1, og ved x=8 er q=1. Begge gir divergens.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(abs(x/2-3)<1,x)
Resultat: \(4
Tolkning: CAS gir et åpent intervall fordi q=±1 ikke gir konvergens.
Visualisering for Oppgave 4a
Kravet |q(x)| < 1 gir det åpne intervallet 4 < x < 8.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, Abs, solve_univariate_inequality
x = symbols('x', real=True)
q = x/2-3
condition = Abs(q) < 1
solution = solve_univariate_inequality(condition, x)
print("Kvotient q(x) =", q)
print("Konvergenskrav =", condition)
print("Løsningsmengde =", solution)
print("q(4) =", q.subs(x,4))
print("q(8) =", q.subs(x,8))
print("q(6) =", q.subs(x,6))
assert str(solution) == "(4 < x) & (x < 8)"
Kjørt utskriftKvotient q(x) = x/2 - 3
Konvergenskrav = Abs(x/2 - 3) < 1
Løsningsmengde = (4 < x) & (x < 8)
q(4) = -1
q(8) = 1
q(6) = 0

Fasit: \(4

Vanlig feil: Å bruke q<1 i stedet for |q|<1 eller ta med endepunktene.
Sensorpunkt: Sensor ser etter absoluttverdikravet og et åpent intervall.

Del 2 / Oppgave 4bKonstruksjon av geometrisk rekke

Oppgave 4b

Oppgave: Lag en uendelig geometrisk rekke med variabel kvotient som har konvergensområde \((-3,5)\), og som konvergerer mot 3 når \(x=4\).
Original poengangivelse: Oppgave 4 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal konstruere en kvotient som har absoluttverdi under 1 akkurat på intervallet (-3,5), og velge første ledd slik at summen blir 3 ved x=4.

  1. Finn sentrum og halv bredde
    Intervallet har sentrum \(1\) og halv bredde \(4\).
  2. Velg kvotient
    \[q(x)=\frac{x-1}{4}\]
  3. Kontroller konvergensområdet
    \(|q(x)|<1\iff|x-1|<4\iff-3
  4. Beregn kvotienten ved x=4
    \[q(4)=\frac34\]
  5. Bestem første ledd
    Kravet \(a_1/(1-3/4)=3\) gir \(a_1=3/4\).
  6. Skriv rekken
    \[\frac34+\frac34\left(\frac{x-1}{4}\right)+\frac34\left(\frac{x-1}{4}\right)^2+\cdots\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1q(x)=(x-1)/4
Resultat: \(|q|<1\iff-3
2(3/4)/(1-q(4))
Resultat: 3
Tolkning: Den konstruerte rekken oppfyller både intervallet og summekravet.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, Rational, Abs, solve_univariate_inequality, simplify
x = symbols('x', real=True)
q = (x-1)/4
a1 = Rational(3,4)
convergence = solve_univariate_inequality(Abs(q)<1, x)
sum_function = simplify(a1/(1-q))
value_at_4 = simplify(sum_function.subs(x,4))
print("Valgt kvotient q(x) =", q)
print("Første ledd a1 =", a1)
print("Konvergensområde =", convergence)
print("Sumfunksjon =", sum_function)
print("q(4) =", q.subs(x,4))
print("Sum ved x=4 =", value_at_4)
print("De første fire leddene ved x=4 =", [a1*q.subs(x,4)**k for k in range(4)])
assert str(convergence) == "(-3 < x) & (x < 5)"
assert value_at_4 == 3
Kjørt utskriftValgt kvotient q(x) = x/4 - 1/4
Første ledd a1 = 3/4
Konvergensområde = (-3 < x) & (x < 5)
Sumfunksjon = -3/(x - 5)
q(4) = 3/4
Sum ved x=4 = 3
De første fire leddene ved x=4 = [3/4, 9/16, 27/64, 81/256]

Fasit: For eksempel \(\frac34+\frac34((x-1)/4)+\frac34((x-1)/4)^2+\cdots\).

Vanlig feil: Å velge q=(x-1)/4, men glemme å tilpasse første ledd slik at summen ved x=4 blir 3.
Sensorpunkt: Sensor ser etter både riktig konvergensområde og kontroll av summen ved x=4.
Del 2 / Oppgave 5aOmdreiningsvolum

Oppgave 5a

Oppgave: Funksjonen er \(f(x)=\dfrac{2-\cos x}{\sin x}\), \(x\in(\pi/4,3\pi/4)\). Bestem volumet når grafen roteres om x-aksen.
Original poengangivelse: Oppgave 5 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi skal bruke skivemetoden. Åpne eller lukkede endepunkter gir samme integralverdi.

  1. Skriv skiveformelen
    \[V=\pi\int_{\pi/4}^{3\pi/4}\left(\frac{2-\cos x}{\sin x}\right)^2dx\]
  2. Forenkle eller bruk CAS
    Integranden kan integreres etter omskriving med halvvinkelformler, men CAS er hensiktsmessig i Del 2.
  3. En stamfunksjon
    En mulig stamfunksjon til \(f(x)^2\) er \[-x+\frac92\tan\frac{x}{2}-\frac1{2\tan(x/2)}\]
  4. Sett inn grensene
    \[\int_{\pi/4}^{3\pi/4}f(x)^2dx=10-\frac\pi2\]
  5. Multipliser med π
    \[V=\pi\left(10-\frac\pi2\right)\]
  6. Skriv ryddig og numerisk
    \[V=\frac{\pi(20-\pi)}2\approx26{,}48\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(pi*((2-cos(x))/sin(x))^2,x,pi/4,3pi/4)
Resultat: \(\pi(20-\pi)/2\)
Tolkning: CAS beregner integralet eksakt og viser at volumet er mindre enn kjeglens volum 45.
Visualisering for Oppgave 5a
Ved den smaleste mulige plasseringen i kjeglen er kroppen fortsatt bredere enn kjeglen nær venstre ende.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, sin, cos, pi, integrate, simplify, N
x = symbols('x', real=True)
f = (2-cos(x))/sin(x)
integral_value = integrate(f**2, (x, pi/4, 3*pi/4))
volume = simplify(pi*integral_value)
expected = pi*(20-pi)/2
antiderivative = integrate(f**2, x)
print("f(x) =", f)
print("f(x)^2 =", simplify(f**2))
print("En stamfunksjon =", antiderivative)
print("Integral av f(x)^2 =", simplify(integral_value))
print("Eksakt volum =", volume)
print("Desimalvolum =", N(volume,12))
print("Kontroll mot pi*(20-pi)/2 =", simplify(volume-expected))
assert simplify(volume-expected) == 0
Kjørt utskriftf(x) = (2 - cos(x))/sin(x)
f(x)^2 = (cos(x) - 2)**2/sin(x)**2
En stamfunksjon = -x + 9*tan(x/2)/2 - 1/(2*tan(x/2))
Integral av f(x)^2 = 10 - pi/2
Eksakt volum = pi*(20 - pi)/2
Desimalvolum = 26.4811243354
Kontroll mot pi*(20-pi)/2 = 0

Fasit: \(\displaystyle V=\frac{\pi(20-\pi)}2\approx26{,}48\).

Vanlig feil: Å integrere f(x) i stedet for πf(x)².
Sensorpunkt: Sensor ser etter skiveformelen, korrekte grenser og dokumentert digital beregning.
Del 2 / Oppgave 5bGeometrisk plasskontroll

Oppgave 5b

Oppgave: Omdreiningslegemet skal plasseres i en rett kjegle med radius 4 og volum 45. Avgjør om legemet får plass.
Original poengangivelse: Oppgave 5 (4 poeng).
Vis løsning

Hva spør oppgaven om? Volumsammenligning alene er ikke nok. Vi må sammenligne lengde og radiusprofil med kjeglens lineære radiusprofil.

  1. Finn kjeglehøyden
    \[45=\frac13\pi\cdot4^2h\Rightarrow h=\frac{135}{16\pi}\approx2{,}686\]
  2. Finn legemets lengde
    \[L=\frac{3\pi}{4}-\frac\pi4=\frac\pi2\approx1{,}571\]
  3. Velg best mulig plassering
    Legemet er bredest mot høyre. Den gunstigste aksiale plasseringen er derfor å legge høyre ende ved kjeglens grunnflate.
  4. Finn avstanden til venstre ende fra spissen
    \[s=h-L=\frac{135}{16\pi}-\frac\pi2\]
  5. Finn tilgjengelig kjegleradius der
    \[r_k=\frac4h(h-L)=4-\frac{32\pi^2}{135}\approx1{,}660\]
  6. Finn legemets radius ved venstre ende
    \[f(\pi/4)=2\sqrt2-1\approx1{,}828\]
  7. Sammenlign
    Siden \(1{,}828>1{,}660\), er legemet for bredt selv i beste plassering. Det får derfor ikke plass.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1h=3*45/(pi*4^2)
Resultat: \(135/(16\pi)\)
24*(h-pi/2)/h
Resultat: \(4-32\pi^2/135\approx1{,}660\)
3f(pi/4)
Resultat: \(2\sqrt2-1\approx1{,}828\)
Tolkning: Profilkontrollen viser at mindre volum ikke er tilstrekkelig; kroppen skjærer kjegleveggen nær den smale enden.
Visualisering for Oppgave 5b
Ved den smaleste mulige plasseringen i kjeglen er kroppen fortsatt bredere enn kjeglen nær venstre ende.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import pi, sqrt, Rational, N, simplify
cone_radius = 4
cone_volume = 45
cone_height = Rational(3)*cone_volume/(pi*cone_radius**2)
body_length = pi/2
left_position = cone_height-body_length
cone_radius_at_left = simplify(cone_radius*left_position/cone_height)
body_radius_at_left = 2*sqrt(2)-1
body_volume = pi*(20-pi)/2
print("Kjeglehøyde =", cone_height, "=", N(cone_height,12))
print("Legemets aksiale lengde =", body_length, "=", N(body_length,12))
print("Venstre ende plassert ved s =", left_position, "=", N(left_position,12))
print("Kjegleradius ved venstre ende =", cone_radius_at_left, "=", N(cone_radius_at_left,12))
print("Legemets radius ved venstre ende =", body_radius_at_left, "=", N(body_radius_at_left,12))
print("Legemets volum =", N(body_volume,12), "< 45")
print("Radiusforskjell kropp - kjegle =", N(body_radius_at_left-cone_radius_at_left,12))
print("Får plass =", bool(body_radius_at_left <= cone_radius_at_left))
assert body_volume < cone_volume
assert body_radius_at_left > cone_radius_at_left
Kjørt utskriftKjeglehøyde = 135/(16*pi) = 2.68573966468
Legemets aksiale lengde = pi/2 = 1.57079632679
Venstre ende plassert ved s = -pi/2 + 135/(16*pi) = 1.11494333788
Kjegleradius ved venstre ende = 4 - 32*pi**2/135 = 1.66053821604
Legemets radius ved venstre ende = -1 + 2*sqrt(2) = 1.82842712475
Legemets volum = 26.4811243354 < 45
Radiusforskjell kropp - kjegle = 0.167888908708
Får plass = False

Fasit: Nei. Legemet har mindre volum enn kjeglen, men er omtrent 1,828 bredt der kjeglen bare har radius omtrent 1,660 i den beste aksiale plasseringen.

Vanlig feil: Å konkludere at legemet får plass bare fordi 26,48 < 45.
Sensorpunkt: Sensor ser etter en geometrisk dimensjonskontroll, ikke bare en volumsammenligning.