R2 eksamenHøst 2024LK20

Matematikk R2 eksamen – høst 2024

ifingo
Norsk (Bokmål)

ifingo · Matematikk R2

Matematikk R2 - eksamen høst 2024 (LK20)

Løsningsforslag til eksamenssettet fra Utdanningsdirektoratet.

Del 1 - uten hjelpemidler

Del 1 / Oppgave 1aDelvis integrasjon

Oppgave 1a

Oppgave: Regn ut integralet \(\displaystyle\int x^2\ln x\,dx\).
Vis løsning

Hva spør oppgaven om? Vi skal integrere et produkt av et polynom og en logaritme. Delvis integrasjon reduserer graden på polynomet og fjerner logaritmen fra restintegralet.

  1. Velg u og dv
    Sett \(u=\ln x\) og \(dv=x^2dx\). Dette er naturlig fordi logaritmen blir enklere når den deriveres.
  2. Finn du og v
    \[du=\frac1x dx,\qquad v=\frac{x^3}{3}\]
  3. Bruk formelen
    \[\int u\,dv=uv-\int v\,du\]
  4. Sett inn
    \[\int x^2\ln x\,dx=\frac{x^3}{3}\ln x-\frac13\int x^2dx\]
  5. Integrer restleddet
    \[=\frac{x^3}{3}\ln x-\frac{x^3}{9}+C\]
  6. Oppgi definisjonsområdet
    Siden \(\ln x\) inngår, gjelder uttrykket for \(x>0\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(x^2 ln(x),x)
Resultat: \(\frac{x^3}{3}\ln x-\frac{x^3}{9}\)
Tolkning: CAS bekrefter stamfunksjonen; integrasjonskonstanten må legges til manuelt.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, log, integrate, diff, simplify
x = symbols('x', positive=True)
integrand = x**2*log(x)
F = integrate(integrand, x)
expected = x**3*log(x)/3 - x**3/9
print("Integrand =", integrand)
print("Stamfunksjon fra SymPy =", F)
print("Forventet form =", expected)
print("Derivert tilbake =", simplify(diff(expected, x)))
print("Kontrollforskjell =", simplify(diff(expected, x) - integrand))
assert simplify(diff(expected, x) - integrand) == 0
Kjørt utskriftIntegrand = x**2*log(x)
Stamfunksjon fra SymPy = x**3*log(x)/3 - x**3/9
Forventet form = x**3*log(x)/3 - x**3/9
Derivert tilbake = x**2*log(x)
Kontrollforskjell = 0

Fasit: \(\displaystyle\frac{x^3}{3}\ln x-\frac{x^3}{9}+C\), for \(x>0\).

Vanlig feil: Å velge \(u=x^2\), som gjør restintegralet vanskeligere, eller å glemme faktoren \(1/3\).
Sensorpunkt: Sensor ser etter et hensiktsmessig valg i delvis integrasjon, korrekt restintegral og \(+C\).
Del 1 / Oppgave 1bAkkumulert integral og trigonometrisk likning

Oppgave 1b

Oppgave: Bestem \(x\) når \(\displaystyle\int_0^x\sin\left(\pi t+\frac\pi4\right)dt=0\), der \(x\in(0,\pi)\).
Vis løsning

Hva spør oppgaven om? Vi skal først beregne integralet som en funksjon av øvre grense x og deretter løse en cosinuslikning med domene.

  1. Finn en stamfunksjon
    \[\int\sin\left(\pi t+\frac\pi4\right)dt=-\frac1\pi\cos\left(\pi t+\frac\pi4\right)\]
  2. Sett inn grensene
    \[\frac{\cos(\pi/4)-\cos(\pi x+\pi/4)}{\pi}=0\]
  3. Isoler cosinusuttrykket
    \[\cos\left(\pi x+\frac\pi4\right)=\frac{\sqrt2}{2}\]
  4. Bruk de generelle løsningene
    \[\pi x+\frac\pi4=2k\pi\pm\frac\pi4\]
  5. Finn kandidatene
    Dette gir \(x=2k\) eller \(x=2k-\frac12\).
  6. Bruk domenet
    I intervallet \((0,\pi)\) ligger bare \(x=\frac32\) og \(x=2\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(sin(πt+π/4),t,0,x)
Resultat: \(\frac{\sqrt2/2-\cos(\pi x+\pi/4)}{\pi}\)
2Solve(...=0,0<x<π)
Resultat: \(x=\frac32\) eller \(x=2\)
Tolkning: CAS gir kandidatene, men domenekontrollen er nødvendig for å fjerne x=0 og senere periodiske løsninger.
Visualisering for Oppgave 1b
Nullpunktene til den akkumulerte integralverdien er x=0, 3/2 og 2; oppgaven utelukker x=0.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, pi, sin, cos, integrate, simplify, Rational
x, t = symbols('x t', real=True)
F = integrate(sin(pi*t + pi/4), (t, 0, x))
candidates = [Rational(3,2), 2]
print("Akkumulert integral F(x) =", simplify(F))
print("Kandidater i intervallet (0, pi):", candidates)
for value in candidates:
    print("F(%s) =" % value, simplify(F.subs(x, value)))
print("Er 3/2 i domenet?", 0 < Rational(3,2) < pi)
print("Er 2 i domenet?", 0 < 2 < pi)
assert all(simplify(F.subs(x, value)) == 0 for value in candidates)
assert 0 < Rational(3,2) < pi and 0 < 2 < pi
Kjørt utskriftAkkumulert integral F(x) = (-cos(pi*(x + 1/4)) + sqrt(2)/2)/pi
Kandidater i intervallet (0, pi): [3/2, 2]
F(3/2) = 0
F(2) = 0
Er 3/2 i domenet? True
Er 2 i domenet? True

Fasit: \(x=\frac32\) eller \(x=2\).

Vanlig feil: Å stoppe ved cosinuslikningen uten å finne alle periodiske kandidater, eller å ta med x=0 selv om intervallet er åpent.
Sensorpunkt: Sensor ser etter korrekt bestemt integral, generell trigonometrisk løsning og eksplisitt domenekontroll.
Del 1 / Oppgave 1cPraktisk tolkning av integral

Oppgave 1c

Oppgave: Gi en praktisk tolkning av svarene i oppgave 1b.
Vis løsning

Hva spør oppgaven om? Et bestemt integral kan tolkes som akkumulert nettoendring eller fortegnet areal. Vi skal forklare hva nullverdien betyr.

  1. Tolk integranden som en rate
    La \(q(t)=\sin(\pi t+\pi/4)\) beskrive en momentan endringsrate.
  2. Tolk integralet
    \(\int_0^x q(t)dt\) er den samlede nettoendringen fra tidspunkt 0 til x.
  3. Tolk nullverdien
    Når integralet er 0, er positiv og negativ endring like stor i absoluttverdi.
  4. Geometrisk tolkning
    Arealet over t-aksen og arealet under t-aksen kansellerer hverandre med fortegn.
  5. Knytt til løsningene
    Dette skjer første gang ved \(x=\frac32\), og på nytt ved \(x=2\).
  6. Presiser hva svaret ikke betyr
    Det betyr ikke nødvendigvis at selve funksjonsverdien er 0 ved disse tidspunktene; det er den akkumulerte nettoendringen som er 0.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(q,t,0,3/2)
Resultat: 0
2Integral(q,t,0,2)
Resultat: 0
Tolkning: De digitale kontrollene viser at begge sluttidspunktene gir null nettoareal.
Visualisering for Oppgave 1c
Nullpunktene til den akkumulerte integralverdien er x=0, 3/2 og 2; oppgaven utelukker x=0.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, pi, sin, integrate, Rational, simplify
t = symbols('t', real=True)
q = sin(pi*t + pi/4)
I1 = integrate(q, (t, 0, Rational(3,2)))
I2 = integrate(q, (t, 0, 2))
print("Integrand q(t) =", q)
print("Nettoendring fram til x=3/2 =", simplify(I1))
print("Nettoendring fram til x=2 =", simplify(I2))
print("q(3/2) =", simplify(q.subs(t, Rational(3,2))))
print("q(2) =", simplify(q.subs(t, 2)))
assert simplify(I1) == 0 and simplify(I2) == 0
Kjørt utskriftIntegrand q(t) = sin(pi*t + pi/4)
Nettoendring fram til x=3/2 = 0
Nettoendring fram til x=2 = 0
q(3/2) = -sqrt(2)/2
q(2) = sqrt(2)/2

Fasit: Ved begge tidspunktene er den akkumulerte nettoendringen fra 0 lik 0; positive og negative bidrag har kansellert hverandre.

Vanlig feil: Å si at funksjonen selv er null. Oppgaven handler om integralet, altså den akkumulerte verdien.
Sensorpunkt: Sensor ser etter en tydelig nettoendrings- eller fortegnet-areal-tolkning.
Del 1 / Oppgave 2aAritmetisk rekke

Oppgave 2a

Oppgave: Finn summen av den aritmetiske rekken \(3+7+11+15+\cdots+399\).
Vis løsning

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

  1. Identifiser dataene
    Første ledd er \(a_1=3\), differansen er \(d=4\), og siste ledd er 399.
  2. Finn antall ledd
    \[399=3+(n-1)4\]
  3. Løs for n
    \[396=4(n-1)\Rightarrow n-1=99\Rightarrow n=100\]
  4. Bruk sumformelen
    \[S_n=\frac n2(a_1+a_n)\]
  5. Sett inn
    \[S_{100}=\frac{100}{2}(3+399)\]
  6. Regn ut
    \[S_{100}=50\cdot402=20100\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Sequence(3+4(n-1),n,1,100)
Resultat: 100 ledd
2Sum(3+4(n-1),n,1,100)
Resultat: 20100
Tolkning: CAS bekrefter både antall ledd og summen.
Visualisering for Oppgave 2a
Den aritmetiske rekken har 100 ledd og sum 20 100.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, solve, Eq, summation
n, k = symbols('n k', integer=True, positive=True)
number_of_terms = solve(Eq(3 + (n-1)*4, 399), n)[0]
S = summation(3 + (k-1)*4, (k, 1, number_of_terms))
formula_value = number_of_terms*(3+399)//2
print("Antall ledd =", number_of_terms)
print("Siste ledd kontroll =", 3 + (number_of_terms-1)*4)
print("Sum fra SymPy =", S)
print("Sum fra formelen =", formula_value)
assert number_of_terms == 100
assert S == 20100 == formula_value
Kjørt utskriftAntall ledd = 100
Siste ledd kontroll = 399
Sum fra SymPy = 20100
Sum fra formelen = 20100

Fasit: \(20100\).

Vanlig feil: Å tro at 399/4 er antall ledd, uten å ta hensyn til startverdien 3.
Sensorpunkt: Sensor ser etter korrekt antall ledd og riktig bruk av sumformelen.
Del 1 / Oppgave 2bUendelig geometrisk rekke

Oppgave 2b

Oppgave: Bestem kvotienten \(k\) for en konvergent uendelig geometrisk rekke med \(a_1=12\) og sum 18.
Vis løsning

Hva spør oppgaven om? Vi bruker sumformelen og kontrollerer at den funne kvotienten tilfredsstiller konvergenskravet.

  1. Skriv sumformelen
    \[S=\frac{a_1}{1-k},\qquad |k|<1\]
  2. Sett inn verdiene
    \[18=\frac{12}{1-k}\]
  3. Multipliser med nevneren
    \[18(1-k)=12\]
  4. Isoler k
    \[18-18k=12\Rightarrow18k=6\]
  5. Finn kvotienten
    \[k=\frac13\]
  6. Kontroller konvergens
    \(|1/3|<1\), så rekken konvergerer.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(12/(1-k)=18,k)
Resultat: \(k=\frac13\)
Tolkning: Løsningen oppfyller konvergenskravet.
Visualisering for Oppgave 2b
Den aritmetiske rekken har 100 ledd og sum 20 100.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, Eq, solve, Rational, simplify
k = symbols('k', real=True)
solution = solve(Eq(12/(1-k), 18), k)[0]
check_sum = simplify(12/(1-solution))
print("Løsning for k =", solution)
print("Absoluttverdi |k| =", abs(solution))
print("Kontroll av summen =", check_sum)
print("Konvergerer?", abs(solution) < 1)
assert solution == Rational(1,3)
assert check_sum == 18 and abs(solution) < 1
Kjørt utskriftLøsning for k = 1/3
Absoluttverdi |k| = 1/3
Kontroll av summen = 18
Konvergerer? True

Fasit: \(k=\frac13\).

Vanlig feil: Å bruke \(S=a_1/(1+k)\) eller å glemme å kontrollere \(|k|<1\).
Sensorpunkt: Sensor ser etter sumformelen, algebra og konvergenskontroll.
Del 1 / Oppgave 2cPeriodisk desimaltall som geometrisk rekke

Oppgave 2c

Oppgave: Vis at \(0{,}757575\ldots\) kan skrives som en uendelig geometrisk rekke, og bruk dette til å vise at \(1{,}757575\ldots=\frac{58}{33}\).
Vis løsning

Hva spør oppgaven om? Vi grupperer desimalene i blokker på to sifre. Hver ny 75-blokk flyttes to plasser og gir kvotient 1/100.

  1. Skriv ut leddene
    \[0{,}757575\ldots=\frac{75}{100}+\frac{75}{100^2}+\frac{75}{100^3}+\cdots\]
  2. Identifiser første ledd og kvotient
    \[a_1=\frac{75}{100}=\frac34,\qquad k=\frac1{100}\]
  3. Bruk sumformelen
    \[S=\frac{3/4}{1-1/100}\]
  4. Forenkle
    \[S=\frac{3}{4}\cdot\frac{100}{99}=\frac{25}{33}\]
  5. Legg til heltallsdelen
    \[1{,}757575\ldots=1+\frac{25}{33}\]
  6. Regn ut
    \[1+\frac{25}{33}=\frac{58}{33}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Sum((3/4)(1/100)^n,n,0,∞)
Resultat: \(25/33\)
21+25/33
Resultat: \(58/33\)
Tolkning: CAS bekrefter den eksakte brøken.
Visualisering for Oppgave 2c
Den aritmetiske rekken har 100 ledd og sum 20 100.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, summation, oo, Rational, simplify
n = symbols('n', integer=True, nonnegative=True)
series_sum = summation(Rational(3,4)*Rational(1,100)**n, (n,0,oo))
full_number = 1 + series_sum
partial = sum(Rational(3,4)*Rational(1,100)**j for j in range(5))
print("Første fem ledd gir =", partial)
print("Uendelig sum 0.757575... =", series_sum)
print("1.757575... =", full_number)
print("Kontroll mot 58/33 =", simplify(full_number-Rational(58,33)))
assert series_sum == Rational(25,33)
assert full_number == Rational(58,33)
Kjørt utskriftFørste fem ledd gir = 303030303/400000000
Uendelig sum 0.757575... = 25/33
1.757575... = 58/33
Kontroll mot 58/33 = 0

Fasit: \(0{,}757575\ldots=\frac{25}{33}\), og dermed \(1{,}757575\ldots=\frac{58}{33}\).

Vanlig feil: Å bruke kvotient 1/10. Siden blokken 75 består av to sifre, er kvotienten 1/100.
Sensorpunkt: Sensor ser etter korrekt geometrisk rekke, sumformel og avsluttende brøk.
Del 1 / Oppgave 3aVektorer og trekantareal

Oppgave 3a

Oppgave: Teltbunnen har hjørner \(A(0,0,0)\), \(B(3,1,2)\) og \(C(-1,3,1)\). Bestem arealet av bunnen.
Vis løsning

Hva spør oppgaven om? Arealet av trekanten er halvparten av lengden til kryssproduktet mellom to sidevektorer.

  1. Finn sidevektorene
    \[\overrightarrow{AB}=(3,1,2),\qquad\overrightarrow{AC}=(-1,3,1)\]
  2. Beregn kryssproduktet
    \[\overrightarrow{AB}\times\overrightarrow{AC}=(-5,-5,10)\]
  3. Finn lengden
    \[|(-5,-5,10)|=\sqrt{25+25+100}=\sqrt{150}=5\sqrt6\]
  4. Bruk trekantformelen
    \[A=\frac12|\overrightarrow{AB}\times\overrightarrow{AC}|\]
  5. Sett inn
    \[A=\frac{5\sqrt6}{2}\]
  6. Oppgi enhet
    Arealet er \(\frac{5\sqrt6}{2}\) kvadratenheter, omtrent 6,12.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Cross((3,1,2),(-1,3,1))
Resultat: \((-5,-5,10)\)
2Length((-5,-5,10))/2
Resultat: \(5\sqrt6/2\)
Tolkning: Kryssproduktet gir arealet av parallellogrammet; halvering gir trekantarealet.
Visualisering for Oppgave 3a
Kryssproduktet gir bunnarealet, og den fysiske løsningen på linjen er T=(1,1,4).

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import Matrix, sqrt, simplify
A = Matrix([0,0,0])
B = Matrix([3,1,2])
C = Matrix([-1,3,1])
AB = B-A
AC = C-A
cross = AB.cross(AC)
area = cross.norm()/2
print("AB =", AB.T)
print("AC =", AC.T)
print("AB x AC =", cross.T)
print("Lengde av kryssproduktet =", cross.norm())
print("Trekantareal eksakt =", area)
print("Trekantareal desimal =", area.evalf(12))
assert simplify(area-5*sqrt(6)/2) == 0
Kjørt utskriftAB = Matrix([[3, 1, 2]])
AC = Matrix([[-1, 3, 1]])
AB x AC = Matrix([[-5, -5, 10]])
Lengde av kryssproduktet = 5*sqrt(6)
Trekantareal eksakt = 5*sqrt(6)/2
Trekantareal desimal = 6.12372435696

Fasit: \(\displaystyle\frac{5\sqrt6}{2}\approx6{,}12\) kvadratenheter.

Vanlig feil: Å bruke hele lengden av kryssproduktet som trekantareal og glemme faktoren 1/2.
Sensorpunkt: Sensor ser etter korrekte sidevektorer, kryssprodukt og halvering.
Del 1 / Oppgave 3bLinje og kule

Oppgave 3b

Oppgave: Toppunktet \(T\) ligger på linjen \(x=t,\ y=t,\ z=4t\), og \(|CT|=\sqrt{17}\). Bestem koordinatene til \(T\).
Vis løsning

Hva spør oppgaven om? Vi setter linjeparameteren inn i avstandsformelen. Likningen gir to skjæringspunkter med kulen rundt C, og vi velger punktet over teltbunnen.

  1. Skriv punktet på linjen
    \[T=(t,t,4t)\]
  2. Skriv vektoren fra C til T
    \[\overrightarrow{CT}=(t+1,t-3,4t-1)\]
  3. Bruk lengdebetingelsen
    \[(t+1)^2+(t-3)^2+(4t-1)^2=17\]
  4. Forenkle likningen
    \[18t^2-12t-6=0\Rightarrow3t^2-2t-1=0\]
  5. Løs andregradslikningen
    \[t=1\quad\text{eller}\quad t=-\frac13\]
  6. Velg det fysiske toppunktet
    Punktet med \(t=1\) ligger over planet gjennom A, B og C. Dermed er \(T=(1,1,4)\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve((t+1)^2+(t-3)^2+(4t-1)^2=17,t)
Resultat: \(t=1\) eller \(t=-1/3\)
2Point(l,1)
Resultat: \((1,1,4)\)
Tolkning: CAS finner begge kule–linje-skjæringene; geometrisk tolkning velger toppunktet.
Visualisering for Oppgave 3b
Kryssproduktet gir bunnarealet, og den fysiske løsningen på linjen er T=(1,1,4).

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, solve, Eq, Matrix, Rational, simplify
t = symbols('t', real=True)
C = Matrix([-1,3,1])
T = Matrix([t,t,4*t])
distance_squared = simplify((T-C).dot(T-C))
solutions = solve(Eq(distance_squared,17),t)
points = [T.subs(t,s) for s in solutions]
print("|CT|^2 =", distance_squared)
print("Parameterløsninger =", solutions)
print("Skjæringspunkter =", [p.T for p in points])
for s,p in zip(solutions,points):
    plane_test = simplify(2*p[2]-p[0]-p[1])
    print("t =", s, "gir 2z-x-y =", plane_test)
assert 1 in solutions and Rational(-1,3) in solutions
assert T.subs(t,1) == Matrix([1,1,4])
Kjørt utskrift|CT|^2 = 18*t**2 - 12*t + 11
Parameterløsninger = [-1/3, 1]
Skjæringspunkter = [Matrix([[-1/3, -1/3, -4/3]]), Matrix([[1, 1, 4]])]
t = -1/3 gir 2z-x-y = -2
t = 1 gir 2z-x-y = 6

Fasit: \(T=(1,1,4)\).

Vanlig feil: Å oppgi begge algebraiske skjæringspunktene uten å vurdere hvilket som faktisk er teltets toppunkt.
Sensorpunkt: Sensor ser etter avstandslikning, begge kandidater og en geometrisk begrunnelse for valget.
Del 1 / Oppgave 4aRadianer

Oppgave 4a

Oppgave: Hva er definisjonen av det absolutte vinkelmålet i radianer? Hvor mange radianer er \(80^\circ\)?
Vis løsning

Hva spør oppgaven om? Vi skal formulere definisjonen med buelengde og radius og konvertere grader til radianer.

  1. Definer vinkelmålet
    For en sirkelbue med lengde \(s\) og radius \(r\) er det absolutte vinkelmålet \(v=s/r\).
  2. Tolk én radian
    Én radian er vinkelen som spenner over en bue med samme lengde som radiusen.
  3. Bruk konverteringsfaktoren
    \[180^\circ=\pi\text{ rad}\]
  4. Sett opp omregningen
    \[80^\circ\cdot\frac{\pi}{180^\circ}\]
  5. Forkort brøken
    \[\frac{80\pi}{180}=\frac{4\pi}{9}\]
  6. Oppgi desimalverdi
    \(4\pi/9\approx1{,}396\) radianer.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
180° * π/180°
Resultat: \(4\pi/9\)
Tolkning: Den digitale omregningen bekrefter den eksakte brøken.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import pi, Rational, N, simplify
angle_degrees = 80
angle_radians = Rational(angle_degrees,180)*pi
print("Vinkel i grader =", angle_degrees)
print("Vinkel i radianer eksakt =", angle_radians)
print("Vinkel i radianer desimal =", N(angle_radians,12))
print("Kontroll tilbake til grader =", simplify(angle_radians*180/pi))
assert simplify(angle_radians-4*pi/9) == 0
Kjørt utskriftVinkel i grader = 80
Vinkel i radianer eksakt = 4*pi/9
Vinkel i radianer desimal = 1.39626340160
Kontroll tilbake til grader = 80

Fasit: Definisjon: \(v=s/r\). Videre er \(80^\circ=\frac{4\pi}{9}\) rad.

Vanlig feil: Å multiplisere med 180/π i stedet for π/180 når grader skal gjøres om til radianer.
Sensorpunkt: Sensor ser etter både en presis definisjon og korrekt eksakt omregning.
Del 1 / Oppgave 4bEksakte trigonometriske verdier

Oppgave 4b

Oppgave: Finn eksakte verdier av \(\cos v\) og \(\tan v\) når \(\sin v=-\frac14\) og \(v\in[\pi,3\pi/2]\).
Vis løsning

Hva spør oppgaven om? Intervallet plasserer vinkelen i tredje kvadrant, der både sinus og cosinus er negative, mens tangens er positiv.

  1. Bruk identiteten
    \[\sin^2v+\cos^2v=1\]
  2. Sett inn sinusverdien
    \[\cos^2v=1-\frac1{16}=\frac{15}{16}\]
  3. Velg riktig fortegn
    I tredje kvadrant er cosinus negativ, så \(\cos v=-\frac{\sqrt{15}}4\).
  4. Finn tangens
    \[\tan v=\frac{\sin v}{\cos v}\]
  5. Sett inn
    \[\tan v=\frac{-1/4}{-\sqrt{15}/4}=\frac1{\sqrt{15}}\]
  6. Rasjonaliser
    \[\tan v=\frac{\sqrt{15}}{15}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1cos(v) from sin(v)=-1/4, v in QIII
Resultat: \(-\sqrt{15}/4\)
2tan(v)
Resultat: \(\sqrt{15}/15\)
Tolkning: Kvadranten bestemmer fortegnet som kvadratroten alene ikke avgjør.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import Rational, sqrt, simplify
sin_v = -Rational(1,4)
cos_v = -sqrt(1-sin_v**2)
tan_v = simplify(sin_v/cos_v)
print("sin(v) =", sin_v)
print("cos(v) eksakt =", cos_v)
print("tan(v) eksakt =", tan_v)
print("Pytagoreisk kontroll =", simplify(sin_v**2+cos_v**2))
print("Fortegn: sin<0, cos<0, tan>0 ->", sin_v<0, cos_v<0, tan_v>0)
assert simplify(cos_v+sqrt(15)/4) == 0
assert simplify(tan_v-sqrt(15)/15) == 0
Kjørt utskriftsin(v) = -1/4
cos(v) eksakt = -sqrt(15)/4
tan(v) eksakt = sqrt(15)/15
Pytagoreisk kontroll = 1
Fortegn: sin<0, cos<0, tan>0 -> True True True

Fasit: \(\cos v=-\frac{\sqrt{15}}4\) og \(\tan v=\frac{\sqrt{15}}{15}\).

Vanlig feil: Å velge positiv cosinus fordi man bare tar hovedkvadratroten, uten å bruke kvadranten.
Sensorpunkt: Sensor ser etter identiteten, korrekt fortegn og eksakte verdier.
Del 1 / Oppgave 5aOmskriving mellom sinus og cosinus

Oppgave 5a

Oppgave: Finn en funksjon på formen \(g(x)=A\cos(cx+\varphi)+d\) som passer til grafen til \(f(x)=2\sin(\frac\pi4x-\frac\pi2)-1\).
Vis løsning

Hva spør oppgaven om? Vi bruker faseidentiteten mellom sinus og cosinus og beholder amplitude, vinkelfrekvens og likevektslinje.

  1. Sett et kort navn på argumentet
    La \(u=\frac\pi4x\). Da er sinusleddet \(\sin(u-\pi/2)\).
  2. Bruk identiteten
    \[\sin(u-\pi/2)=-\cos u\]
  3. Sett inn i f
    \[f(x)=2(-\cos(\pi x/4))-1\]
  4. Forenkle
    \[g(x)=-2\cos\left(\frac\pi4x\right)-1\]
  5. Les av parameterne
    \(A=-2\), \(c=\pi/4\), \(\varphi=0\) og \(d=-1\).
  6. Kontroller perioden
    \(2\pi/c=8\), som stemmer med avstanden mellom toppunktene x=4 og x=12.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1TrigExpand(2 sin(πx/4-π/2)-1)
Resultat: \(-2\cos(\pi x/4)-1\)
Tolkning: CAS bekrefter at uttrykkene er identiske for alle x.
Visualisering for Oppgave 5a
Likningen i 5b svarer til nullpunktene på grafen.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, pi, sin, cos, simplify, trigsimp
x = symbols('x', real=True)
f = 2*sin(pi*x/4-pi/2)-1
g = -2*cos(pi*x/4)-1
print("f(x) =", f)
print("Forslag g(x) =", g)
print("Trigonometrisk kontroll =", trigsimp(f-g))
print("Periode =", simplify(2*pi/(pi/4)))
for value in [0,4,8,12]:
    print("x =", value, "f(x) =", simplify(f.subs(x,value)), "g(x) =", simplify(g.subs(x,value)))
assert trigsimp(f-g) == 0
Kjørt utskriftf(x) = -2*cos(pi*x/4) - 1
Forslag g(x) = -2*cos(pi*x/4) - 1
Trigonometrisk kontroll = 0
Periode = 8
x = 0 f(x) = -3 g(x) = -3
x = 4 f(x) = 1 g(x) = 1
x = 8 f(x) = -3 g(x) = -3
x = 12 f(x) = 1 g(x) = 1

Fasit: Et mulig svar er \(g(x)=-2\cos(\frac\pi4x)-1\).

Vanlig feil: Å endre perioden eller likevektslinjen når funksjonen skrives om. Bare fase-/fortegnsrepresentasjonen endres.
Sensorpunkt: Sensor ser etter en identisk cosinusfunksjon og gjerne en kontroll av parametrene.
Del 1 / Oppgave 5bTrigonometrisk likning med domene

Oppgave 5b

Oppgave: Løs \(\cos(\frac\pi4x-\pi)=\frac12\) for \(x\in[0,3\pi]\), og forklar hvor løsningene ligger på figuren.
Vis løsning

Hva spør oppgaven om? Vi bruker de generelle løsningene for cosinus og filtrerer kandidatene mot intervallet.

  1. Sett argumentet lik standardløsningene
    \[\frac\pi4x-\pi=2k\pi\pm\frac\pi3\]
  2. Isoler x
    \[x=4\left(1+2k\pm\frac13\right)\]
  3. Skriv de to familiene
    \[x=\frac83+8k\quad\text{eller}\quad x=\frac{16}3+8k\]
  4. Bruk intervallet
    For \(0\le x\le3\pi\approx9{,}425\) gir bare \(k=0\) gyldige løsninger.
  5. Oppgi løsningene
    \[x=\frac83\quad\text{og}\quad x=\frac{16}3\]
  6. Knytt til grafen
    Fordi \(\cos(u-\pi)=-\cos u\), svarer likningen til \(f(x)=0\). Løsningene er de to første skjæringene med x-aksen.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(cos(πx/4-π)=1/2,0≤x≤3π)
Resultat: \(x=8/3,16/3\)
Tolkning: Domenet fjerner alle senere periodiske løsninger.
Visualisering for Oppgave 5b
Likningen i 5b svarer til nullpunktene på grafen.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, pi, cos, Rational, simplify
x = symbols('x', real=True)
solutions = [Rational(8,3), Rational(16,3)]
expr = cos(pi*x/4-pi)-Rational(1,2)
print("Kandidater i intervallet =", solutions)
for value in solutions:
    print("x =", value, "gir venstreside =", simplify(cos(pi*value/4-pi)))
    print("Ligger i [0,3*pi]?", bool(0 <= value <= 3*pi))
f = 2*cos(pi*x/4-pi)-1
for value in solutions:
    print("Tilhørende grafverdi f(x) =", simplify(f.subs(x,value)))
assert all(simplify(expr.subs(x,value)) == 0 for value in solutions)
assert all(0 <= value <= 3*pi for value in solutions)
Kjørt utskriftKandidater i intervallet = [8/3, 16/3]
x = 8/3 gir venstreside = 1/2
Ligger i [0,3*pi]? True
x = 16/3 gir venstreside = 1/2
Ligger i [0,3*pi]? True
Tilhørende grafverdi f(x) = 0
Tilhørende grafverdi f(x) = 0

Fasit: \(x=\frac83\) og \(x=\frac{16}3\). De ligger i grafens to første nullpunkter.

Vanlig feil: Å gi vinkelverdiene \(\pm\pi/3\) som svar uten å løse videre for x, eller å glemme domenet.
Sensorpunkt: Sensor ser etter generelle løsninger, domenekontroll og kobling til nullpunktene i figuren.

Del 2 - med hjelpemidler

Del 2 / Oppgave 1aRomkurve og posisjon

Oppgave 1a

Oppgave: Ballens posisjon er \(\vec r(t)=[2t,4t,6-0{,}7t-4{,}9t^2]\). Hvor høyt er taket, og hva er posisjonen etter 0,5 s?
Vis løsning

Hva spør oppgaven om? Vi leser høyden fra z-komponenten ved t=0 og setter t=0,5 inn i alle tre komponentene.

  1. Finn startposisjonen
    \[\vec r(0)=(0,0,6)\]
  2. Tolk høyden
    Z-komponenten er 6, så takkanten er 6 meter over bakken.
  3. Sett inn t=0,5 i x
    \[x=2\cdot0{,}5=1\]
  4. Sett inn t=0,5 i y
    \[y=4\cdot0{,}5=2\]
  5. Beregn z-koordinaten
    \[z=6-0{,}7\cdot0{,}5-4{,}9\cdot(0{,}5)^2=4{,}425\]
  6. Oppgi posisjonen
    \[\vec r(0{,}5)=(1,2,4{,}425)\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1r(0)
Resultat: \((0,0,6)\)
2r(0.5)
Resultat: \((1,2,4.425)\)
Tolkning: GeoGebra evaluerer vektorfunksjonen direkte ved de to tidspunktene.
Visualisering for Oppgave 1a
Ballens høyde avtar til z=0 etter omtrent 1,037 s.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, Matrix, Rational
t = symbols('t', real=True)
r = Matrix([2*t, 4*t, 6-Rational(7,10)*t-Rational(49,10)*t**2])
r0 = r.subs(t,0)
r_half = r.subs(t,Rational(1,2))
print("Posisjonsvektor r(t) =", r.T)
print("Startposisjon r(0) =", r0.T)
print("Høyde på takkanten =", r0[2], "m")
print("Posisjon etter 0,5 s =", r_half.T)
print("Z-koordinat som desimal =", r_half[2].evalf())
assert r0 == Matrix([0,0,6])
assert r_half == Matrix([1,2,Rational(177,40)])
Kjørt utskriftPosisjonsvektor r(t) = Matrix([[2*t, 4*t, -49*t**2/10 - 7*t/10 + 6]])
Startposisjon r(0) = Matrix([[0, 0, 6]])
Høyde på takkanten = 6 m
Posisjon etter 0,5 s = Matrix([[1, 2, 177/40]])
Z-koordinat som desimal = 4.42500000000000

Fasit: Takkanten er 6 m over bakken, og \(\vec r(0{,}5)=(1,2,4{,}425)\) m.

Vanlig feil: Å oppgi bare høyden ved 0,5 s og glemme at posisjonen består av tre koordinater.
Sensorpunkt: Sensor ser etter korrekt tolkning av z-komponenten og full posisjonsvektor.
Del 2 / Oppgave 1bFart ved bakken

Oppgave 1b

Oppgave: Bestem farten til ballen når den treffer bakken.
Vis løsning

Hva spør oppgaven om? Vi finner først den positive løsningen av z(t)=0, deretter fartsvektoren og normen ved dette tidspunktet.

  1. Finn trefftidspunktet
    \[6-0{,}7t-4{,}9t^2=0\]
  2. Løs likningen
    \[t=\frac{-1+\sqrt{241}}{14}\approx1{,}0374\text{ s}\]
  3. Deriver posisjonen
    \[\vec v(t)=\vec r\,\prime(t)=(2,4,-0{,}7-9{,}8t)\]
  4. Finn vertikal fart ved treff
    \[v_z=-\frac{7\sqrt{241}}{10}\approx-10{,}867\]
  5. Beregn farten
    \[|\vec v|=\sqrt{2^2+4^2+v_z^2}=\frac{\sqrt{13809}}{10}\]
  6. Oppgi desimalverdi
    \[|\vec v|\approx11{,}75\text{ m/s}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(z(t)=0,t)
Resultat: \(t=(-1+\sqrt{241})/14\)
2Length(r'(t_hit))
Resultat: \(\sqrt{13809}/10\approx11.751\)
Tolkning: Den negative roten beskriver et tidspunkt før ballen forlot taket og forkastes.
Visualisering for Oppgave 1b
Ballens høyde avtar til z=0 etter omtrent 1,037 s.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, Matrix, Rational, solve, sqrt, simplify
t = symbols('t', real=True)
r = Matrix([2*t,4*t,6-Rational(7,10)*t-Rational(49,10)*t**2])
v = r.diff(t)
roots = solve(r[2],t)
t_hit = [root for root in roots if root > 0][0]
v_hit = simplify(v.subs(t,t_hit))
speed = simplify(sqrt(v_hit.dot(v_hit)))
print("Røtter av z(t)=0 =", roots)
print("Positiv trefftid =", t_hit, "=", t_hit.evalf(12), "s")
print("Fartsvektor ved treff =", v_hit.T)
print("Fart eksakt =", speed)
print("Fart desimal =", speed.evalf(12), "m/s")
assert simplify(speed-sqrt(13809)/10) == 0
Kjørt utskriftRøtter av z(t)=0 = [-1/14 + sqrt(241)/14, -sqrt(241)/14 - 1/14]
Positiv trefftid = -1/14 + sqrt(241)/14 = 1.03744104973 s
Fartsvektor ved treff = Matrix([[2, 4, -7*sqrt(241)/10]])
Fart eksakt = sqrt(13809)/10
Fart desimal = 11.7511701545 m/s

Fasit: \(\displaystyle\frac{\sqrt{13809}}{10}\approx11{,}75\text{ m/s}\).

Vanlig feil: Å bruke posisjonsvektorens lengde i stedet for å derivere og bruke fartsvektoren.
Sensorpunkt: Sensor ser etter positiv trefftid, korrekt derivert og norm av fartsvektoren.
Del 2 / Oppgave 1cLøsning av fartslikning

Oppgave 1c

Oppgave: Ved hvilket tidspunkt er farten til ballen 10 m/s?
Vis løsning

Hva spør oppgaven om? Vi setter normen av fartsvektoren lik 10 og velger den positive løsningen som ligger før ballen treffer bakken.

  1. Skriv fartsvektoren
    \[\vec v(t)=(2,4,-0{,}7-9{,}8t)\]
  2. Sett normen lik 10
    \[\sqrt{2^2+4^2+(-0{,}7-9{,}8t)^2}=10\]
  3. Kvadrer likningen
    \[20+(-0{,}7-9{,}8t)^2=100\]
  4. Isoler vertikalkomponenten
    \[-0{,}7-9{,}8t=\pm4\sqrt5\]
  5. Velg positiv tid
    \[t=-\frac1{14}+\frac{20\sqrt5}{49}\approx0{,}8413\text{ s}\]
  6. Kontroller fysisk intervall
    Tidspunktet er positivt og mindre enn trefftidspunktet 1,0374 s.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(Length(r'(t))=10,t)
Resultat: \(t=-1/14+20\sqrt5/49\approx0.8413\)
Tolkning: Den andre algebraiske løsningen er negativ og er ikke fysisk relevant.
Visualisering for Oppgave 1c
Ballens høyde avtar til z=0 etter omtrent 1,037 s.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, Matrix, Rational, Eq, solve, sqrt, simplify
t = symbols('t', real=True)
v = Matrix([2,4,-Rational(7,10)-Rational(49,5)*t])
equation = Eq(v.dot(v),100)
solutions = solve(equation,t)
positive = [s for s in solutions if s > 0][0]
t_hit = (-1+sqrt(241))/14
print("Likning for fart² =", equation)
print("Alle løsninger =", solutions)
print("Fysisk løsning =", positive)
print("Tidspunkt desimal =", positive.evalf(12), "s")
print("Fartskontroll =", sqrt(v.subs(t,positive).dot(v.subs(t,positive))).evalf(12))
print("Før bakken?", bool(positive < t_hit))
assert simplify(positive-(-Rational(1,14)+20*sqrt(5)/49)) == 0
assert positive < t_hit
Kjørt utskriftLikning for fart² = Eq((-49*t/5 - 7/10)**2 + 20, 100)
Alle løsninger = [-1/14 + 20*sqrt(5)/49, -20*sqrt(5)/49 - 1/14]
Fysisk løsning = -1/14 + 20*sqrt(5)/49
Tidspunkt desimal = 0.841252235714 s
Fartskontroll = 10.0000000000
Før bakken? True

Fasit: \(t=-\frac1{14}+\frac{20\sqrt5}{49}\approx0{,}841\text{ s}\).

Vanlig feil: Å beholde den negative tidsløsningen eller å glemme at likningen kan kvadreres først.
Sensorpunkt: Sensor ser etter fartens norm, begge algebraiske kandidater og fysisk utvalg.
Del 2 / Oppgave 2aPåstand om plan

Oppgave 2a

Oppgave: Påstand: Likningen til et plan kan alltid bestemmes av tre punkter i planet. Avgjør om påstanden er sann eller usann.
Vis løsning

Hva spør oppgaven om? Vi må vurdere om tre vilkårlige punkter alltid gir nok informasjon til å bestemme ett entydig plan.

  1. Kjenn kriteriet
    Tre punkter bestemmer et entydig plan når de ikke ligger på samme rette linje.
  2. Se på sidevektorene
    Fra ett punkt kan vi lage to vektorer til de andre punktene.
  3. Krav til vektorene
    Vektorene må være lineært uavhengige, altså ha et ikke-null kryssprodukt.
  4. Lag et moteksempel
    Punktene \((0,0,0)\), \((1,0,0)\) og \((2,0,0)\) ligger på x-aksen.
  5. Tolk moteksemplet
    Uendelig mange plan inneholder x-aksen, så disse tre punktene bestemmer ikke ett bestemt plan.
  6. Konkluder
    Påstanden er usann. Den mangler betingelsen «tre ikke-kollineære punkter».

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Cross((1,0,0),(2,0,0))
Resultat: \((0,0,0)\)
Tolkning: Nullvektoren som kryssprodukt viser at punktene er kollineære.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import Matrix
A = Matrix([0,0,0])
B = Matrix([1,0,0])
C = Matrix([2,0,0])
AB = B-A
AC = C-A
cross = AB.cross(AC)
print("Moteksempel A, B, C =", A.T, B.T, C.T)
print("AB =", AB.T)
print("AC =", AC.T)
print("AB x AC =", cross.T)
print("Lineært uavhengige?", cross != Matrix([0,0,0]))
assert cross == Matrix([0,0,0])
Kjørt utskriftMoteksempel A, B, C = Matrix([[0, 0, 0]]) Matrix([[1, 0, 0]]) Matrix([[2, 0, 0]])
AB = Matrix([[1, 0, 0]])
AC = Matrix([[2, 0, 0]])
AB x AC = Matrix([[0, 0, 0]])
Lineært uavhengige? False

Fasit: Påstanden er usann. Tre ikke-kollineære punkter bestemmer et plan; tre kollineære punkter gjør det ikke.

Vanlig feil: Å skrive «sann» fordi man husker standardregelen, men glemme kravet om at punktene ikke kan ligge på samme linje.
Sensorpunkt: Sensor ser etter et klart kriterium eller et konkret moteksempel.
Del 2 / Oppgave 2bPåstand om geometrisk rekke

Oppgave 2b

Oppgave: Rekken er \(1+(\ln x-1)+(\ln x-1)^2+\cdots\). Påstand: Hvis \(x=e^{-1}\), er summen \(1/3\).
Vis løsning

Hva spør oppgaven om? Vi skal både sette inn x og kontrollere konvergens før sumformelen eventuelt brukes.

  1. Identifiser kvotienten
    \[k=\ln x-1\]
  2. Sett inn x
    For \(x=e^{-1}\) er \(\ln x=-1\).
  3. Finn kvotienten
    \[k=-1-1=-2\]
  4. Kontroller konvergens
    En uendelig geometrisk rekke konvergerer bare når \(|k|<1\). Her er \(|k|=2\).
  5. Forklar den fristende feilen
    Formelt ville \(1/(1-(-2))=1/3\), men sumformelen gjelder ikke når rekken divergerer.
  6. Konkluder
    Påstanden er usann fordi rekken ikke har noen endelig sum for denne x-verdien.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1k=ln(e^(-1))-1
Resultat: \(-2\)
2abs(k)<1
Resultat: false
Tolkning: CAS kan beregne den formelle brøken, men konvergenskravet avgjør om den representerer en sum.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import E, log, simplify
x = E**(-1)
k = simplify(log(x)-1)
formal_value = simplify(1/(1-k))
partial_sums = [sum(k**j for j in range(n)) for n in range(1,7)]
print("x =", x)
print("ln(x) =", simplify(log(x)))
print("Kvotient k =", k)
print("|k| =", abs(k))
print("Formell verdi 1/(1-k) =", formal_value)
print("Første delsummer =", partial_sums)
print("Konvergerer?", abs(k) < 1)
assert k == -2 and not(abs(k) < 1)
Kjørt utskriftx = exp(-1)
ln(x) = -1
Kvotient k = -2
|k| = 2
Formell verdi 1/(1-k) = 1/3
Første delsummer = [1, -1, 3, -5, 11, -21]
Konvergerer? False

Fasit: Påstanden er usann. Kvotienten er \(-2\), så rekken divergerer.

Vanlig feil: Å bruke sumformelen mekanisk og få 1/3 uten først å kontrollere \(|k|<1\).
Sensorpunkt: Sensor ser etter kvotienten, konvergenskravet og forklaring av hvorfor 1/3 ikke er en gyldig sum.
Del 2 / Oppgave 2cSymmetri og areal mellom grafer

Oppgave 2c

Oppgave: \(f(x)=x^3-x^2-ax\), \(g(x)=-x^2+x\), \(a\in\mathbb R\). Påstand: Grafene avgrenser to like store områder når \(a>-1\).
Vis løsning

Hva spør oppgaven om? Vi studerer differansen f-g, finner skjæringspunktene og utnytter oddesymmetri.

  1. Finn differansen
    \[f(x)-g(x)=x^3-(a+1)x=x(x^2-(a+1))\]
  2. Finn skjæringspunktene
    Når \(a>-1\), er \(a+1>0\), og skjæringspunktene er \(x=-\sqrt{a+1},0,\sqrt{a+1}\).
  3. Undersøk symmetrien
    Funksjonen \(h(x)=f(x)-g(x)\) er odde fordi den bare inneholder oddetallspotenser av x.
  4. Tolk arealene
    På venstre intervall ligger f over g; på høyre intervall ligger g over f.
  5. Beregn ett areal
    \[A=\int_{-b}^{0}h(x)dx=\frac{b^4}{4}=\frac{(a+1)^2}{4},\quad b=\sqrt{a+1}\]
  6. Konkluder
    Oddesymmetrien gir samme areal på høyre side. Påstanden er sann.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Factor(f-g)
Resultat: \(x(x^2-a-1)\)
2Integral(f-g,-sqrt(a+1),0)
Resultat: \((a+1)^2/4\)
Tolkning: CAS bekrefter både faktoriseringen og arealformelen.
Visualisering for Oppgave 2c
For a>-1 er skjæringspunktene symmetriske og differansen f-g er en odde funksjon.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, sqrt, integrate, simplify
x, a = symbols('x a', real=True)
f = x**3-x**2-a*x
g = -x**2+x
h = simplify(f-g)
b = sqrt(a+1)
left_area = simplify(integrate(h,(x,-b,0)))
right_area = simplify(integrate(-h,(x,0,b)))
print("f(x)-g(x) =", h)
print("Skjæringspunkter for a>-1: -sqrt(a+1), 0, sqrt(a+1)")
print("Venstre areal =", left_area)
print("Høyre areal =", right_area)
print("Forskjell mellom arealene =", simplify(left_area-right_area))
assert simplify(left_area-(a+1)**2/4) == 0
assert simplify(left_area-right_area) == 0
Kjørt utskriftf(x)-g(x) = x*(-a + x**2 - 1)
Skjæringspunkter for a>-1: -sqrt(a+1), 0, sqrt(a+1)
Venstre areal = (a + 1)**2/4
Høyre areal = (a + 1)**2/4
Forskjell mellom arealene = 0

Fasit: Påstanden er sann for \(a>-1\); hvert område har areal \((a+1)^2/4\).

Vanlig feil: Å argumentere bare ut fra at skjæringspunktene er symmetriske. Det er differansen f-g som må ha riktig oddesymmetri.
Sensorpunkt: Sensor ser etter differansefunksjon, skjæringspunkter, symmetri og/eller integralberegning.
Del 2 / Oppgave 3Numerisk omdreiningsvolum av jordbær

Oppgave 3

Oppgave: Bruk bildet i målestokk 1:1, integrasjon og omdreiningslegeme til å beregne volumet av hele jordbæret. Kommenter modellen og vurder svaret.
Vis løsning

Hva spør oppgaven om? Vi velger en naturlig symmetriakse fra spissen mot stilken, leser av en gjennomsnittlig radius og roterer profilen om aksen.

  1. Velg koordinatsystem
    La x-aksen gå fra jordbærets spiss mot stilken. Bildets linjal brukes til å lese av centimeter.
  2. Les av profilpunkter
    En mulig avlesning er \((0,0),(0{,}35,0{,}85),\ldots,(4{,}35,0)\), der andrekoordinaten er en symmetrisert radius.
  3. Lag en jevn profil
    Vi bruker en formbevarende interpolasjon \(r(x)\) gjennom punktene.
  4. Sett opp volumet
    \[V=\pi\int_0^{4{,}35}r(x)^2dx\]
  5. Integrer numerisk
    Modellen gir omtrent \(V=39\text{ cm}^3\).
  6. Vurder svaret
    Jordbæret er ikke helt rotasjonssymmetrisk, og avlesningen fra bildet er usikker. Et svar omtrent 40–50 cm³ er rimelig med denne modellen.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Spline(points)
Resultat: en jevn radiusfunksjon
2Integral(π*r(x)^2,0,4.35)
Resultat: ca. \(39\text{ cm}^3\)
Tolkning: Resultatet avhenger litt av aksen og avlesningspunktene; dokumentasjon og rimelighetsvurdering er viktigere enn én eksakt desimal.
Visualisering for Oppgave 3
En symmetrisert profil gjennom avleste punkter gir omtrent 39 cm³; bildeavlesningen gir noe usikkerhet.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
import numpy as np
from scipy.interpolate import PchipInterpolator
x = np.array([0,.35,.8,1.3,1.9,2.5,3.1,3.65,4.05,4.35], dtype=float)
r = np.array([0,.85,1.55,2.05,2.25,2.18,1.82,1.25,.62,0], dtype=float)
profile = PchipInterpolator(x,r)
grid = np.linspace(x[0],x[-1],20001)
radius = profile(grid)
volume = np.pi*np.trapezoid(radius**2,grid)
coarse_volume = np.pi*np.trapezoid(r**2,x)
print("Antall avleste profilpunkter =", len(x))
print("Modellert lengde =", x[-1], "cm")
print("Største radius =", r.max(), "cm")
print("Volum med PCHIP-profil =", round(volume,3), "cm^3")
print("Volum med direkte trapesmetode =", round(coarse_volume,3), "cm^3")
print("Avrundet svar =", round(volume), "cm^3")
assert 38 < volume < 48
assert np.all(radius >= -1e-10)
Kjørt utskriftAntall avleste profilpunkter = 10
Modellert lengde = 4.35 cm
Største radius = 2.25 cm
Volum med PCHIP-profil = 39.355 cm^3
Volum med direkte trapesmetode = 38.993 cm^3
Avrundet svar = 39 cm^3

Fasit: Et dokumentert modellforslag gir omtrent \(39\text{ cm}^3\). På grunn av bildeavlesning og asymmetri er et nærliggende svar også forsvarlig.

Vanlig feil: Å integrere radiusen direkte i stedet for \(\pi r(x)^2\), eller å presentere mange desimaler uten å drøfte modellusikkerheten.
Sensorpunkt: Sensor ser etter målestokk, dokumentert profil, korrekt omdreiningsintegral og kritisk vurdering.
Del 2 / Oppgave 4aGjennomsnittsfart

Oppgave 4a

Oppgave: Farten er \(v(t)=-6\sin(360t-\pi/2)+54\) km/t. Bestem det første tidspunktet gjennomsnittsfarten blir 54 km/t.
Vis løsning

Hva spør oppgaven om? Gjennomsnittsfarten fra start til tidspunkt T er kjørelengden delt på T. Vi integrerer fartsmønsteret og løser likningen.

  1. Skriv om fartsmønsteret
    \[-6\sin(360t-\pi/2)=6\cos(360t)\]
  2. Finn kjørelengden
    \[s(T)=\int_0^T(6\cos(360t)+54)dt=\frac{\sin(360T)}{60}+54T\]
  3. Finn gjennomsnittsfarten
    \[\bar v(T)=\frac{s(T)}T=54+\frac{\sin(360T)}{60T}\]
  4. Sett den lik 54
    \[\sin(360T)=0\]
  5. Finn første positive løsning
    \[360T=\pi\Rightarrow T=\frac\pi{360}\text{ time}\]
  6. Gjør om til sekunder
    \[T\cdot3600=10\pi\approx31{,}4\text{ s}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(v,t,0,T)/T=54
Resultat: \(T=\pi/360\) som første positive løsning
Tolkning: Gjennomsnittet blir 54 når sinusbidraget til kjørelengden er null.
Visualisering for Oppgave 4a
Farten svinger raskt rundt 54 km/t, mens integralet av farten gir kjørelengden.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, pi, sin, cos, integrate, simplify, N
t, T = symbols('t T', positive=True)
v = -6*sin(360*t-pi/2)+54
distance = integrate(v,(t,0,T))
average = simplify(distance/T)
first_time = pi/360
print("Fart skrevet med cosinus =", simplify(v.rewrite(cos)))
print("Kjørelengde s(T) =", simplify(distance))
print("Gjennomsnittsfart =", average)
print("Første positive tidspunkt =", first_time, "timer")
print("Tidspunkt i sekunder =", N(first_time*3600,12))
print("Kontroll av gjennomsnitt =", simplify(average.subs(T,first_time)))
assert simplify(average.subs(T,first_time)-54) == 0
Kjørt utskriftFart skrevet med cosinus = 6*cos(360*t) + 54
Kjørelengde s(T) = 54*T + sin(360*T)/60
Gjennomsnittsfart = 54 + sin(360*T)/(60*T)
Første positive tidspunkt = pi/360 timer
Tidspunkt i sekunder = 31.4159265359
Kontroll av gjennomsnitt = 54

Fasit: \(T=\frac\pi{360}\) time, altså \(10\pi\approx31{,}4\) sekunder.

Vanlig feil: Å sette den momentane farten v(t) lik 54. Oppgaven spør om gjennomsnittsfarten fra starten.
Sensorpunkt: Sensor ser etter integral av farten, divisjon med tiden og første positive løsning.
Del 2 / Oppgave 4bMaksimal akselerasjon

Oppgave 4b

Oppgave: På hvilke tidspunkter har bilen størst akselerasjon, og hvor stor er akselerasjonen?
Vis løsning

Hva spør oppgaven om? Akselerasjonen er den deriverte av farten. Vi finner maksimumsverdien til den periodiske deriverte og beskriver alle tidspunktene.

  1. Deriver farten
    \[a(t)=v\prime(t)=-2160\cos(360t-\pi/2)=-2160\sin(360t)\]
  2. Finn størst mulig verdi
    Siden \(-1\le\sin(360t)\le1\), er maksimal positiv akselerasjon 2160 km/t².
  3. Finn når maksimum oppstår
    \[-\sin(360t)=1\Rightarrow\sin(360t)=-1\]
  4. Løs periodisk
    \[360t=\frac{3\pi}{2}+2k\pi\]
  5. Isoler t
    \[t=\frac\pi{240}+k\frac\pi{180},\qquad k=0,1,2,\ldots\]
  6. Oppgi praktisk enhet
    \(2160\text{ km/t}^2=\frac16\text{ m/s}^2\approx0{,}167\text{ m/s}^2\). Første gang er etter ca. 47,1 s.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Derivative(v,t)
Resultat: \(-2160\sin(360t)\)
2Max(a(t))
Resultat: 2160 km/t²
Tolkning: Den største positive akselerasjonen gjentas én gang per periode.
Visualisering for Oppgave 4b
Farten svinger raskt rundt 54 km/t, mens integralet av farten gir kjørelengden.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, pi, sin, diff, simplify, Rational, N
t = symbols('t', real=True)
v = -6*sin(360*t-pi/2)+54
a = simplify(diff(v,t))
first = pi/240
period = pi/180
metric = Rational(2160*1000,3600**2)
print("Akselerasjonsfunksjon =", a)
print("Maksimal akselerasjon = 2160 km/t^2")
print("Første tidspunkt =", first, "timer")
print("Første tidspunkt i sekunder =", N(first*3600,12))
print("Gjentas med periode =", period, "timer =", N(period*3600,12), "sekunder")
print("Maksimal akselerasjon i m/s^2 =", metric, "=", N(metric,10))
print("Kontroll a(first) =", simplify(a.subs(t,first)))
assert simplify(a.subs(t,first)-2160) == 0
Kjørt utskriftAkselerasjonsfunksjon = -2160*sin(360*t)
Maksimal akselerasjon = 2160 km/t^2
Første tidspunkt = pi/240 timer
Første tidspunkt i sekunder = 47.1238898039
Gjentas med periode = pi/180 timer = 62.8318530718 sekunder
Maksimal akselerasjon i m/s^2 = 1/6 = 0.1666666667
Kontroll a(first) = 2160

Fasit: \(a_{\max}=2160\text{ km/t}^2=\frac16\text{ m/s}^2\), ved \(t=\frac\pi{240}+k\frac\pi{180}\) timer.

Vanlig feil: Å oppgi maksimal fart i stedet for maksimal akselerasjon, eller å glemme at svaret gjentas periodisk.
Sensorpunkt: Sensor ser etter korrekt derivasjon, maksimumsargument og tidsfamilie.
Del 2 / Oppgave 4cNumerisk løsning av integralmodell

Oppgave 4c

Oppgave: Det er 2 km til garasjen. Hvor lenge må de kjøre når farten følger v(t)?
Vis løsning

Hva spør oppgaven om? Kjørelengden er integralet av farten. Likningen inneholder både et lineært og et trigonometrisk ledd og løses numerisk.

  1. Bruk kjørelengdefunksjonen
    \[s(T)=54T+\frac{\sin(360T)}{60}\]
  2. Sett avstanden lik 2
    \[54T+\frac{\sin(360T)}{60}=2\]
  3. Velg et startestimat
    Uten svingningen ville tiden vært \(2/54\approx0{,}0370\) time.
  4. Løs numerisk
    En numerisk løser gir \(T\approx0{,}0368392\) time.
  5. Gjør om til minutter
    \[0{,}0368392\cdot60\approx2{,}21035\text{ min}\]
  6. Gjør om til sekunder
    \[T\approx132{,}6\text{ s}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1NSolve(54T+sin(360T)/60=2,T)
Resultat: \(T\approx0.0368392\) time
Tolkning: Den første positive roten er ankomsttidspunktet.
Visualisering for Oppgave 4c
Farten svinger raskt rundt 54 km/t, mens integralet av farten gir kjørelengden.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
import math
from scipy.optimize import brentq

def distance(t):
    return 54*t + math.sin(360*t)/60

def equation(t):
    return distance(t)-2

root = brentq(equation, 0.03, 0.045)
print("Numerisk kjøretid i timer =", format(root,'.12f'))
print("Kjøretid i minutter =", format(root*60,'.9f'))
print("Kjøretid i sekunder =", format(root*3600,'.6f'))
print("Kontrollert kjørelengde =", format(distance(root),'.12f'), "km")
print("Residual s(T)-2 =", format(equation(root),'.3e'))
assert abs(distance(root)-2) < 1e-10
Kjørt utskriftNumerisk kjøretid i timer = 0.036839210612
Kjøretid i minutter = 2.210352637
Kjøretid i sekunder = 132.621158
Kontrollert kjørelengde = 2.000000000021 km
Residual s(T)-2 = 2.051e-11

Fasit: Omtrent \(0{,}03684\) time = \(2{,}21\) minutter = \(132{,}6\) sekunder.

Vanlig feil: Å bruke 2/54 som endelig svar uten å ta hensyn til det periodiske fartstillegget.
Sensorpunkt: Sensor ser etter integralet av farten, numerisk likningsløsning og enhetsomregning.
Del 2 / Oppgave 5aRekursiv følge

Oppgave 5a

Oppgave: Bestem en rekursiv formel for talfølgen \(1,2,6,15,31,56,\ldots\).
Vis løsning

Hva spør oppgaven om? Vi undersøker differansene mellom påfølgende ledd og kjenner igjen kvadrattallene.

  1. Finn første differanse
    \(2-1=1=1^2\).
  2. Fortsett differansene
    \[6-2=4=2^2,\quad15-6=9=3^2\]
  3. Se mønsteret
    Videre får vi \(31-15=16=4^2\) og \(56-31=25=5^2\).
  4. Knytt differansen til indeks
    Fra \(a_{n-1}\) til \(a_n\) legges \((n-1)^2\) til.
  5. Skriv startbetingelsen
    \[a_1=1\]
  6. Skriv rekursjonen
    \[a_n=a_{n-1}+(n-1)^2,\qquad n\ge2\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1DifferenceList({1,2,6,15,31,56})
Resultat: \(1,4,9,16,25\)
Tolkning: Differanselisten viser kvadrattallene direkte.
Visualisering for Oppgave 5a
Differansene er 1², 2², 3², ... og a30=8556.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
sequence = [1,2,6,15,31,56]
differences = [sequence[i]-sequence[i-1] for i in range(1,len(sequence))]
expected = [k**2 for k in range(1,len(sequence))]
print("Talfølge =", sequence)
print("Første differanser =", differences)
print("Kvadrattall =", expected)
print("Mønster stemmer?", differences == expected)
# Generer de samme seks leddene rekursivt
recreated = [1]
for n in range(2,7):
    recreated.append(recreated[-1] + (n-1)**2)
print("Rekursivt genererte ledd =", recreated)
assert recreated == sequence
Kjørt utskriftTalfølge = [1, 2, 6, 15, 31, 56]
Første differanser = [1, 4, 9, 16, 25]
Kvadrattall = [1, 4, 9, 16, 25]
Mønster stemmer? True
Rekursivt genererte ledd = [1, 2, 6, 15, 31, 56]

Fasit: \(a_1=1\), og \(a_n=a_{n-1}+(n-1)^2\) for \(n\ge2\).

Vanlig feil: Å skrive \(a_n=a_{n-1}+n^2\); det gir feil allerede ved det andre leddet.
Sensorpunkt: Sensor ser etter differansene 1², 2², 3², … og korrekt indeksforskyvning.
Del 2 / Oppgave 5bProgrammering av rekursiv følge

Oppgave 5b

Oppgave: Bruk den rekursive formelen til å lage et program som regner ut summen av de 30 første leddene.
Vis løsning

Hva spør oppgaven om? Programmet skal bygge hvert ledd fra det forrige, legge leddet til en løpende sum og vise resultatet av kjøringen.

  1. Start med første ledd
    Sett \(a=1\) og \(S=1\).
  2. Gjenta fra n=2 til 30
    I hver runde beregnes \(a\leftarrow a+(n-1)^2\).
  3. Oppdater summen
    Etter at det nye leddet er funnet, settes \(S\leftarrow S+a\).
  4. Kontroller siste ledd
    Programmet gir \(a_{30}=8556\).
  5. Les av summen
    Summen av de 30 første leddene blir 67 455.
  6. Kontroller med eksplisitt formel
    \(a_n=1+\frac{(n-1)n(2n-1)}6\) gir samme resultat.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1RecursiveSequence(...,30)
Resultat: \(a_{30}=8556\)
2Sum(first 30 terms)
Resultat: 67455
Tolkning: CAS-kontrollen og løkken gir samme sum.
Visualisering for Oppgave 5b
Differansene er 1², 2², 3², ... og a30=8556.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, summation, simplify

number_of_terms = 30
term = 1
total = term
values = [term]

for n in range(2, number_of_terms + 1):
    term = term + (n - 1)**2
    values.append(term)
    total = total + term

print("Antall ledd =", len(values))
print("De ti første leddene =", values[:10])
print("De fem siste leddene =", values[-5:])
print("a_30 =", values[-1])
print("Summen av de 30 første leddene =", total)

n = symbols('n', integer=True, positive=True)
explicit = 1 + (n-1)*n*(2*n-1)/6
symbolic_sum = summation(explicit, (n,1,30))
print("Kontroll med eksplisitt formel =", symbolic_sum)
assert values[-1] == 8556
assert total == 67455 == symbolic_sum
Kjørt utskriftAntall ledd = 30
De ti første leddene = [1, 2, 6, 15, 31, 56, 92, 141, 205, 286]
De fem siste leddene = [5526, 6202, 6931, 7715, 8556]
a_30 = 8556
Summen av de 30 første leddene = 67455
Kontroll med eksplisitt formel = 67455

Fasit: Summen av de 30 første leddene er \(67455\).

Vanlig feil: Å starte summen på 0 og deretter hoppe over første ledd, eller å bruke n² i stedet for (n−1)².
Sensorpunkt: Sensor ser etter en fungerende rekursiv løkke, dokumentert kode og kjørt resultat.
Del 2 / Oppgave 6Omdreiningsvolum og skallmetoden

Oppgave 6

Oppgave: En sirkel med sentrum \(S(a,0)\) og radius \(R<a\) roteres om y-aksen. Vis at volumet blir \(2\pi^2R^2a\).
Vis løsning

Hva spør oppgaven om? Rotasjonen danner en torus. Med sylinderskall bruker vi skallradius x og høyden gjennom sirkelskiven.

  1. Skriv sirkelområdet
    \[(x-a)^2+y^2\le R^2\]
  2. Finn skallhøyden
    For et gitt x er øvre og nedre y-verdi \(\pm\sqrt{R^2-(x-a)^2}\), så høyden er \(2\sqrt{R^2-(x-a)^2}\).
  3. Sett opp skallintegralet
    \[V=2\pi\int_{a-R}^{a+R}x\cdot2\sqrt{R^2-(x-a)^2}\,dx\]
  4. Substituer
    La \(u=x-a\). Da blir \(x=u+a\), og grensene blir \(-R\) og R.
  5. Bruk symmetri
    Ledddet \(u\sqrt{R^2-u^2}\) er odde og integrerer til 0. Videre er \(\int_{-R}^{R}\sqrt{R^2-u^2}du=\pi R^2/2\).
  6. Forenkle
    \[V=4\pi a\cdot\frac{\pi R^2}{2}=2\pi^2R^2a\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(4πx sqrt(R²-(x-a)²),x,a-R,a+R)
Resultat: \(2\pi^2R^2a\)
Tolkning: CAS bekrefter skallintegralet under forutsetningene a>R>0.
Visualisering for Oppgave 6
Skallmetoden viser at volumet er 2π²R²a.

Digital kontroll i Python

Python 3.13 / SymPy 1.14 - faktisk kjørt
from sympy import symbols, pi, sqrt, integrate, simplify, assuming, Q
x, a, R, u = symbols('x a R u', positive=True)
# Etter substitusjonen u=x-a:
integrand = 4*pi*(u+a)*sqrt(R**2-u**2)
odd_part = 4*pi*u*sqrt(R**2-u**2)
even_part = 4*pi*a*sqrt(R**2-u**2)
odd_integral = integrate(odd_part,(u,-R,R))
even_integral = integrate(even_part,(u,-R,R))
volume = simplify(odd_integral+even_integral)
print("Integrand etter substitusjon =", integrand)
print("Integral av oddetallsdelen =", odd_integral)
print("Integral av den symmetriske delen =", even_integral)
print("Volum =", volume)
print("Kontroll mot 2*pi^2*R^2*a =", simplify(volume-2*pi**2*R**2*a))
assert simplify(volume-2*pi**2*R**2*a) == 0
Kjørt utskriftIntegrand etter substitusjon = 4*pi*sqrt(R**2 - u**2)*(a + u)
Integral av oddetallsdelen = 0
Integral av den symmetriske delen = 2*pi**2*R**2*a
Volum = 2*pi**2*R**2*a
Kontroll mot 2*pi^2*R^2*a = 0

Fasit: \(V=2\pi^2R^2a\).

Vanlig feil: Å bruke skiveformelen \(\pi y^2\) direkte uten å håndtere hullet i torusen, eller å glemme faktoren 2 i skallhøyden.
Sensorpunkt: Sensor ser etter korrekt integraloppsett, symmetri/substitusjon og endelig forenkling.