R2 eksamenHøst 2017

Matematikk R2 eksamen – høst 2017

ifingo
Norsk (Bokmål)

ifingo · Matematikk R2

Matematikk R2 - eksamen høst 2017

Løsningsforslag til eksamenssettet fra Utdanningsdirektoratet.

Del 1 - uten hjelpemidler

Del 1 / Oppgave 1aDerivasjon og kjerneregel

Oppgave 1a

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

Hva spør oppgaven om? Vi skal derivere en sinusfunksjon med den indre funksjonen \(3x\), så kjerneregelen gir en ekstra faktor 3.

  1. Identifiser ytre funksjon
    Den ytre funksjonen er \(2\sin u\).
  2. Identifiser kjernen
    Sett \(u=3x\). Da er \(u\prime=3\).
  3. Deriver sinus
    \(\frac{d}{du}(2\sin u)=2\cos u\).
  4. Bruk kjerneregelen
    \(f\prime(x)=2\cos(3x)\cdot3\).
  5. Forenkle konstanten
    \(2\cdot3=6\).
  6. Skriv svaret
    \[f\prime(x)=6\cos 3x\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Derivative(2 sin(3x),x)
Resultat: \(6\cos 3x\)
Tolkning: CAS bekrefter faktoren 3 fra kjerneregelen.

Digital kontroll i Python (SymPy)

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

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

print("Funksjon f(x) =", f)
print("Derivert f'(x) =", derivative)
print("Forventet uttrykk =", expected)
print("Symbolsk differanse =", simplify(derivative - expected))
print("Kontroll ved x=0 =", derivative.subs(x, 0))
print("Kontroll ved x=pi/6 =", simplify(derivative.subs(x, pi/6)))

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

Fasit: \(f\prime(x)=6\cos 3x\).

Vanlig feil: Å glemme den indre deriverte 3 og svare \(2\cos 3x\).
Sensorpunkt: Sensor ser etter synlig bruk av kjerneregelen og korrekt konstantfaktor.
Del 1 / Oppgave 1bKvotientregelen

Oppgave 1b

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

Hva spør oppgaven om? Funksjonen er en kvotient. Vi bruker kvotientregelen og husker at definisjonsområdet utelukker \(x=0\).

  1. Velg teller og nevner
    Sett \(u=\sin x\) og \(v=x\).
  2. Deriver delene
    \(u\prime=\cos x\) og \(v\prime=1\).
  3. Bruk kvotientregelen
    \((u/v)\prime=(u\prime v-uv\prime)/v^2\).
  4. Sett inn
    \(g\prime(x)=\frac{x\cos x-\sin x}{x^2}\).
  5. Kontroller domenet
    Uttrykket gjelder for \(x\ne0\), som også er definisjonsområdet til \(g\).
  6. Skriv svaret
    \[g\prime(x)=\frac{x\cos x-\sin x}{x^2},\qquad x\ne0\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Derivative(sin(x)/x,x)
Resultat: \(\frac{x\cos x-\sin x}{x^2}\)
Tolkning: CAS samler de to leddene over fellesnevneren \(x^2\).

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True, nonzero=True)
g = sin(x)/x
derivative = simplify(diff(g, x))
expected = (x*cos(x) - sin(x))/x**2

print("Funksjon g(x) =", g)
print("Derivert g'(x) =", derivative)
print("Forventet uttrykk =", expected)
print("Symbolsk differanse =", simplify(derivative - expected))
print("Numerisk kontroll ved x=1 =", derivative.subs(x, 1).evalf(12))
print("Numerisk kontroll ved x=2 =", derivative.subs(x, 2).evalf(12))

assert simplify(derivative - expected) == 0
Kjørt utskriftFunksjon g(x) = sin(x)/x
Derivert g'(x) = (x*cos(x) - sin(x))/x**2
Forventet uttrykk = (x*cos(x) - sin(x))/x**2
Symbolsk differanse = 0
Numerisk kontroll ved x=1 = -0.301168678940
Numerisk kontroll ved x=2 = -0.435397774980

Fasit: \(\displaystyle g\prime(x)=\frac{x\cos x-\sin x}{x^2}\), for \(x\ne0\).

Vanlig feil: Å bytte om rekkefølgen i telleren eller å glemme å kvadrere nevneren.
Sensorpunkt: Sensor ser etter korrekt kvotientregel og domenebevissthet.
Del 1 / Oppgave 1cProduktregel og kjerneregel

Oppgave 1c

Oppgave: Deriver funksjonen \(h(x)=x\cos x^2\).
Original poengangivelse: Oppgave 1 (5 poeng).
Vis løsning

Hva spør oppgaven om? Her er \(x\) multiplisert med den sammensatte funksjonen \(\cos(x^2)\). Vi trenger både produktregelen og kjerneregelen.

  1. Del produktet
    Sett \(u=x\) og \(v=\cos(x^2)\).
  2. Deriver første faktor
    \(u\prime=1\).
  3. Deriver andre faktor
    \(v\prime=-\sin(x^2)\cdot2x=-2x\sin(x^2)\).
  4. Bruk produktregelen
    \(h\prime=u\prime v+uv\prime\).
  5. Sett inn og forenkle
    \(h\prime(x)=\cos(x^2)-2x^2\sin(x^2)\).
  6. Skriv svaret
    \[h\prime(x)=\cos(x^2)-2x^2\sin(x^2)\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Derivative(x cos(x^2),x)
Resultat: \(\cos(x^2)-2x^2\sin(x^2)\)
Tolkning: CAS viser både produktleddet og faktoren \(2x\) fra kjerneregelen.

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True)
h = x*cos(x**2)
derivative = diff(h, x)
expected = cos(x**2) - 2*x**2*sin(x**2)

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

assert simplify(derivative - expected) == 0
Kjørt utskriftFunksjon h(x) = x*cos(x**2)
Derivert h'(x) = -2*x**2*sin(x**2) + cos(x**2)
Forventet uttrykk = -2*x**2*sin(x**2) + cos(x**2)
Symbolsk differanse = 0
Kontroll ved x=0 = 1
Kontroll ved x=1 = -1.14263966375

Fasit: \(h\prime(x)=\cos(x^2)-2x^2\sin(x^2)\).

Vanlig feil: Å derivere bare \(\cos(x^2)\) og glemme produktregelen, eller å glemme faktoren \(2x\).
Sensorpunkt: Sensor ser etter begge reglene og korrekt fortegn.
Del 1 / Oppgave 2aUbestemt integral

Oppgave 2a

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

Hva spør oppgaven om? Vi integrerer hvert polynomledd separat ved hjelp av potensregelen.

  1. Bruk linearitet
    Integral av en sum er summen av integralene.
  2. Integrer \(x^3\)
    \(\int x^3dx=x^4/4\).
  3. Integrer \(-3x\)
    \(\int-3x\,dx=-3x^2/2\).
  4. Integrer konstanten
    \(\int2\,dx=2x\).
  5. Legg til integrasjonskonstant
    Alle stamfunksjoner skiller seg med en konstant \(C\).
  6. Skriv resultatet
    \[\int(x^3-3x+2)dx=\frac{x^4}{4}-\frac{3x^2}{2}+2x+C\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(x^3-3x+2,x)
Resultat: \(\frac{x^4}{4}-\frac{3x^2}{2}+2x\)
Tolkning: CAS oppgir én stamfunksjon; den generelle løsningen krever \(+C\).

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True)
integrand = x**3 - 3*x + 2
antiderivative = integrate(integrand, x)
expected = x**4/4 - 3*x**2/2 + 2*x

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

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

Fasit: \(\displaystyle\frac{x^4}{4}-\frac{3x^2}{2}+2x+C\).

Vanlig feil: Å glemme å øke eksponenten før man deler, eller å utelate \(+C\).
Sensorpunkt: Sensor ser etter korrekt potensregel for alle tre ledd.
Del 1 / Oppgave 2bDelvis integrasjon

Oppgave 2b

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

Hva spør oppgaven om? Produktet av et polynom og en eksponentialfunksjon passer til delvis integrasjon.

  1. Velg deler
    Sett \(u=x\) og \(dv=e^{2x}dx\).
  2. Finn differensial og stamfunksjon
    \(du=dx\) og \(v=\frac12e^{2x}\).
  3. Bruk formelen
    \(\int u\,dv=uv-\int v\,du\).
  4. Sett inn
    \(\int xe^{2x}dx=\frac{x}{2}e^{2x}-\frac12\int e^{2x}dx\).
  5. Integrer restleddet
    \(\frac12\int e^{2x}dx=\frac14e^{2x}\).
  6. Faktoriser svaret
    \[\int xe^{2x}dx=\frac{e^{2x}}{4}(2x-1)+C\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(x exp(2x),x)
Resultat: \(\frac{e^{2x}}{4}(2x-1)\)
Tolkning: CAS-resultatet er algebraisk lik uttrykket fra delvis integrasjon.

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True)
integrand = x*exp(2*x)
antiderivative = integrate(integrand, x)
expected = exp(2*x)*(2*x - 1)/4

print("Integrand =", integrand)
print("Stamfunksjon fra SymPy =", antiderivative)
print("Faktorisert forventet form =", expected)
print("SymPy-form faktorisert =", factor(antiderivative))
print("Derivert tilbake =", simplify(diff(expected, x)))
print("Kontrollforskjell =", simplify(diff(expected, x) - integrand))

assert simplify(antiderivative - expected) == 0
assert simplify(diff(expected, x) - integrand) == 0
Kjørt utskriftIntegrand = x*exp(2*x)
Stamfunksjon fra SymPy = (2*x - 1)*exp(2*x)/4
Faktorisert forventet form = (2*x - 1)*exp(2*x)/4
SymPy-form faktorisert = (2*x - 1)*exp(2*x)/4
Derivert tilbake = x*exp(2*x)
Kontrollforskjell = 0

Fasit: \(\displaystyle\frac{e^{2x}}{4}(2x-1)+C\).

Vanlig feil: Å bruke \(v=e^{2x}\) i stedet for \(v=\frac12e^{2x}\).
Sensorpunkt: Sensor ser etter et tydelig valg av \(u\) og \(dv\), samt korrekt restintegral.
Del 1 / Oppgave 2cSubstitusjon

Oppgave 2c

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

Hva spør oppgaven om? Den indre funksjonen \(x^2+1\) har derivert \(2x\), som nesten finnes i integranden. Substitusjon er derfor naturlig.

  1. Velg substitusjon
    Sett \(u=x^2+1\).
  2. Finn differensialet
    \(du=2x\,dx\), altså \(x\,dx=du/2\).
  3. Bytt variabel
    \(\int x\sqrt{x^2+1}\,dx=\frac12\int u^{1/2}du\).
  4. Integrer potensen
    \(\frac12\cdot\frac{u^{3/2}}{3/2}=\frac13u^{3/2}\).
  5. Sett tilbake
    \(u=x^2+1\).
  6. Skriv svaret
    \[\int x\sqrt{x^2+1}\,dx=\frac13(x^2+1)^{3/2}+C\]

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(x sqrt(x^2+1),x)
Resultat: \(\frac13(x^2+1)^{3/2}\)
Tolkning: CAS bekrefter substitusjonen og koeffisienten \(1/3\).

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True)
integrand = x*sqrt(x**2 + 1)
antiderivative = integrate(integrand, x)
from sympy import Rational
expected = (x**2 + 1)**Rational(3,2)/3

print("Integrand =", integrand)
print("Stamfunksjon fra SymPy =", antiderivative)
print("Forventet uttrykk =", expected)
print("Derivert tilbake =", simplify(diff(expected, x)))
print("Kontrollforskjell =", simplify(diff(expected, x) - integrand))
print("Numerisk kontroll ved x=2 =", simplify(diff(expected,x).subs(x,2)))

assert simplify(diff(expected, x) - integrand) == 0
Kjørt utskriftIntegrand = x*sqrt(x**2 + 1)
Stamfunksjon fra SymPy = x**2*sqrt(x**2 + 1)/3 + sqrt(x**2 + 1)/3
Forventet uttrykk = (x**2 + 1)**(3/2)/3
Derivert tilbake = x*sqrt(x**2 + 1)
Kontrollforskjell = 0
Numerisk kontroll ved x=2 = 2*sqrt(5)

Fasit: \(\displaystyle\frac13(x^2+1)^{3/2}+C\).

Vanlig feil: Å glemme faktoren \(1/2\) når \(du=2x\,dx\), eller å bruke feil potensregel.
Sensorpunkt: Sensor ser etter eksplisitt substitusjon, tilbakebytte og integrasjonskonstant.
Del 1 / Oppgave 3aTrigonometrisk likning

Oppgave 3a

Oppgave: Løs \(2\sin(2x)-1=0\) for \(x\in[0,2\pi]\).
Original poengangivelse: Oppgave 3 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi isolerer sinus, løser for vinkelen \(2x\) på intervallet \([0,4\pi]\), og deler deretter alle løsningene på 2.

  1. Isoler sinus
    \(2\sin(2x)-1=0\Rightarrow\sin(2x)=1/2\).
  2. Finn grunnvinklene
    \(\sin\theta=1/2\) for \(\theta=\pi/6\) eller \(5\pi/6\) modulo \(2\pi\).
  3. Tilpass intervallet
    Siden \(x\in[0,2\pi]\), ligger \(2x\in[0,4\pi]\).
  4. List vinklene
    \(2x=\pi/6,5\pi/6,13\pi/6,17\pi/6\).
  5. Del på 2
    \(x=\pi/12,5\pi/12,13\pi/12,17\pi/12\).
  6. Kontroller
    Alle fire verdiene ligger i intervallet og gir \(\sin(2x)=1/2\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(2 sin(2x)-1=0,x)
Resultat: \(x=\frac\pi{12},\frac{5\pi}{12},\frac{13\pi}{12},\frac{17\pi}{12}\)
Tolkning: CAS gir de fire løsningene i det oppgitte intervallet.

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True)
expression = 2*sin(2*x) - 1
solution_set = solveset(expression, x, domain=Interval(0, 2*pi))
expected = [pi/12, 5*pi/12, 13*pi/12, 17*pi/12]

print("Likningsuttrykk =", expression)
print("Løsningsmengde på [0, 2*pi] =", solution_set)
print("Forventede løsninger =", expected)
for value in expected:
    print("x =", value, "gir uttrykket", simplify(expression.subs(x, value)))
print("Antall løsninger =", len(expected))

assert all(simplify(expression.subs(x,v)) == 0 for v in expected)
Kjørt utskriftLikningsuttrykk = 2*sin(2*x) - 1
Løsningsmengde på [0, 2*pi] = {pi/12, 5*pi/12, 13*pi/12, 17*pi/12}
Forventede løsninger = [pi/12, 5*pi/12, 13*pi/12, 17*pi/12]
x = pi/12 gir uttrykket 0
x = 5*pi/12 gir uttrykket 0
x = 13*pi/12 gir uttrykket 0
x = 17*pi/12 gir uttrykket 0
Antall løsninger = 4

Fasit: \(\displaystyle x=\frac\pi{12},\frac{5\pi}{12},\frac{13\pi}{12},\frac{17\pi}{12}\).

Vanlig feil: Å løse bare på én periode for \(2x\) og dermed miste to løsninger.
Sensorpunkt: Sensor ser etter intervallet for \(2x\), alle fire løsninger og korrekt tilbakeføring til \(x\).
Del 1 / Oppgave 3bTrigonometrisk andregradslikning

Oppgave 3b

Oppgave: Løs \(2\cos^2x+3\cos x-2=0\) for \(x\in[0,2\pi]\).
Original poengangivelse: Oppgave 3 (4 poeng).
Vis løsning

Hva spør oppgaven om? Likningen er en andregradslikning i \(\cos x\). Vi løser først algebraisk og forkaster verdier utenfor intervallet \([-1,1]\).

  1. Sett ny variabel
    La \(u=\cos x\). Da blir likningen \(2u^2+3u-2=0\).
  2. Faktoriser
    \(2u^2+3u-2=(2u-1)(u+2)\).
  3. Finn kandidatene
    \(u=1/2\) eller \(u=-2\).
  4. Bruk verdiområdet
    \(\cos x\in[-1,1]\), så \(u=-2\) er umulig.
  5. Løs cosinuslikningen
    \(\cos x=1/2\) gir \(x=\pi/3\) eller \(x=5\pi/3\) i intervallet.
  6. Kontroller
    Begge verdiene gjør det opprinnelige uttrykket lik 0.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(2u^2+3u-2=0,u)
Resultat: \(u=1/2\) eller \(u=-2\)
Tolkning: Bare \(u=1/2\) er mulig som cosinusverdi.
2Solve(cos(x)=1/2,x)
Resultat: \(x=\pi/3,5\pi/3\)
Tolkning: Disse er de to gyldige løsningene i intervallet.

Digital kontroll i Python (SymPy)

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

x, u = symbols('x u', real=True)
polynomial = 2*u**2 + 3*u - 2
u_solutions = solve(polynomial, u)
expression = 2*cos(x)**2 + 3*cos(x) - 2
solution_set = solveset(expression, x, domain=Interval(0, 2*pi))
expected = [pi/3, 5*pi/3]

print("Andregradspolynom =", polynomial)
print("Faktorisert =", factor(polynomial))
print("Algebraiske u-løsninger =", u_solutions)
print("Gyldige cosinusverdier =", [v for v in u_solutions if -1 <= v <= 1])
print("Løsningsmengde for x =", solution_set)
for value in expected:
    print("Kontroll x =", value, "->", simplify(expression.subs(x,value)))

from sympy import Rational
assert u_solutions == [-2, Rational(1,2)]
assert all(simplify(expression.subs(x,v)) == 0 for v in expected)
Kjørt utskriftAndregradspolynom = 2*u**2 + 3*u - 2
Faktorisert = (u + 2)*(2*u - 1)
Algebraiske u-løsninger = [-2, 1/2]
Gyldige cosinusverdier = [1/2]
Løsningsmengde for x = {pi/3, 5*pi/3}
Kontroll x = pi/3 -> 0
Kontroll x = 5*pi/3 -> 0

Fasit: \(x=\pi/3\) eller \(x=5\pi/3\).

Vanlig feil: Å godta \(\cos x=-2\), eller å oppgi bare hovedverdien \(\pi/3\).
Sensorpunkt: Sensor ser etter substitusjon, forkasting av ugyldig cosinusverdi og begge intervalløsninger.
Del 1 / Oppgave 4aTopp- og bunnpunkter

Oppgave 4a

Oppgave: Funksjonen er \(f(x)=2\sin(\pi x-\pi/2)+3\), \(x\in[-1,5]\). Bestem toppunktene og bunnpunktene på grafen.
Original poengangivelse: Oppgave 4 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi bruker amplituden og når sinus er henholdsvis 1 og -1, samtidig som vi tar med alle aktuelle x-verdier i det lukkede intervallet.

  1. Les av amplitude og midtlinje
    Amplituden er 2 og midtlinjen er \(y=3\). Dermed er maksimum 5 og minimum 1.
  2. Finn maksimumsbetingelsen
    \(\sin(\pi x-\pi/2)=1\), altså \(\pi x-\pi/2=\pi/2+2k\pi\).
  3. Løs for x ved maksimum
    \(x=1+2k\), som gir \(x=-1,1,3,5\) i intervallet.
  4. Finn minimumsbetingelsen
    \(\sin(\pi x-\pi/2)=-1\), altså \(\pi x-\pi/2=-\pi/2+2k\pi\).
  5. Løs for x ved minimum
    \(x=2k\), som gir \(x=0,2,4\).
  6. Skriv punktene
    Toppunkter: \((-1,5),(1,5),(3,5),(5,5)\). Bunnpunkter: \((0,1),(2,1),(4,1)\).
Grafen viser alle topp- og bunnpunktene på intervallet [-1,5].
Grafen viser alle topp- og bunnpunktene på intervallet [-1,5].

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Extremum(2 sin(pi x-pi/2)+3,-1,5)
Resultat: Toppunkter med \(y=5\) og bunnpunkter med \(y=1\)
Tolkning: CAS/graftegner bekrefter periodisiteten og at endepunktene \(x=-1\) og \(x=5\) også er maksimumspunkter.

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True)
f = 2*sin(pi*x - pi/2) + 3
f_prime = simplify(diff(f, x))
critical = [0, 1, 2, 3, 4]
endpoints = [-1, 5]
points = [(value, simplify(f.subs(x,value))) for value in endpoints + critical]

print("f(x) =", f)
print("f'(x) =", f_prime)
print("Kritiske punkter fra f'(x)=0 i intervallet =", critical)
print("Funksjonsverdier i endepunkter og kritiske punkter:")
for point in points:
    print("  ", point)
print("Toppunkter =", [p for p in points if p[1] == 5])
print("Bunnpunkter =", [p for p in points if p[1] == 1])

assert [p for p in points if p[1] == 5] == [(-1,5),(5,5),(1,5),(3,5)]
Kjørt utskriftf(x) = 3 - 2*cos(pi*x)
f'(x) = 2*pi*sin(pi*x)
Kritiske punkter fra f'(x)=0 i intervallet = [0, 1, 2, 3, 4]
Funksjonsverdier i endepunkter og kritiske punkter:
   (-1, 5)
   (5, 5)
   (0, 1)
   (1, 5)
   (2, 1)
   (3, 5)
   (4, 1)
Toppunkter = [(-1, 5), (5, 5), (1, 5), (3, 5)]
Bunnpunkter = [(0, 1), (2, 1), (4, 1)]

Fasit: Toppunktene er \((-1,5),(1,5),(3,5),(5,5)\), og bunnpunktene er \((0,1),(2,1),(4,1)\).

Vanlig feil: Å glemme endepunktene eller å blande sammen x-verdiene for topp og bunn.
Sensorpunkt: Sensor ser etter alle punktene i det oppgitte intervallet, ikke bare én periode.
Del 1 / Oppgave 4bSkisse av periodisk funksjon

Oppgave 4b

Oppgave: Lag en skisse av grafen til \(f(x)=2\sin(\pi x-\pi/2)+3\) på \([-1,5]\).
Original poengangivelse: Oppgave 4 (6 poeng).
Vis løsning

Hva spør oppgaven om? En korrekt skisse må vise amplitude, midtlinje, periode, endepunkter og de karakteristiske topp- og bunnpunktene.

  1. Bestem midtlinjen
    Den vertikale forskyvningen er 3, så midtlinjen er \(y=3\).
  2. Bestem amplituden
    Amplituden er 2, så grafen varierer fra 1 til 5.
  3. Bestem perioden
    Koeffisienten foran x er \(\pi\), så perioden er \(2\pi/\pi=2\).
  4. Plasser ekstrempunktene
    Marker toppunktene fra del a og bunnpunktene mellom dem.
  5. Plasser midtlinjekryssinger
    Grafen krysser \(y=3\) ved halvtallene \(-1/2,1/2,3/2,\ldots\).
  6. Tegn jevn sinuskurve
    Kurven skal være kontinuerlig, glatt og gjenta samme form hver 2. x-enhet.
Kontrollert skisse av den periodiske funksjonen på hele intervallet.
Kontrollert skisse av den periodiske funksjonen på hele intervallet.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1f(x)=2 sin(pi x-pi/2)+3
Resultat: Graf med amplitude 2, midtlinje 3 og periode 2
Tolkning: Graftegneren skal vises med vindu som dekker minst \(-1\le x\le5\) og \(0\le y\le6\).

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True)
f = 2*sin(pi*x - pi/2) + 3
sample_x = [-1, -1/2, 0, 1/2, 1, 3/2, 2, 5/2, 3, 7/2, 4, 9/2, 5]

print("Funksjon =", f)
print("Amplitude = 2")
print("Midtlinje = y = 3")
print("Periode =", simplify(2*pi/pi))
print("Nøkkelpunkter for skissen:")
for value in sample_x:
    print("x =", value, "f(x) =", simplify(f.subs(x,value)))
print("Verdiområde på intervallet: [1, 5]")

assert simplify(f.subs(x,0)-1) == 0
assert simplify(f.subs(x,1)-5) == 0
Kjørt utskriftFunksjon = 3 - 2*cos(pi*x)
Amplitude = 2
Midtlinje = y = 3
Periode = 2
Nøkkelpunkter for skissen:
x = -1 f(x) = 5
x = -0.5 f(x) = 3
x = 0 f(x) = 1
x = 0.5 f(x) = 3
x = 1 f(x) = 5
x = 1.5 f(x) = 3
x = 2 f(x) = 1
x = 2.5 f(x) = 3
x = 3 f(x) = 5
x = 3.5 f(x) = 3
x = 4 f(x) = 1
x = 4.5 f(x) = 3
x = 5 f(x) = 5
Verdiområde på intervallet: [1, 5]

Fasit: Skissen er sinuskurven vist i figuren, med periode 2, midtlinje \(y=3\), maksimum 5 og minimum 1.

Vanlig feil: Å tegne perioden som \(2\pi\) i x-retning eller å glemme den vertikale forskyvningen.
Sensorpunkt: Sensor ser etter riktig skala, riktig fase og alle karakteristiske punkter.
Del 1 / Oppgave 4cAreal med bestemt integral

Oppgave 4c

Oppgave: Bestem arealet av området avgrenset av grafen til \(f\), x-aksen og linjene \(x=0\) og \(x=4\).
Original poengangivelse: Oppgave 4 (6 poeng).
Vis løsning

Hva spør oppgaven om? Funksjonen er positiv på hele intervallet, så arealet er det bestemte integralet av \(f\) fra 0 til 4.

  1. Kontroller fortegn
    Minimumsverdien er 1, derfor er \(f(x)>0\) på \([0,4]\).
  2. Skriv arealet
    \(A=\int_0^4[2\sin(\pi x-\pi/2)+3]dx\).
  3. Omskriv trigonometrisk
    \(\sin(\pi x-\pi/2)=-\cos(\pi x)\), så \(f=3-2\cos(\pi x)\).
  4. Finn stamfunksjon
    En stamfunksjon er \(3x-\frac{2}{\pi}\sin(\pi x)\).
  5. Sett inn grensene
    \(A=[3x-\frac{2}{\pi}\sin(\pi x)]_0^4\).
  6. Forenkle
    \(\sin(4\pi)=\sin0=0\), dermed \(A=12\).
Det skraverte området har areal 12.
Det skraverte området har areal 12.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(2 sin(pi x-pi/2)+3,x,0,4)
Resultat: \(12\)
Tolkning: CAS bekrefter at cosinusbidraget over to hele perioder summerer til null.

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True)
f = 2*sin(pi*x - pi/2) + 3
rewritten = simplify(f.rewrite(cos))
area = integrate(f, (x,0,4))
antiderivative = integrate(f, x)

print("f(x) =", f)
print("Omskrevet form =", rewritten)
print("Stamfunksjon =", antiderivative)
print("Bestemt integral fra 0 til 4 =", area)
print("Nedre minimum på intervallet = 1, så integralet er geometrisk areal")
print("Kontroll med to perioder: gjennomsnittsverdi 3 * intervallengde 4 =", 3*4)

assert simplify(area - 12) == 0
Kjørt utskriftf(x) = 3 - 2*cos(pi*x)
Omskrevet form = 3 - 2*cos(pi*x)
Stamfunksjon = 3*x - 2*sin(pi*x)/pi
Bestemt integral fra 0 til 4 = 12
Nedre minimum på intervallet = 1, så integralet er geometrisk areal
Kontroll med to perioder: gjennomsnittsverdi 3 * intervallengde 4 = 12

Fasit: Arealet er \(12\) arealenheter.

Vanlig feil: Å trekke fra områder under x-aksen selv om grafen aldri går under x-aksen.
Sensorpunkt: Sensor ser etter fortegnkontroll, korrekt integral og eksakt areal.
Del 1 / Oppgave 5aVektorer og kryssprodukt

Oppgave 5a

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

Hva spør oppgaven om? Vi trekker koordinatene til startpunktet fra endepunktet og beregner deretter kryssproduktet komponentvis.

  1. Finn AB
    \(\overrightarrow{AB}=B-A=(3-1,2-0,-1-3)=(2,2,-4)\).
  2. Finn AC
    \(\overrightarrow{AC}=C-A=(0-1,4-0,4-3)=(-1,4,1)\).
  3. Sett opp kryssproduktet
    Bruk determinanten med enhetsvektorene \(\mathbf i,\mathbf j,\mathbf k\).
  4. Beregn første komponent
    \(2\cdot1-(-4)\cdot4=18\).
  5. Beregn de øvrige
    Andre komponent blir 2, og tredje komponent blir 10.
  6. Skriv resultatet
    \(\overrightarrow{AB}\times\overrightarrow{AC}=(18,2,10)=2(9,1,5)\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Cross((2,2,-4),(-1,4,1))
Resultat: \((18,2,10)\)
Tolkning: Kryssproduktet står normalt på både AB og AC.

Digital kontroll i Python (SymPy)

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

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

print("A =", A.T)
print("B =", B.T)
print("C =", C.T)
print("AB =", AB.T)
print("AC =", AC.T)
print("AB x AC =", cross.T)
print("Skalarprodukt med AB =", simplify(cross.dot(AB)))
print("Skalarprodukt med AC =", simplify(cross.dot(AC)))

assert cross == Matrix([18,2,10])
assert cross.dot(AB) == 0 and cross.dot(AC) == 0
Kjørt utskriftA = Matrix([[1, 0, 3]])
B = Matrix([[3, 2, -1]])
C = Matrix([[0, 4, 4]])
AB = Matrix([[2, 2, -4]])
AC = Matrix([[-1, 4, 1]])
AB x AC = Matrix([[18, 2, 10]])
Skalarprodukt med AB = 0
Skalarprodukt med AC = 0

Fasit: \(\overrightarrow{AB}=(2,2,-4)\), \(\overrightarrow{AC}=(-1,4,1)\), og \(\overrightarrow{AB}\times\overrightarrow{AC}=(18,2,10)\).

Vanlig feil: Å bruke \(A-B\) i stedet for \(B-A\), eller å få feil fortegn i den midterste komponenten.
Sensorpunkt: Sensor ser etter korrekte retningsvektorer og et kontrollert kryssprodukt.
Del 1 / Oppgave 5bPunkt i plan

Oppgave 5b

Oppgave: Vis at punktene \(A\), \(B\) og \(C\) ligger i planet \(\alpha:9x+y+5z=24\).
Original poengangivelse: Oppgave 5 (8 poeng).
Vis løsning

Hva spør oppgaven om? Vi setter koordinatene til hvert punkt inn i planlikningen. Alle tre må gi venstresiden 24.

  1. Kontroller A
    For \(A(1,0,3)\): \(9\cdot1+0+5\cdot3=24\).
  2. Kontroller B
    For \(B(3,2,-1)\): \(9\cdot3+2+5(-1)=24\).
  3. Kontroller C
    For \(C(0,4,4)\): \(0+4+20=24\).
  4. Knytt til kryssproduktet
    Normalvektoren er \((9,1,5)\), som er parallell med kryssproduktet \((18,2,10)\).
  5. Tolk geometrisk
    AB og AC ligger i planet og er begge ortogonale på normalvektoren.
  6. Konkluder
    Alle tre punktene tilfredsstiller likningen, så trekanten ABC ligger i \(\alpha\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Substitute(9x+y+5z,{x=1,y=0,z=3})
Resultat: \(24\)
Tolkning: Samme kontroll for B og C gir også 24.

Digital kontroll i Python (SymPy)

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

points = {
    "A": Matrix([1,0,3]),
    "B": Matrix([3,2,-1]),
    "C": Matrix([0,4,4]),
}
normal = Matrix([9,1,5])

print("Plan: 9*x + y + 5*z = 24")
for name, point in points.items():
    left_side = normal.dot(point)
    print(name, "=", point.T, "gir venstresiden", left_side)
print("Normalvektor =", normal.T)
print("2 * normalvektor =", (2*normal).T)
print("Kryssproduktet fra a) =", (points['B']-points['A']).cross(points['C']-points['A']).T)

assert all(normal.dot(point) == 24 for point in points.values())
Kjørt utskriftPlan: 9*x + y + 5*z = 24
A = Matrix([[1, 0, 3]]) gir venstresiden 24
B = Matrix([[3, 2, -1]]) gir venstresiden 24
C = Matrix([[0, 4, 4]]) gir venstresiden 24
Normalvektor = Matrix([[9, 1, 5]])
2 * normalvektor = Matrix([[18, 2, 10]])
Kryssproduktet fra a) = Matrix([[18, 2, 10]])

Fasit: Alle tre punktene gir \(9x+y+5z=24\), og ligger derfor i planet \(\alpha\).

Vanlig feil: Å kontrollere bare ett av punktene eller å overse minustegnet i z-koordinaten til B.
Sensorpunkt: Sensor ser etter eksplisitt innsetting av alle tre punktene.
Del 1 / Oppgave 5cNormal linje og skjæringspunkt

Oppgave 5c

Oppgave: En linje \(\ell\) står normalt på \(\alpha\) og går gjennom \(T(11,7,5)\). Bestem en parameterframstilling for \(\ell\) og skjæringspunktet mellom \(\ell\) og \(\alpha\).
Original poengangivelse: Oppgave 5 (8 poeng).
Vis løsning

Hva spør oppgaven om? En normal linje har planens normalvektor som retningsvektor. Deretter setter vi parameterframstillingen inn i planlikningen.

  1. Velg retningsvektor
    Planets normalvektor er \(\mathbf n=(9,1,5)\).
  2. Skriv linjen
    \(\ell:(x,y,z)=(11,7,5)+t(9,1,5)\).
  3. Sett inn i planet
    \(9(11+9t)+(7+t)+5(5+5t)=24\).
  4. Samle ledd
    \(131+107t=24\), så \(t=-1\).
  5. Finn koordinatene
    Innsetting gir \(H=(2,6,0)\).
  6. Kontroller
    \(9x_H+y_H+5z_H=24\), så H ligger i planet.
H er fotpunktet til normalen fra T på planet gjennom A, B og C.
H er fotpunktet til normalen fra T på planet gjennom A, B og C.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(9(11+9t)+(7+t)+5(5+5t)=24,t)
Resultat: \(t=-1\)
Tolkning: Parameterverdien settes inn i alle tre koordinatfunksjonene.
2Substitute((11+9t,7+t,5+5t),t=-1)
Resultat: \((2,6,0)\)
Tolkning: Punktet er fotpunktet for normalen fra T til planet.

Digital kontroll i Python (SymPy)

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

t = symbols('t', real=True)
T = Matrix([11,7,5])
normal = Matrix([9,1,5])
line_point = T + t*normal
plane_equation = Eq(normal.dot(line_point), 24)
t_value = solve(plane_equation, t)[0]
H = line_point.subs(t, t_value)

print("Linje l: (x,y,z) =", T.T, "+ t", normal.T)
print("Punkt på linjen =", line_point.T)
print("Likning etter innsetting i planet =", plane_equation)
print("Parameter ved skjæring t =", t_value)
print("Skjæringspunkt H =", H.T)
print("Plan-kontroll 9x+y+5z =", simplify(normal.dot(H)))
print("TH er parallell med normalvektoren =", (T-H).cross(normal).T)

assert t_value == -1
assert simplify(normal.dot(H)) == 24
Kjørt utskriftLinje l: (x,y,z) = Matrix([[11, 7, 5]]) + t Matrix([[9, 1, 5]])
Punkt på linjen = Matrix([[9*t + 11, t + 7, 5*t + 5]])
Likning etter innsetting i planet = Eq(107*t + 131, 24)
Parameter ved skjæring t = -1
Skjæringspunkt H = Matrix([[2, 6, 0]])
Plan-kontroll 9x+y+5z = 24
TH er parallell med normalvektoren = Matrix([[0, 0, 0]])

Fasit: \(\ell:(x,y,z)=(11,7,5)+t(9,1,5)\), og skjæringspunktet er \(H=(2,6,0)\).

Vanlig feil: Å bruke et punkt i planet som startpunkt for linjen i stedet for det oppgitte punktet T.
Sensorpunkt: Sensor ser etter riktig normalvektor, parameterlikning og eksakt skjæringspunkt.
Del 1 / Oppgave 5dVolum av pyramide

Oppgave 5d

Oppgave: Bestem volumet av pyramiden \(ABCT\).
Original poengangivelse: Oppgave 5 (8 poeng).
Vis løsning

Hva spør oppgaven om? Volumet er en tredel av grunnflatearealet multiplisert med den vinkelrette høyden fra T til planet ABC.

  1. Finn grunnflatearealet
    \(A_{ABC}=\frac12|\overrightarrow{AB}\times\overrightarrow{AC}|\).
  2. Beregn normen
    \(|(18,2,10)|=\sqrt{18^2+2^2+10^2}=2\sqrt{107}\).
  3. Finn grunnflaten
    \(A_{ABC}=\sqrt{107}\).
  4. Finn høyden
    Avstanden fra T til planet er \(h=|9\cdot11+7+5\cdot5-24|/\sqrt{107}=107/\sqrt{107}=\sqrt{107}\).
  5. Bruk pyramideformelen
    \(V=\frac13A_{ABC}h\).
  6. Forenkle
    \(V=\frac13\sqrt{107}\cdot\sqrt{107}=\frac{107}{3}\).
Pyramiden ABCT med grunnflate ABC og normal høyde TH.
Pyramiden ABCT med grunnflate ABC og normal høyde TH.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1abs(Dot(Cross(B-A,C-A),T-A))/6
Resultat: \(107/3\)
Tolkning: Skalartrippelproduktet gir direkte volumet av tetraederet.

Digital kontroll i Python (SymPy)

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

A = Matrix([1,0,3])
B = Matrix([3,2,-1])
C = Matrix([0,4,4])
T = Matrix([11,7,5])
AB = B-A
AC = C-A
AT = T-A
cross = AB.cross(AC)
base_area = sqrt(cross.dot(cross))/2
height = Abs(9*T[0] + T[1] + 5*T[2] - 24)/sqrt(107)
volume_geometry = simplify(base_area*height/3)
triple = simplify(Abs(cross.dot(AT))/6)

print("AB x AC =", cross.T)
print("Grunnflateareal =", base_area)
print("Høyde fra T til planet =", height)
print("Volum fra grunnflate og høyde =", volume_geometry)
print("Skalartrippelprodukt / 6 =", triple)
print("Kontrollforskjell =", simplify(volume_geometry - triple))

assert volume_geometry == Rational(107,3)
assert triple == Rational(107,3)
Kjørt utskriftAB x AC = Matrix([[18, 2, 10]])
Grunnflateareal = sqrt(107)
Høyde fra T til planet = sqrt(107)
Volum fra grunnflate og høyde = 107/3
Skalartrippelprodukt / 6 = 107/3
Kontrollforskjell = 0

Fasit: Volumet er \(\displaystyle\frac{107}{3}\) volumenheter.

Vanlig feil: Å bruke hele parallellogramarealet som grunnflate eller å glemme faktoren \(1/3\).
Sensorpunkt: Sensor ser etter korrekt grunnflate, vinkelrett høyde og pyramideformel.
Del 1 / Oppgave 6Lineær homogen differensiallikning

Oppgave 6

Oppgave: Løs \(y\prime\prime-9y\prime-10y=0\) når \(y(0)=4\) og \(y\prime(0)=7\).
Original poengangivelse: Oppgave 6 (3 poeng).
Vis løsning

Hva spør oppgaven om? Vi løser den konstante, homogene andreordenslikningen med karakteristisk polynom og bruker begge initialbetingelsene.

  1. Sett opp karakteristisk likning
    \(r^2-9r-10=0\).
  2. Faktoriser
    \((r-10)(r+1)=0\), så røttene er \(r=10\) og \(r=-1\).
  3. Skriv generell løsning
    \(y=C_1e^{10x}+C_2e^{-x}\).
  4. Bruk \(y(0)=4\)
    \(C_1+C_2=4\).
  5. Bruk \(y\prime(0)=7\)
    \(y\prime=10C_1e^{10x}-C_2e^{-x}\), så \(10C_1-C_2=7\).
  6. Løs konstantene
    \(C_1=1\), \(C_2=3\), og dermed \(y=e^{10x}+3e^{-x}\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1SolveODE(y\prime\prime-9y\prime-10y=0)
Resultat: \(y=e^{10x}+3e^{-x}\)
Tolkning: CAS-løsningen oppfyller både differensiallikningen og de to initialbetingelsene.

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True)
y = Function('y')
ode = Eq(diff(y(x),x,2) - 9*diff(y(x),x) - 10*y(x), 0)
solution = dsolve(ode, ics={y(0):4, diff(y(x),x).subs(x,0):7})
expected = exp(10*x) + 3*exp(-x)
residual = simplify(diff(expected,x,2) - 9*diff(expected,x) - 10*expected)

print("Differensiallikning =", ode)
print("Løsning fra SymPy =", solution)
print("Forventet y(x) =", expected)
print("Residual i differensiallikningen =", residual)
print("y(0) =", expected.subs(x,0))
print("y'(0) =", diff(expected,x).subs(x,0))

assert simplify(solution.rhs - expected) == 0
assert residual == 0
Kjørt utskriftDifferensiallikning = Eq(-10*y(x) - 9*Derivative(y(x), x) + Derivative(y(x), (x, 2)), 0)
Løsning fra SymPy = Eq(y(x), exp(10*x) + 3*exp(-x))
Forventet y(x) = exp(10*x) + 3*exp(-x)
Residual i differensiallikningen = 0
y(0) = 4
y'(0) = 7

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

Vanlig feil: Å få feil fortegn på roten \(-1\), eller å bruke bare én av initialbetingelsene.
Sensorpunkt: Sensor ser etter karakteristisk likning, generell løsning og korrekt bestemmelse av begge konstanter.
Del 1 / Oppgave 7aSum av aritmetisk rekke

Oppgave 7a

Oppgave: En aritmetisk tallfølge er gitt ved \(a_n=3n-2\), og \(s_n=a_1+a_2+\cdots+a_n\). Bruk sumformelen til å vise at \(s_n=\frac{3n^2-n}{2}\).
Original poengangivelse: Oppgave 7 (5 poeng).
Vis løsning

Hva spør oppgaven om? Vi identifiserer første og siste ledd og setter dem inn i standardformelen for summen av en aritmetisk rekke.

  1. Finn første ledd
    \(a_1=3\cdot1-2=1\).
  2. Finn siste ledd
    \(a_n=3n-2\).
  3. Bruk sumformelen
    \(s_n=\frac n2(a_1+a_n)\).
  4. Sett inn
    \(s_n=\frac n2(1+3n-2)\).
  5. Forenkle parentesen
    \(1+3n-2=3n-1\).
  6. Multipliser ut
    \(s_n=\frac{n(3n-1)}2=\frac{3n^2-n}{2}\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Sum(3k-2,k,1,n)
Resultat: \(n(3n-1)/2\)
Tolkning: CAS-summen er identisk med den oppgitte formelen.

Digital kontroll i Python (SymPy)

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

k, n = symbols('k n', integer=True, positive=True)
a_k = 3*k - 2
sum_formula = summation(a_k, (k,1,n))
expected = (3*n**2 - n)/2
arithmetic_formula = n*((3*1-2)+(3*n-2))/2

print("Generelt ledd a_k =", a_k)
print("Første ledd a_1 =", a_k.subs(k,1))
print("Siste ledd a_n =", 3*n-2)
print("Aritmetisk sumformel =", simplify(arithmetic_formula))
print("Symbolsk sum fra SymPy =", sum_formula)
print("Faktorisert form =", factor(sum_formula))
print("Kontrollforskjell =", simplify(sum_formula-expected))

assert simplify(sum_formula-expected) == 0
Kjørt utskriftGenerelt ledd a_k = 3*k - 2
Første ledd a_1 = 1
Siste ledd a_n = 3*n - 2
Aritmetisk sumformel = n*(3*n - 1)/2
Symbolsk sum fra SymPy = 3*n**2/2 - n/2
Faktorisert form = n*(3*n - 1)/2
Kontrollforskjell = 0

Fasit: \(\displaystyle s_n=\frac{3n^2-n}{2}\).

Vanlig feil: Å bruke \(a_0\) som første ledd eller å glemme faktoren \(n/2\).
Sensorpunkt: Sensor ser etter korrekt identifisering av \(a_1\), \(a_n\) og sumformelen.
Del 1 / Oppgave 7bInduksjonsbevis

Oppgave 7b

Oppgave: Bruk induksjon til å bevise \(s_n=\frac{3n^2-n}{2}\) for \(n\in\mathbb N\).
Original poengangivelse: Oppgave 7 (5 poeng).
Vis løsning

Hva spør oppgaven om? Et induksjonsbevis består av basissteget, en tydelig induksjonshypotese og et overgangssteg fra \(n=k\) til \(n=k+1\).

  1. Basissteg
    For \(n=1\) er \(s_1=a_1=1\), og formelen gir \((3-1)/2=1\).
  2. Induksjonshypotese
    Anta at \(s_k=\frac{3k^2-k}{2}\) for en vilkårlig \(k\ge1\).
  3. Legg til neste ledd
    \(s_{k+1}=s_k+a_{k+1}\), der \(a_{k+1}=3(k+1)-2=3k+1\).
  4. Bruk hypotesen
    \(s_{k+1}=\frac{3k^2-k}{2}+3k+1\).
  5. Forenkle
    \(s_{k+1}=\frac{3k^2+5k+2}{2}\).
  6. Sammenlign med formelen
    \(\frac{3(k+1)^2-(k+1)}2=\frac{3k^2+5k+2}{2}\). Dermed gjelder formelen for \(k+1\).
  7. Konklusjon
    Etter induksjonsprinsippet gjelder formelen for alle \(n\in\mathbb N\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Simplify((3k^2-k)/2+(3(k+1)-2)-(3(k+1)^2-(k+1))/2)
Resultat: \(0\)
Tolkning: CAS bekrefter at overgangsstegets venstre og høyre side er identiske.

Digital kontroll i Python (SymPy)

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

k = symbols('k', integer=True, positive=True)
induction_hypothesis = (3*k**2 - k)/2
next_term = 3*(k+1) - 2
left_side = simplify(induction_hypothesis + next_term)
right_side = simplify((3*(k+1)**2 - (k+1))/2)

print("Basis: s_1 =", 1)
print("Formel ved n=1 =", (3*1**2-1)/2)
print("Induksjonshypotese s_k =", induction_hypothesis)
print("Neste ledd a_(k+1) =", next_term)
print("s_(k+1) fra hypotesen =", expand(left_side))
print("Formelen ved k+1 =", expand(right_side))
print("Symbolsk differanse =", simplify(left_side-right_side))

assert simplify(left_side-right_side) == 0
Kjørt utskriftBasis: s_1 = 1
Formel ved n=1 = 1.0
Induksjonshypotese s_k = 3*k**2/2 - k/2
Neste ledd a_(k+1) = 3*k + 1
s_(k+1) fra hypotesen = 3*k**2/2 + 5*k/2 + 1
Formelen ved k+1 = 3*k**2/2 + 5*k/2 + 1
Symbolsk differanse = 0

Fasit: Formelen er bevist ved induksjon for alle \(n\in\mathbb N\).

Vanlig feil: Å vise bare overgangssteget og glemme basissteget eller induksjonshypotesen.
Sensorpunkt: Sensor ser etter en logisk fullstendig induksjon med alle tre hoveddelene.

Del 2 - med hjelpemidler

Del 2 / Oppgave 1aGeometrisk rekke i praktisk modell

Oppgave 1a

Oppgave: Første slag slår stolpen 12 cm ned. Lengden per slag reduseres med 6,0 % for hvert slag. Hvor mange slag må de minst slå for å få stolpen mer enn 1,0 m ned?
Original poengangivelse: Oppgave 1 (4 poeng).
Vis løsning

Hva spør oppgaven om? Lengdene danner en geometrisk rekke med første ledd 12 cm og kvotient 0,94. Vi finner den minste heltallsverdien n som gir sum større enn 100 cm.

  1. Finn kvotienten
    En reduksjon på 6,0 % gir \(k=1-0{,}06=0{,}94\).
  2. Skriv summen
    Etter n slag er \(S_n=12\frac{1-0{,}94^n}{1-0{,}94}=200(1-0{,}94^n)\) cm.
  3. Sett opp kravet
    Vi trenger \(200(1-0{,}94^n)>100\).
  4. Isoler potensen
    \(0{,}94^n<0{,}5\).
  5. Bruk logaritmer
    \(n>\frac{\ln0{,}5}{\ln0{,}94}\approx11{,}20\).
  6. Velg minste heltall
    Dermed må de bruke minst 12 slag. Kontroll: 11 slag gir mindre enn 1 m, mens 12 slag gir mer enn 1 m.
Kurven passerer 1,0 m ved det 12. slaget og nærmer seg 2,0 m.
Kurven passerer 1,0 m ved det 12. slaget og nærmer seg 2,0 m.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(200(1-0.94^n)>100,n)
Resultat: \(n>11{,}20\)
Tolkning: Siden n er antall slag, velges det minste heltallet som er større enn grensen.
2Sequence(200(1-0.94^n),n,11,12)
Resultat: \(S_{11}\approx98{,}74\text{ cm},\ S_{12}\approx104{,}81\text{ cm}\)
Tolkning: Kontrollen viser at grensen passeres på slag nummer 12.

Digital kontroll i Python (SymPy)

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

n = symbols('n', integer=True, positive=True)
first = Rational(12,1)
ratio = Rational(94,100)
threshold = Rational(100,1)
critical = log(Rational(1,2))/log(ratio)
minimum_n = ceiling(critical)

def depth(number_of_hits):
    return first*(1-ratio**number_of_hits)/(1-ratio)

print("Første slag =", first, "cm")
print("Geometrisk kvotient =", ratio)
print("Kritisk reell n-verdi =", N(critical, 12))
print("Minste heltall n =", minimum_n)
print("Dybde etter 11 slag =", N(depth(11), 12), "cm")
print("Dybde etter 12 slag =", N(depth(12), 12), "cm")
print("Er S_11 > 100?", bool(depth(11) > threshold))
print("Er S_12 > 100?", bool(depth(12) > threshold))

assert minimum_n == 12
assert depth(11) < 100 < depth(12)
Kjørt utskriftFørste slag = 12 cm
Geometrisk kvotient = 47/50
Kritisk reell n-verdi = 11.2023055836
Minste heltall n = 12
Dybde etter 11 slag = 98.7403585502 cm
Dybde etter 12 slag = 104.815937037 cm
Er S_11 > 100? False
Er S_12 > 100? True

Fasit: De må slå minst \(12\) slag.

Vanlig feil: Å bruke enkeltleddet \(12\cdot0{,}94^{n-1}\) i stedet for summen av alle slagene.
Sensorpunkt: Sensor ser etter geometrisk sum, streng ulikhet og kontroll av nærmeste heltall.
Del 2 / Oppgave 1bGrenseverdi for geometrisk rekke

Oppgave 1b

Oppgave: Kan firmaet klare å slå stolpen så mye som 2,2 m ned i jorda med denne pælemaskinen?
Original poengangivelse: Oppgave 1 (4 poeng).
Vis løsning

Hva spør oppgaven om? Vi finner den uendelige summen. Den er den største samlede dybden modellen kan gi, selv om antall slag går mot uendelig.

  1. Kontroller konvergens
    Kvotienten er \(0{,}94\), og \(|0{,}94|<1\).
  2. Bruk sumformelen
    \(S_\infty=\frac{12}{1-0{,}94}\) cm.
  3. Beregn grensen
    \(S_\infty=200\) cm.
  4. Gjør om enhet
    200 cm er 2,0 m.
  5. Sammenlign med målet
    2,0 m er mindre enn 2,2 m.
  6. Konkluder
    Maskinen kan etter denne modellen aldri få stolpen så dypt som 2,2 m.
Den horisontale grensen ved 2,0 m viser hvorfor 2,2 m ikke kan nås.
Den horisontale grensen ved 2,0 m viser hvorfor 2,2 m ikke kan nås.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Limit(200(1-0.94^n),n,infinity)
Resultat: \(200\text{ cm}=2{,}0\text{ m}\)
Tolkning: Dette er den asymptotiske maksimaldybden i modellen.

Digital kontroll i Python (SymPy)

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

n = symbols('n', integer=True, positive=True)
first = Rational(12,1)
ratio = Rational(94,100)
infinite_sum = summation(first*ratio**(n-1), (n,1,oo))
target_cm = Rational(220,1)

print("Geometrisk rekke: 12 + 12*0.94 + 12*0.94^2 + ...")
print("Kvotient =", ratio)
print("Uendelig sum =", infinite_sum, "cm")
print("Uendelig sum i meter =", infinite_sum/100)
print("Mål =", target_cm, "cm")
print("Mangler til 2,2 m =", target_cm-infinite_sum, "cm")
print("Kan målet nås?", bool(infinite_sum >= target_cm))

assert simplify(infinite_sum-200) == 0
assert infinite_sum < target_cm
Kjørt utskriftGeometrisk rekke: 12 + 12*0.94 + 12*0.94^2 + ...
Kvotient = 47/50
Uendelig sum = 200 cm
Uendelig sum i meter = 2
Mål = 220 cm
Mangler til 2,2 m = 20 cm
Kan målet nås? False

Fasit: Nei. Maksimal dybde i modellen er \(2{,}0\) m, som er mindre enn \(2{,}2\) m.

Vanlig feil: Å anta at mange nok slag alltid kan gi en vilkårlig stor dybde, uten å bruke den uendelige summen.
Sensorpunkt: Sensor ser etter konvergens, grenseverdi og korrekt enhet.
Del 2 / Oppgave 2aParameterframstilling for linje

Oppgave 2a

Oppgave: En linje \(\ell\) går gjennom \(A(7,12,12)\) og \(B(1,-6,-12)\). Bestem en parameterframstilling for \(\ell\).
Original poengangivelse: Oppgave 2 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi finner en retningsvektor fra de to punktene og kombinerer den med ett av punktene.

  1. Finn retningsvektor
    \(\overrightarrow{BA}=A-B=(6,18,24)=6(1,3,4)\).
  2. Velg enklest retning
    Vi kan bruke \((1,3,4)\) som retningsvektor.
  3. Velg startpunkt
    Bruk punktet \(B(1,-6,-12)\).
  4. Skriv vektorform
    \((x,y,z)=(1,-6,-12)+t(1,3,4)\).
  5. Skriv koordinatvis
    \(x=1+t,\ y=-6+3t,\ z=-12+4t\).
  6. Kontroller punkt A
    For \(t=6\) får vi \((7,12,12)=A\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Line((1,-6,-12),(7,12,12))
Resultat: \((x,y,z)=(1,-6,-12)+t(1,3,4)\)
Tolkning: Enhver ikke-null skalar multiplisert med retningsvektoren gir samme linje.

Digital kontroll i Python (SymPy)

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

A = Matrix([7,12,12])
B = Matrix([1,-6,-12])
direction_full = A-B
direction = direction_full/6
t = symbols('t', real=True)
point = B+t*direction

print("A =", A.T)
print("B =", B.T)
print("A - B =", direction_full.T)
print("Forenklet retningsvektor =", direction.T)
print("Parameterpunkt =", point.T)
print("Ved t=0 får vi =", point.subs(t,0).T)
print("Ved t=6 får vi =", point.subs(t,6).T)

assert point.subs(t,0) == B
assert point.subs(t,6) == A
Kjørt utskriftA = Matrix([[7, 12, 12]])
B = Matrix([[1, -6, -12]])
A - B = Matrix([[6, 18, 24]])
Forenklet retningsvektor = Matrix([[1, 3, 4]])
Parameterpunkt = Matrix([[t + 1, 3*t - 6, 4*t - 12]])
Ved t=0 får vi = Matrix([[1, -6, -12]])
Ved t=6 får vi = Matrix([[7, 12, 12]])

Fasit: \(\ell:(x,y,z)=(1,-6,-12)+t(1,3,4)\), \(t\in\mathbb R\).

Vanlig feil: Å bruke punktkoordinatene som retningsvektor eller å få feil fortegn i \(A-B\).
Sensorpunkt: Sensor ser etter en gyldig retningsvektor og kontroll av begge punktene.
Del 2 / Oppgave 2bSkjæring mellom linje og kule

Oppgave 2b

Oppgave: Kuleflaten \(K\) har sentrum i origo og radius 5. Bestem skjæringspunktene mellom \(\ell\) og \(K\).
Original poengangivelse: Oppgave 2 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi setter linjens parameterkoordinater inn i kulelikningen \(x^2+y^2+z^2=25\), løser andregradslikningen og finner punktene.

  1. Bruk linjen
    \(x=1+t,\ y=-6+3t,\ z=-12+4t\).
  2. Sett inn i kulelikningen
    \((1+t)^2+(-6+3t)^2+(-12+4t)^2=25\).
  3. Utvid og samle
    \(26t^2-130t+156=0\).
  4. Forenkle
    Divisjon med 26 gir \(t^2-5t+6=0\).
  5. Løs parameterlikningen
    \((t-2)(t-3)=0\), så \(t=2\) eller \(t=3\).
  6. Finn punktene
    For \(t=2\): \((3,0,-4)\). For \(t=3\): \((4,3,0)\). Begge har avstand 5 fra origo.
Linjen skjærer kuleflaten i punktene (3,0,-4) og (4,3,0).
Linjen skjærer kuleflaten i punktene (3,0,-4) og (4,3,0).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve((1+t)^2+(-6+3t)^2+(-12+4t)^2=25,t)
Resultat: \(t=2\) eller \(t=3\)
Tolkning: Innsetting i parameterframstillingen gir de to skjæringspunktene.

Digital kontroll i Python (SymPy)

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

t = symbols('t', real=True)
point = Matrix([1+t, -6+3*t, -12+4*t])
equation_expression = expand(point.dot(point)-25)
solutions = solve(Eq(equation_expression,0), t)
intersection_points = [point.subs(t,value) for value in solutions]

print("Punkt på linjen =", point.T)
print("Kulekrav x^2+y^2+z^2-25 =", equation_expression)
print("Faktorisert uttrykk =", factor(equation_expression))
print("Parameterløsninger =", solutions)
for value, P in zip(solutions, intersection_points):
    print("t =", value, "gir punkt", P.T, "og |P|^2 =", simplify(P.dot(P)))

assert solutions == [2,3]
assert intersection_points == [Matrix([3,0,-4]),Matrix([4,3,0])]
Kjørt utskriftPunkt på linjen = Matrix([[t + 1, 3*t - 6, 4*t - 12]])
Kulekrav x^2+y^2+z^2-25 = 26*t**2 - 130*t + 156
Faktorisert uttrykk = 26*(t - 3)*(t - 2)
Parameterløsninger = [2, 3]
t = 2 gir punkt Matrix([[3, 0, -4]]) og |P|^2 = 25
t = 3 gir punkt Matrix([[4, 3, 0]]) og |P|^2 = 25

Fasit: Skjæringspunktene er \((3,0,-4)\) og \((4,3,0)\).

Vanlig feil: Å bruke kulevolum eller kuleareal i stedet for kulelikningen, eller å stoppe ved parameterverdiene.
Sensorpunkt: Sensor ser etter innsetting, andregradslikning og begge rompunktene.
Del 2 / Oppgave 2cParallelle tangentplan til kule

Oppgave 2c

Oppgave: Planet \(\alpha\) er gitt ved \(4x-3y+7=0\). Bestem de to planene som er parallelle med \(\alpha\) og tangerer kuleflaten \(K\).
Original poengangivelse: Oppgave 2 (6 poeng).
Vis løsning

Hva spør oppgaven om? Parallelle plan har samme normalvektor. Et plan tangerer kulen når avstanden fra sentrum til planet er lik radiusen 5.

  1. Skriv planfamilien
    Alle parallelle plan kan skrives \(4x-3y+d=0\).
  2. Finn normalens lengde
    \(|\mathbf n|=\sqrt{4^2+(-3)^2}=5\).
  3. Bruk avstandsformelen
    Avstanden fra origo til planet er \(|d|/5\).
  4. Sett lik radius
    \(|d|/5=5\).
  5. Løs for konstanten
    \(|d|=25\), altså \(d=25\) eller \(d=-25\).
  6. Skriv planene
    \(4x-3y+25=0\) og \(4x-3y-25=0\).
De to tangentplanene er parallelle og ligger fem enheter fra origo.
De to tangentplanene er parallelle og ligger fem enheter fra origo.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(abs(d)/sqrt(4^2+(-3)^2)=5,d)
Resultat: \(d=-25,25\)
Tolkning: De to fortegnene gir tangentplan på motsatte sider av origo.

Digital kontroll i Python (SymPy)

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

d = symbols('d', real=True)
normal_length = sqrt(4**2 + (-3)**2)
distance = Abs(d)/normal_length
solutions = solve(Eq(distance,5), d)

print("Parallell planfamilie: 4*x - 3*y + d = 0")
print("Normalvektor = (4,-3,0)")
print("Lengde av normalvektor =", normal_length)
print("Avstand fra origo =", distance)
print("Tangentkrav: avstand = 5")
print("Løsninger for d =", solutions)
for value in solutions:
    print("Plan: 4*x - 3*y", "+" if value>0 else "-", abs(value), "= 0")

assert set(solutions) == {-25,25}
Kjørt utskriftParallell planfamilie: 4*x - 3*y + d = 0
Normalvektor = (4,-3,0)
Lengde av normalvektor = 5
Avstand fra origo = Abs(d)/5
Tangentkrav: avstand = 5
Løsninger for d = [-25, 25]
Plan: 4*x - 3*y - 25 = 0
Plan: 4*x - 3*y + 25 = 0

Fasit: Planene er \(4x-3y+25=0\) og \(4x-3y-25=0\).

Vanlig feil: Å beholde konstantleddet 7 fra det opprinnelige planet eller å glemme å ta absoluttverdi i avstanden.
Sensorpunkt: Sensor ser etter planfamilien, avstandsformelen og begge tangentplanene.
Del 2 / Oppgave 3aModellering med relativ endringsrate

Oppgave 3a

Oppgave: Bestanden av ørret avtar med 3,0 % per år, og det er 10 000 ørreter ved starten av 2018. Forklar at \(y\prime=-0{,}03y\), \(y(0)=10\,000\), kan brukes.
Original poengangivelse: Oppgave 3 (6 poeng).
Vis løsning

Hva spør oppgaven om? En kontinuerlig prosentvis nedgang beskrives ved at den øyeblikkelige endringsraten er proporsjonal med den aktuelle bestanden.

  1. Definer variablene
    La \(t\) være år etter starten av 2018 og \(y(t)\) være antall ørreter.
  2. Tolk prosenttallet
    3,0 % som desimaltall er \(0{,}03\).
  3. Bruk proporsjonalitet
    Endringshastighetens størrelse er \(0{,}03y\) ørreter per år.
  4. Velg fortegn
    Bestanden avtar, så endringsraten er negativ.
  5. Skriv differensiallikningen
    \(y\prime(t)=-0{,}03y(t)\).
  6. Skriv initialbetingelsen
    Ved \(t=0\), starten av 2018, er \(y(0)=10\,000\).

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1y\prime(t)=-0.03 y(t)
Resultat: Relativ vekstrate \(y\prime/y=-0{,}03\)
Tolkning: Modellen har konstant kontinuerlig relativ nedgang på 3,0 % per år.

Digital kontroll i Python (SymPy)

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

t = symbols('t', nonnegative=True)
y = Function('y')
relative_rate = Rational(-3,100)
model = Eq(diff(y(t),t), relative_rate*y(t))

print("t = år etter starten av 2018")
print("y(t) = antall ørreter")
print("Relativ endringsrate =", relative_rate)
print("Differensiallikning =", model)
print("Initialbetingelse: y(0) = 10000")
print("Fortegnet er negativt fordi bestanden avtar")
print("Enhet for y'(t): ørreter per år")

assert relative_rate == Rational(-3,100)
Kjørt utskriftt = år etter starten av 2018
y(t) = antall ørreter
Relativ endringsrate = -3/100
Differensiallikning = Eq(Derivative(y(t), t), -3*y(t)/100)
Initialbetingelse: y(0) = 10000
Fortegnet er negativt fordi bestanden avtar
Enhet for y'(t): ørreter per år

Fasit: Likningen uttrykker en kontinuerlig relativ nedgang på 3,0 %, og initialbetingelsen uttrykker startbestanden 10 000.

Vanlig feil: Å bruke \(y\prime=-0{,}03\) uten faktoren y, eller å bruke positivt fortegn.
Sensorpunkt: Sensor ser etter tydelig definisjon av variablene, prosenttolkning og initialverdi.
Del 2 / Oppgave 3bEksponentiell differensiallikning

Oppgave 3b

Oppgave: Løs differensiallikningen, og bestem hvor mange ørreter det vil være i vannet i 2028.
Original poengangivelse: Oppgave 3 (6 poeng).
Vis løsning

Hva spør oppgaven om? Likningen er separabel og har en eksponentiell løsning. Året 2028 ligger 10 år etter starten av 2018, altså bruker vi \(t=10\).

  1. Separer variablene
    \(dy/y=-0{,}03\,dt\).
  2. Integrer
    \(\ln|y|=-0{,}03t+C\).
  3. Eksponentier
    \(y=Ce^{-0{,}03t}\).
  4. Bruk startverdien
    \(10\,000=C\), så \(y(t)=10\,000e^{-0{,}03t}\).
  5. Sett inn 2028
    2028 svarer til \(t=10\).
  6. Beregn og rund
    \(y(10)=10\,000e^{-0{,}3}\approx7408\).
Uten utsetting faller bestanden fra 10 000 til omtrent 7408 på ti år.
Uten utsetting faller bestanden fra 10 000 til omtrent 7408 på ti år.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1SolveODE(y\prime=-0.03y,y(0)=10000)
Resultat: \(y=10000e^{-0{,}03t}\)
Tolkning: CAS gir den eksponentielle løsningen.
2Numeric(10000 exp(-0.03*10))
Resultat: \(7408{,}18\)
Tolkning: Bestanden rundes til omtrent 7408 ørreter.

Digital kontroll i Python (SymPy)

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

t = symbols('t', nonnegative=True)
y = Function('y')
ode = Eq(diff(y(t),t), -0.03*y(t))
solution = dsolve(ode, ics={y(0):10000})
model = 10000*exp(-0.03*t)
value_2028 = model.subs(t,10)
residual = simplify(diff(model,t)+0.03*model)

print("Differensiallikning =", ode)
print("Løsning fra SymPy =", solution)
print("Modell y(t) =", model)
print("Residual y' + 0.03*y =", residual)
print("y(0) =", model.subs(t,0))
print("y(10) eksakt =", value_2028)
print("y(10) numerisk =", N(value_2028, 12))
print("Avrundet bestand i 2028 =", round(float(value_2028)))

assert abs(float(value_2028)-7408.182206817) < 1e-6
Kjørt utskriftDifferensiallikning = Eq(Derivative(y(t), t), -0.03*y(t))
Løsning fra SymPy = Eq(y(t), 10000*exp(-0.03*t))
Modell y(t) = 10000*exp(-0.03*t)
Residual y' + 0.03*y = 0
y(0) = 10000
y(10) eksakt = 7408.18220681718
y(10) numerisk = 7408.18220682
Avrundet bestand i 2028 = 7408

Fasit: \(y(t)=10\,000e^{-0{,}03t}\), og i 2028 er bestanden omtrent \(7408\) ørreter.

Vanlig feil: Å bruke \(t=2028\) i modellen i stedet for antall år etter 2018.
Sensorpunkt: Sensor ser etter løsning med initialbetingelse, korrekt tidsverdi og fornuftig avrunding.
Del 2 / Oppgave 3cDifferensiallikning med konstant tilførsel

Oppgave 3c

Oppgave: Fiskeforeningen setter ut et fast antall ørreter hvert år, kontinuerlig. Sett opp og begrunn en differensiallikning som kan bestemme hvor mange de må sette ut for å ha 15 000 ørreter ved starten av 2027.
Original poengangivelse: Oppgave 3 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi legger en konstant positiv tilførsel \(a\) til den naturlige nedgangen. Starten av 2027 er ni år etter starten av 2018.

  1. Definer parameteren
    La \(a\) være antall ørreter som settes ut per år.
  2. Behold naturlig nedgang
    Uten utsetting er bidraget \(-0{,}03y\).
  3. Legg til utsetting
    Kontinuerlig utsetting med konstant rate gir bidraget \(+a\).
  4. Skriv modellen
    \(y\prime=-0{,}03y+a\).
  5. Angi startbetingelse
    \(y(0)=10\,000\).
  6. Angi målbetingelse
    Starten av 2027 er \(t=9\), så \(y(9)=15\,000\).
  7. Tolk ukjent størrelse
    Når randverdiproblemet løses for a, får vi det faste antallet som må settes ut per år.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1y\prime(t)=-0.03y(t)+a
Resultat: Lineær differensiallikning med konstant tilførsel
Tolkning: Parameteren a må bestemmes av \(y(0)=10000\) og \(y(9)=15000\).

Digital kontroll i Python (SymPy)

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

t = symbols('t', nonnegative=True)
a = symbols('a', positive=True)
y = Function('y')
loss_rate = Rational(3,100)
model = Eq(diff(y(t),t), -loss_rate*y(t)+a)

print("a = fast antall ørreter satt ut per år")
print("Naturlig tapsledd =", -loss_rate*y(t))
print("Tilførselsledd =", a)
print("Differensiallikning =", model)
print("Startbetingelse: y(0) = 10000")
print("Målbetingelse: y(9) = 15000")
print("Tidskontroll: starten av 2027 - starten av 2018 = 9 år")

assert loss_rate == Rational(3,100)
Kjørt utskrifta = fast antall ørreter satt ut per år
Naturlig tapsledd = -3*y(t)/100
Tilførselsledd = a
Differensiallikning = Eq(Derivative(y(t), t), a - 3*y(t)/100)
Startbetingelse: y(0) = 10000
Målbetingelse: y(9) = 15000
Tidskontroll: starten av 2027 - starten av 2018 = 9 år

Fasit: En egnet modell er \(y\prime=-0{,}03y+a\), med \(y(0)=10\,000\) og \(y(9)=15\,000\), der a er antall utsatte ørreter per år.

Vanlig feil: Å bruke \(t=10\) for starten av 2027 eller å legge til en prosentandel i stedet for et fast antall.
Sensorpunkt: Sensor ser etter riktig tapsledd, konstant tilførsel og begge betingelsene.
Del 2 / Oppgave 3dBestemmelse av konstant tilførsel

Oppgave 3d

Oppgave: Hvor mange ørreter må foreningen sette ut hvert år for å nå målet?
Original poengangivelse: Oppgave 3 (6 poeng).
Vis løsning

Hva spør oppgaven om? Vi løser den lineære differensiallikningen med parameter a og bruker målbetingelsen ved \(t=9\).

  1. Finn likevektsverdien
    For konstant løsning er \(0=-0{,}03y+a\), så likevekten er \(a/0{,}03\).
  2. Skriv generell løsning
    \(y(t)=\frac{a}{0{,}03}+C e^{-0{,}03t}\).
  3. Bruk startverdien
    \(C=10\,000-\frac{a}{0{,}03}\).
  4. Sett inn målet
    \(15\,000=\frac{a}{0{,}03}+\left(10\,000-\frac{a}{0{,}03}\right)e^{-0{,}27}\).
  5. Løs for a
    \(a=0{,}03\frac{15000-10000e^{-0{,}27}}{1-e^{-0{,}27}}\).
  6. Beregn
    \(a\approx933{,}93\). Et praktisk heltall er omtrent 934 ørreter per år.
  7. Kontroller målet
    Innsetting i løsningen gir \(y(9)=15\,000\).
Med omtrent 934 utsatte ørreter per år når modellen 15 000 ved t=9.
Med omtrent 934 utsatte ørreter per år når modellen 15 000 ved t=9.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Solve(15000=a/0.03+(10000-a/0.03)exp(-0.03*9),a)
Resultat: \(a\approx933{,}926\)
Tolkning: CAS løser randbetingelsen direkte for den konstante årlige utsettingsraten.

Digital kontroll i Python (SymPy)

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

t, a = symbols('t a', real=True)
model = a/0.03 + (10000-a/0.03)*exp(-0.03*t)
equation = Eq(model.subs(t,9), 15000)
a_solution = solve(equation, a)[0]
y_with_stocking = simplify(model.subs(a,a_solution))

print("Løsning med parameter a: y(t) =", model)
print("Målbetingelse ved t=9 =", equation)
print("Eksakt CAS-uttrykk for a =", a_solution)
print("Numerisk a =", N(a_solution, 12), "ørreter per år")
print("Avrundet praktisk verdi =", round(float(a_solution)))
print("Kontroll y(0) =", N(y_with_stocking.subs(t,0),12))
print("Kontroll y(9) =", N(y_with_stocking.subs(t,9),12))
print("Kontroll y'(9) =", N((-0.03*y_with_stocking+a_solution).subs(t,9),12))

assert abs(float(y_with_stocking.subs(t,9))-15000) < 1e-7
Kjørt utskriftLøsning med parameter a: y(t) = 33.3333333333333*a + (10000 - 33.3333333333333*a)*exp(-0.03*t)
Målbetingelse ved t=9 = Eq(7.88735018877156*a + 7633.79494336853, 15000)
Eksakt CAS-uttrykk for a = 933.926462035121
Numerisk a = 933.926462035 ørreter per år
Avrundet praktisk verdi = 934
Kontroll y(0) = 10000.0000000
Kontroll y(9) = 15000.0000000
Kontroll y'(9) = 483.926462035

Fasit: De må sette ut omtrent \(934\) ørreter per år.

Vanlig feil: Å bruke målet ved \(t=10\), eller å runde parameteren for tidlig i beregningen.
Sensorpunkt: Sensor ser etter parameterløsning, korrekt tidsbetingelse og kontroll av sluttbestanden.
Del 2 / Oppgave 4aGraf av halvsirkel og korde

Oppgave 4a

Oppgave: Funksjonen er \(f(x)=\sqrt{2^2-x^2}\), \(x\in[-2,2]\). Tegn grafen til f og linjen \(g(x)=f(1)\) i samme koordinatsystem.
Original poengangivelse: Oppgave 4 (8 poeng).
Vis løsning

Hva spør oppgaven om? Likningen beskriver øvre halvdel av sirkelen \(x^2+y^2=4\). Den horisontale linjen har høyde \(f(1)=\sqrt3\).

  1. Omskriv funksjonen
    \(f(x)=\sqrt{4-x^2}\).
  2. Knytt til sirkel
    \(y^2=4-x^2\Rightarrow x^2+y^2=4\), og kvadratroten gir \(y\ge0\).
  3. Finn sentrale punkter
    Grafen går gjennom \((-2,0)\), \((0,2)\) og \((2,0)\).
  4. Finn linjeverdien
    \(f(1)=\sqrt{4-1}=\sqrt3\).
  5. Skriv linjen
    \(g(x)=\sqrt3\), en horisontal linje.
  6. Finn skjæringene
    \(\sqrt{4-x^2}=\sqrt3\Rightarrow x=\pm1\).
Halvsirkelen og linjen y=√3 avgrenser sirkelsegmentet.
Halvsirkelen og linjen y=√3 avgrenser sirkelsegmentet.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1f(x)=sqrt(4-x^2)
Resultat: Øvre halvsirkel med radius 2
Tolkning: Graftegneren må begrenses til definisjonsområdet \([-2,2]\).
2g(x)=f(1)
Resultat: \(g(x)=\sqrt{3}\)
Tolkning: Linjen skjærer halvsirkelen ved x=-1 og x=1.

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True)
f = sqrt(4-x**2)
g = simplify(f.subs(x,1))
intersections = solve(Eq(f,g), x)

print("f(x) =", f)
print("Definisjonsområde = [-2, 2]")
print("f(-2) =", f.subs(x,-2))
print("f(0) =", f.subs(x,0))
print("f(2) =", f.subs(x,2))
print("g(x) = f(1) =", g)
print("Skjæringspunktenes x-koordinater =", intersections)
for value in intersections:
    print("Punkt =", (value,g))

assert g == sqrt(3)
assert intersections == [-1,1]
Kjørt utskriftf(x) = sqrt(4 - x**2)
Definisjonsområde = [-2, 2]
f(-2) = 0
f(0) = 2
f(2) = 0
g(x) = f(1) = sqrt(3)
Skjæringspunktenes x-koordinater = [-1, 1]
Punkt = (-1, sqrt(3))
Punkt = (1, sqrt(3))

Fasit: Grafen er den øvre halvsirkelen med radius 2, sammen med linjen \(y=\sqrt3\), som skjærer ved \(x=\pm1\).

Vanlig feil: Å tegne hele sirkelen eller å bruke \(g(x)=1\) i stedet for \(g(x)=f(1)\).
Sensorpunkt: Sensor ser etter korrekt definisjonsområde, halvsirkel og horisontal korde.
Del 2 / Oppgave 4bAreal av sirkelsegment

Oppgave 4b

Oppgave: Bruk CAS til å bestemme arealet av sirkelsegmentet avgrenset av grafene til f og g.
Original poengangivelse: Oppgave 4 (8 poeng).
Vis løsning

Hva spør oppgaven om? Segmentet ligger mellom kurvene fra x=-1 til x=1. Arealet er integralet av øvre funksjon minus nedre funksjon.

  1. Finn grensene
    Skjæringspunktene fra del a har x-koordinater \(-1\) og 1.
  2. Sett opp integralet
    \(A=\int_{-1}^{1}(\sqrt{4-x^2}-\sqrt3)dx\).
  3. Bruk symmetri
    Integranden er jevn, så integralet kan også skrives \(2\int_0^1(\sqrt{4-x^2}-\sqrt3)dx\).
  4. Evaluer CAS-integralet
    \(\int_{-1}^{1}\sqrt{4-x^2}dx=\sqrt3+\frac{2\pi}{3}\).
  5. Trekk fra rektangelet
    \(\int_{-1}^{1}\sqrt3dx=2\sqrt3\).
  6. Forenkle
    \(A=\frac{2\pi}{3}-\sqrt3\approx0{,}3623\).
Det skraverte området er sirkelsegmentet med areal 2π/3−√3.
Det skraverte området er sirkelsegmentet med areal 2π/3−√3.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(sqrt(4-x^2)-sqrt(3),x,-1,1)
Resultat: \(\frac{2\pi}{3}-\sqrt{3}\)
Tolkning: CAS beregner nøyaktig areal mellom kurvene.

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True)
f = sqrt(4-x**2)
g = sqrt(3)
upper_area = integrate(f, (x,-1,1))
rectangle = integrate(g, (x,-1,1))
segment_area = simplify(integrate(f-g, (x,-1,1)))
expected = 2*pi/3 - sqrt(3)

print("Integral av halvsirkelen mellom -1 og 1 =", upper_area)
print("Areal under linjen y=sqrt(3) =", rectangle)
print("Sirkelsegmentets areal =", segment_area)
print("Forventet eksakt form =", expected)
print("Desimalverdi =", N(segment_area, 12))
print("Symbolsk kontroll =", simplify(segment_area-expected))

assert simplify(segment_area-expected) == 0
Kjørt utskriftIntegral av halvsirkelen mellom -1 og 1 = sqrt(3) + 2*pi/3
Areal under linjen y=sqrt(3) = 2*sqrt(3)
Sirkelsegmentets areal = -sqrt(3) + 2*pi/3
Forventet eksakt form = -sqrt(3) + 2*pi/3
Desimalverdi = 0.362344294824
Symbolsk kontroll = 0

Fasit: Arealet er \(\displaystyle\frac{2\pi}{3}-\sqrt3\approx0{,}3623\).

Vanlig feil: Å integrere bare halvsirkelfunksjonen eller å bruke feil skjæringsgrenser.
Sensorpunkt: Sensor ser etter differansen øvre minus nedre funksjon og eksakt CAS-resultat.
Del 2 / Oppgave 4cVolum med skivemetoden

Oppgave 4c

Oppgave: Sirkelsegmentet dreies \(360^\circ\) om x-aksen. Bruk CAS til å bestemme volumet av omdreiningslegemet.
Original poengangivelse: Oppgave 4 (8 poeng).
Vis løsning

Hva spør oppgaven om? Rotasjon av området mellom to positive kurver gir skiver med ytterradius f(x) og innerradius g(x).

  1. Angi radiene
    Ytterradius er \(R(x)=\sqrt{4-x^2}\), og innerradius er \(r(x)=\sqrt3\).
  2. Skriv skivearealet
    \(A(x)=\pi(R^2-r^2)\).
  3. Kvadrer radiene
    \(R^2-r^2=(4-x^2)-3=1-x^2\).
  4. Sett opp volumet
    \(V=\pi\int_{-1}^{1}(1-x^2)dx\).
  5. Evaluer integralet
    \([x-x^3/3]_{-1}^{1}=4/3\).
  6. Skriv volumet
    \(V=4\pi/3\).
Omdreiningslegemet ligger mellom den ytre kuleflaten og den indre sylindriske flaten.
Omdreiningslegemet ligger mellom den ytre kuleflaten og den indre sylindriske flaten.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(pi*((sqrt(4-x^2))^2-(sqrt(3))^2),x,-1,1)
Resultat: \(4\pi/3\)
Tolkning: CAS forenkler radiuskvadratene før integrasjonen.

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True)
outer_radius = sqrt(4-x**2)
inner_radius = sqrt(3)
cross_section = simplify(pi*(outer_radius**2-inner_radius**2))
volume = simplify(integrate(cross_section, (x,-1,1)))
expected = 4*pi/3

print("Ytterradius R(x) =", outer_radius)
print("Innerradius r(x) =", inner_radius)
print("Tverrsnittsareal pi*(R^2-r^2) =", cross_section)
print("Volumintegral fra -1 til 1 =", volume)
print("Forventet eksakt volum =", expected)
print("Desimalverdi =", N(volume, 12))
print("Kontrollforskjell =", simplify(volume-expected))

assert simplify(volume-expected) == 0
Kjørt utskriftYtterradius R(x) = sqrt(4 - x**2)
Innerradius r(x) = sqrt(3)
Tverrsnittsareal pi*(R^2-r^2) = pi*(1 - x**2)
Volumintegral fra -1 til 1 = 4*pi/3
Forventet eksakt volum = 4*pi/3
Desimalverdi = 4.18879020479
Kontrollforskjell = 0

Fasit: Volumet er \(\displaystyle\frac{4\pi}{3}\) volumenheter.

Vanlig feil: Å bruke \(\pi\int(R-r)^2dx\) i stedet for \(\pi\int(R^2-r^2)dx\).
Sensorpunkt: Sensor ser etter skivemetoden, korrekte radier og eksakt volum.
Del 2 / Oppgave 4dParameteruavhengig volum

Oppgave 4d

Oppgave: La \(F(x)=\sqrt{r^2-x^2}\), \(x\in[-r,r]\), \(r>1\), og \(G(x)=F(1)\). Vis med CAS at volumet av det roterte sirkelsegmentet er uavhengig av r.
Original poengangivelse: Oppgave 4 (8 poeng).
Vis løsning

Hva spør oppgaven om? Vi uttrykker både ytterradius og innerradius med parameteren r. Når radiusene kvadreres, kanselleres alle r-leddene.

  1. Finn kordehøyden
    \(G(x)=F(1)=\sqrt{r^2-1}\).
  2. Finn skjæringsgrensene
    \(F(x)=G(x)\Rightarrow r^2-x^2=r^2-1\Rightarrow x=\pm1\).
  3. Skriv volumformelen
    \(V(r)=\pi\int_{-1}^{1}(F(x)^2-G(x)^2)dx\).
  4. Kvadrer uttrykkene
    \(F^2=r^2-x^2\) og \(G^2=r^2-1\).
  5. Kanseller parameteren
    \(F^2-G^2=1-x^2\), som ikke inneholder r.
  6. Integrer
    \(V(r)=\pi\int_{-1}^{1}(1-x^2)dx=4\pi/3\).
  7. Konkluder
    Volumet er konstant for alle \(r>1\), og er derfor uavhengig av r.
Den algebraiske kanselleringen viser at samme volum oppstår for alle r>1.
Den algebraiske kanselleringen viser at samme volum oppstår for alle r>1.

Digital kontroll i GeoGebra/CAS

GeoGebra / CAS
1Integral(pi*((r^2-x^2)-(r^2-1)),x,-1,1)
Resultat: \(4\pi/3\)
Tolkning: CAS kansellerer r før integrasjonen, så resultatet er konstant.

Digital kontroll i Python (SymPy)

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

x = symbols('x', real=True)
r = symbols('r', positive=True)
F = sqrt(r**2-x**2)
G = sqrt(r**2-1)
integrand = simplify(F**2-G**2)
volume = simplify(pi*integrate(integrand, (x,-1,1)))
parameter_derivative = simplify(diff(volume,r))

print("F(x) =", F)
print("G(x) = F(1) =", G)
print("F(x)^2 - G(x)^2 =", integrand)
print("Volum V(r) =", volume)
print("Derivert med hensyn på r =", parameter_derivative)
print("Resultatet inneholder r?", volume.has(r))
print("Gyldighetskrav: r > 1")

assert simplify(integrand-(1-x**2)) == 0
assert simplify(volume-4*pi/3) == 0
assert parameter_derivative == 0
Kjørt utskriftF(x) = sqrt(r**2 - x**2)
G(x) = F(1) = sqrt(r**2 - 1)
F(x)^2 - G(x)^2 = 1 - x**2
Volum V(r) = 4*pi/3
Derivert med hensyn på r = 0
Resultatet inneholder r? False
Gyldighetskrav: r > 1

Fasit: \(V(r)=4\pi/3\) for alle \(r>1\). Volumet er dermed uavhengig av r.

Vanlig feil: Å tro at r må bli igjen fordi sirkelradiusen endres, uten å undersøke differansen mellom radiuskvadratene.
Sensorpunkt: Sensor ser etter korrekt parameterintegral, kansellering av r og en tydelig konklusjon.