R2 eksamenVår 2023LK20

Matematikk R2 eksamen – vår 2023

ifingo
Norsk (Bokmål)

ifingo · Matematikk R2

Eksempelsett Matematikk R2 - vår 2023 (LK20)

Løsningsforslag til eksamenssettet fra Utdanningsdirektoratet.

Del 1 - uten hjelpemidler

Del 1 / Oppgave 1aBestemt integral

Oppgave 1a

Oppgave: Regn ut \(\displaystyle\int_0^1(4x^2+3)\,dx\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Vi skal finne en antiderivert og bruke øvre verdi minus nedre verdi.

  1. Integrer hvert ledd
    \[\int(4x^2+3)dx=\frac43x^3+3x+C\]
  2. Bruk grensene
    \[\left[\frac43x^3+3x\right]_0^1\]
  3. Sett inn x=1
    \(\frac43+3=\frac{13}{3}\).
  4. Sett inn x=0
    Verdien er 0.
  5. Trekk fra
    \[\frac{13}{3}-0=\frac{13}{3}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(4x^2+3,x,0,1)
Resultat: \(13/3\)
Tolkning: CAS bekrefter den eksakte brøkverdien.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, integrate, Rational, simplify
x = symbols('x', real=True)
expr = 4*x**2 + 3
F = integrate(expr, x)
value = integrate(expr, (x, 0, 1))
print("Integrand =", expr)
print("Antiderivert =", F)
print("F(1) =", F.subs(x, 1))
print("F(0) =", F.subs(x, 0))
print("Bestemt integral =", value)
print("Kontroll =", simplify(value - Rational(13, 3)))
assert simplify(value - Rational(13, 3)) == 0
Kjørt utskriftIntegrand = 4*x**2 + 3
Antiderivert = 4*x**3/3 + 3*x
F(1) = 13/3
F(0) = 0
Bestemt integral = 13/3
Kontroll = 0

Fasit: \(\frac{13}{3}\).

Vanlig feil: Å glemme å trekke fra verdien ved nedre grense.
Sensorpunkt: Sensor ser etter korrekt antiderivert og grenseinnsetting.
Del 1 / Oppgave 1bSubstitusjon

Oppgave 1b

Oppgave: Regn ut \(\displaystyle\int4x\sqrt{x^2+2}\,dx\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Uttrykket under roten har derivert 2x, så substitusjon er naturlig.

  1. Velg substitusjon
    Sett \(u=x^2+2\).
  2. Finn differensialet
    \(du=2x\,dx\), altså \(4x\,dx=2du\).
  3. Bytt variabel
    \[\int4x\sqrt{x^2+2}\,dx=2\int u^{1/2}du\]
  4. Integrer
    \[2\cdot\frac{u^{3/2}}{3/2}=\frac43u^{3/2}+C\]
  5. Sett tilbake
    \[\frac43(x^2+2)^{3/2}+C\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(4x*sqrt(x^2+2),x)
Resultat: \(\frac43(x^2+2)^{3/2}\)
Tolkning: Derivasjon av svaret gir den opprinnelige integranden.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, sqrt, integrate, diff, simplify, Rational
x = symbols('x', real=True)
expr = 4*x*sqrt(x**2 + 2)
F = Rational(4, 3)*(x**2 + 2)**Rational(3, 2)
cas_F = integrate(expr, x)
print("Integrand =", expr)
print("Foreslått antiderivert =", F)
print("SymPy-antiderivert =", cas_F)
print("Derivert tilbake =", simplify(diff(F, x)))
print("Kontroll =", simplify(diff(F, x) - expr))
assert simplify(diff(F, x) - expr) == 0
Kjørt utskriftIntegrand = 4*x*sqrt(x**2 + 2)
Foreslått antiderivert = 4*(x**2 + 2)**(3/2)/3
SymPy-antiderivert = 4*x**2*sqrt(x**2 + 2)/3 + 8*sqrt(x**2 + 2)/3
Derivert tilbake = 4*x*sqrt(x**2 + 2)
Kontroll = 0

Fasit: \(\frac43(x^2+2)^{3/2}+C\).

Vanlig feil: Å miste faktoren 2 når du bytter fra x til u.
Sensorpunkt: Sensor ser etter tydelig substitusjon og tilbakebytte.
Del 1 / Oppgave 2aVektorer og normalvektor

Oppgave 2a

Oppgave: Vis at \(\vec n=[-1,1,1]\) er normalvektor til planet som er parallelt med \(\vec u=[1,2,-1]\) og \(\vec v=[-1,1,-2]\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? En normalvektor må være ortogonal på begge retningsvektorene i planet.

  1. Beregn første skalarprodukt
    \[\vec n\cdot\vec u=-1+2-1=0\]
  2. Beregn andre skalarprodukt
    \[\vec n\cdot\vec v=1+1-2=0\]
  3. Tolk resultatene
    Begge skalarproduktene er null.
  4. Konkluder
    \(\vec n\) står vinkelrett på to ikke-parallelle vektorer i planet og er derfor normalvektor.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Dot((-1,1,1),(1,2,-1))
Resultat: 0
2Dot((-1,1,1),(-1,1,-2))
Resultat: 0
Tolkning: Begge kontrollene gir null.
Visualisering for Oppgave 2a
Planet er spent ut av de to retningsvektorene, mens normalvektoren står vinkelrett på begge.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import Matrix
u = Matrix([1, 2, -1])
v = Matrix([-1, 1, -2])
n = Matrix([-1, 1, 1])
print("u =", list(u))
print("v =", list(v))
print("n =", list(n))
print("n · u =", n.dot(u))
print("n · v =", n.dot(v))
print("u × v =", list(u.cross(v)))
assert n.dot(u) == 0
assert n.dot(v) == 0
Kjørt utskriftu = [1, 2, -1]
v = [-1, 1, -2]
n = [-1, 1, 1]
n · u = 0
n · v = 0
u × v = [-3, 3, 3]

Fasit: \(\vec n=[-1,1,1]\) er en normalvektor.

Vanlig feil: Å kontrollere bare ett skalarprodukt.
Sensorpunkt: Sensor ser etter to nullskalarprodukter og en geometrisk konklusjon.
Del 1 / Oppgave 2bPlanlikning

Oppgave 2b

Oppgave: Bestem en likning til planet \(\alpha\) gjennom \(P(2,0,1)\) med normalvektor \([-1,1,1]\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Vi bruker punkt-normal-formen for et plan.

  1. Skriv punkt-normal-formen
    \[-1(x-2)+1(y-0)+1(z-1)=0\]
  2. Utvid parentesene
    \[-x+2+y+z-1=0\]
  3. Samle konstantene
    \[-x+y+z+1=0\]
  4. Skriv alternativ standardform
    \[x-y-z=1\]
  5. Kontroller punktet
    \(2-0-1=1\), så P ligger i planet.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Plane((2,0,1),(-1,1,1))
Resultat: \(-x+y+z+1=0\)
Tolkning: Punktet oppfyller likningen, og koeffisientene er normalvektoren.
Visualisering for Oppgave 2b
Planet er spent ut av de to retningsvektorene, mens normalvektoren står vinkelrett på begge.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, simplify
x, y, z = symbols('x y z', real=True)
plane = -(x - 2) + y + (z - 1)
standard = simplify(plane)
print("Punkt-normal-form = -(x-2) + y + (z-1)")
print("Forenklet venstreside =", standard)
print("Kontroll i P(2,0,1) =", standard.subs({x:2,y:0,z:1}))
print("Ekvivalent form x-y-z-1 =", x-y-z-1)
assert standard.subs({x:2,y:0,z:1}) == 0
assert simplify(standard + (x-y-z-1)) == 0
Kjørt utskriftPunkt-normal-form = -(x-2) + y + (z-1)
Forenklet venstreside = -x + y + z + 1
Kontroll i P(2,0,1) = 0
Ekvivalent form x-y-z-1 = x - y - z - 1

Fasit: \(\alpha: -x+y+z+1=0\), ekvivalent med \(x-y-z=1\).

Vanlig feil: Å bruke punktet som normalvektor eller glemme konstantleddet.
Sensorpunkt: Sensor ser etter punkt-normal-form og en korrekt forenklet likning.
Del 1 / Oppgave 3Trigonometrisk likning

Oppgave 3

Oppgave: Løs \(\cos^2x-3\sin^2x=-2\) for \(x\in[0,2\pi)\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Vi reduserer likningen til en standardlikning for sinus.

  1. Bruk identiteten
    \(\cos^2x=1-\sin^2x\).
  2. Sett inn
    \[1-\sin^2x-3\sin^2x=-2\]
  3. Isoler sinusleddet
    \[4\sin^2x=3\Rightarrow \sin x=\pm\frac{\sqrt3}{2}\]
  4. Finn positive løsninger
    \(x=\pi/3\) og \(x=2\pi/3\).
  5. Finn negative løsninger
    \(x=4\pi/3\) og \(x=5\pi/3\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solutions(cos(x)^2-3sin(x)^2=-2,0<=x<2pi)
Resultat: \(\{\pi/3,2\pi/3,4\pi/3,5\pi/3\}\)
Tolkning: CAS bekrefter alle fire løsninger i det oppgitte intervallet.
Visualisering for Oppgave 3
Grafisk kontroll av de fire trigonometriske løsningene.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, sin, cos, pi, sqrt, solveset, Interval, simplify
x = symbols('x', real=True)
expr = cos(x)**2 - 3*sin(x)**2 + 2
solutions = solveset(expr, x, domain=Interval.Ropen(0, 2*pi))
expected = {pi/3, 2*pi/3, 4*pi/3, 5*pi/3}
print("Likningens venstreside flyttet til null =", expr)
print("Løsninger i [0,2*pi) =", solutions)
for value in sorted(expected, key=lambda t: float(t)):
    print("Kontroll ved", value, "=", simplify(expr.subs(x, value)))
assert set(solutions) == expected
Kjørt utskriftLikningens venstreside flyttet til null = -3*sin(x)**2 + cos(x)**2 + 2
Løsninger i [0,2*pi) = {pi/3, 2*pi/3, 4*pi/3, 5*pi/3}
Kontroll ved pi/3 = 0
Kontroll ved 2*pi/3 = 0
Kontroll ved 4*pi/3 = 0
Kontroll ved 5*pi/3 = 0

Fasit: \(x\in\{\pi/3,2\pi/3,4\pi/3,5\pi/3\}\).

Vanlig feil: Å ta kvadratroten og bare beholde positiv sinusverdi.
Sensorpunkt: Sensor ser etter fire løsninger og korrekt intervallkontroll.
Del 1 / Oppgave 4Aritmetisk rekke

Oppgave 4

Oppgave: En aritmetisk rekke har sum \(s_n=3n^2+4n\). Bestem \(a_4\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Et enkeltledd finnes som differansen mellom to påfølgende delsummer.

  1. Bruk sammenhengen
    \[a_n=s_n-s_{n-1}\]
  2. Beregn s₄
    \[s_4=3\cdot16+4\cdot4=64\]
  3. Beregn s₃
    \[s_3=3\cdot9+4\cdot3=39\]
  4. Trekk fra
    \[a_4=64-39=25\]
  5. Ekstra kontroll
    Generelt blir \(a_n=6n+1\), som gir \(a_4=25\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Substitute(3n^2+4n,n=4)-Substitute(3n^2+4n,n=3)
Resultat: 25
Tolkning: Delsumdifferansen gir det fjerde leddet direkte.
Visualisering for Oppgave 4
Den aritmetiske følgen har leddformel 6n+1, og a₄=25.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, expand, simplify
n = symbols('n', integer=True, positive=True)
s = 3*n**2 + 4*n
a_n = expand(s - s.subs(n, n-1))
a4 = simplify(s.subs(n,4) - s.subs(n,3))
print("s_n =", s)
print("s_4 =", s.subs(n,4))
print("s_3 =", s.subs(n,3))
print("a_n = s_n - s_(n-1) =", a_n)
print("a_4 =", a4)
assert a_n == 6*n + 1
assert a4 == 25
Kjørt utskrifts_n = 3*n**2 + 4*n
s_4 = 64
s_3 = 39
a_n = s_n - s_(n-1) = 6*n + 1
a_4 = 25

Fasit: \(a_4=25\).

Vanlig feil: Å sette n=4 direkte inn i sumformelen og svare 64.
Sensorpunkt: Sensor ser etter differansen s₄−s₃.
Del 1 / Oppgave 5Geometrisk rekke

Oppgave 5

Oppgave: En uendelig geometrisk rekke har sum 6, og summen av de tre første leddene er \(38/9\). Bestem summen av de fire første leddene.
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Vi bruker forholdet mellom delsum og uendelig sum til å finne kvotienten.

  1. Skriv sumformlene
    \(S_\infty=a/(1-k)\) og \(S_3=S_\infty(1-k^3)\).
  2. Sett inn opplysningene
    \[\frac{38}{9}=6(1-k^3)\]
  3. Løs for k
    \[1-k^3=\frac{19}{27}\Rightarrow k^3=\frac8{27}\Rightarrow k=\frac23\]
  4. Finn firedelsummen
    \[S_4=6\left(1-\left(\frac23\right)^4\right)\]
  5. Forenkle
    \[S_4=6\cdot\frac{65}{81}=\frac{130}{27}\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(38/9=6(1-k^3),k)
Resultat: \(k=2/3\)
26(1-(2/3)^4)
Resultat: \(130/27\)
Tolkning: Den reelle kvotienten gir den etterspurte delsummen.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, Eq, solve, Rational, simplify
k = symbols('k', real=True)
solutions = solve(Eq(Rational(38,9), 6*(1-k**3)), k)
ratio = solutions[0]
S4 = simplify(6*(1-ratio**4))
first_term = simplify(6*(1-ratio))
print("Løsninger for kvotienten =", solutions)
print("Kvotient k =", ratio)
print("Første ledd a =", first_term)
print("Kontroll S3 =", simplify(first_term*(1-ratio**3)/(1-ratio)))
print("S4 =", S4)
assert ratio == Rational(2,3)
assert S4 == Rational(130,27)
Kjørt utskriftLøsninger for kvotienten = [2/3]
Kvotient k = 2/3
Første ledd a = 2
Kontroll S3 = 38/9
S4 = 130/27

Fasit: \(S_4=\frac{130}{27}\).

Vanlig feil: Å bruke 38/9 som første ledd i rekken.
Sensorpunkt: Sensor ser etter kvotienten 2/3 og korrekt delsumformel.
Del 1 / Oppgave 6aNumerisk integrasjon

Oppgave 6a

Oppgave: Forklar hva programmet med venstresum beregner for \(f(x)=2\sin(x+\pi/6)\), \(a=0\), \(b=\pi\) og \(n=10000\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Programmet summerer rektangler med venstre endepunkt og tilnærmer et bestemt integral.

  1. Finn steglengden
    \(h=(b-a)/n=\pi/10000\).
  2. Les løkken
    Programmet legger til \(f(a+ih)h\) for \(i=0,1,\ldots,n-1\).
  3. Gjenkjenn Riemann-summen
    \[\sum_{i=0}^{n-1}f(a+ih)h\]
  4. Tolk grenseverdien
    Når n er stor, nærmer summen seg \(\int_0^\pi f(x)dx\).
  5. Forklar utskriften
    Programmet runder integraltilnærmingen til to desimaler.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(2sin(x+pi/6),x,0,pi)
Resultat: \(2\sqrt3\approx3.4641\)
Tolkning: Programmet beregner en venstresum for arealet med fortegn under grafen.
Visualisering for Oppgave 6a
Venstresummen i programmet nærmer seg det bestemte integralet.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from math import sin, pi

def f(x):
    return 2*sin(x + pi/6)

a = 0
b = pi
n = 10000
h = (b-a)/n
I = 0
for i in range(n):
    I = I + f(a+i*h)*h
print("a =", a)
print("b =", b)
print("n =", n)
print("h =", h)
print("Venstresum I =", I)
print("Programutskrift round(I,2) =", round(I,2))
assert abs(I-2*3**0.5) < 0.001
Kjørt utskrifta = 0
b = 3.141592653589793
n = 10000
h = 0.0003141592653589793
Venstresum I = 3.464415745912007
Programutskrift round(I,2) = 3.46

Fasit: Programmet tilnærmer \(\int_0^\pi2\sin(x+\pi/6)dx\) og skriver omtrent 3,46.

Vanlig feil: Å beskrive programmet som en vanlig sum av funksjonsverdier uten faktoren h.
Sensorpunkt: Sensor ser etter venstresum, integralgrenser og funksjonen som integreres.
Del 1 / Oppgave 6bEksakt integral

Oppgave 6b

Oppgave: Finn det eksakte svaret på integralet programmet tilnærmer.
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Vi integrerer sinusfunksjonen nøyaktig.

  1. Skriv integralet
    \[I=\int_0^\pi2\sin(x+\pi/6)dx\]
  2. Finn en antiderivert
    \[-2\cos(x+\pi/6)\]
  3. Sett inn øvre grense
    \(-2\cos(7\pi/6)=\sqrt3\).
  4. Sett inn nedre grense
    \(-2\cos(\pi/6)=-\sqrt3\).
  5. Trekk fra
    \[I=\sqrt3-(-\sqrt3)=2\sqrt3\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(2sin(x+pi/6),x,0,pi)
Resultat: \(2\sqrt3\)
Tolkning: CAS gir eksakt verdi og desimalen forklarer programutskriften.
Visualisering for Oppgave 6b
Venstresummen i programmet nærmer seg det bestemte integralet.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, sin, cos, pi, integrate, sqrt, simplify, N
x = symbols('x', real=True)
f = 2*sin(x+pi/6)
F = integrate(f, x)
I = integrate(f, (x,0,pi))
print("f(x) =", f)
print("Antiderivert =", F)
print("F(pi) =", F.subs(x,pi))
print("F(0) =", F.subs(x,0))
print("Eksakt integral =", I)
print("Desimalverdi =", N(I,15))
print("Kontroll =", simplify(I-2*sqrt(3)))
assert simplify(I-2*sqrt(3)) == 0
Kjørt utskriftf(x) = 2*sin(x + pi/6)
Antiderivert = -2*cos(x + pi/6)
F(pi) = sqrt(3)
F(0) = -sqrt(3)
Eksakt integral = 2*sqrt(3)
Desimalverdi = 3.46410161513775
Kontroll = 0

Fasit: \(2\sqrt3\).

Vanlig feil: Å glemme at nedre verdi skal trekkes fra.
Sensorpunkt: Sensor ser etter antiderivert, grenseinnsetting og eksakt svar.
Del 1 / Oppgave 7aKontroll ved derivasjon

Oppgave 7a

Oppgave: Bruk derivasjon til å vise at \(\int\frac1{(1-x)^2}dx=\frac{x}{1-x}+C_1\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Vi deriverer høyresiden og kontrollerer at integranden kommer tilbake.

  1. Definer funksjonen
    \(F(x)=x/(1-x)\).
  2. Bruk kvotientregelen
    \[F\prime(x)=\frac{(1-x)\cdot1-x(-1)}{(1-x)^2}\]
  3. Forenkle telleren
    \((1-x)+x=1\).
  4. Konkluder
    \[F\prime(x)=\frac1{(1-x)^2}\]
  5. Ta med konstanten
    Derivert av C₁ er null.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Derivative(x/(1-x),x)
Resultat: \(1/(1-x)^2\)
Tolkning: Derivasjonen bekrefter at uttrykket er en antiderivert.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, diff, simplify
x = symbols('x', real=True)
F = x/(1-x)
integrand = 1/(1-x)**2
derivative = simplify(diff(F,x))
print("F(x) =", F)
print("F'(x) =", derivative)
print("Integrand =", integrand)
print("Kontroll =", simplify(derivative-integrand))
assert simplify(derivative-integrand) == 0
Kjørt utskriftF(x) = x/(1 - x)
F'(x) = (x - 1)**(-2)
Integrand = (1 - x)**(-2)
Kontroll = 0

Fasit: Formelen stemmer fordi \(\left(\frac{x}{1-x}\right)\prime=\frac1{(1-x)^2}\).

Vanlig feil: Å derivere nevneren uten kvotientregel eller kjerneregel.
Sensorpunkt: Sensor ser etter en fullstendig derivasjonskontroll.
Del 1 / Oppgave 7bVariabelskifte

Oppgave 7b

Oppgave: Bruk \(u=1-x\) til å vise at \(\int\frac1{(1-x)^2}dx=\frac1{1-x}+C_2\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Substitusjonen gjør integralet til en enkel potens av u.

  1. Sett u=1−x
    \(du=-dx\), altså \(dx=-du\).
  2. Bytt variabel
    \[\int(1-x)^{-2}dx=-\int u^{-2}du\]
  3. Integrer potensen
    \[-\cdot\frac{u^{-1}}{-1}=u^{-1}+C_2\]
  4. Sett tilbake
    \[\frac1{1-x}+C_2\]
  5. Kontroller
    Derivert av 1/(1−x) er 1/(1−x)².

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(1/(1-x)^2,x)
Resultat: \(1/(1-x)\)
Tolkning: CAS bekrefter den andre antiderivertformen.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, integrate, diff, simplify
x, u = symbols('x u', real=True)
integrand = 1/(1-x)**2
F = 1/(1-x)
print("Substitusjon u = 1-x")
print("dx = -du")
print("Nytt integral = -Integral(u**(-2), u)")
print("Antiderivert i u =", integrate(-u**-2,u))
print("Tilbake i x =", F)
print("Derivert tilbake =", simplify(diff(F,x)))
print("Kontroll =", simplify(diff(F,x)-integrand))
assert simplify(diff(F,x)-integrand) == 0
Kjørt utskriftSubstitusjon u = 1-x
dx = -du
Nytt integral = -Integral(u**(-2), u)
Antiderivert i u = 1/u
Tilbake i x = 1/(1 - x)
Derivert tilbake = (x - 1)**(-2)
Kontroll = 0

Fasit: \(\frac1{1-x}+C_2\).

Vanlig feil: Å glemme minustegnet i du=−dx.
Sensorpunkt: Sensor ser etter korrekt variabelskifte og tilbakebytte.
Del 1 / Oppgave 7cIntegrasjonskonstant

Oppgave 7c

Oppgave: Forklar hvordan de to antiderivertformlene kan være sanne samtidig.
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Alle antideriverte til samme funksjon kan bare skille seg med en konstant.

  1. Sammenlign uttrykkene
    \[\frac{x}{1-x}\quad\text{og}\quad\frac1{1-x}\]
  2. Trekk fra
    \[\frac1{1-x}-\frac{x}{1-x}=\frac{1-x}{1-x}=1\]
  3. Skriv identiteten
    \[\frac{x}{1-x}=\frac1{1-x}-1\]
  4. Juster konstantene
    Velges \(C_2=C_1-1\), beskriver formlene samme familie.
  5. Konkluder
    Forskjellen 1 absorberes i integrasjonskonstanten.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Simplify(1/(1-x)-x/(1-x))
Resultat: 1
Tolkning: CAS viser at forskjellen er konstant.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, simplify, diff
x = symbols('x', real=True)
F1 = x/(1-x)
F2 = 1/(1-x)
difference = simplify(F2-F1)
print("F1 =", F1)
print("F2 =", F2)
print("F2-F1 =", difference)
print("Derivert av forskjellen =", diff(difference,x))
print("Sammenheng: F1 = F2 - 1")
assert difference == 1
assert diff(difference,x) == 0
Kjørt utskriftF1 = x/(1 - x)
F2 = 1/(1 - x)
F2-F1 = 1
Derivert av forskjellen = 0
Sammenheng: F1 = F2 - 1

Fasit: Uttrykkene skiller seg med konstanten 1; denne inngår i C₁ eller C₂.

Vanlig feil: Å tro at antideriverten er unik uten integrasjonskonstant.
Sensorpunkt: Sensor ser etter eksplisitt konstantforskjell.

Del 2 - med hjelpemidler

Del 2 / Oppgave 1aSinusregresjon

Oppgave 1a

Oppgave: Lag en periodisk funksjon som er en god modell for måne-dataene.
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Vi tilpasser en sinusfunksjon \(a\sin(bx+c)+d\) til alle datapunktene.

  1. Velg modelltype
    En månefase gjentar seg periodisk og varierer omtrent mellom 0 og 1.
  2. Utfør sinusregresjon
    Regresjon på de 16 punktene gir parametrene nedenfor.
  3. Skriv modellen
    \[f(x)=0{,}48511\sin(0{,}211894x-2{,}92066)+0{,}474752\]
  4. Kontroller amplituden
    Modellen varierer omtrent fra −0,010 til 0,960, nær dataenes område.
  5. Kontroller tilpasningen
    RMSE er omtrent 0,0181, som er liten i forhold til skalaen 0–1.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1FitSin({(1,0.25),(2,0.18),(3,0.11),(4,0.06),(5,0.02),(10,0.11),(15,0.57),(20,0.99),(25,0.80),(30,0.32),(35,0.02),(40,0.14),(45,0.64),(55,0.77),(60,0.31),(65,0.01)})
Resultat: Omtrent \(0.4851\sin(0.2119x-2.9207)+0.4748\)
Tolkning: Sinusregresjonen gir en svært god periodisk modell.
Visualisering for Oppgave 1a
Sinusregresjonen følger dataene og viser perioden og intervallet over 0,5.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
import numpy as np
from scipy.optimize import curve_fit
x = np.array([1,2,3,4,5,10,15,20,25,30,35,40,45,55,60,65], dtype=float)
y = np.array([0.25,0.18,0.11,0.06,0.02,0.11,0.57,0.99,0.80,0.32,0.02,0.14,0.64,0.77,0.31,0.01])

def model(x, a, b, c, d):
    return a*np.sin(b*x+c)+d

p0 = [0.5, 2*np.pi/29.5, -2.9, 0.5]
params, covariance = curve_fit(model, x, y, p0=p0, maxfev=100000)
a, b, c, d = params
predicted = model(x, *params)
rmse = np.sqrt(np.mean((predicted-y)**2))
print("a =", a)
print("b =", b)
print("c =", c)
print("d =", d)
print("Periode =", 2*np.pi/b)
print("RMSE =", rmse)
assert rmse < 0.02
Kjørt utskrifta = 0.4851102514937163
b = 0.21189354945447353
c = -2.920658551984734
d = 0.47475179466582185
Periode = 29.65255583926854
RMSE = 0.01807281139670276

Fasit: En god modell er \(f(x)=0{,}48511\sin(0{,}211894x-2{,}92066)+0{,}474752\).

Vanlig feil: Å velge en lineær modell til tydelig periodiske data.
Sensorpunkt: Sensor ser etter dokumentert regresjon og en rimelig periodisk modell.
Del 2 / Oppgave 1bPeriode

Oppgave 1b

Oppgave: Hvor lang tid går det mellom hver fullmåne ifølge modellen?
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Fullmåner svarer til påfølgende maksimumspunkter, og avstanden er funksjonens periode.

  1. Finn vinkelhastigheten
    \(b\approx0{,}211894\).
  2. Bruk periodeformelen
    \[T=\frac{2\pi}{b}\]
  3. Sett inn
    \[T\approx\frac{2\pi}{0{,}211894}\approx29{,}65\]
  4. Tolk enheten
    x måles i døgn.
  5. Konkluder
    Det går omtrent 29,7 døgn mellom fullmånene.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
12pi/0.21189355
Resultat: \(29.6526\)
Tolkning: Perioden er avstanden mellom modellens maksimumspunkter.
Visualisering for Oppgave 1b
Sinusregresjonen følger dataene og viser perioden og intervallet over 0,5.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from math import pi
b = 0.21189355
period = 2*pi/b
first_max = (pi/2 - (-2.92065851))/b
second_max = first_max + period
print("Vinkelhastighet b =", b)
print("Periode T =", period)
print("Første maksimum etter nyttår =", first_max)
print("Neste maksimum =", second_max)
print("Avstand mellom maksimum =", second_max-first_max)
assert abs(period-29.652556) < 1e-5
Kjørt utskriftVinkelhastighet b = 0.21189355
Periode T = 29.65255576292712
Første maksimum etter nyttår = 21.19675108937906
Neste maksimum = 50.84930685230618
Avstand mellom maksimum = 29.65255576292712

Fasit: Omtrent \(29{,}65\) døgn.

Vanlig feil: Å bruke 1/b i stedet for 2π/b.
Sensorpunkt: Sensor ser etter periodeformelen og riktig enhet.
Del 2 / Oppgave 1cUlikhet med modell

Oppgave 1c

Oppgave: Hvilke døgn var minst halve månen synlig ved midnatt i januar?
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Vi løser \(f(x)\ge0,5\) og begrenser til heltallsdøgn 1–31.

  1. Sett opp ulikheten
    \[0{,}48511\sin(0{,}211894x-2{,}92066)+0{,}474752\ge0{,}5\]
  2. Finn skjæringspunktene
    Numerisk får vi \(x\approx14{,}029\) og \(x\approx28{,}364\).
  3. Bestem intervallet
    Modellen ligger over 0,5 mellom skjæringspunktene.
  4. Velg heltallsdøgn
    Hele døgnnummer som ligger i intervallet er 15,16,…,28.
  5. Konkluder
    Minst halve månen var synlig ved midnatt døgn 15–28.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(0.48511025sin(0.21189355x-2.92065851)+0.47475179>=0.5,1<=x<=31)
Resultat: \(14.029\lesssim x\lesssim28.364\)
Tolkning: Heltallsdøgnene i løsningsintervallet er 15 til og med 28.
Visualisering for Oppgave 1c
Sinusregresjonen følger dataene og viser perioden og intervallet over 0,5.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
import numpy as np
from scipy.optimize import brentq

def f(x):
    return 0.48511025*np.sin(0.21189355*x-2.92065851)+0.47475179

left = brentq(lambda z: f(z)-0.5, 10, 20)
right = brentq(lambda z: f(z)-0.5, 25, 31)
days = [day for day in range(1,32) if f(day) >= 0.5]
print("Venstre grense =", left)
print("Høyre grense =", right)
print("Heltallsdøgn med f(x)>=0.5 =", days)
print("f(15) =", f(15))
print("f(28) =", f(28))
print("f(29) =", f(29))
assert days == list(range(15,29))
Kjørt utskriftVenstre grense = 14.029348084696059
Høyre grense = 28.364154094062055
Heltallsdøgn med f(x)>=0.5 = [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
f(15) = 0.5984066058322934
f(28) = 0.5372690881646294
f(29) = 0.4346973616428914

Fasit: Døgnnummer \(15,16,\ldots,28\).

Vanlig feil: Å runde grensepunktene feil og ta med døgn 14 eller 29.
Sensorpunkt: Sensor ser etter numerisk ulikhetsløsning og korrekt heltallstolkning.
Del 2 / Oppgave 2aKonvergensområde

Oppgave 2a

Oppgave: Bestem området i \([-2\pi,2\pi]\) der \(S(x)=\cos x+2\sin x\cos x+4\sin^2x\cos x+\cdots\) konvergerer.
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Rekken er geometrisk med første ledd cos x og kvotient 2 sin x.

  1. Identifiser kvotienten
    \(k=2\sin x\).
  2. Bruk konvergenskravet
    \[|2\sin x|<1\Longleftrightarrow|\sin x|<\frac12\]
  3. Finn grensevinklene
    \(|\sin x|=1/2\) ved vinkler med avstand π/6 fra multipler av π.
  4. Skriv intervallene
    \[[-2\pi,-11\pi/6)\cup(-7\pi/6,-5\pi/6)\cup(-\pi/6,\pi/6)\]
  5. Fullfør området
    \[\cup(5\pi/6,7\pi/6)\cup(11\pi/6,2\pi]\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(abs(2sin(x))<1,-2pi<=x<=2pi)
Resultat: De fem oppgitte intervallene
Tolkning: Endepunktene ±2π tas med, men punkter med |sin x|=1/2 tas ikke med.
Visualisering for Oppgave 2a
Verdimengden har et gap mellom −√3/4 og √3/4.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, sin, pi, Abs, solve_univariate_inequality
x = symbols('x', real=True)
condition = Abs(2*sin(x)) < 1
print("Konvergenskrav =", condition)
# Kontroller representative punkter og grensepunkter
samples = [-2*pi, -3*pi/2, -pi, 0, pi, 3*pi/2, 2*pi]
for value in samples:
    print("x =", value, ", |2 sin x| =", Abs(2*sin(value)))
for boundary in [-11*pi/6,-7*pi/6,-5*pi/6,-pi/6,pi/6,5*pi/6,7*pi/6,11*pi/6]:
    assert Abs(2*sin(boundary)) == 1
assert Abs(2*sin(0)) < 1
Kjørt utskriftKonvergenskrav = 2*Abs(sin(x)) < 1
x = -2*pi , |2 sin x| = 0
x = -3*pi/2 , |2 sin x| = 2
x = -pi , |2 sin x| = 0
x = 0 , |2 sin x| = 0
x = pi , |2 sin x| = 0
x = 3*pi/2 , |2 sin x| = 2
x = 2*pi , |2 sin x| = 0

Fasit: \([-2\pi,-11\pi/6)\cup(-7\pi/6,-5\pi/6)\cup(-\pi/6,\pi/6)\cup(5\pi/6,7\pi/6)\cup(11\pi/6,2\pi]\).

Vanlig feil: Å bruke 2sin x<1 uten absoluttverdi.
Sensorpunkt: Sensor ser etter kvotienten og alle delintervallene.
Del 2 / Oppgave 2bVerdimengde

Oppgave 2b

Oppgave: Avgjør hvilke b som gjør at \(S(x)=b\) har minst én løsning i \([-\pi,\pi]\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Vi finner sumfunksjonen og dens verdimengde på konvergensintervallene.

  1. Finn sumfunksjonen
    \[S(x)=\frac{\cos x}{1-2\sin x}\]
  2. Finn konvergensintervallene
    \([-\pi,-5\pi/6)\), \((-\pi/6,\pi/6)\) og \((5\pi/6,\pi]\).
  3. Undersøk monotoni
    \[S\prime(x)=\frac{2-\sin x}{(1-2\sin x)^2}>0\]
  4. Finn randverdier
    På intervallene fås grensene \(-\sqrt3/4\) og \(\sqrt3/4\), men de nås ikke.
  5. Skriv verdimengden
    \[(-\infty,-\sqrt3/4)\cup(\sqrt3/4,\infty)\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Derivative(cos(x)/(1-2sin(x)),x)
Resultat: \((2-\sin x)/(1-2\sin x)^2>0\)
2Range(cos(x)/(1-2sin(x)),x)
Resultat: \((−\infty,−\sqrt3/4)\cup(\sqrt3/4,\infty)\)
Tolkning: b må ligge i sumfunksjonens verdimengde.
Visualisering for Oppgave 2b
Verdimengden har et gap mellom −√3/4 og √3/4.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, sin, cos, sqrt, pi, diff, simplify, limit, oo
x = symbols('x', real=True)
S = cos(x)/(1-2*sin(x))
Sprime = simplify(diff(S,x))
print("S(x) =", S)
print("S'(x) =", Sprime)
print("S(-pi) =", S.subs(x,-pi))
print("Grense mot -5*pi/6 =", limit(S,x,-5*pi/6,dir='-'))
print("Grense mot -pi/6 =", limit(S,x,-pi/6,dir='+'))
print("Grense mot pi/6 =", limit(S,x,pi/6,dir='-'))
print("Grense mot 5*pi/6 =", limit(S,x,5*pi/6,dir='+'))
print("S(pi) =", S.subs(x,pi))
assert simplify(Sprime-(2-sin(x))/(1-2*sin(x))**2) == 0
Kjørt utskriftS(x) = cos(x)/(1 - 2*sin(x))
S'(x) = (2 - sin(x))/(2*sin(x) - 1)**2
S(-pi) = -1
Grense mot -5*pi/6 = -sqrt(3)/4
Grense mot -pi/6 = sqrt(3)/4
Grense mot pi/6 = oo
Grense mot 5*pi/6 = -oo
S(pi) = -1

Fasit: \(b< -\frac{\sqrt3}{4}\) eller \(b>\frac{\sqrt3}{4}\).

Vanlig feil: Å ta med grenseverdiene ±√3/4 selv om konvergensgrensene er åpne.
Sensorpunkt: Sensor ser etter sumfunksjon, monotoni og korrekt åpen verdimengde.
Del 2 / Oppgave 3Programmering og heltallspunkter

Oppgave 3

Oppgave: Lag et program som finner antall heltallspunkter på kuleflaten med sentrum i origo og radius 3.
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Vi tester alle heltallige koordinater fra −3 til 3 mot likningen x²+y²+z²=9.

  1. Skriv kulelikningen
    \[x^2+y^2+z^2=9\]
  2. Avgrens søket
    Ingen koordinat kan ha absoluttverdi større enn 3.
  3. Bruk tre løkker
    Gå gjennom alle 7³ mulige heltallstrippel.
  4. Tell treff
    Øk telleren når kvadratsummen er 9.
  5. Tolk strukturen
    6 aksepunkter og 24 permutasjoner/fortegn av (2,2,1) gir 30.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1CountIf(x^2+y^2+z^2=9, integer triples)
Resultat: 30
Tolkning: Et eksplisitt program gir 30 punkter.
Visualisering for Oppgave 3
De 30 heltallspunktene består av aksepunkter og fortegns-/permutasjonsvarianter av (2,2,1).

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
points = []
for x in range(-3, 4):
    for y in range(-3, 4):
        for z in range(-3, 4):
            if x**2 + y**2 + z**2 == 9:
                points.append((x, y, z))
axis_points = [p for p in points if sum(value != 0 for value in p) == 1]
other_points = [p for p in points if p not in axis_points]
print("Antall testede punkter =", 7**3)
print("Antall punkter på kuleflaten =", len(points))
print("Aksepunkter =", axis_points)
print("Antall øvrige punkter =", len(other_points))
print("Første ti punkter =", points[:10])
assert len(points) == 30
assert len(axis_points) == 6
assert len(other_points) == 24
Kjørt utskriftAntall testede punkter = 343
Antall punkter på kuleflaten = 30
Aksepunkter = [(-3, 0, 0), (0, -3, 0), (0, 0, -3), (0, 0, 3), (0, 3, 0), (3, 0, 0)]
Antall øvrige punkter = 24
Første ti punkter = [(-3, 0, 0), (-2, -2, -1), (-2, -2, 1), (-2, -1, -2), (-2, -1, 2), (-2, 1, -2), (-2, 1, 2), (-2, 2, -1), (-2, 2, 1), (-1, -2, -2)]

Fasit: Det finnes \(30\) heltallspunkter.

Vanlig feil: Å bare telle positive koordinater eller glemme permutasjoner.
Sensorpunkt: Sensor ser etter et kjørbart program og korrekt antall.
Del 2 / Oppgave 4aBanefart

Oppgave 4a

Oppgave: For \(\vec r(t)=[\cos t,3\sin t,2-\cos2t]\), bestem banefarten når \(t=\pi\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Banefart er lengden av den deriverte posisjonsvektoren.

  1. Deriver komponentvis
    \[\vec r\prime(t)=[-\sin t,3\cos t,2\sin2t]\]
  2. Sett inn t=π
    \[\vec r\prime(\pi)=[0,-3,0]\]
  3. Finn lengden
    \[|\vec r\prime(\pi)|=\sqrt{0^2+(-3)^2+0^2}=3\]
  4. Konkluder
    Banefarten er 3 lengdeenheter per tidsenhet.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Length(Derivative((cos(t),3sin(t),2-cos(2t)),t)) at t=pi
Resultat: 3
Tolkning: CAS bekrefter tangentvektoren og lengden.
Visualisering for Oppgave 4a
De fire markerte punktene oppfyller at tangentvektoren er ortogonal på planenes normalvektor.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, sin, cos, pi, Matrix, sqrt, simplify
t = symbols('t', real=True)
r = Matrix([cos(t), 3*sin(t), 2-cos(2*t)])
v = r.diff(t)
v_pi = v.subs(t,pi)
speed = simplify(sqrt(v_pi.dot(v_pi)))
print("r(t) =", list(r))
print("r'(t) =", list(v))
print("r'(pi) =", list(v_pi))
print("Banefart ved pi =", speed)
assert speed == 3
Kjørt utskriftr(t) = [cos(t), 3*sin(t), 2 - cos(2*t)]
r'(t) = [-sin(t), 3*cos(t), 2*sin(2*t)]
r'(pi) = [0, -3, 0]
Banefart ved pi = 3

Fasit: Banefarten er \(3\).

Vanlig feil: Å bruke lengden av posisjonsvektoren i stedet for tangentvektoren.
Sensorpunkt: Sensor ser etter komponentvis derivasjon og vektorlengde.
Del 2 / Oppgave 4bTangent og normalvektor

Oppgave 4b

Oppgave: Forklar hvorfor \(\vec r\prime(t)\perp[3,1,5]\) i punkter der posisjonskurven tangerer et plan \(3x+y+5z=d\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Tangentvektoren til kurven ligger i tangentplanet, mens [3,1,5] er planets normalvektor.

  1. Identifiser normalvektoren
    Planfamilien har normalvektor \(\vec n=[3,1,5]\).
  2. Identifiser tangentvektoren
    \(\vec r\prime(t)\) er tangent til posisjonskurven.
  3. Bruk tangentbetingelsen
    Når kurven tangerer planet, ligger kurvens tangentretning i planet.
  4. Bruk planets geometri
    Alle vektorer i planet er ortogonale på normalvektoren.
  5. Konkluder
    \[\vec r\prime(t)\cdot[3,1,5]=0\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Dot(Derivative(r(t),t),(3,1,5))
Resultat: \(-3\sin t+3\cos t+10\sin2t\)
Tolkning: Tangentpunktene finnes ved å sette skalarproduktet lik null.
Visualisering for Oppgave 4b
De fire markerte punktene oppfyller at tangentvektoren er ortogonal på planenes normalvektor.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, sin, cos, Matrix, simplify
t = symbols('t', real=True)
r = Matrix([cos(t), 3*sin(t), 2-cos(2*t)])
tangent = r.diff(t)
normal = Matrix([3,1,5])
dot_product = simplify(tangent.dot(normal))
print("Tangentvektor r'(t) =", list(tangent))
print("Normalvektor n =", list(normal))
print("r'(t) · n =", dot_product)
print("Tangentbetingelse: r'(t) · n = 0")
assert simplify(dot_product-(-3*sin(t)+3*cos(t)+10*sin(2*t))) == 0
Kjørt utskriftTangentvektor r'(t) = [-sin(t), 3*cos(t), 2*sin(2*t)]
Normalvektor n = [3, 1, 5]
r'(t) · n = 10*sin(2*t) + 3*sqrt(2)*cos(t + pi/4)
Tangentbetingelse: r'(t) · n = 0

Fasit: Fordi tangentvektoren ligger i planet og derfor er ortogonal på normalvektoren \([3,1,5]\).

Vanlig feil: Å hevde at selve posisjonsvektoren må være ortogonal på normalvektoren.
Sensorpunkt: Sensor ser etter sammenhengen mellom tangentretning og planets normal.
Del 2 / Oppgave 4cNumerisk likningsløsning i rom

Oppgave 4c

Oppgave: Bestem koordinatene til de fire punktene der kurven tangerer et plan i familien.
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Vi løser skalarproduktlikningen numerisk og setter t-verdiene inn i r(t).

  1. Sett opp likningen
    \[-3\sin t+3\cos t+10\sin2t=0\]
  2. Løs i intervallet
    \(t\approx1{,}44014,3{,}27225,4{,}89030,6{,}10528\).
  3. Sett inn i r(t)
    Beregn cos t, 3 sin t og 2−cos 2t for hver løsning.
  4. Skriv punktene
    \((0{,}130,2{,}974,2{,}966)\), \((-0{,}991,-0{,}391,1{,}034)\),
  5. Fullfør listen
    \((0{,}177,-2{,}953,2{,}937)\), \((0{,}984,-0{,}531,1{,}063)\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1NSolve(-3sin(t)+3cos(t)+10sin(2t)=0,0<=t<2pi)
Resultat: Fire t-verdier
2r(t) at each solution
Resultat: De fire punktene ovenfor
Tolkning: Numerisk kontroll gir nøyaktig fire punkter i én periode.
Visualisering for Oppgave 4c
De fire markerte punktene oppfyller at tangentvektoren er ortogonal på planenes normalvektor.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
import numpy as np
from scipy.optimize import brentq

def equation(t):
    return -3*np.sin(t)+3*np.cos(t)+10*np.sin(2*t)

def r(t):
    return np.array([np.cos(t), 3*np.sin(t), 2-np.cos(2*t)])

grid = np.linspace(0,2*np.pi,20001)
roots = []
for a,b in zip(grid[:-1],grid[1:]):
    if equation(a)*equation(b) < 0:
        root = brentq(equation,a,b)
        if not roots or abs(root-roots[-1]) > 1e-7:
            roots.append(root)
print("t-verdier =", roots)
for i,t in enumerate(roots,1):
    point = r(t)
    d = 3*point[0]+point[1]+5*point[2]
    print(f"P{i} = {point}, d = {d}")
assert len(roots) == 4
assert max(abs(equation(t)) for t in roots) < 1e-9
Kjørt utskriftt-verdier = [1.4401361901983887, 3.272252790186301, 4.890297437667566, 6.10527684989671]
P1 = [0.13028868 2.9744283  2.96604972], d = 18.19554294316614
P2 = [-0.9914761  -0.39086604  1.03395028], d = 1.8044570568338596
P3 = [ 0.17697143 -2.95264797  2.93736222], d = 12.26507745269774
P4 = [ 0.98421599 -0.5309143   1.06263778], d = 7.73492254730226

Fasit: Punktene er omtrent \((0{,}130,2{,}974,2{,}966)\), \((-0{,}991,-0{,}391,1{,}034)\), \((0{,}177,-2{,}953,2{,}937)\) og \((0{,}984,-0{,}531,1{,}063)\).

Vanlig feil: Å finne d-verdiene uten å oppgi punktenes koordinater.
Sensorpunkt: Sensor ser etter likningen r′·n=0, fire løsninger og koordinater.
Del 2 / Oppgave 5aHanois tårn

Oppgave 5a

Oppgave: Bestem \(F(3)\), minste antall flyttinger for tre disker.
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? For å flytte den største disken må de to mindre først flyttes vekk, deretter flyttes den største, og til slutt de to små tilbake.

  1. Flytt to små disker
    Dette krever \(F(2)=3\) flyttinger.
  2. Flytt største disk
    Én flytting.
  3. Flytt de to små oppå den største
    Ytterligere \(F(2)=3\) flyttinger.
  4. Summer
    \[F(3)=3+1+3=7\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
12*(2^2-1)+1
Resultat: 7
Tolkning: Minimumet er syv flyttinger.
Visualisering for Oppgave 5a
Antall nødvendige flyttinger vokser eksponentielt.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
def hanoi_moves(n):
    if n == 1:
        return 1
    return 2*hanoi_moves(n-1)+1
for n in range(1,4):
    print(f"F({n}) =", hanoi_moves(n))
print("Kontroll mot 2^3-1 =", 2**3-1)
assert hanoi_moves(3) == 7
Kjørt utskriftF(1) = 1
F(2) = 3
F(3) = 7
Kontroll mot 2^3-1 = 7

Fasit: \(F(3)=7\).

Vanlig feil: Å telle en ulovlig flytting av flere disker samtidig.
Sensorpunkt: Sensor ser etter en gyldig minimumsstrategi.
Del 2 / Oppgave 5bRekursjon

Oppgave 5b

Oppgave: Bestem den rekursive sammenhengen og bruk den til å finne \(F(10)\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? For å flytte n disker må n−1 flyttes to ganger, med én flytting av den største imellom.

  1. Flytt n−1 disker bort
    Krever \(F(n-1)\).
  2. Flytt den største
    Krever 1 flytting.
  3. Flytt n−1 disker tilbake
    Krever ytterligere \(F(n-1)\).
  4. Skriv rekursjonen
    \[F(n)=2F(n-1)+1,\quad F(1)=1\]
  5. Iterer til n=10
    \(1,3,7,15,\ldots,1023\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1IterationList(2x+1,1,9)
Resultat: Listen slutter med 1023
Tolkning: Rekursjonen gir F(10)=1023.
Visualisering for Oppgave 5b
Antall nødvendige flyttinger vokser eksponentielt.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
def values_up_to(n_max):
    values = {1:1}
    for n in range(2,n_max+1):
        values[n] = 2*values[n-1]+1
    return values
values = values_up_to(10)
for n,value in values.items():
    print(f"F({n}) = {value}")
print("F(10) =", values[10])
assert values[10] == 1023
Kjørt utskriftF(1) = 1
F(2) = 3
F(3) = 7
F(4) = 15
F(5) = 31
F(6) = 63
F(7) = 127
F(8) = 255
F(9) = 511
F(10) = 1023
F(10) = 1023

Fasit: \(F(n)=2F(n-1)+1\), \(F(1)=1\), og \(F(10)=1023\).

Vanlig feil: Å skrive F(n)=F(n−1)+1 og overse at stabelen må flyttes to ganger.
Sensorpunkt: Sensor ser etter begrunnet rekursjon og korrekt iterasjon.
Del 2 / Oppgave 5cEksplisitt formel

Oppgave 5c

Oppgave: Undersøk og finn en eksplisitt formel for \(F(n)\).
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Tallfølgen 1,3,7,15,… ligger én under toerpotensene.

  1. List de første verdiene
    \(F(1)=1,F(2)=3,F(3)=7,F(4)=15\).
  2. Sammenlign med toerpotenser
    \(2,4,8,16\).
  3. Se mønsteret
    Alle F-verdiene er én mindre.
  4. Formuler hypotesen
    \[F(n)=2^n-1\]
  5. Kontroller i rekursjonen
    \(2(2^{n-1}-1)+1=2^n-1\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Sequence(2^n-1,n,1,10)
Resultat: \(1,3,7,15,\ldots,1023\)
Tolkning: Formelen stemmer med alle rekursive verdier.
Visualisering for Oppgave 5c
Antall nødvendige flyttinger vokser eksponentielt.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
def recursive_F(n):
    value = 1
    for _ in range(2,n+1):
        value = 2*value+1
    return value
for n in range(1,11):
    recursive = recursive_F(n)
    explicit = 2**n-1
    print(f"n={n:2d}: rekursiv={recursive:4d}, eksplisitt={explicit:4d}")
    assert recursive == explicit
print("Formel: F(n)=2**n-1")
Kjørt utskriftn= 1: rekursiv=   1, eksplisitt=   1
n= 2: rekursiv=   3, eksplisitt=   3
n= 3: rekursiv=   7, eksplisitt=   7
n= 4: rekursiv=  15, eksplisitt=  15
n= 5: rekursiv=  31, eksplisitt=  31
n= 6: rekursiv=  63, eksplisitt=  63
n= 7: rekursiv= 127, eksplisitt= 127
n= 8: rekursiv= 255, eksplisitt= 255
n= 9: rekursiv= 511, eksplisitt= 511
n=10: rekursiv=1023, eksplisitt=1023
Formel: F(n)=2**n-1

Fasit: \(F(n)=2^n-1\).

Vanlig feil: Å anta mønsteret uten å kontrollere det mot rekursjonen.
Sensorpunkt: Sensor ser etter mønstergjenkjenning og algebraisk kontroll.
Del 2 / Oppgave 5dInduksjonsbevis

Oppgave 5d

Oppgave: Bevis \(F(n)=2^n-1\) ved induksjon.
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Vi viser først grunnsteget og deretter at påstanden for k medfører påstanden for k+1.

  1. Grunnsteg
    For n=1 er \(F(1)=1=2^1-1\).
  2. Induksjonshypotese
    Anta \(F(k)=2^k-1\).
  3. Bruk rekursjonen
    \[F(k+1)=2F(k)+1\]
  4. Sett inn hypotesen
    \[F(k+1)=2(2^k-1)+1=2^{k+1}-1\]
  5. Konkluder
    Formelen gjelder for alle positive heltall n.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Simplify(2*(2^k-1)+1-(2^(k+1)-1))
Resultat: 0
Tolkning: Algebraen fullfører induksjonstrinnet.
Visualisering for Oppgave 5d
Antall nødvendige flyttinger vokser eksponentielt.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, simplify
k = symbols('k', integer=True, positive=True)
base_left = 1
base_right = 2**1-1
induction_left = 2*(2**k-1)+1
induction_right = 2**(k+1)-1
print("Grunnsteg: F(1) =", base_left, ", formel =", base_right)
print("Induksjonstrinn venstreside =", induction_left)
print("Mål for k+1 =", induction_right)
print("Forskjell =", simplify(induction_left-induction_right))
assert base_left == base_right
assert simplify(induction_left-induction_right) == 0
Kjørt utskriftGrunnsteg: F(1) = 1 , formel = 1
Induksjonstrinn venstreside = 2*2**k - 1
Mål for k+1 = 2**(k + 1) - 1
Forskjell = 0

Fasit: Induksjon viser at \(F(n)=2^n-1\) for alle \(n\in\mathbb N\).

Vanlig feil: Å hoppe over grunnsteget eller bruke formelen uten å oppgi induksjonshypotesen.
Sensorpunkt: Sensor ser etter grunnsteg, hypotese, rekursjon og konklusjon.
Del 2 / Oppgave 6aKulekalott og volum

Oppgave 6a

Oppgave: Bestem hvor mye vann som renner over når kuleradiusen er \(R=7\) cm.
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Det overløpte volumet er volumet av den delen av kulen som ligger under glasskanten.

  1. Finn kulens sentrumshøyde
    Avstanden fra sentrum til kjeglesiden er R, så \(c\sin35^\circ=R\), altså \(c=R/\sin35^\circ\).
  2. Finn kalotthøyden
    Kulens bunn ligger i \(c-R\). Dermed er \(h=10-(c-R)=10+R-R/\sin35^\circ\).
  3. Sett inn R=7
    \[h\approx4{,}79587\text{ cm}\]
  4. Bruk kalottvolumet
    \[V=\pi h^2\left(R-\frac h3\right)\]
  5. Beregn
    \[V\approx390{,}29\text{ cm}^3\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1h=10+7-7/sin(35°)
Resultat: \(h\approx4.79587\)
2pi*h^2*(7-h/3)
Resultat: \(390.29\)
Tolkning: Volumet av den nedsenkede kulekalotten er vannmengden som fortrenges.
Visualisering for Oppgave 6a
Volumfunksjonen har maksimum ved R≈6,265 cm.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from math import sin, radians, pi
R = 7.0
angle = radians(35)
center_height = R/sin(angle)
h = 10 + R - center_height
V = pi*h**2*(R-h/3)
opening_radius = 10*__import__('math').tan(angle)
print("Kuleradius R =", R, "cm")
print("Glassåpningens radius =", opening_radius, "cm")
print("Kulens sentrumshøyde =", center_height, "cm")
print("Kalotthøyde h =", h, "cm")
print("Overløpt volum =", V, "cm^3")
assert abs(V-390.2918804423735) < 1e-9
Kjørt utskriftKuleradius R = 7.0 cm
Glassåpningens radius = 7.002075382097097 cm
Kulens sentrumshøyde = 12.204127569347687 cm
Kalotthøyde h = 4.795872430652313 cm
Overløpt volum = 390.2918804423735 cm^3

Fasit: Omtrent \(390{,}3\text{ cm}^3\) vann renner over.

Vanlig feil: Å bruke hele kulevolumet selv om en stor del av kulen er over glasskanten.
Sensorpunkt: Sensor ser etter riktig sentrumshøyde, kalotthøyde og kalottvolum.
Del 2 / Oppgave 6bOptimering

Oppgave 6b

Oppgave: Bestem R slik at mest mulig vann renner ut av glasset.
Eksempelsettet oppgir ikke poeng per oppgave.
Vis løsning

Hva spør oppgaven om? Vi maksimerer den nedsenkede kulekalottens volum innenfor radiusen som kan passere glassåpningen.

  1. Definer kalotthøyden
    \[h(R)=10+R-\frac{R}{\sin35^\circ}\]
  2. Definer volumfunksjonen
    \[V(R)=\pi h(R)^2\left(R-\frac{h(R)}3\right)\]
  3. Deriver og faktoriser
    \[V\prime(R)=\frac{\pi}{s^3}(Rs-R+10s)(2Rs^2-Rs-R+10s),\ s=\sin35^\circ\]
  4. Velg relevant nullpunkt
    \[R=\frac{10s}{1+s-2s^2}\]
  5. Beregn og kontroller
    \[R\approx6{,}26451\text{ cm},\quad V\approx402{,}06\text{ cm}^3\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Maximize(pi*(10+R-R/sin(35°))^2*(R-(10+R-R/sin(35°))/3),R)
Resultat: \(R\approx6.26451\)
Tolkning: Maksimumspunktet ligger innenfor glassåpningens radius på omtrent 7,002 cm.
Visualisering for Oppgave 6b
Volumfunksjonen har maksimum ved R≈6,265 cm.

Digital kontroll i Python

Python 3.13 / SymPy, NumPy eller SciPy - faktisk kjørt
from sympy import symbols, sin, pi, diff, factor, N
R = symbols('R', positive=True)
s = sin(35*pi/180)
h = 10 + R - R/s
V = pi*h**2*(R-h/3)
dV = factor(diff(V,R))
R_star = 10*s/(1+s-2*s**2)
V_star = V.subs(R,R_star)
opening_radius = 10*__import__('math').tan(__import__('math').radians(35))
print("h(R) =", h)
print("V(R) =", V)
print("Faktorisert V'(R) =", dV)
print("Optimal R =", N(R_star,16), "cm")
print("Maksimalt volum =", N(V_star,16), "cm^3")
print("Glassåpningens radius =", opening_radius, "cm")
print("V'(R*) =", N(diff(V,R).subs(R,R_star),12))
assert abs(float(diff(V,R).subs(R,R_star))) < 1e-9
assert float(R_star) < opening_radius
Kjørt utskrifth(R) = -R/sin(7*pi/36) + R + 10
V(R) = pi*(-R/sin(7*pi/36) + R + 10)**2*(R/(3*sin(7*pi/36)) + 2*R/3 - 10/3)
Faktorisert V'(R) = pi*(-R + R*sin(7*pi/36) + 10*sin(7*pi/36))*(-R - R*sin(7*pi/36) + 2*R*sin(7*pi/36)**2 + 10*sin(7*pi/36))/sin(7*pi/36)**3
Optimal R = 6.264510474182510 cm
Maksimalt volum = 402.0641817790401 cm^3
Glassåpningens radius = 7.002075382097097 cm
V'(R*) = 0.e-124

Fasit: \(R\approx6{,}265\text{ cm}\).

Vanlig feil: Å maksimere hele kulevolumet eller ignorere at nedsenket høyde avhenger av R.
Sensorpunkt: Sensor ser etter en begrunnet volumfunksjon, derivasjon og global maksimumskontroll.