R1 eksamenHøst 2021

Matematikk R1 eksamen – høst 2021

ifingo
Norsk (Bokmål)

ifingo · Matematikk R1

Matematikk R1 - høsten 2021 (REA3022)

Løsningsforslag til eksamenssettet fra Utdanningsdirektoratet.

Del 1 - uten hjelpemidler

Del 1 - Oppgave 1aDerivasjon av logaritme og potens

Oppgave 1a

Oppgave: Deriver \[f(x)=\ln x+x^2+2.\]
Vis løsning

Hva spør oppgaven om? Vi deriverer ledd for ledd og husker at logaritmen krever positiv x.

Steg 1 – Domene

Fordi \(\ln x\) inngår, er \(x>0\).

Steg 2 – Logaritmeleddet

\((\ln x)^\prime=1/x\).

Steg 3 – Potensleddet

\((x^2)^\prime=2x\).

Steg 4 – Konstantleddet

\(2^\prime=0\).

Steg 5 – Samle

\[f^\prime(x)=\frac1x+2x.\]

Steg 6 – Felles brøk om ønskelig

\[f^\prime(x)=\frac{1+2x^2}{x}.\]

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Derivative[ln(x)+x^2+2]
\(1/x+2x\)

Tolkning: CAS bruker den deriverte av ln(x) og potensregelen.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", positive=True)
f = sp.log(x) + x**2 + 2
f_prime = sp.diff(f, x)
expected = 1/x + 2*x
print("f(x) =", f)
print("f'(x) =", f_prime)
print("Expected =", expected)
print("Difference =", sp.simplify(f_prime-expected))
print("Domain: x > 0")
Utskrift fra Python:
f(x) = x**2 + log(x) + 2
f'(x) = 2*x + 1/x
Expected = 2*x + 1/x
Difference = 0
Domain: x > 0

Fasit: \(f^\prime(x)=\dfrac1x+2x\), for \(x>0\).

Vanlig feil: Å skrive den deriverte av \(\ln x\) som \(\ln x\).
Sensorpunkt: Riktig derivasjon og korrekt domene må være med.
Del 1 - Oppgave 1bKjerneregelen

Oppgave 1b

Oppgave: Deriver \[g(x)=(x^2+2)^7.\]
Vis løsning

Hva spør oppgaven om? Funksjonen er en sammensatt potensfunksjon, så vi bruker kjerneregelen.

Steg 1 – Ytre funksjon

Den ytre funksjonen er \(u^7\), med derivert \(7u^6\).

Steg 2 – Indre funksjon

\(u=x^2+2\), slik at \(u^\prime=2x\).

Steg 3 – Kjerneregelen

\[g^\prime(x)=7(x^2+2)^6\cdot2x.\]

Steg 4 – Forenkle

\[g^\prime(x)=14x(x^2+2)^6.\]

Steg 5 – Kontrollpunkt

For \(x=0\) blir den deriverte 0, som passer med symmetrien.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Derivative[(x^2+2)^7]
\(14x(x^2+2)^6\)

Tolkning: CAS viser både ytre faktor 7 og indre derivert 2x.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
g = (x**2 + 2)**7
g_prime = sp.diff(g, x)
expected = 14*x*(x**2+2)**6
print("g(x) =", g)
print("g'(x) =", sp.factor(g_prime))
print("Expected =", expected)
print("Difference =", sp.simplify(g_prime-expected))
print("g'(0) =", g_prime.subs(x,0))
Utskrift fra Python:
g(x) = (x**2 + 2)**7
g'(x) = 14*x*(x**2 + 2)**6
Expected = 14*x*(x**2 + 2)**6
Difference = 0
g'(0) = 0

Fasit: \(g^\prime(x)=14x(x^2+2)^6\).

Vanlig feil: Å glemme faktoren \(2x\) fra den indre funksjonen.
Sensorpunkt: Kjerneregelen skal dokumenteres eksplisitt.
Del 1 - Oppgave 1cProduktregel og kjerneregel

Oppgave 1c

Oppgave: Deriver \[h(x)=3x\,e^{2x}.\]
Vis løsning

Hva spør oppgaven om? Her må produktregelen kombineres med kjerneregelen for eksponentialfunksjonen.

Steg 1 – Velg faktorer

Sett \(u=3x\) og \(v=e^{2x}\).

Steg 2 – Deriver faktorene

\(u^\prime=3\) og \(v^\prime=2e^{2x}\).

Steg 3 – Produktregelen

\[h^\prime=u^\prime v+uv^\prime.\]

Steg 4 – Sett inn

\[h^\prime(x)=3e^{2x}+3x\cdot2e^{2x}.\]

Steg 5 – Faktoriser

\[h^\prime(x)=3e^{2x}(1+2x).\]

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Derivative[3x exp(2x)]
\(3e^{2x}(2x+1)\)

Tolkning: Produktregelen og den indre faktoren 2 er med.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
h = 3*x*sp.exp(2*x)
h_prime = sp.diff(h, x)
expected = 3*sp.exp(2*x)*(1+2*x)
print("h(x) =", h)
print("h'(x) =", h_prime)
print("Factored =", sp.factor(h_prime))
print("Expected =", expected)
print("Difference =", sp.simplify(h_prime-expected))
Utskrift fra Python:
h(x) = 3*x*exp(2*x)
h'(x) = 6*x*exp(2*x) + 3*exp(2*x)
Factored = 3*(2*x + 1)*exp(2*x)
Expected = 3*(2*x + 1)*exp(2*x)
Difference = 0

Fasit: \(h^\prime(x)=3e^{2x}(1+2x)\).

Vanlig feil: Å derivere produktet som produktet av de deriverte.
Sensorpunkt: Både produktregel og kjerneregel må være synlige.
Del 1 - Oppgave 2aForenkling av rasjonalt uttrykk

Oppgave 2a

Oppgave: Skriv så enkelt som mulig: \[\frac{2x+2}{x^2-x}-\frac{2x+2}{x^2-1}+\frac1x+\frac{x+1}{x^2+x}.\]
Vis løsning

Hva spør oppgaven om? Vi faktoriserer alle nevnere, forkorter der det er lov og samler uttrykket.

Steg 1 – Faktoriser

\(x^2-x=x(x-1)\), \(x^2-1=(x-1)(x+1)\), \(x^2+x=x(x+1)\).

Steg 2 – Forkort andre brøk

\[\frac{2(x+1)}{(x-1)(x+1)}=\frac2{x-1}.\]

Steg 3 – Forkort siste brøk

\[\frac{x+1}{x(x+1)}=\frac1x.\]

Steg 4 – Første brøk

\[\frac{2(x+1)}{x(x-1)}.\]

Steg 5 – Samle

\[\frac{2(x+1)}{x(x-1)}-\frac2{x-1}+\frac2x.\]

Steg 6 – Felles nevner

Telleren blir \(2(x+1)-2x+2(x-1)=2x\).

Steg 7 – Forkort

\[\frac{2x}{x(x-1)}=\frac2{x-1}.\]

Steg 8 – Opprinnelig domene

\(x\neq-1,0,1\).

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Simplify[(2x+2)/(x^2-x)-(2x+2)/(x^2-1)+1/x+(x+1)/(x^2+x)]
\(2/(x-1)\)

Tolkning: CAS forenkler uttrykket, men de opprinnelige utelukkede verdiene må beholdes.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x")
expr = (2*x+2)/(x**2-x) - (2*x+2)/(x**2-1) + 1/x + (x+1)/(x**2+x)
combined = sp.together(expr)
simplified = sp.factor(expr)
expected = 2/(x-1)
print("Original expression =", expr)
print("Common-denominator form =", combined)
print("Simplified =", simplified)
print("Expected =", expected)
print("Difference =", sp.simplify(expr-expected))
print("Original exclusions: x != -1, 0, 1")
Utskrift fra Python:
Original expression = (x + 1)/(x**2 + x) + (2*x + 2)/(x**2 - x) - (2*x + 2)/(x**2 - 1) + 1/x
Common-denominator form = 2*(-x*(x - 1)*(x + 1) + (x - 1)*(x**2 - 1) + (x + 1)*(x**2 - 1))/(x*(x - 1)*(x**2 - 1))
Simplified = 2/(x - 1)
Expected = 2/(x - 1)
Difference = 0
Original exclusions: x != -1, 0, 1

Fasit: \(\dfrac2{x-1}\), med \(x\neq-1,0,1\).

Vanlig feil: Å miste opprinnelige definisjonsbegrensninger etter forkorting.
Sensorpunkt: Faktorisering, fortegn og domene må være korrekte.
Del 1 - Oppgave 2bLogaritmeregler

Oppgave 2b

Oppgave: Skriv så enkelt som mulig: \[\ln(4x)+3\ln\!\left(\frac x2\right)+\ln(2x^2).\]
Vis løsning

Hva spør oppgaven om? Vi bruker produkt-, kvotient- og potensregelen for logaritmer. Uttrykket krever \(x>0\).

Steg 1 – Utvid første logaritme

\(\ln(4x)=\ln4+\ln x\).

Steg 2 – Utvid kvotienten

\(3\ln(x/2)=3\ln x-3\ln2\).

Steg 3 – Utvid siste ledd

\(\ln(2x^2)=\ln2+2\ln x\).

Steg 4 – Samle x-ledd

\(\ln x+3\ln x+2\ln x=6\ln x\).

Steg 5 – Samle konstanter

\(\ln4-3\ln2+\ln2=2\ln2-2\ln2=0\).

Steg 6 – Konklusjon

\[6\ln x=\ln(x^6).\]

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Expand[ln(4x)+3ln(x/2)+ln(2x^2)]
\(6\ln x\)

Tolkning: Alle konstante logaritmeledd kansellerer når x>0.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", positive=True)
expr = sp.log(4*x) + 3*sp.log(x/2) + sp.log(2*x**2)
expanded = sp.expand_log(expr, force=True)
simplified = sp.simplify(expanded)
print("Original expression =", expr)
print("Expanded logarithms =", expanded)
print("Simplified =", simplified)
print("As one logarithm =", sp.log(x**6))
print("Difference from 6*log(x) =", sp.simplify(simplified-6*sp.log(x)))
print("Domain: x > 0")
Utskrift fra Python:
Original expression = 3*log(x/2) + log(4*x) + log(2*x**2)
Expanded logarithms = 6*log(x)
Simplified = 6*log(x)
As one logarithm = log(x**6)
Difference from 6*log(x) = 0
Domain: x > 0

Fasit: \(6\ln x=\ln(x^6)\), for \(x>0\).

Vanlig feil: Å bruke logaritmereglene uten å kontrollere at \(x>0\).
Sensorpunkt: Kanselleringen av konstantleddene skal vises.
Del 1 - Oppgave 3aParameterframstillinger

Oppgave 3a

Oppgave: Punktene \(A(2,2)\), \(B(6,1)\), \(C(6,5)\) og \(D(2,6)\) er gitt. Finn parameterframstillinger for linjen \(\ell\) gjennom A og C og linjen m gjennom B og D.
Vis løsning

Hva spør oppgaven om? Vi finner en retningsvektor for hver linje ved å trekke koordinatene fra hverandre.

Steg 1 – Retning for l

\(\overrightarrow{AC}=(6-2,5-2)=(4,3)\).

Steg 2 – Parameterframstilling for l

\[\ell:\ (x,y)=(2,2)+t(4,3),\quad t\in\mathbb R.\]

Steg 3 – Retning for m

\(\overrightarrow{BD}=(2-6,6-1)=(-4,5)\).

Steg 4 – Parameterframstilling for m

\[m:\ (x,y)=(6,1)+s(-4,5),\quad s\in\mathbb R.\]

Steg 5 – Punktkontroll

For \(t=1\) får vi C, og for \(s=1\) får vi D.

Illustrasjon til Oppgave 3a
De to linjene og skjæringspunktet S.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Line[(2,2),(6,5)]
Linjen \(\ell\)
2
Line[(6,1),(2,6)]
Linjen \(m\)

Tolkning: GeoGebra lager linjene fra de to punktparene.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
A = sp.Matrix([2,2]); B = sp.Matrix([6,1]); C = sp.Matrix([6,5]); D = sp.Matrix([2,6])
v_l = C-A
v_m = D-B
print("A =", tuple(A))
print("C =", tuple(C))
print("Direction AC =", tuple(v_l))
print("l(t) = (2, 2) + t*(4, 3)")
print("B =", tuple(B))
print("D =", tuple(D))
print("Direction BD =", tuple(v_m))
print("m(s) = (6, 1) + s*(-4, 5)")
print("Endpoint checks =", tuple(A+v_l), tuple(B+v_m))
Utskrift fra Python:
A = (2, 2)
C = (6, 5)
Direction AC = (4, 3)
l(t) = (2, 2) + t*(4, 3)
B = (6, 1)
D = (2, 6)
Direction BD = (-4, 5)
m(s) = (6, 1) + s*(-4, 5)
Endpoint checks = (6, 5) (2, 6)

Fasit: \(\ell:(x,y)=(2,2)+t(4,3)\) og \(m:(x,y)=(6,1)+s(-4,5)\).

Vanlig feil: Å bruke punktet som retningsvektor.
Sensorpunkt: Retningsvektorene skal være beregnet fra riktige punktpar.
Del 1 - Oppgave 3bSkjæringspunkt mellom parameterlinjer

Oppgave 3b

Oppgave: Bestem ved regning skjæringspunktet mellom \(\ell\) og m.
Vis løsning

Hva spør oppgaven om? I et skjæringspunkt må x- og y-koordinatene fra de to parameterframstillingene være like.

Steg 1 – Sett x-koordinatene like

\[2+4t=6-4s.\]

Steg 2 – Sett y-koordinatene like

\[2+3t=1+5s.\]

Steg 3 – Forenkle første likning

\(t+s=1\).

Steg 4 – Sett \(s=1-t\)

\[2+3t=1+5(1-t).\]

Steg 5 – Løs

\(8t=4\), altså \(t=1/2\) og \(s=1/2\).

Steg 6 – Finn punktet

\[(x,y)=(2,2)+\frac12(4,3)=\left(4,\frac72\right).\]

Steg 7 – Kontroll i m

\((6,1)+\frac12(-4,5)=(4,7/2)\).

Illustrasjon til Oppgave 3b
S ligger i punktet (4, 7/2).

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Intersect[Line[(2,2),(6,5)],Line[(6,1),(2,6)]]
\((4,3.5)\)

Tolkning: Skjæringspunktet har eksakt y-koordinat 7/2.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
t, s = sp.symbols("t s", real=True)
solutions = sp.solve([sp.Eq(2+4*t,6-4*s), sp.Eq(2+3*t,1+5*s)],[t,s], dict=True)
sol = solutions[0]
point_l = (sp.simplify(2+4*sol[t]), sp.simplify(2+3*sol[t]))
point_m = (sp.simplify(6-4*sol[s]), sp.simplify(1+5*sol[s]))
print("Solutions =", solutions)
print("Point from l =", point_l)
print("Point from m =", point_m)
print("Points agree =", point_l==point_m)
print("Decimal point =", tuple(sp.N(v) for v in point_l))
Utskrift fra Python:
Solutions = [{s: 1/2, t: 1/2}]
Point from l = (4, 7/2)
Point from m = (4, 7/2)
Points agree = True
Decimal point = (4.00000000000000, 3.50000000000000)

Fasit: Skjæringspunktet er \(\left(4,\dfrac72\right)\).

Vanlig feil: Å bruke samme parameter på begge linjene uten begrunnelse.
Sensorpunkt: Begge koordinatlikningene og innsettingen skal dokumenteres.
Del 1 - Oppgave 3cSkalarprodukt og normalitet

Oppgave 3c

Oppgave: Avgjør om \(\ell\) og m står normalt på hverandre.
Vis løsning

Hva spør oppgaven om? To linjer er normale dersom skalarproduktet av retningsvektorene er 0.

Steg 1 – Retningsvektorene

\(\vec u=(4,3)\) og \(\vec v=(-4,5)\).

Steg 2 – Skalarprodukt

\[\vec u\cdot\vec v=4(-4)+3\cdot5.\]

Steg 3 – Regn ut

\[-16+15=-1.\]

Steg 4 – Konklusjon

Siden skalarproduktet ikke er 0, står linjene ikke normalt på hverandre.

Steg 5 – Nær, men ikke rett vinkel

At produktet er nær 0 er ikke nok; det må være nøyaktig 0.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Dot[(4,3),(-4,5)]
\(-1\)

Tolkning: Skalarproduktet er ikke null, så vinkelen er ikke 90 grader.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
u = sp.Matrix([4,3]); v = sp.Matrix([-4,5])
dot = u.dot(v)
cos_angle = sp.N(dot/(sp.sqrt(u.dot(u))*sp.sqrt(v.dot(v))), 12)
angle = sp.N(sp.acos(dot/(sp.sqrt(u.dot(u))*sp.sqrt(v.dot(v))))*180/sp.pi, 12)
print("u =", tuple(u))
print("v =", tuple(v))
print("Dot product =", dot)
print("Perpendicular =", dot==0)
print("cos(angle) =", cos_angle)
print("Angle in degrees =", angle)
Utskrift fra Python:
u = (4, 3)
v = (-4, 5)
Dot product = -1
Perpendicular = False
cos(angle) = -0.0312347523777
Angle in degrees = 91.7899106082

Fasit: Nei. \((4,3)\cdot(-4,5)=-1\neq0\).

Vanlig feil: Å konkludere med normalitet fordi linjene ser nesten vinkelrette ut.
Sensorpunkt: Skalarproduktet må beregnes nøyaktig.
Del 1 - Oppgave 4Optimering av rektangel

Oppgave 4

Oppgave: \(f(x)=\dfrac5{x^2+4}\). Rektangelet har hjørner \(A(-t,0)\), \(B(t,0)\), \(C(t,f(t))\), \(D(-t,f(-t))\), der \(t>0\). Finn størst mulig areal.
Vis løsning

Hva spør oppgaven om? Bredden er 2t, og siden f er en jevn funksjon, er høyden f(t). Vi maksimerer arealfunksjonen.

Steg 1 – Bredde og høyde

Bredden er \(2t\), og høyden er \(5/(t^2+4)\).

Steg 2 – Arealfunksjon

\[A(t)=\frac{10t}{t^2+4},\qquad t>0.\]

Steg 3 – Deriver med kvotientregelen

\[A^\prime(t)=\frac{10(t^2+4)-20t^2}{(t^2+4)^2}=\frac{10(4-t^2)}{(t^2+4)^2}.\]

Steg 4 – Kritisk punkt

\(A^\prime(t)=0\Rightarrow t^2=4\Rightarrow t=2\), siden \(t>0\).

Steg 5 – Fortegn

Den deriverte er positiv for \(0<t<2\) og negativ for \(t>2\), så punktet gir maksimum.

Steg 6 – Maksimalt areal

\[A(2)=\frac{20}{8}=\frac52.\]

Steg 7 – Enhet

Oppgaven oppgir ingen lengdeenhet, så arealet oppgis i kvadratenheter.

Illustrasjon til Oppgave 4
Rektangelet med t=2 har maksimal flate.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
A(t):=10t/(t^2+4)
Arealfunksjon
2
Extremum[A,0,10]
\((2,2.5)\)

Tolkning: Grafen og CAS viser maksimum ved t=2.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
t = sp.symbols("t", positive=True)
A = 10*t/(t**2+4)
A_prime = sp.factor(sp.diff(A,t))
critical = sp.solve(sp.Eq(sp.together(A_prime).as_numer_denom()[0],0),t)
maximum = sp.simplify(A.subs(t,2))
print("A(t) =", A)
print("A'(t) =", A_prime)
print("Positive critical points =", critical)
print("A(2) =", maximum)
print("A'(1) =", sp.N(A_prime.subs(t,1)))
print("A'(3) =", sp.N(A_prime.subs(t,3)))
print("Maximum confirmed by sign change =", A_prime.subs(t,1)>0 and A_prime.subs(t,3)<0)
Utskrift fra Python:
A(t) = 10*t/(t**2 + 4)
A'(t) = -10*(t - 2)*(t + 2)/(t**2 + 4)**2
Positive critical points = [2]
A(2) = 5/2
A'(1) = 1.20000000000000
A'(3) = -0.295857988165680
Maximum confirmed by sign change = True

Fasit: Det største arealet er \(\dfrac52=2{,}5\) kvadratenheter, ved \(t=2\).

Vanlig feil: Å bruke høyden \(2f(t)\) eller glemme at bredden er \(2t\).
Sensorpunkt: Arealfunksjon, derivert, fortegn og maksimumsverdi må vises.
Del 1 - Oppgave 5aImplikasjon og ekvivalens

Oppgave 5a

Oppgave: Fyll inn riktig symbol i \[\lg x^2=2\quad\square\quad x=10.\]
Vis løsning

Hva spør oppgaven om? Vi løser venstre utsagn og undersøker begge implikasjonsretningene.

Steg 1 – Løs venstre utsagn

\(\lg x^2=2\Rightarrow x^2=10^2=100\).

Steg 2 – To løsninger

\(x=10\) eller \(x=-10\).

Steg 3 – Venstre til høyre?

Nei, fordi \(x=-10\) oppfyller venstre utsagn, men ikke \(x=10\).

Steg 4 – Høyre til venstre?

Ja. Dersom \(x=10\), er \(\lg(10^2)=\lg100=2\).

Steg 5 – Symbol

Venstre utsagn følger av høyre: \(\lg x^2=2\Leftarrow x=10\).

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Solve[lg(x^2)=2,x]
\(x=-10\) eller \(x=10\)

Tolkning: To løsninger på venstresiden utelukker ekvivalens.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
solutions = sp.solve(sp.Eq(x**2,100),x)
left_at_10 = sp.log(10**2,10)
left_at_minus10 = sp.log((-10)**2,10)
print("Solutions of x^2 = 100 =", solutions)
print("Left statement at x=10 =", left_at_10)
print("Left statement at x=-10 =", left_at_minus10)
print("Left implies x=10 =", solutions==[10])
print("x=10 implies left =", left_at_10==2)
print("Correct symbol: <= (left follows from right)")
Utskrift fra Python:
Solutions of x^2 = 100 = [-10, 10]
Left statement at x=10 = 2
Left statement at x=-10 = 2
Left implies x=10 = False
x=10 implies left = True
Correct symbol: <= (left follows from right)

Fasit: \(\lg x^2=2\Leftarrow x=10\).

Vanlig feil: Å ta kvadratroten og bare beholde den positive løsningen.
Sensorpunkt: Begge implikasjonsretningene må vurderes.
Del 1 - Oppgave 5bUlikhet og intervall

Oppgave 5b

Oppgave: Fyll inn riktig symbol i \[x^2-2x<0\quad\square\quad x\in(0,1).\]
Vis løsning

Hva spør oppgaven om? Vi løser ulikheten og sammenligner løsningsmengden med intervallet på høyre side.

Steg 1 – Faktoriser

\[x^2-2x=x(x-2).\]

Steg 2 – Nullpunkter

Nullpunktene er 0 og 2.

Steg 3 – Fortegn

Produktet er negativt mellom nullpunktene.

Steg 4 – Løsningsmengde

\[x^2-2x<0\iff x\in(0,2).\]

Steg 5 – Sammenlign

Alle \(x\in(0,1)\) ligger i \((0,2)\), men ikke omvendt.

Steg 6 – Symbol

Venstre utsagn følger av høyre: \(x^2-2x<0\Leftarrow x\in(0,1)\).

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Solve[x^2-2x<0,x]
\(0<x<2\)

Tolkning: Høyre intervall er en ekte delmengde av løsningsintervallet.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
solution = sp.solve_univariate_inequality(x**2-2*x<0,x)
print("Factorization =", sp.factor(x**2-2*x))
print("Solution of inequality =", solution)
print("Test x=0.5 gives =", sp.N((x**2-2*x).subs(x,sp.Rational(1,2))))
print("Test x=1.5 gives =", sp.N((x**2-2*x).subs(x,sp.Rational(3,2))))
print("Left implies x in (0,1) = False")
print("x in (0,1) implies left = True")
print("Correct symbol: <= (left follows from right)")
Utskrift fra Python:
Factorization = x*(x - 2)
Solution of inequality = (0 < x) & (x < 2)
Test x=0.5 gives = -0.750000000000000
Test x=1.5 gives = -0.750000000000000
Left implies x in (0,1) = False
x in (0,1) implies left = True
Correct symbol: <= (left follows from right)

Fasit: \(x^2-2x<0\Leftarrow x\in(0,1)\).

Vanlig feil: Å tro at løsningen er \((0,1)\) i stedet for \((0,2)\).
Sensorpunkt: Fortegnslinje eller tilsvarende begrunnelse må være korrekt.
Del 1 - Oppgave 6aSirkulære permutasjoner

Oppgave 6a

Oppgave: Siv, Audun og fire venner skal plassere seg i ring. Begrunn at det finnes 120 ulike plasseringer.
Vis løsning

Hva spør oppgaven om? Rotasjoner av samme ring regnes som samme plassering, så vi fester én person og ordner de andre.

Steg 1 – Seks personer på linje

På linje ville det vært \(6!\) rekkefølger.

Steg 2 – Rotasjonsoverlapper

Hver ringplassering kan roteres på 6 måter uten å endres.

Steg 3 – Del på 6

\[\frac{6!}{6}=5!.\]

Steg 4 – Regn ut

\[5!=5\cdot4\cdot3\cdot2\cdot1=120.\]

Steg 5 – Alternativ forklaring

Fest Siv på én plass. De fem andre kan ordnes på \(5!\) måter.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
5!
\(120\)

Tolkning: Når én person festes, gjenstår fem frie plasser.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import math
line_arrangements = math.factorial(6)
rotations_per_circle = 6
circle_arrangements = line_arrangements // rotations_per_circle
fixed_person_method = math.factorial(5)
print("Linear arrangements =", line_arrangements)
print("Rotations per circular arrangement =", rotations_per_circle)
print("Circular arrangements =", circle_arrangements)
print("Fixed-person method =", fixed_person_method)
print("Methods agree =", circle_arrangements==fixed_person_method)
Utskrift fra Python:
Linear arrangements = 720
Rotations per circular arrangement = 6
Circular arrangements = 120
Fixed-person method = 120
Methods agree = True

Fasit: Det finnes \(5!=120\) ulike plasseringer i ringen.

Vanlig feil: Å bruke \(6!\) og telle rotasjoner som forskjellige.
Sensorpunkt: Det må forklares hvorfor én person kan festes eller hvorfor det deles på 6.
Del 1 - Oppgave 6bNabosannsynlighet i ring

Oppgave 6b

Oppgave: Bestem sannsynligheten for at Siv får holde Audun i hånden ved tilfeldig plassering i ringen.
Vis løsning

Hva spør oppgaven om? Når Siv er festet, har Audun fem mulige plasser, og to av dem er naboplasser.

Steg 1 – Fest Siv

Rotasjonen av ringen spiller ingen rolle, så Siv kan holdes fast.

Steg 2 – Mulige plasser for Audun

Blant de fem resterende plassene er alle like sannsynlige.

Steg 3 – Gunstige plasser

Siv har én nabo på hver side, altså 2 gunstige plasser.

Steg 4 – Sannsynlighet

\[P=\frac25=0{,}4.\]

Steg 5 – Kombinatorisk kontroll

Gunstige ringplasseringer: \(2\cdot4!=48\), totalt \(5!=120\), og \(48/120=2/5\).

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
2/5
\(0.4\)

Tolkning: To av fem mulige plasseringer for Audun gir naboskap.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import math
favourable_positions = 2
total_positions = 5
probability = favourable_positions/total_positions
favourable_arrangements = 2*math.factorial(4)
total_arrangements = math.factorial(5)
print("Favourable neighbour positions =", favourable_positions)
print("Possible positions for Audun =", total_positions)
print("Probability =", probability)
print("Favourable circular arrangements =", favourable_arrangements)
print("Total circular arrangements =", total_arrangements)
print("Arrangement ratio =", favourable_arrangements/total_arrangements)
Utskrift fra Python:
Favourable neighbour positions = 2
Possible positions for Audun = 5
Probability = 0.4
Favourable circular arrangements = 48
Total circular arrangements = 120
Arrangement ratio = 0.4

Fasit: Sannsynligheten er \(\dfrac25=40\%\).

Vanlig feil: Å bruke 2 av 6 plasser; Siv kan ikke stå på sin egen plass.
Sensorpunkt: Utvalgsrommet må være fem mulige plasser for Audun.
Del 1 - Oppgave 6cNabosannsynlighet på linje

Oppgave 6c

Oppgave: På et bilde står de seks på linje. Bestem sannsynligheten for at Audun og Siv står ved siden av hverandre.
Vis løsning

Hva spør oppgaven om? Vi behandler Audun og Siv som én blokk og tar hensyn til intern rekkefølge.

Steg 1 – Totalt antall

Seks personer kan ordnes på \(6!\) måter.

Steg 2 – Lag en blokk

AS-blokken og de fire andre gir 5 objekter.

Steg 3 – Ordne objektene

De 5 objektene kan ordnes på \(5!\) måter.

Steg 4 – Intern rekkefølge

I blokken kan rekkefølgen være AS eller SA, altså faktor 2.

Steg 5 – Gunstige

\(2\cdot5!\).

Steg 6 – Sannsynlighet

\[P=\frac{2\cdot5!}{6!}=\frac26=\frac13.\]

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
2*5!/6!
\(1/3\)

Tolkning: Blokkmetoden gir eksakt en tredel.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import math
favourable = 2*math.factorial(5)
total = math.factorial(6)
probability = favourable/total
print("Favourable arrangements =", favourable)
print("Total arrangements =", total)
print("Probability =", probability)
print("Exact numerator after reduction = 1")
print("Exact denominator after reduction = 3")
Utskrift fra Python:
Favourable arrangements = 240
Total arrangements = 720
Probability = 0.3333333333333333
Exact numerator after reduction = 1
Exact denominator after reduction = 3

Fasit: Sannsynligheten er \(\dfrac13\).

Vanlig feil: Å glemme at blokken kan ha to interne rekkefølger.
Sensorpunkt: Både blokkmetoden og totalantallet \(6!\) må være riktig.
Del 1 - Oppgave 7aInnskrevne vinkler

Oppgave 7a

Oppgave: Forklar at \(\angle BAC=\angle BDC\) i den sykliske firkanten ABCD.
Vis løsning

Hva spør oppgaven om? Begge vinklene er innskrevne vinkler som spenner over den samme korden BC.

Steg 1 – Identifiser korden

Vinkelen \(\angle BAC\) har endepunktene B og C på sirkelen.

Steg 2 – Den andre vinkelen

Vinkelen \(\angle BDC\) har også endepunktene B og C.

Steg 3 – Samme bue

Begge spenner over buen BC som ikke inneholder vinkelpunktet.

Steg 4 – Periferivinkelsetningen

Innskrevne vinkler som spenner over samme bue, er like store.

Steg 5 – Konklusjon

\[\angle BAC=\angle BDC.\]

Illustrasjon til Oppgave 7a
Begge markerte vinkler spenner over korden BC.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
CircularArc[(0,0),B,C]
Buen BC

Tolkning: GeoGebra kan måle begge periferivinklene og vise at de er like.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
alpha = sp.symbols("alpha", positive=True)
angle_BAC = alpha/2
angle_BDC = alpha/2
print("Central angle over arc BC =", alpha)
print("Angle BAC =", angle_BAC)
print("Angle BDC =", angle_BDC)
print("Difference =", sp.simplify(angle_BAC-angle_BDC))
print("Reason: both inscribed angles subtend chord BC")
Utskrift fra Python:
Central angle over arc BC = alpha
Angle BAC = alpha/2
Angle BDC = alpha/2
Difference = 0
Reason: both inscribed angles subtend chord BC

Fasit: Vinklene er like fordi begge er periferivinkler over korden BC.

Vanlig feil: Å begrunne med at firkanten bare ser symmetrisk ut.
Sensorpunkt: Korden/buen BC og periferivinkelsetningen skal nevnes.
Del 1 - Oppgave 7bFormlikhet i Ptolemaios-beviset

Oppgave 7b

Oppgave: Punktet E ligger på BD slik at \(\angle DCE=\angle ACB\). Forklar at \(\triangle DEC\sim\triangle ABC\), og vis at \(ED\cdot AC=AB\cdot DC\).
Vis løsning

Hva spør oppgaven om? Vi finner to par like vinkler og bruker deretter forholdet mellom samsvarende sider.

Steg 1 – Ett vinkelpar

\(\angle DCE=\angle ACB\) ved konstruksjonen.

Steg 2 – Det andre vinkelparet

Fordi E ligger på BD, er \(\angle EDC=\angle BDC\). Fra a er \(\angle BDC=\angle BAC\).

Steg 3 – Formlikhet

Dermed er \(\triangle DEC\sim\triangle ABC\) ved vinkel–vinkel.

Steg 4 – Samsvar

D svarer til A, E til B og C til C.

Steg 5 – Sideforhold

\[\frac{ED}{AB}=\frac{DC}{AC}.\]

Steg 6 – Kryssmultipliser

\[ED\cdot AC=AB\cdot DC.\]

Illustrasjon til Oppgave 7b
Punktet E ligger på diagonalen BD i standardbeviset.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Angle[D,C,E]=Angle[A,C,B]
Konstruksjonsvilkår
2
AreCongruent[Triangle[D,E,C],Triangle[A,B,C]]
Nei; trekantene er formlike, ikke nødvendigvis kongruente

Tolkning: Målte vinkler og sideforhold dokumenterer formlikheten.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
ED, AB, DC, AC = sp.symbols("ED AB DC AC", positive=True)
ratio_equation = sp.Eq(ED/AB, DC/AC)
cross_multiplied = sp.Eq(ED*AC, AB*DC)
check = sp.simplify(ED/AB-DC/AC)
print("Similarity correspondence: D<->A, E<->B, C<->C")
print("Side ratio equation =", ratio_equation)
print("Cross-multiplied result =", cross_multiplied)
print("If ratio difference is zero, product difference is zero after multiplying by AB*AC")
print("Symbolic multiplied difference =", sp.expand(check*AB*AC))
Utskrift fra Python:
Similarity correspondence: D<->A, E<->B, C<->C
Side ratio equation = Eq(ED/AB, DC/AC)
Cross-multiplied result = Eq(AC*ED, AB*DC)
If ratio difference is zero, product difference is zero after multiplying by AB*AC
Symbolic multiplied difference = -AB*DC + AC*ED

Fasit: \(\triangle DEC\sim\triangle ABC\), og derfor \(ED\cdot AC=AB\cdot DC\).

Vanlig feil: Å bruke feil samsvar mellom hjørnene i de formlike trekantene.
Sensorpunkt: Begge vinkelpar og det riktige sideforholdet må vises.
Del 1 - Oppgave 7cAndre formlikhet i Ptolemaios-beviset

Oppgave 7c

Oppgave: Forklar at \(\triangle ACD\sim\triangle BCE\), og vis at \(BE\cdot AC=BC\cdot AD\).
Vis løsning

Hva spør oppgaven om? Vi sammenligner vinklene ved C og bruker at motstående vinkler i en syklisk firkant er supplementære.

Steg 1 – Vinkelen ved C

\(\angle ACD=\angle ACB+\angle BCD\).

Steg 2 – Bruk konstruksjonen

\(\angle BCE=\angle BCD+\angle DCE=\angle BCD+\angle ACB\). Dermed er \(\angle ACD=\angle BCE\).

Steg 3 – Vinkelen ved E

\(\angle BEC\) er supplementvinkelen til \(\angle DEC\). Fra b er \(\angle DEC=\angle ABC\).

Steg 4 – Syklisk firkant

\(\angle ADC+\angle ABC=180^{\circ}\). Derfor er \(\angle BEC=\angle ADC\).

Steg 5 – Formlikhet

\(\triangle ACD\sim\triangle BCE\).

Steg 6 – Sideforhold

\[\frac{BE}{AD}=\frac{BC}{AC}.\]

Steg 7 – Kryssmultipliser

\[BE\cdot AC=BC\cdot AD.\]

Illustrasjon til Oppgave 7c
De to formlikhetene deler opp diagonalen BD.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Angle[A,C,D]=Angle[B,C,E]
Lik vinkel ved C
2
Angle[A,D,C]=Angle[B,E,C]
Lik andre vinkel

Tolkning: To like vinkelpar gir formlikhet med samsvar A↔B, C↔C, D↔E.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
BE, AD, BC, AC = sp.symbols("BE AD BC AC", positive=True)
ratio_equation = sp.Eq(BE/AD, BC/AC)
product_equation = sp.Eq(BE*AC, BC*AD)
print("Similarity correspondence: A<->B, C<->C, D<->E")
print("Side ratio equation =", ratio_equation)
print("Product equation =", product_equation)
print("Cross multiplication check =", sp.expand((BE/AD-BC/AC)*AD*AC))
print("This equals BE*AC - BC*AD")
Utskrift fra Python:
Similarity correspondence: A<->B, C<->C, D<->E
Side ratio equation = Eq(BE/AD, BC/AC)
Product equation = Eq(AC*BE, AD*BC)
Cross multiplication check = AC*BE - AD*BC
This equals BE*AC - BC*AD

Fasit: \(\triangle ACD\sim\triangle BCE\), og derfor \(BE\cdot AC=BC\cdot AD\).

Vanlig feil: Å anta formlikhet uten å etablere to vinkelpar.
Sensorpunkt: Vinkelargumentet og korrekt samsvar skal være tydelig.
Del 1 - Oppgave 7dSammenstilling av Ptolemaios’ setning

Oppgave 7d

Oppgave: Bruk resultatene fra b og c til å vise \[AC\cdot BD=AB\cdot DC+BC\cdot AD.\]
Vis løsning

Hva spør oppgaven om? Punktet E deler diagonalen BD i delene BE og ED. Vi multipliserer denne summen med AC.

Steg 1 – Del diagonalen

Fordi E ligger på BD, er \(BD=BE+ED\).

Steg 2 – Multipliser med AC

\[AC\cdot BD=AC(BE+ED).\]

Steg 3 – Fordel

\[AC\cdot BD=AC\cdot BE+AC\cdot ED.\]

Steg 4 – Bruk del c

\(AC\cdot BE=BC\cdot AD\).

Steg 5 – Bruk del b

\(AC\cdot ED=AB\cdot DC\).

Steg 6 – Sett inn

\[AC\cdot BD=BC\cdot AD+AB\cdot DC.\]

Steg 7 – Bytt rekkefølge

Dette er nøyaktig Ptolemaios’ setning.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Expand[AC*(BE+ED)]
\(AC\,BE+AC\,ED\)

Tolkning: Etter substitusjon av de to produktidentitetene fås Ptolemaios direkte.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
AC, BE, ED, BC, AD, AB, DC = sp.symbols("AC BE ED BC AD AB DC")
BD = BE+ED
expression = sp.expand(AC*BD)
substituted = expression.subs({AC*BE:BC*AD, AC*ED:AB*DC})
print("BD = BE + ED")
print("AC*BD expanded =", expression)
print("Use AC*BE = BC*AD")
print("Use AC*ED = AB*DC")
print("Result =", substituted)
print("Target difference =", sp.expand(substituted-(AB*DC+BC*AD)))
Utskrift fra Python:
BD = BE + ED
AC*BD expanded = AC*BE + AC*ED
Use AC*BE = BC*AD
Use AC*ED = AB*DC
Result = AB*DC + AD*BC
Target difference = 0

Fasit: \(AC\cdot BD=AB\cdot DC+BC\cdot AD\).

Vanlig feil: Å glemme at BD er summen BE+ED.
Sensorpunkt: Begge delresultatene skal settes inn i riktig ledd.
Del 1 - Oppgave 7ePytagoras fra Ptolemaios

Oppgave 7e

Oppgave: Bruk Ptolemaios’ setning og den viste sykliske firkanten til å bevise Pytagoras’ setning.
Vis løsning

Hva spør oppgaven om? Figuren er et rektangel innskrevet i en sirkel. Sidene har lengder a og b, mens begge diagonalene har lengde c.

Steg 1 – Identifiser lengdene

\(AB=CD=a\), \(BC=AD=b\), og \(AC=BD=c\).

Steg 2 – Bruk Ptolemaios

\[AC\cdot BD=AB\cdot DC+BC\cdot AD.\]

Steg 3 – Sett inn lengdene

\[c\cdot c=a\cdot a+b\cdot b.\]

Steg 4 – Forenkle

\[c^2=a^2+b^2.\]

Steg 5 – Tolkning

Trekant ABC er rettvinklet fordi en vinkel som spenner over diameteren AC er 90 grader.

Steg 6 – Konklusjon

Likningen er Pytagoras’ setning for katetene a,b og hypotenusen c.

Illustrasjon til Oppgave 7e
I det innskrevne rektangelet er begge diagonalene c.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Simplify[c*c-(a*a+b*b)]
\(c^2-a^2-b^2\)

Tolkning: Ptolemaios for rektangelet gir at uttrykket må være 0.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
a, b, c = sp.symbols("a b c", positive=True)
left = c*c
right = a*a+b*b
print("Ptolemy left AC*BD =", left)
print("Ptolemy right AB*DC + BC*AD =", right)
print("Resulting equation: c^2 = a^2 + b^2")
example_a, example_b = 3, 4
example_c = sp.sqrt(example_a**2+example_b**2)
print("Example a=3, b=4 gives c =", example_c)
print("Check c^2-a^2-b^2 =", sp.simplify(example_c**2-example_a**2-example_b**2))
Utskrift fra Python:
Ptolemy left AC*BD = c**2
Ptolemy right AB*DC + BC*AD = a**2 + b**2
Resulting equation: c^2 = a^2 + b^2
Example a=3, b=4 gives c = 5
Check c^2-a^2-b^2 = 0

Fasit: Ptolemaios gir \(c^2=a^2+b^2\), altså Pytagoras’ setning.

Vanlig feil: Å bruke bare én av diagonalene som c uten å forklare at diagonalene i et rektangel er like.
Sensorpunkt: Alle fire side- og to diagonallengder skal kobles korrekt til Ptolemaios.

Del 2 - med hjelpemidler

Del 2 - Oppgave 1aParameterkurve

Oppgave 1a

Oppgave: Posisjonsvektoren er \[\vec r(t)=\left(\frac{1-t^2}{t^2+1},\frac{t^2+2t}{t^2+1}\right),\qquad -10\le t\le10.\] Tegn grafen.
Vis løsning

Hva spør oppgaven om? Vi plotter x(t) mot y(t), ikke hver koordinat separat mot t.

Steg 1 – Koordinatfunksjoner

\(x(t)=(1-t^2)/(t^2+1)\) og \(y(t)=(t^2+2t)/(t^2+1)\).

Steg 2 – Viktige punkt

\(\vec r(0)=(1,0)\). For store positive og negative t nærmer x seg -1 og y seg 1.

Steg 3 – Parameterplot

La t løpe fra -10 til 10 og tegn punktene \((x(t),y(t))\).

Steg 4 – Retning

Økende t bestemmer bevegelsesretningen langs kurven.

Steg 5 – Implisitt kontroll

Eliminasjon av t gir \(5x^2+4xy-2x+4y^2-4y-3=0\).

Steg 6 – Avgrensning

Bare den delen som svarer til \(-10\le t\le10\), skal tegnes.

Illustrasjon til Oppgave 1a
Kurven er tegnet med t som felles parameter.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Curve[(1-t^2)/(t^2+1),(t^2+2t)/(t^2+1),t,-10,10]
Parameterkurven

Tolkning: Curve-kommandoen tegner x- og y-koordinatene med samme parameter.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
t, X, Y = sp.symbols("t X Y", real=True)
x = (1-t**2)/(t**2+1)
y = (t**2+2*t)/(t**2+1)
num1 = sp.together(X-x).as_numer_denom()[0]
num2 = sp.together(Y-y).as_numer_denom()[0]
implicit = sp.factor(sp.resultant(num1,num2,t))
print("x(t) =", x)
print("y(t) =", y)
print("r(0) =", (x.subs(t,0),y.subs(t,0)))
print("r(-10) =", (sp.N(x.subs(t,-10),8),sp.N(y.subs(t,-10),8)))
print("r(10) =", (sp.N(x.subs(t,10),8),sp.N(y.subs(t,10),8)))
print("Implicit curve equation =", implicit, "= 0")
Utskrift fra Python:
x(t) = (1 - t**2)/(t**2 + 1)
y(t) = (t**2 + 2*t)/(t**2 + 1)
r(0) = (1, 0)
r(-10) = (-0.98019802, 0.79207921)
r(10) = (-0.98019802, 1.1881188)
Implicit curve equation = 5*X**2 + 4*X*Y - 2*X + 4*Y**2 - 4*Y - 3 = 0

Fasit: Grafen er parameterkurven vist i figuren, for \(-10\le t\le10\).

Vanlig feil: Å tegne x(t) og y(t) som to vanlige funksjonsgrafer i samme koordinatsystem.
Sensorpunkt: Parameterkommando, intervall og akseplassering må dokumenteres.
Del 2 - Oppgave 1bMaksimal fart

Oppgave 1b

Oppgave: Ved hvilket tidspunkt var farten til partikkelen størst?
Vis løsning

Hva spør oppgaven om? Farten er lengden av hastighetsvektoren \(ec r\,^\prime(t)\). Det er enklere å maksimere fartens kvadrat.

Steg 1 – Deriver x-koordinaten

\[x^\prime(t)=\frac{-4t}{(t^2+1)^2}.\]

Steg 2 – Deriver y-koordinaten

\[y^\prime(t)=\frac{-2(t^2-t-1)}{(t^2+1)^2}.\]

Steg 3 – Fartens kvadrat

\[v^2(t)=x^\prime(t)^2+y^\prime(t)^2.\]

Steg 4 – Deriver numerisk/CAS

Likningen \((v^2)^\prime=0\) har én reell løsning i intervallet: \(t\approx0{,}254674\).

Steg 5 – Endepunkter

Vi sammenligner med \(t=-10\) og \(t=10\); fartene der er svært små.

Steg 6 – Maksimum

Ved det kritiske punktet er \(v\approx2{,}28279\), større enn ved endepunktene.

Steg 7 – Svar

Farten er størst etter omtrent \(0{,}255\) sekunder.

Illustrasjon til Oppgave 1b
Punktet med størst fart er markert på parameterkurven.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
x(t):=(1-t^2)/(t^2+1)
x-koordinat
2
y(t):=(t^2+2t)/(t^2+1)
y-koordinat
3
v(t):=sqrt(x'(t)^2+y'(t)^2)
Fartsfunksjon
4
Extremum[v, -10, 10]
\(t\approx0.254674\)

Tolkning: Et numerisk ekstremumsøk må inkludere endepunktene.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
import math
t = sp.symbols("t", real=True)
x = (1-t**2)/(t**2+1)
y = (t**2+2*t)/(t**2+1)
dx = sp.factor(sp.diff(x,t)); dy = sp.factor(sp.diff(y,t))
v2 = sp.factor(dx**2+dy**2)
dv2_num = sp.factor(sp.together(sp.diff(v2,t)).as_numer_denom()[0])
roots = [z for z in sp.nroots(dv2_num) if abs(complex(z).imag)<1e-10]
t_star = float(sp.re(roots[0]))
values = {"t=-10":float(v2.subs(t,-10)),"t=t*":float(v2.subs(t,t_star)),"t=10":float(v2.subs(t,10))}
print("x'(t) =", dx)
print("y'(t) =", dy)
print("v(t)^2 =", v2)
print("Numerator of derivative of v^2 =", dv2_num)
print("Real critical time =", t_star)
print("Squared-speed comparisons =", values)
print("Maximum speed =", math.sqrt(values["t=t*"]))
Utskrift fra Python:
x'(t) = -4*t/(t**2 + 1)**2
y'(t) = -2*(t**2 - t - 1)/(t**2 + 1)**2
v(t)^2 = 4*(t**4 - 2*t**3 + 3*t**2 + 2*t + 1)/(t**2 + 1)**4
Numerator of derivative of v^2 = -8*(2*t**5 - 5*t**4 + 7*t**3 + 10*t**2 + t - 1)
Real critical time = 0.2546744458213951
Squared-speed comparisons = {'t=-10': 0.00047207198442373867, 't=t*': 5.211123753440004, 't=10': 0.0003198526978576606}
Maximum speed = 2.2827885914906805

Fasit: Farten er størst ved \(t\approx0{,}2547\) s, altså omtrent \(0{,}255\) s.

Vanlig feil: Å maksimere bare én av koordinatderivatene.
Sensorpunkt: Hastighetslengden, kritisk punkt og endepunktskontroll skal dokumenteres.
Del 2 - Oppgave 1cBevegelse parallelt med x-aksen

Oppgave 1c

Oppgave: Ved hvilke tidspunkt beveget partikkelen seg parallelt med x-aksen?
Vis løsning

Hva spør oppgaven om? Hastighetsvektoren er parallell med x-aksen når y-komponenten er 0 og x-komponenten ikke er 0.

Steg 1 – y-komponenten i hastigheten

\[y^\prime(t)=\frac{-2(t^2-t-1)}{(t^2+1)^2}.\]

Steg 2 – Sett lik 0

Nevneren er alltid positiv, så \(t^2-t-1=0\).

Steg 3 – Andregradslikningen

\[t=\frac{1\pm\sqrt5}{2}.\]

Steg 4 – Intervallkontroll

Begge verdiene ligger i \([-10,10]\).

Steg 5 – x-komponenten

\(x^\prime(t)=-4t/(t^2+1)^2\), og ingen av tidene er 0. Dermed er hastigheten ikke null.

Steg 6 – Desimaltall

\(t\approx-0{,}618\) s og \(t\approx1{,}618\) s.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Solve[Derivative[(t^2+2t)/(t^2+1)]=0,t]
\(t=(1-\sqrt5)/2\), \((1+\sqrt5)/2\)

Tolkning: Begge løsningene gir en horisontal tangent til parameterkurven.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
t = sp.symbols("t", real=True)
x = (1-t**2)/(t**2+1)
y = (t**2+2*t)/(t**2+1)
dx = sp.factor(sp.diff(x,t)); dy = sp.factor(sp.diff(y,t))
solutions = sp.solve(sp.Eq(dy,0),t)
print("x'(t) =", dx)
print("y'(t) =", dy)
print("Solutions y'(t)=0 =", solutions)
for value in solutions:
    print("t =", value, "decimal =", sp.N(value,10), "x'(t) =", sp.simplify(dx.subs(t,value)))
print("Both times are inside [-10, 10]")
Utskrift fra Python:
x'(t) = -4*t/(t**2 + 1)**2
y'(t) = -2*(t**2 - t - 1)/(t**2 + 1)**2
Solutions y'(t)=0 = [1/2 - sqrt(5)/2, 1/2 + sqrt(5)/2]
t = 1/2 - sqrt(5)/2 decimal = -0.6180339888 x'(t) = 2/5 + 2*sqrt(5)/5
t = 1/2 + sqrt(5)/2 decimal = 1.618033989 x'(t) = 2/5 - 2*sqrt(5)/5
Both times are inside [-10, 10]

Fasit: \(t=\dfrac{1-\sqrt5}{2}\) s og \(t=\dfrac{1+\sqrt5}{2}\) s.

Vanlig feil: Å sette x-komponenten lik 0 i stedet for y-komponenten.
Sensorpunkt: Det skal kontrolleres at hastighetsvektoren ikke er null.
Del 2 - Oppgave 2aKomplementær sannsynlighet

Oppgave 2a

Oppgave: Et ruletthjul har 37 tall, hvor ett er grønt. Finn sannsynligheten for grønt minst én gang i 10 spill.
Vis løsning

Hva spør oppgaven om? Vi bruker komplementet: ingen grønne utfall i alle de ti uavhengige spillene.

Steg 1 – Ett spill uten grønt

\(P(\text{ikke grønt})=36/37\).

Steg 2 – Ti spill uten grønt

\[P(0\text{ grønne})=\left(\frac{36}{37}\right)^{10}.\]

Steg 3 – Komplement

\[P(\text{minst ett grønt})=1-\left(\frac{36}{37}\right)^{10}.\]

Steg 4 – Beregn

\[P\approx0{,}239660.\]

Steg 5 – Prosent

Dette er omtrent \(23{,}97\%\).

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
1-(36/37)^10
\(0.2396601251\)

Tolkning: Komplementet er enklere enn å summere sannsynligheten for 1,2,...,10 grønne.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
from fractions import Fraction
p_no_green = Fraction(36,37)**10
p_at_least_one = 1-p_no_green
print("P(no green in one game) =", Fraction(36,37))
print("P(no green in 10 games) =", p_no_green)
print("P(at least one green) =", p_at_least_one)
print("Decimal probability =", float(p_at_least_one))
print("Percentage =", 100*float(p_at_least_one))
Utskrift fra Python:
P(no green in one game) = 36/37
P(no green in 10 games) = 3656158440062976/4808584372417849
P(at least one green) = 1152425932354873/4808584372417849
Decimal probability = 0.23966012512231558
Percentage = 23.966012512231558

Fasit: \(1-(36/37)^{10}\approx0{,}23966\), altså ca. \(23{,}97\%\).

Vanlig feil: Å bruke \(10/37\) som om hendelsene var gjensidig utelukkende.
Sensorpunkt: Uavhengighet og komplementhendelsen må fremgå.
Del 2 - Oppgave 2bLogaritmisk ulikhet

Oppgave 2b

Oppgave: Hvor mange ganger må vi minst spille for at sannsynligheten for grønt minst én gang skal være større enn 50 %?
Vis løsning

Hva spør oppgaven om? Vi setter opp en ulikhet med komplementet og løser den med logaritmer.

Steg 1 – Modell

\[1-\left(\frac{36}{37}\right)^n>0{,}5.\]

Steg 2 – Flytt ledd

\[\left(\frac{36}{37}\right)^n<0{,}5.\]

Steg 3 – Ta logaritme

\[n\ln(36/37)<\ln(0{,}5).\]

Steg 4 – Del på negativt tall

Fordi \(\ln(36/37)<0\), snur ulikhetstegnet: \[n>\frac{\ln(0{,}5)}{\ln(36/37)}.\]

Steg 5 – Tallverdi

Grensen er \(n>25{,}298\).

Steg 6 – Minste heltall

\(n=26\).

Steg 7 – Kontroll

25 spill gir under 50 %, mens 26 gir over 50 %.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
ln(0.5)/ln(36/37)
\(25.29828948\)
2
1-(36/37)^26
\(0.5096\)

Tolkning: Fordi n må være et heltall, rundes grensen opp til 26.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import math
threshold = math.log(0.5)/math.log(36/37)
n = math.floor(threshold)+1
p25 = 1-(36/37)**25
p26 = 1-(36/37)**26
print("Continuous threshold =", threshold)
print("Smallest integer n =", n)
print("P(at least one green in 25 games) =", p25)
print("P(at least one green in 26 games) =", p26)
print("25 games exceeds 0.5 =", p25>0.5)
print("26 games exceeds 0.5 =", p26>0.5)
Utskrift fra Python:
Continuous threshold = 25.29828948343004
Smallest integer n = 26
P(at least one green in 25 games) = 0.4958968427156847
P(at least one green in 26 games) = 0.5095212523720176
25 games exceeds 0.5 = False
26 games exceeds 0.5 = True

Fasit: Vi må spille minst \(26\) ganger.

Vanlig feil: Å dele på en negativ logaritme uten å snu ulikhetstegnet.
Sensorpunkt: Heltallsavrunding og kontroll av 25 og 26 skal være med.
Del 2 - Oppgave 2cBinomisk sannsynlighet

Oppgave 2c

Oppgave: Forklar hvordan man kommer fram til \(p\approx0{,}151\) for rødt tall i minst 7 av 10 spill.
Vis løsning

Hva spør oppgaven om? Antall røde utfall er binomisk fordelt med n=10 og sannsynlighet 18/37 i hvert spill.

Steg 1 – Definer variabel

La \(X\) være antall røde tall i 10 spill.

Steg 2 – Fordeling

\[X\sim\operatorname{Bin}\left(10,\frac{18}{37}\right).\]

Steg 3 – Minst 7

\[P(X\ge7)=\sum_{k=7}^{10}P(X=k).\]

Steg 4 – Enkeltledd

\[P(X=k)=\binom{10}{k}\left(\frac{18}{37}\right)^k\left(\frac{19}{37}\right)^{10-k}.\]

Steg 5 – Summer

\[P(X\ge7)=\sum_{k=7}^{10}\binom{10}{k}\left(\frac{18}{37}\right)^k\left(\frac{19}{37}\right)^{10-k}.\]

Steg 6 – Resultat

\[P(X\ge7)\approx0{,}150602\approx0{,}151.\]

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
1-BinomialDist[10,18/37,6,true]
\(0.1506023394\)

Tolkning: Komplementet av den kumulative sannsynligheten til og med 6 gir minst 7.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import math
p = 18/37
terms = []
for k in range(7,11):
    value = math.comb(10,k)*p**k*(1-p)**(10-k)
    terms.append((k,value))
total = sum(value for _,value in terms)
print("Distribution: X ~ Binomial(n=10, p=18/37)")
for k,value in terms:
    print(f"P(X={k}) = {value:.12f}")
print("P(X>=7) =", total)
print("Rounded to three decimals =", round(total,3))
Utskrift fra Python:
Distribution: X ~ Binomial(n=10, p=18/37)
P(X=7) = 0.104793017011
P(X=8) = 0.037229098149
P(X=9) = 0.007837704873
P(X=10) = 0.000742519409
P(X>=7) = 0.1506023394423857
Rounded to three decimals = 0.151

Fasit: \(P(X\ge7)\approx0{,}150602\approx0{,}151\).

Vanlig feil: Å bruke sannsynligheten 18/36 i stedet for 18/37.
Sensorpunkt: Binomisk modell, sum fra 7 til 10 og korrekt p-verdi må vises.
Del 2 - Oppgave 2dBinomisk modell i to nivåer

Oppgave 2d

Oppgave: Åtte venner spiller 10 ganger hver. Finn sannsynligheten for at nøyaktig 3 av dem får rødt minst 7 av 10 ganger.
Vis løsning

Hva spør oppgaven om? For hver venn er «minst 7 røde» en ny Bernoulli-hendelse med sannsynlighet q fra del c.

Steg 1 – En venn

Fra del c er \(q\approx0{,}1506023394\).

Steg 2 – Ny variabel

La Y være antall av de åtte vennene som lykkes.

Steg 3 – Fordeling

\[Y\sim\operatorname{Bin}(8,q).\]

Steg 4 – Nøyaktig tre

\[P(Y=3)=\binom83q^3(1-q)^5.\]

Steg 5 – Beregn

\[P(Y=3)\approx0{,}0845743.\]

Steg 6 – Prosent

Omtrent \(8{,}46\%\).

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
q:=1-BinomialDist[10,18/37,6,true]
\(0.1506023394\)
2
BinomialDist[8,q,3,false]
\(0.0845743141\)

Tolkning: Den andre binomiske modellen bruker q som suksessannsynlighet.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import math
p_red = 18/37
q = sum(math.comb(10,k)*p_red**k*(1-p_red)**(10-k) for k in range(7,11))
probability = math.comb(8,3)*q**3*(1-q)**5
print("q = P(one friend gets at least 7 red) =", q)
print("Number of friends = 8")
print("Required successes = 3")
print("Binomial coefficient C(8,3) =", math.comb(8,3))
print("P(Y=3) =", probability)
print("Percentage =", 100*probability)
Utskrift fra Python:
q = P(one friend gets at least 7 red) = 0.1506023394423857
Number of friends = 8
Required successes = 3
Binomial coefficient C(8,3) = 56
P(Y=3) = 0.08457431406545474
Percentage = 8.457431406545474

Fasit: \(\binom83q^3(1-q)^5\approx0{,}08457\), altså ca. \(8{,}46\%\).

Vanlig feil: Å bruke 18/37 direkte i den andre binomiske modellen.
Sensorpunkt: Det må være tydelig at q fra del c er den nye suksessannsynligheten.
Del 2 - Oppgave 3aKostnadsfunksjon

Oppgave 3a

Oppgave: Veien AC er 120 m, avstanden CD er 20 m, og \(BC=x\). Firmaet tar 800 kr/m langs veien og 1500 kr/m i terrenget. Vis at \[P(x)=96000-800x+1500\sqrt{x^2+400}.\]
Vis løsning

Hva spør oppgaven om? Vi finner lengden AB langs veien og BD i terrenget og summerer de to kostnadene.

Steg 1 – Veilengden

\(AB=AC-BC=120-x\).

Steg 2 – Terrenglengden

Trekant BCD er rettvinklet, så \[BD=\sqrt{x^2+20^2}=\sqrt{x^2+400}.\]

Steg 3 – Veikostnad

\[800(120-x)=96000-800x.\]

Steg 4 – Terrengkostnad

\[1500\sqrt{x^2+400}.\]

Steg 5 – Totalpris

\[P(x)=96000-800x+1500\sqrt{x^2+400}.\]

Steg 6 – Domene

B ligger mellom C og A, så \(0\le x\le120\).

Illustrasjon til Oppgave 3a
x er avstanden BC langs veien.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
P(x):=800(120-x)+1500sqrt(x^2+20^2)
\(96000-800x+1500\sqrt{x^2+400}\)

Tolkning: GeoGebra forenkler direkte fra den geometriske kostnadsmodellen.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
AB = 120-x
BD = sp.sqrt(x**2+20**2)
P_geometric = 800*AB+1500*BD
P_given = 96000-800*x+1500*sp.sqrt(x**2+400)
print("AB =", AB)
print("BD =", BD)
print("Road cost =", sp.expand(800*AB))
print("Terrain cost =", 1500*BD)
print("Total cost =", P_geometric)
print("Difference from stated formula =", sp.simplify(P_geometric-P_given))
print("Domain: 0 <= x <= 120")
Utskrift fra Python:
AB = 120 - x
BD = sqrt(x**2 + 400)
Road cost = 96000 - 800*x
Terrain cost = 1500*sqrt(x**2 + 400)
Total cost = -800*x + 1500*sqrt(x**2 + 400) + 96000
Difference from stated formula = 0
Domain: 0 <= x <= 120

Fasit: \(P(x)=96000-800x+1500\sqrt{x^2+400}\), \(0\le x\le120\).

Vanlig feil: Å bruke \(BD=x+20\) i stedet for Pytagoras.
Sensorpunkt: Begge lengdene, prisene og domenet må vises.
Del 2 - Oppgave 3bKostnadsminimering

Oppgave 3b

Oppgave: Hvor skal B plasseres for at prisen blir lavest, og hva er den laveste prisen?
Vis løsning

Hva spør oppgaven om? Vi deriverer kostnadsfunksjonen på intervallet \([0,120]\), finner kritisk punkt og sammenligner med endepunktene.

Steg 1 – Deriver

\[P^\prime(x)=-800+1500\frac{x}{\sqrt{x^2+400}}.\]

Steg 2 – Sett lik 0

\[1500\frac{x}{\sqrt{x^2+400}}=800\Rightarrow \frac{x}{\sqrt{x^2+400}}=\frac8{15}.\]

Steg 3 – Kvadrer

\[225x^2=64(x^2+400).\]

Steg 4 – Løs

\[161x^2=25600\Rightarrow x=\frac{160}{\sqrt{161}}\approx12{,}610.\]

Steg 5 – Minimum

Den deriverte skifter fra negativ til positiv, så punktet gir minimum.

Steg 6 – Pris

\[P\!\left(\frac{160}{\sqrt{161}}\right)=96000+2000\sqrt{161}\approx121377{,}16.\]

Steg 7 – Plassering

B skal ligge omtrent 12,6 m fra C, i retning A.

Illustrasjon til Oppgave 3b
Optimal plassering ligger omtrent 12,61 m fra C.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
P(x):=96000-800x+1500sqrt(x^2+400)
Kostnadsfunksjon
2
Extremum[P,0,120]
\((12.6098,121377.16)\)

Tolkning: Grafen viser ett indre minimum, lavere enn begge endepunktene.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", nonnegative=True)
P = 96000-800*x+1500*sp.sqrt(x**2+400)
P_prime = sp.diff(P,x)
x_star = 160/sp.sqrt(161)
P_star = sp.simplify(P.subs(x,x_star))
print("P(x) =", P)
print("P'(x) =", P_prime)
print("Critical x =", x_star)
print("Critical x decimal =", sp.N(x_star,12))
print("Minimum price exact =", P_star)
print("Minimum price decimal =", sp.N(P_star,12))
print("P(0) =", P.subs(x,0))
print("P(120) =", sp.N(P.subs(x,120),12))
print("Derivative left/right =", sp.N(P_prime.subs(x,5)), sp.N(P_prime.subs(x,30)))
Utskrift fra Python:
P(x) = -800*x + 1500*sqrt(x**2 + 400) + 96000
P'(x) = 1500*x/sqrt(x**2 + 400) - 800
Critical x = 160*sqrt(161)/161
Critical x decimal = 12.6097664998
Minimum price exact = 2000*sqrt(161) + 96000
Minimum price decimal = 121377.155081
P(0) = 126000
P(120) = 182482.875909
Derivative left/right = -436.196562445501 448.075441506766

Fasit: B plasseres \(160/\sqrt{161}\approx12{,}61\) m fra C. Laveste pris er \(96000+2000\sqrt{161}\approx121\,377\) kr.

Vanlig feil: Å velge en negativ rot etter kvadrering eller glemme intervallet.
Sensorpunkt: Eksakt kritisk punkt, fortegn/endepunkt og pris må dokumenteres.
Del 2 - Oppgave 3cBestemme ukjent meterpris

Oppgave 3c

Oppgave: Et annet firma tar 1000 kr/m langs veien og sier at billigste løsning har \(BC=10\) m. Finn prisen k per meter i terrenget.
Vis løsning

Hva spør oppgaven om? Vi setter opp den nye kostnadsfunksjonen og bruker at x=10 er et indre minimum, slik at den deriverte er 0 der.

Steg 1 – Ny kostnadsfunksjon

\[Q(x)=1000(120-x)+k\sqrt{x^2+400}.\]

Steg 2 – Deriver

\[Q^\prime(x)=-1000+k\frac{x}{\sqrt{x^2+400}}.\]

Steg 3 – Bruk minimumspunktet

\[Q^\prime(10)=0.\]

Steg 4 – Sett inn

\[-1000+k\frac{10}{\sqrt{500}}=0.\]

Steg 5 – Isoler k

\[k=1000\frac{\sqrt{500}}{10}=100\sqrt{500}=1000\sqrt5.\]

Steg 6 – Tallverdi

\[k\approx2236{,}07\text{ kr/m}.\]

Steg 7 – Minimumskontroll

Andrederiverten er positiv for k>0, så punktet er et minimum.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Solve[-1000+k*10/sqrt(10^2+400)=0,k]
\(1000\sqrt5\)

Tolkning: Den oppgitte optimale x-verdien bestemmer terrengprisen entydig.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x, k = sp.symbols("x k", positive=True)
Q = 1000*(120-x)+k*sp.sqrt(x**2+400)
Q_prime = sp.diff(Q,x)
solution = sp.solve(sp.Eq(Q_prime.subs(x,10),0),k)[0]
second = sp.simplify(sp.diff(Q,x,2).subs({x:10,k:solution}))
print("Q(x) =", Q)
print("Q'(x) =", Q_prime)
print("Equation at x=10 =", sp.Eq(Q_prime.subs(x,10),0))
print("k exact =", solution)
print("k decimal =", sp.N(solution,12))
print("Q''(10) after substitution =", second)
print("Minimum confirmed =", second>0)
Utskrift fra Python:
Q(x) = k*sqrt(x**2 + 400) - 1000*x + 120000
Q'(x) = k*x/sqrt(x**2 + 400) - 1000
Equation at x=10 = Eq(sqrt(5)*k/5 - 1000, 0)
k exact = 1000*sqrt(5)
k decimal = 2236.06797750
Q''(10) after substitution = 80
Minimum confirmed = True

Fasit: Firmaet tar \(1000\sqrt5\approx2236{,}07\) kr per meter i terrenget.

Vanlig feil: Å sette selve kostnaden lik 0 i stedet for den deriverte.
Sensorpunkt: Det må brukes at x=10 er et minimum, og andrederivert/fortegn bør kontrollere dette.
Del 2 - Oppgave 4aFaktorisering og nullpunkt

Oppgave 4a

Oppgave: \[f(x)=x^3-2bx^2+(b^2+3)x,\qquad b\in\mathbb R.\] Forklar at f bare har ett nullpunkt uansett b.
Vis løsning

Hva spør oppgaven om? Vi faktoriserer ut x og fullfører kvadratet i den resterende faktoren.

Steg 1 – Faktoriser ut x

\[f(x)=x\bigl(x^2-2bx+b^2+3\bigr).\]

Steg 2 – Fullfør kvadratet

\[x^2-2bx+b^2=(x-b)^2.\]

Steg 3 – Ny form

\[f(x)=x\bigl((x-b)^2+3\bigr).\]

Steg 4 – Positiv faktor

For alle reelle x og b er \((x-b)^2+3\ge3>0\).

Steg 5 – Nullpunkt

Produktet kan derfor bare være 0 når \(x=0\).

Steg 6 – Koordinat

Grafens eneste nullpunkt er \((0,0)\).

Illustrasjon til Oppgave 4a
Alle kurvene går gjennom (0,0), og ingen har andre nullpunkter.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Factor[x^3-2b x^2+(b^2+3)x]
\(x((x-b)^2+3)\)

Tolkning: Den andre faktoren er strengt positiv for reelle verdier.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x, b = sp.symbols("x b", real=True)
f = x**3-2*b*x**2+(b**2+3)*x
factored = x*((x-b)**2+3)
print("f(x) =", f)
print("Factorized =", sp.factor(f))
print("Target factorization =", factored)
print("Difference =", sp.expand(f-factored))
print("Minimum possible value of second factor = 3")
print("Only real zero is x=0")
Utskrift fra Python:
f(x) = -2*b*x**2 + x**3 + x*(b**2 + 3)
Factorized = x*(b**2 - 2*b*x + x**2 + 3)
Target factorization = x*((-b + x)**2 + 3)
Difference = 0
Minimum possible value of second factor = 3
Only real zero is x=0

Fasit: Fordi \(f(x)=x((x-b)^2+3)\), er det eneste nullpunktet \(x=0\).

Vanlig feil: Å behandle den positive faktoren som om den kunne bli 0.
Sensorpunkt: Faktoriseringen og argumentet om streng positivitet må være eksplisitt.
Del 2 - Oppgave 4bEkstremalpunkter i parameterfamilie

Oppgave 4b

Oppgave: For hvilke b-verdier har grafen til f både toppunkt og bunnpunkt?
Vis løsning

Hva spør oppgaven om? En tredjegradsfunksjon har både topp og bunn når den deriverte har to ulike reelle nullpunkter.

Steg 1 – Deriver

\[f^\prime(x)=3x^2-4bx+b^2+3.\]

Steg 2 – Diskriminant

For andregradslikningen er \[\Delta=(-4b)^2-4\cdot3(b^2+3).\]

Steg 3 – Forenkle

\[\Delta=16b^2-12b^2-36=4(b^2-9).\]

Steg 4 – To ulike røtter

Vi krever \(\Delta>0\): \[b^2-9>0.\]

Steg 5 – Løs ulikheten

\[|b|>3.\]

Steg 6 – Intervallform

\[b<-3\quad\text{eller}\quad b>3.\]

Steg 7 – Grenseverdier

For \(b=\pm3\) har f′ en dobbel rot og grafen får ikke både topp og bunn.

Illustrasjon til Oppgave 4b
Kurvene med b=±4 har to ekstremalpunkter, mens b=0 ikke har det.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Discriminant[3x^2-4b x+b^2+3,x]
\(4(b^2-9)\)
2
Solve[4(b^2-9)>0,b]
\(b<-3\) eller \(b>3\)

Tolkning: Strengt positiv diskriminant gir to ulike stasjonære punkt.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x, b = sp.symbols("x b", real=True)
f = x**3-2*b*x**2+(b**2+3)*x
f_prime = sp.diff(f,x)
discriminant = sp.factor(sp.discriminant(f_prime,x))
condition = sp.solve_univariate_inequality(discriminant>0,b)
print("f'(x) =", f_prime)
print("Discriminant =", discriminant)
print("Condition discriminant > 0 =", condition)
for value in [-4,-3,0,3,4]:
    roots = sp.solve(sp.Eq(f_prime.subs(b,value),0),x)
    print(f"b={value}: stationary roots = {roots}")
Utskrift fra Python:
f'(x) = b**2 - 4*b*x + 3*x**2 + 3
Discriminant = 4*(b - 3)*(b + 3)
Condition discriminant > 0 = (3 < b) | (b < -3)
b=-4: stationary roots = [-8/3 - sqrt(7)/3, -8/3 + sqrt(7)/3]
b=-3: stationary roots = [-2]
b=0: stationary roots = []
b=3: stationary roots = [2]
b=4: stationary roots = [8/3 - sqrt(7)/3, sqrt(7)/3 + 8/3]

Fasit: Grafen har både toppunkt og bunnpunkt når \(b<-3\) eller \(b>3\).

Vanlig feil: Å bruke \(\Delta\ge0\); dobbel rot gir ikke både topp og bunn.
Sensorpunkt: Diskriminanten må være strengt positiv.
Del 2 - Oppgave 4cFelles tangent

Oppgave 4c

Oppgave: Vis at grafen til f tangerer linjen \(y=3x\) uavhengig av b, og bestem tangeringspunktet.
Vis løsning

Hva spør oppgaven om? Vi undersøker differansen mellom f(x) og linjen. En dobbel rot i differansen betyr kontakt med samme stigning.

Steg 1 – Trekk fra linjen

\[f(x)-3x=x^3-2bx^2+b^2x.\]

Steg 2 – Faktoriser

\[f(x)-3x=x(x-b)^2.\]

Steg 3 – Kontakt ved x=b

Faktoren \((x-b)^2\) viser at x=b er minst en dobbel rot i differansen.

Steg 4 – Samme punkt

\[f(b)=3b.\] Dermed ligger kontaktpunktet både på grafen og linjen.

Steg 5 – Samme stigning

\[f^\prime(b)=3b^2-4b^2+b^2+3=3.\] Linjen \(y=3x\) har stigning 3.

Steg 6 – Tangeringspunkt

\[(b,3b).\]

Steg 7 – Tilfellet b=0

Da er differansen \(x^3\), og linjen tangerer fortsatt i \((0,0)\).

Illustrasjon til Oppgave 4c
Den stiplede linjen y=3x er tangent til hvert medlem av familien.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Factor[x^3-2b x^2+(b^2+3)x-3x]
\(x(x-b)^2\)
2
Substitute[x=b,Derivative[x^3-2b x^2+(b^2+3)x]]
\(3\)

Tolkning: Dobbelroten x=b og lik derivert 3 dokumenterer tangering.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x, b = sp.symbols("x b", real=True)
f = x**3-2*b*x**2+(b**2+3)*x
line = 3*x
difference = sp.factor(f-line)
f_at_b = sp.simplify(f.subs(x,b))
slope_at_b = sp.simplify(sp.diff(f,x).subs(x,b))
print("f(x)-3x =", difference)
print("f(b) =", f_at_b)
print("Line value at x=b =", line.subs(x,b))
print("f'(b) =", slope_at_b)
print("Line slope = 3")
print("Point of tangency = (b, 3*b)")
print("Function-value difference =", sp.simplify(f_at_b-3*b))
print("Slope difference =", sp.simplify(slope_at_b-3))
Utskrift fra Python:
f(x)-3x = x*(-b + x)**2
f(b) = 3*b
Line value at x=b = 3*b
f'(b) = 3
Line slope = 3
Point of tangency = (b, 3*b)
Function-value difference = 0
Slope difference = 0

Fasit: Grafen tangerer \(y=3x\) i punktet \((b,3b)\) for alle reelle b.

Vanlig feil: Å vise bare at grafen og linjen skjærer hverandre, uten å kontrollere samme stigning.
Sensorpunkt: Både punktlikhet og derivertlikhet/dobbelrot skal dokumenteres.
Kilde og metode: Oppgavetekstene er transkribert fra Utdanningsdirektoratets eksamenssett REA3022 Matematikk R1, høsten 2021. Sidebildene fra original-PDF-en er brukt som autoritativ kilde ved symboler og figurer. Løsningene, figurene og kontrollkodene er originale ifingo-utarbeidelser. Python-utskriftene er generert ved faktisk kjøring av hver kodeblokk under produksjonen.