import sympy as sp
a = sp.Matrix([3, 1])
b = sp.Matrix([4, 2])
two_b = 2*b
result = a - two_b
check = result + two_b
print("a =", list(a))
print("b =", list(b))
print("2*b =", list(two_b))
print("First component: 3 - 8 =", result[0])
print("Second component: 1 - 4 =", result[1])
print("a - 2*b =", list(result))
print("Check by adding 2*b =", list(check))
Utskrift fra Python:
a = [3, 1]
b = [4, 2]
2*b = [8, 4]
First component: 3 - 8 = -5
Second component: 1 - 4 = -3
a - 2*b = [-5, -3]
Check by adding 2*b = [3, 1]
Fasit: \(\vec a-2\vec b=[-5,-3]\).
Vanlig feil: Å trekke 2 bare fra én komponent.
Sensorpunkt: Begge komponentene i \(\vec b\) skal først multipliseres med 2.
Del 1 - Oppgave 3bVektorer - skalarprodukt
Oppgave 3b
Oppgave: Bestem \(\vec a\cdot\vec b\) når \(\vec a=[3,1]\) og \(\vec b=[4,2]\).
Vis løsning
Hva spør oppgaven om? Vi skal multiplisere samsvarende komponenter og summere produktene.
Steg 1 - Skriv formelen
For \([a_1,a_2]\) og \([b_1,b_2]\) er skalarproduktet \(a_1b_1+a_2b_2\).
Steg 2 - Sett inn komponentene
\[\vec a\cdot\vec b=3\cdot4+1\cdot2.\]
Steg 3 - Regn ut første produkt
\[3\cdot4=12.\]
Steg 4 - Regn ut andre produkt
\[1\cdot2=2.\]
Steg 5 - Summer
\[12+2=14.\]
Steg 6 - Tolk
Skalarproduktet er positivt, så vinkelen mellom vektorene er spiss.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Dot[(3,1),(4,2)]
\(14\)
Tolkning: CAS beregner summen av komponentproduktene.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
a = sp.Matrix([3, 1])
b = sp.Matrix([4, 2])
first_product = a[0]*b[0]
second_product = a[1]*b[1]
dot_product = a.dot(b)
print("a =", list(a))
print("b =", list(b))
print("First component product =", first_product)
print("Second component product =", second_product)
print("Sum of component products =", first_product + second_product)
print("a dot b =", dot_product)
print("The dot product is positive =", dot_product > 0)
Utskrift fra Python:
a = [3, 1]
b = [4, 2]
First component product = 12
Second component product = 2
Sum of component products = 14
a dot b = 14
The dot product is positive = True
Fasit: \(\vec a\cdot\vec b=14\).
Vanlig feil: Å multiplisere lengdene i stedet for samsvarende komponenter.
Sensorpunkt: Mellomregningen \(3\cdot4+1\cdot2\) bør være synlig.
Del 1 - Oppgave 3cVektorer - parallelle vektorer
Oppgave 3c
Oppgave: Vektorene \(\vec b=[4,2]\) og \(\vec c=[t+1,3]\) er gitt. Bestem \(t\) slik at \(\vec b\parallel\vec c\).
Vis løsning
Hva spør oppgaven om? Parallelle vektorer er skalarmultipler av hverandre.
Steg 1 - Sett opp skalarmultiplikasjon
Det må finnes et tall \(k\) slik at \([t+1,3]=k[4,2]\).
Steg 2 - Bruk andre komponent
Fra \(3=2k\) får vi \[k=\frac32.\]
Steg 3 - Bruk første komponent
\[t+1=4k.\]
Steg 4 - Sett inn \(k\)
\[t+1=4\cdot\frac32=6.\]
Steg 5 - Løs for \(t\)
\[t=5.\]
Steg 6 - Kontroller
Når \(t=5\), er \(\vec c=[6,3]=\frac32[4,2]\), så vektorene er parallelle.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Solve[(t+1)/4=3/2,t]
\(t=5\)
Tolkning: Komponentforholdene må være like for parallelle vektorer.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
t, k = sp.symbols("t k", real=True)
b = sp.Matrix([4, 2])
c = sp.Matrix([t + 1, 3])
solutions = sp.solve([sp.Eq(c[0], k*b[0]), sp.Eq(c[1], k*b[1])], [t, k], dict=True)
print("b =", list(b))
print("c =", list(c))
print("Equations: t + 1 = 4*k and 3 = 2*k")
print("Solutions =", solutions)
t_value = solutions[0][t]
k_value = solutions[0][k]
print("t =", t_value)
print("Scale factor k =", k_value)
print("c when t=5 =", list(c.subs(t, t_value)))
print("k*b =", list(k_value*b))
Utskrift fra Python:
b = [4, 2]
c = [t + 1, 3]
Equations: t + 1 = 4*k and 3 = 2*k
Solutions = [{k: 3/2, t: 5}]
t = 5
Scale factor k = 3/2
c when t=5 = [6, 3]
k*b = [6, 3]
Fasit: \(t=5\).
Vanlig feil: Å kreve at komponentene er like i stedet for proporsjonale.
Sensorpunkt: Det skal vises én felles skaleringsfaktor for begge komponenter.
Del 1 - Oppgave 3dVektorer - like lengder
Oppgave 3d
Oppgave: Vektorene \(\vec a=[3,1]\) og \(\vec c=[t+1,3]\) er gitt. Bestem \(t\) slik at \(|\vec c|=|\vec a|\).
Vis løsning
Hva spør oppgaven om? Vi kan sammenligne kvadratet av lengdene for å unngå kvadratrøtter.
Steg 1 - Finn \(|\vec a|^2\)
\[|\vec a|^2=3^2+1^2=10.\]
Steg 2 - Finn \(|\vec c|^2\)
\[|\vec c|^2=(t+1)^2+3^2=(t+1)^2+9.\]
Steg 3 - Sett lengdene like
\[(t+1)^2+9=10.\]
Steg 4 - Isoler kvadratet
\[(t+1)^2=1.\]
Steg 5 - Ta begge kvadratrøttene
\[t+1=1\quad\text{eller}\quad t+1=-1.\]
Steg 6 - Løs
\[t=0\quad\text{eller}\quad t=-2.\]
Steg 7 - Kontroller
Vektorene blir henholdsvis \([1,3]\) og \([-1,3]\); begge har lengde \(\sqrt{10}\).
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Solve[(t+1)^2+9=10,t]
\(t=-2,\ 0\)
Tolkning: Begge fortegnene gir samme vektorlengde.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
t = sp.symbols("t", real=True)
a = sp.Matrix([3, 1])
c = sp.Matrix([t + 1, 3])
a_length_squared = a.dot(a)
c_length_squared = sp.expand(c.dot(c))
equation = sp.Eq(c_length_squared, a_length_squared)
solutions = sp.solve(equation, t)
print("|a|**2 =", a_length_squared)
print("|c|**2 =", c_length_squared)
print("Equation =", equation)
print("Solutions for t =", solutions)
for value in solutions:
current = c.subs(t, value)
print("t =", value, "gives c =", list(current), "and |c|**2 =", current.dot(current))
Utskrift fra Python:
|a|**2 = 10
|c|**2 = t**2 + 2*t + 10
Equation = Eq(t**2 + 2*t + 10, 10)
Solutions for t = [-2, 0]
t = -2 gives c = [-1, 3] and |c|**2 = 10
t = 0 gives c = [1, 3] and |c|**2 = 10
Fasit: \(t=-2\) eller \(t=0\).
Vanlig feil: Å ta bare den positive kvadratroten.
Sensorpunkt: Begge løsningene må oppgis og kontrolleres.
Del 1 - Oppgave 4aFunksjoner - arealmodell
Oppgave 4a
Oppgave: Funksjonen er \(f(x)=2(x-3)^2\), der \(0<x<3\). En rettvinklet trekant har grunnlinje \(x\) og høyde \(f(x)\). Vis at arealet kan skrives \[F(x)=x^3-6x^2+9x.\]
Vis løsning
Hva spør oppgaven om? Vi skal bruke trekantarealet og forenkle uttrykket algebraisk.
Steg 1 - Finn grunnlinjen
Punktene \(A(0,0)\) og \(B(x,0)\) gir grunnlinjen \(AB=x\).
Steg 2 - Finn høyden
Punktene \(B(x,0)\) og \(C(x,f(x))\) gir høyden \(BC=f(x)=2(x-3)^2\).
Steg 3 - Bruk arealformelen
\[F(x)=\frac12\cdot AB\cdot BC.\]
Steg 4 - Sett inn grunnlinje og høyde
\[F(x)=\frac12\cdot x\cdot2(x-3)^2=x(x-3)^2.\]
Steg 5 - Kvadrer parentesen
\[(x-3)^2=x^2-6x+9.\]
Steg 6 - Multipliser med \(x\)
\[F(x)=x(x^2-6x+9)=x^3-6x^2+9x.\]
Arealmodellen for trekanten.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Expand[x(x-3)^2]
\(x^3-6x^2+9x\)
Tolkning: CAS utvider arealuttrykket til formen oppgaven ber om.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
x = sp.symbols("x", real=True)
f = 2*(x - 3)**2
base = x
height = f
area_formula = sp.Rational(1, 2)*base*height
expanded_area = sp.expand(area_formula)
print("Base AB =", base)
print("Height BC =", height)
print("Triangle area = 1/2 * base * height")
print("Area before expansion =", area_formula)
print("Expansion of (x - 3)**2 =", sp.expand((x - 3)**2))
print("Expanded area F(x) =", expanded_area)
print("Difference from target =", sp.expand(expanded_area - (x**3 - 6*x**2 + 9*x)))
Utskrift fra Python:
Base AB = x
Height BC = 2*(x - 3)**2
Triangle area = 1/2 * base * height
Area before expansion = x*(x - 3)**2
Expansion of (x - 3)**2 = x**2 - 6*x + 9
Expanded area F(x) = x**3 - 6*x**2 + 9*x
Difference from target = 0
Fasit: \(F(x)=x^3-6x^2+9x\).
Vanlig feil: Å glemme faktoren \(\frac12\) i trekantarealet.
Sensorpunkt: Det må komme tydelig fram hvorfor grunnlinjen er \(x\) og høyden er \(f(x)\).
Del 1 - Oppgave 4bOptimering - største areal
Oppgave 4b
Oppgave: Bestem \(x\) slik at arealet \(F(x)=x^3-6x^2+9x\) blir størst mulig for \(0<x<3\).
Vis løsning
Hva spør oppgaven om? Vi skal finne kritiske punkt og bruke fortegnet til den deriverte.
Intervallet er \(0<x<3\), så \(x=3\) er ikke et indre punkt.
Steg 5 - Undersøk fortegnet
For \(0<x<1\) er \(F^{\prime}(x)>0\), og for \(1<x<3\) er \(F^{\prime}(x)<0\).
Steg 6 - Konkluder maksimum
Funksjonen går fra voksende til avtakende ved \(x=1\), så arealet er størst der.
Steg 7 - Finn maksimalarealet
\[F(1)=1-6+9=4.\]
Grafen og trekanten viser geometrien bak arealfunksjonen.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Derivative[x^3-6x^2+9x,x]
\(3(x-1)(x-3)\)
2
Extremum[x^3-6x^2+9x,0,3]
\((1,4)\)
Tolkning: Grafen har toppunkt \((1,4)\) i det aktuelle intervallet.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
x = sp.symbols("x", real=True)
F = x**3 - 6*x**2 + 9*x
F_prime = sp.diff(F, x)
critical_points = sp.solve(sp.Eq(F_prime, 0), x)
print("F(x) =", F)
print("F'(x) =", F_prime)
print("Factored derivative =", sp.factor(F_prime))
print("Critical points =", critical_points)
print("Sign at x=1/2 =", sp.sign(F_prime.subs(x, sp.Rational(1, 2))))
print("Sign at x=2 =", sp.sign(F_prime.subs(x, 2)))
print("F(1) =", F.subs(x, 1))
print("Limit as x approaches 0 from the right =", sp.limit(F, x, 0, dir='+'))
print("Limit as x approaches 3 from the left =", sp.limit(F, x, 3, dir='-'))
Utskrift fra Python:
F(x) = x**3 - 6*x**2 + 9*x
F'(x) = 3*x**2 - 12*x + 9
Factored derivative = 3*(x - 3)*(x - 1)
Critical points = [1, 3]
Sign at x=1/2 = 1
Sign at x=2 = -1
F(1) = 4
Limit as x approaches 0 from the right = 0
Limit as x approaches 3 from the left = 0
Fasit: Arealet er størst når \(x=1\), og maksimalarealet er \(4\).
Vanlig feil: Å velge \(x=3\) bare fordi den deriverte også er null der.
Sensorpunkt: Fortegnsskifte fra pluss til minus ved \(x=1\) må begrunne maksimumet.
Del 1 - Oppgave 4cLikninger - samme areal
Oppgave 4c
Oppgave: Bestem arealet når \(x=2\). Er det andre \(x\)-verdier i \(0<x<3\) som gir dette arealet?
Vis løsning
Hva spør oppgaven om? Vi finner først arealet og løser deretter likningen \(F(x)=F(2)\).
Steg 1 - Beregn arealet ved \(x=2\)
\[F(2)=2^3-6\cdot2^2+9\cdot2=8-24+18=2.\]
Steg 2 - Sett opp likningen
Andre verdier må oppfylle \[x^3-6x^2+9x=2.\]
Steg 3 - Flytt alt til én side
\[x^3-6x^2+9x-2=0.\]
Steg 4 - Bruk den kjente roten
Siden \(x=2\) er en løsning, er \((x-2)\) en faktor.
Steg 5 - Faktoriser
\[x^3-6x^2+9x-2=(x-2)(x^2-4x+1).\]
Steg 6 - Løs andregradslikningen
\[x^2-4x+1=0\Rightarrow x=2\pm\sqrt3.\]
Steg 7 - Bruk intervallet
\(2+\sqrt3>3\) er ikke tillatt. \(2-\sqrt3\) ligger i \((0,3)\).
Arealfunksjonen har samme verdi på to steder i det aktuelle intervallet.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Factor[x^3-6x^2+9x-2]
\((x-2)(x^2-4x+1)\)
2
Solve[x^3-6x^2+9x=2,x]
\(2-\sqrt3,\ 2,\ 2+\sqrt3\)
Tolkning: Bare \(2-\sqrt3\) og \(2\) ligger i intervallet \(0<x<3\).
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
x = sp.symbols("x", real=True)
F = x**3 - 6*x**2 + 9*x
area_at_2 = sp.simplify(F.subs(x, 2))
equation_polynomial = sp.expand(F - area_at_2)
factored = sp.factor(equation_polynomial)
solutions = sp.solve(sp.Eq(F, area_at_2), x)
valid_solutions = [s for s in solutions if bool(s > 0) and bool(s < 3)]
print("F(x) =", F)
print("F(2) =", area_at_2)
print("Equation polynomial =", equation_polynomial)
print("Factored polynomial =", factored)
print("All exact solutions =", solutions)
print("Decimal solutions =", [sp.N(s, 10) for s in solutions])
print("Solutions in 0 < x < 3 =", valid_solutions)
for s in valid_solutions:
print("Check F(", s, ") =", sp.simplify(F.subs(x, s)), sep="")
Fasit: Arealet er \(2\). Den andre tillatte verdien er \(x=2-\sqrt3\approx0{,}268\).
Vanlig feil: Å oppgi \(2+\sqrt3\) uten å kontrollere intervallet.
Sensorpunkt: Alle algebraiske røtter må testes mot betingelsen \(0<x<3\).
Del 1 - Oppgave 5aKombinatorikk - ordnede valg med tilbakelegging
Oppgave 5a
Oppgave: En kode består av fire tall. Hvert tall velges blant 0 til 9, tall kan gjentas, og rekkefølgen betyr noe. Hvor mange koder finnes?
Vis løsning
Hva spør oppgaven om? Hver av de fire plassene har 10 uavhengige valgmuligheter.
Steg 1 - Første plass
Det finnes 10 valg: 0, 1, 2, ..., 9.
Steg 2 - Andre plass
Også her finnes 10 valg fordi gjentakelse er tillatt.
Steg 3 - Tredje og fjerde plass
Hver av disse har på samme måte 10 valg.
Steg 4 - Bruk produktregelen
\[10\cdot10\cdot10\cdot10=10^4.\]
Steg 5 - Beregn
\[10^4=10\,000.\]
Steg 6 - Tolk
Koder som 0000 og 0123 er begge tillatt, og 0123 er forskjellig fra 3210.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
10^4
\(10000\)
Tolkning: Produktregelen gir 10 valg for hver av fire posisjoner.
Python-kontroll med SymPy
Python 3 - SymPy
import itertools
symbols = list(range(10))
number_of_positions = 4
count_by_product_rule = len(symbols)**number_of_positions
all_codes = itertools.product(symbols, repeat=number_of_positions)
count_by_enumeration = sum(1 for _ in all_codes)
print("Available digits =", symbols)
print("Number of choices per position =", len(symbols))
print("Number of positions =", number_of_positions)
print("Product rule expression = 10**4")
print("Count by product rule =", count_by_product_rule)
print("Count by complete enumeration =", count_by_enumeration)
print("Repetition allowed =", True)
print("Order matters =", True)
Utskrift fra Python:
Available digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Number of choices per position = 10
Number of positions = 4
Product rule expression = 10**4
Count by product rule = 10000
Count by complete enumeration = 10000
Repetition allowed = True
Order matters = True
Fasit: Det finnes \(10^4=10\,000\) koder.
Vanlig feil: Å bruke kombinasjon når rekkefølgen faktisk betyr noe.
Sensorpunkt: Det må forklares hvorfor det er 10 valg i hver av fire posisjoner.
Del 1 - Oppgave 5bKombinatorikk - kombinasjoner
Oppgave 5b
Oppgave: En kode velges som fire forskjellige tall blant 0 til 9, og rekkefølgen betyr ikke noe. Hvor mange koder finnes?
Vis løsning
Hva spør oppgaven om? Vi skal velge 4 av 10 elementer uten rekkefølge og uten gjentakelse.
Steg 1 - Identifiser modellen
Orden spiller ingen rolle, så vi bruker kombinasjoner.
\(252\) er større enn naboverdiene, og symmetrien viser at ingen andre kan være større.
Steg 6 - Konkluder
Koden må bestå av 5 forskjellige tall, og det finnes 252 mulige koder.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Sequence[BinomialCoefficient[10,r],r,0,10]
\(1,10,45,120,210,252,210,120,45,10,1\)
Tolkning: Listen har entydig maksimum 252 ved \(r=5\).
Python-kontroll med SymPy
Python 3 - SymPy
import math
values = {r: math.comb(10, r) for r in range(11)}
maximum_count = max(values.values())
maximizing_r = [r for r, count in values.items() if count == maximum_count]
print("Counts C(10, r) for r = 0,...,10:")
for r, count in values.items():
print("r =", r, "count =", count)
print("Maximum count =", maximum_count)
print("Value(s) of r giving the maximum =", maximizing_r)
print("C(10,4) =", values[4])
print("C(10,5) =", values[5])
print("C(10,6) =", values[6])
Utskrift fra Python:
Counts C(10, r) for r = 0,...,10:
r = 0 count = 1
r = 1 count = 10
r = 2 count = 45
r = 3 count = 120
r = 4 count = 210
r = 5 count = 252
r = 6 count = 210
r = 7 count = 120
r = 8 count = 45
r = 9 count = 10
r = 10 count = 1
Maximum count = 252
Value(s) of r giving the maximum = [5]
C(10,4) = 210
C(10,5) = 252
C(10,6) = 210
Fasit: Koden bør bestå av \(5\) tall. Da finnes det \(\binom{10}{5}=252\) koder.
Vanlig feil: Å anta at flere valgte tall alltid gir flere koder.
Sensorpunkt: Maksimumet må dokumenteres ved sammenligning eller ved binomialkoeffisientenes symmetri.
Del 1 - Oppgave 6aKoordinatgeometri - midtpunkt
Oppgave 6a
Oppgave: Trekanten har hjørnene \(A(3,-2)\), \(B(9,4)\) og \(C(1,4)\). Punktet \(M\) er midtpunktet på \(AC\). Vis ved vektorregning at \(M=(2,1)\).
Vis løsning
Hva spør oppgaven om? Vi skal uttrykke midtpunktet som startpunktet A pluss halvparten av vektoren fra A til C.
Tolkning: GeoGebra beregner gjennomsnittet av endepunktenes koordinater.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
A = sp.Matrix([3, -2])
C = sp.Matrix([1, 4])
AC = C - A
half_AC = sp.Rational(1, 2)*AC
M_vector = A + half_AC
M_average = (A + C)/2
print("A =", list(A))
print("C =", list(C))
print("Vector AC =", list(AC))
print("Half of vector AC =", list(half_AC))
print("A + 1/2*AC =", list(M_vector))
print("Coordinate average =", list(M_average))
print("Both methods agree =", M_vector == M_average)
Utskrift fra Python:
A = [3, -2]
C = [1, 4]
Vector AC = [-2, 6]
Half of vector AC = [-1, 3]
A + 1/2*AC = [2, 1]
Coordinate average = [2, 1]
Both methods agree = True
Fasit: \(M=(2,1)\).
Vanlig feil: Å glemme at y-koordinaten til A er negativ når differansen beregnes.
Sensorpunkt: Løsningen skal bruke vektorargumentet eller en korrekt midtpunktsformel.
Del 1 - Oppgave 6bKoordinatgeometri - parameterframstilling
Oppgave 6b
Oppgave: La \(\ell\) være midtnormalen til \(AC\). Forklar at \[\ell:\begin{cases}x=2+3t\\y=1+t\end{cases}\] er en parameterframstilling for \(\ell\).
Vis løsning
Hva spør oppgaven om? Vi må vise at linjen går gjennom midtpunktet M og at retningsvektoren er vinkelrett på AC.
Steg 1 - Les av et punkt på linjen
Når \(t=0\), får vi \((x,y)=(2,1)=M\). Linjen går altså gjennom midtpunktet på \(AC\).
Steg 2 - Les av retningsvektoren
Parameterframstillingen har retningsvektor \(\vec r=[3,1]\).
Steg 3 - Finn \(\overrightarrow{AC}\)
Fra del a har vi \(\overrightarrow{AC}=[-2,6]\).
Steg 4 - Beregn skalarproduktet
\[[-2,6]\cdot[3,1]=-6+6=0.\]
Steg 5 - Tolk skalarproduktet
Skalarprodukt 0 betyr at retningsvektoren er vinkelrett på \(AC\).
Steg 6 - Konkluder
Linjen går gjennom midtpunktet M og står normalt på AC. Derfor er den midtnormalen.
Parameterlinjen gjennom M er vinkelrett på AC.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Line[(2,1),(5,2)]
Linje gjennom \((2,1)\) med retning \((3,1)\)
2
Dot[(-2,6),(3,1)]
\(0\)
Tolkning: Punkt- og vinkelretthetskravet er begge oppfylt.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
M = sp.Matrix([2, 1])
AC = sp.Matrix([-2, 6])
direction = sp.Matrix([3, 1])
dot_product = AC.dot(direction)
point_at_t0 = M + 0*direction
point_at_t1 = M + direction
print("Midpoint M =", list(M))
print("Direction vector of the parameter line =", list(direction))
print("Vector AC =", list(AC))
print("AC dot direction =", dot_product)
print("Point at t=0 =", list(point_at_t0))
print("Point at t=1 =", list(point_at_t1))
print("Passes through M =", point_at_t0 == M)
print("Perpendicular to AC =", dot_product == 0)
Utskrift fra Python:
Midpoint M = [2, 1]
Direction vector of the parameter line = [3, 1]
Vector AC = [-2, 6]
AC dot direction = 0
Point at t=0 = [2, 1]
Point at t=1 = [5, 2]
Passes through M = True
Perpendicular to AC = True
Fasit: Parameterframstillingen beskriver midtnormalen fordi den går gjennom \(M=(2,1)\) og har retning \([3,1]\), som er vinkelrett på \(AC\).
Vanlig feil: Å kontrollere bare at linjen er vinkelrett, men ikke at den går gjennom midtpunktet.
Sensorpunkt: Begge definisjonsegenskapene til en midtnormal må begrunnes.
Del 1 - Oppgave 6cParameterframstilling - punkt på linje
Oppgave 6c
Oppgave: Avgjør om punktet \(\left(12,\frac92\right)\) ligger på \(\ell\), der \(x=2+3t\) og \(y=1+t\).
Vis løsning
Hva spør oppgaven om? Et punkt ligger på linjen bare dersom samme parameterverdi gir både x- og y-koordinaten.
\(\frac{10}{3}\neq\frac72\), så det finnes ingen felles t-verdi.
Steg 6 - Konkluder
Punktet ligger ikke på \(\ell\).
Punktet kan kontrolleres mot parameterlinjen.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Substitute[x=12,y=9/2,{x=2+3t,y=1+t}]
Gir henholdsvis \(t=10/3\) og \(t=7/2\)
Tolkning: Ulike parameterverdier betyr at punktet ikke oppfyller begge likningene samtidig.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
t = sp.symbols("t", real=True)
point_x = sp.Integer(12)
point_y = sp.Rational(9, 2)
t_from_x = sp.solve(sp.Eq(point_x, 2 + 3*t), t)[0]
t_from_y = sp.solve(sp.Eq(point_y, 1 + t), t)[0]
y_from_x_parameter = 1 + t_from_x
x_from_y_parameter = 2 + 3*t_from_y
print("Point =", (point_x, point_y))
print("t from x equation =", t_from_x)
print("Corresponding y =", y_from_x_parameter)
print("Required y =", point_y)
print("t from y equation =", t_from_y)
print("Corresponding x =", x_from_y_parameter)
print("Required x =", point_x)
print("Same parameter value =", sp.simplify(t_from_x - t_from_y) == 0)
Utskrift fra Python:
Point = (12, 9/2)
t from x equation = 10/3
Corresponding y = 13/3
Required y = 9/2
t from y equation = 7/2
Corresponding x = 25/2
Required x = 12
Same parameter value = False
Fasit: Punktet \(\left(12,\frac92\right)\) ligger ikke på \(\ell\).
Vanlig feil: Å teste x- og y-likningen med forskjellige t-verdier og likevel si at punktet ligger på linjen.
Sensorpunkt: Den samme parameterverdien må tilfredsstille begge koordinatlikningene.
Del 1 - Oppgave 6dKoordinatgeometri - skjæring av midtnormaler
Oppgave 6d
Oppgave: Bestem koordinatene til skjæringspunktet mellom \(\ell\) og midtnormalen til \(AB\).
Vis løsning
Hva spør oppgaven om? Vi lager en parameterframstilling for midtnormalen til AB og løser et ligningssystem.
Vektoren \([1,-1]\) er vinkelrett på \([6,6]\) fordi \(6-6=0\).
Steg 4 - Parameterframstill midtnormalen
\[m:\ (x,y)=(6,1)+s(1,-1).\]
Steg 5 - Sett linjene like
\[2+3t=6+s,\qquad 1+t=1-s.\]
Steg 6 - Løs systemet
Andre likning gir \(s=-t\). Da blir \(2+3t=6-t\), altså \(t=1\).
Steg 7 - Finn skjæringspunktet
\[(x,y)=(2+3\cdot1,1+1)=(5,2).\]
Steg 8 - Tolk
Skjæringspunktet er trekantens omsenter, siden det ligger på to midtnormaler.
De to midtnormalene møtes i omsenteret S=(5,2).
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Intersect[Line[(2,1),(5,2)],Line[(6,1),(7,0)]]
\((5,2)\)
Tolkning: GeoGebra finner det felles punktet til de to midtnormalene.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
t, s = sp.symbols("t s", real=True)
A = sp.Matrix([3, -2])
B = sp.Matrix([9, 4])
N = (A + B)/2
AB = B - A
normal_direction = sp.Matrix([1, -1])
l_point = sp.Matrix([2 + 3*t, 1 + t])
m_point = N + s*normal_direction
solution = sp.solve([sp.Eq(l_point[0], m_point[0]), sp.Eq(l_point[1], m_point[1])], [t, s], dict=True)[0]
intersection = sp.simplify(l_point.subs(t, solution[t]))
print("Midpoint N of AB =", list(N))
print("Vector AB =", list(AB))
print("Chosen normal direction =", list(normal_direction))
print("Dot product AB with normal direction =", AB.dot(normal_direction))
print("Parameter solution =", solution)
print("Intersection point =", list(intersection))
print("Distance to A squared =", sp.expand((intersection-A).dot(intersection-A)))
print("Distance to B squared =", sp.expand((intersection-B).dot(intersection-B)))
print("Distance to C squared =", sp.expand((intersection-sp.Matrix([1,4])).dot(intersection-sp.Matrix([1,4]))))
Utskrift fra Python:
Midpoint N of AB = [6, 1]
Vector AB = [6, 6]
Chosen normal direction = [1, -1]
Dot product AB with normal direction = 0
Parameter solution = {s: -1, t: 1}
Intersection point = [5, 2]
Distance to A squared = 20
Distance to B squared = 20
Distance to C squared = 20
Fasit: Skjæringspunktet er \((5,2)\).
Vanlig feil: Å bruke \([1,1]\) som normalretning til AB; den er parallell med AB.
Sensorpunkt: Midtpunkt, vinkelrett retning og løsning av systemet må alle være korrekte.
Del 1 - Oppgave 7aLogikk - implikasjon
Oppgave 7a
Oppgave: Sett inn \(\Leftarrow\), \(\Rightarrow\) eller \(\Leftrightarrow\): \[x^2=1\quad\Box\quad x=1.\]
Vis løsning
Hva spør oppgaven om? Vi må undersøke hvilken retning av påstanden som alltid er sann.
Steg 1 - Løs venstre utsagn
\[x^2=1\Rightarrow x=1\ \text{eller}\ x=-1.\]
Steg 2 - Test venstre mot høyre
Venstre utsagn medfører ikke nødvendigvis \(x=1\), fordi \(x=-1\) er et moteksempel.
Steg 3 - Test høyre mot venstre
Hvis \(x=1\), er \(x^2=1^2=1\). Denne retningen er alltid sann.
Steg 4 - Velg symbol
Høyre utsagn impliserer venstre utsagn, så boksen skal vise en pil mot venstre.
Steg 5 - Skriv ferdig
\[x^2=1\ \Leftarrow\ x=1.\]
Steg 6 - Forklar hvorfor ikke ekvivalens
Ekvivalens krever at begge retninger er sanne, men \(x=-1\) bryter den ene retningen.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Solve[x^2=1,x]
\(x=-1,1\)
Tolkning: Løsningsmengden til venstre er større enn løsningsmengden til høyre.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
x = sp.symbols("x", real=True)
left_solutions = sp.solve(sp.Eq(x**2, 1), x)
right_solutions = [sp.Integer(1)]
print("Solutions of x**2 = 1 =", left_solutions)
print("Solutions of x = 1 =", right_solutions)
print("Does x=1 imply x**2=1? =", sp.simplify(1**2) == 1)
print("Counterexample to the opposite direction: x = -1")
print("At x=-1, x**2 =", (-1)**2)
print("At x=-1, x=1 is", -1 == 1)
print("Correct relation: x**2 = 1 <= x = 1")
Utskrift fra Python:
Solutions of x**2 = 1 = [-1, 1]
Solutions of x = 1 = [1]
Does x=1 imply x**2=1? = True
Counterexample to the opposite direction: x = -1
At x=-1, x**2 = 1
At x=-1, x=1 is False
Correct relation: x**2 = 1 <= x = 1
Fasit: \(x^2=1\Leftarrow x=1\).
Vanlig feil: Å velge ekvivalens og glemme løsningen \(x=-1\).
Sensorpunkt: Et konkret moteksempel bør brukes for å avvise feil implikasjonsretning.
Del 1 - Oppgave 7bLogikk - funksjon og derivert
Oppgave 7b
Oppgave: Sett inn \(\Leftarrow\), \(\Rightarrow\) eller \(\Leftrightarrow\): \[f(x)=5x^2-1\quad\Box\quad f^{\prime}(x)=10x.\]
Vis løsning
Hva spør oppgaven om? Vi undersøker hva som følger av derivasjon, og hva som tapes når en funksjon deriveres.
Steg 1 - Deriver venstre side
Hvis \(f(x)=5x^2-1\), får vi \[f^{\prime}(x)=10x.\]
Steg 2 - Første implikasjonsretning
Venstre utsagn medfører derfor høyre utsagn.
Steg 3 - Undersøk motsatt retning
Hvis \(f^{\prime}(x)=10x\), kan vi integrere og få \[f(x)=5x^2+C.\]
Steg 4 - Konstanten er ukjent
Den deriverte bestemmer ikke konstanten \(C\). Vi kan for eksempel ha \(f(x)=5x^2+7\).
Steg 5 - Velg symbol
Bare implikasjonen fra venstre mot høyre er alltid sann.
Steg 6 - Skriv ferdig
\[f(x)=5x^2-1\ \Rightarrow\ f^{\prime}(x)=10x.\]
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Derivative[5x^2-1,x]
\(10x\)
2
Integral[10x,x]
\(5x^2+C\)
Tolkning: Derivasjon fjerner konstantleddet, så motsatt retning er ikke entydig.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
x = sp.symbols("x", real=True)
C = sp.symbols("C", real=True)
f_left = 5*x**2 - 1
derivative = sp.diff(f_left, x)
general_antiderivative = sp.integrate(10*x, x) + C
counterexample = 5*x**2 + 7
print("Given function =", f_left)
print("Derivative of given function =", derivative)
print("General function with derivative 10*x =", general_antiderivative)
print("A counterexample function =", counterexample)
print("Derivative of counterexample =", sp.diff(counterexample, x))
print("Counterexample equals 5*x**2 - 1 =", sp.simplify(counterexample - f_left) == 0)
print("Correct relation: f(x)=5*x**2-1 => f'(x)=10*x")
Utskrift fra Python:
Given function = 5*x**2 - 1
Derivative of given function = 10*x
General function with derivative 10*x = C + 5*x**2
A counterexample function = 5*x**2 + 7
Derivative of counterexample = 10*x
Counterexample equals 5*x**2 - 1 = False
Correct relation: f(x)=5*x**2-1 => f'(x)=10*x
Vanlig feil: Å tro at en derivert bestemmer konstantleddet i den opprinnelige funksjonen.
Sensorpunkt: Motsatt retning skal avvises ved å vise den vilkårlige konstanten.
Del 1 - Oppgave 8Tangenter - gjennom origo
Oppgave 8
Oppgave: Funksjonen er \(f(x)=e^{1-x}\). Grafen har en tangent som går gjennom origo. Bestem likningen for tangenten.
Vis løsning
Hva spør oppgaven om? Vi lar \(x=a\) være berøringspunktets x-koordinat og bruker at tangentlinjen går gjennom \((0,0)\).
Steg 1 - Deriver funksjonen
\[f^{\prime}(x)=-e^{1-x}.\]
Steg 2 - Skriv punkt og stigningstall ved \(x=a\)
Berøringspunktet er \((a,e^{1-a})\), og stigningstallet er \(-e^{1-a}\).
Steg 3 - Skriv tangentlikningen
\[y-e^{1-a}=-e^{1-a}(x-a).\]
Steg 4 - Forenkle
\[y=e^{1-a}(1+a-x).\]
Steg 5 - Bruk at tangenten går gjennom origo
Sett \(x=0\) og \(y=0\): \[0=e^{1-a}(1+a).\]
Steg 6 - Løs for a
Eksponentialfaktoren er alltid positiv, så \(1+a=0\), altså \(a=-1\).
Steg 7 - Finn tangentens stigningstall
\[f^{\prime}(-1)=-e^{1-(-1)}=-e^2.\]
Steg 8 - Skriv likningen
Linjen går gjennom origo, så \[y=-e^2x.\]
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Tangent[-1,exp(1-x)]
\(y=-e^2x\)
Tolkning: Tangenten i \(x=-1\) passerer gjennom origo.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
x, a = sp.symbols("x a", real=True)
f = sp.exp(1 - x)
f_prime = sp.diff(f, x)
f_a = f.subs(x, a)
slope_a = f_prime.subs(x, a)
tangent = sp.expand(f_a + slope_a*(x - a))
condition_at_origin = sp.simplify(tangent.subs(x, 0))
a_solution = sp.solve(sp.Eq(condition_at_origin, 0), a)
chosen_a = a_solution[0]
final_tangent = sp.simplify(tangent.subs(a, chosen_a))
print("f(x) =", f)
print("f'(x) =", f_prime)
print("Tangent at x=a =", tangent)
print("Tangent value at x=0 =", condition_at_origin)
print("Solution for a =", a_solution)
print("Point of tangency =", (chosen_a, sp.simplify(f.subs(x, chosen_a))))
print("Slope at tangency =", sp.simplify(f_prime.subs(x, chosen_a)))
print("Final tangent y =", final_tangent)
print("Check at origin =", final_tangent.subs(x, 0))
Utskrift fra Python:
f(x) = exp(1 - x)
f'(x) = -exp(1 - x)
Tangent at x=a = E*a*exp(-a) - E*x*exp(-a) + E*exp(-a)
Tangent value at x=0 = (a + 1)*exp(1 - a)
Solution for a = [-1]
Point of tangency = (-1, exp(2))
Slope at tangency = -exp(2)
Final tangent y = -x*exp(2)
Check at origin = 0
Fasit: Tangentens likning er \(y=-e^2x\).
Vanlig feil: Å sette tangentens stigningstall lik funksjonsverdien uten å bruke punkt-stigning-formen.
Sensorpunkt: Berøringspunktet må bestemmes fra kravet om at tangenten går gjennom origo.
Del 2 - med hjelpemidler
Del 2 - Oppgave 1aSannsynlighet - konstant sannsynlighet
Oppgave 1a
Oppgave: Jakob har 20 sanger, og 4 av dem er med Kygo. Avspilling skjer tilfeldig med tilbakelegging. Forklar at sannsynligheten alltid er \(p=0{,}2\) for at neste sang er med Kygo.
Vis løsning
Hva spør oppgaven om? Vi skal bruke forholdet mellom gunstige og mulige sanger og forklare betydningen av tilbakelegging.
Steg 1 - Tell gunstige utfall
Det finnes 4 Kygo-sanger.
Steg 2 - Tell mulige utfall
Det finnes totalt 20 sanger på spillelisten.
Steg 3 - Beregn sannsynligheten
\[p=\frac{4}{20}=\frac15=0{,}2.\]
Steg 4 - Bruk tilbakeleggingen
Etter hver avspilling er alle de 20 sangene fortsatt mulige ved neste trekning.
Steg 5 - Konstater uavhengighet
Hvilken sang som ble spilt sist, endrer derfor ikke sannsynligheten ved neste avspilling.
Steg 6 - Konkluder
Sannsynligheten er alltid \(0{,}2\) for hver avspilling.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
4/20
\(0.2\)
Tolkning: Forholdet mellom Kygo-sanger og alle sanger er 0,2 ved hver trekning.
Python-kontroll med SymPy
Python 3 - SymPy
from fractions import Fraction
total_songs = 20
kygo_songs = 4
probability_fraction = Fraction(kygo_songs, total_songs)
probability_decimal = kygo_songs / total_songs
print("Total number of songs =", total_songs)
print("Number of Kygo songs =", kygo_songs)
print("Probability as a fraction =", probability_fraction)
print("Probability as a decimal =", probability_decimal)
print("Sampling method = with replacement")
print("The playlist composition after each play remains 4 of 20")
print("Probability on every play =", probability_decimal)
Utskrift fra Python:
Total number of songs = 20
Number of Kygo songs = 4
Probability as a fraction = 1/5
Probability as a decimal = 0.2
Sampling method = with replacement
The playlist composition after each play remains 4 of 20
Probability on every play = 0.2
Fasit: \(p=4/20=0{,}2\) ved hver avspilling.
Vanlig feil: Å redusere antall mulige sanger etter en avspilling, selv om det er tilbakelegging.
Sensorpunkt: Forklaringen må knytte den konstante sannsynligheten til tilbakelegging.
Del 2 - Oppgave 1bBinomisk sannsynlighet
Oppgave 1b
Oppgave: Jakob hører på fem avspillinger. Bestem sannsynligheten for at nøyaktig to av sangene er med Kygo.
Vis løsning
Hva spør oppgaven om? Antall Kygo-sanger i fem uavhengige avspillinger er binomisk fordelt med \(n=5\) og \(p=0{,}2\).
Steg 1 - Definer hendelsen
Vi vil ha nøyaktig \(k=2\) treff i \(n=5\) forsøk.
Steg 2 - Skriv binomisk formel
\[P(X=k)=\binom nk p^k(1-p)^{n-k}.\]
Steg 3 - Sett inn
\[P(X=2)=\binom52(0{,}2)^2(0{,}8)^3.\]
Steg 4 - Beregn binomialkoeffisienten
\[\binom52=10.\]
Steg 5 - Beregn potensene
\[(0{,}2)^2=0{,}04,\qquad(0{,}8)^3=0{,}512.\]
Steg 6 - Multipliser
\[10\cdot0{,}04\cdot0{,}512=0{,}2048.\]
Steg 7 - Tolk
Sannsynligheten er omtrent \(20{,}48\%\).
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
BinomialDist[5,0.2,2]
\(0.2048\)
Tolkning: GeoGebra gir punkt-sannsynligheten for nøyaktig to treff.
Python-kontroll med SymPy
Python 3 - SymPy
import math
n = 5
k = 2
p = 0.2
q = 1 - p
combinations = math.comb(n, k)
power_success = p**k
power_failure = q**(n-k)
probability = combinations*power_success*power_failure
print("n =", n)
print("k =", k)
print("p =", p)
print("q =", q)
print("C(5,2) =", combinations)
print("p**2 =", power_success)
print("q**3 =", power_failure)
print("P(X=2) =", probability)
print("Percentage =", 100*probability)
Utskrift fra Python:
n = 5
k = 2
p = 0.2
q = 0.8
C(5,2) = 10
p**2 = 0.04000000000000001
q**3 = 0.5120000000000001
P(X=2) = 0.2048000000000001
Percentage = 20.48000000000001
Fasit: \(P(X=2)=0{,}2048\approx20{,}48\%\).
Vanlig feil: Å glemme binomialkoeffisienten, som teller plasseringene av de to treffene.
Sensorpunkt: Verdiene \(n=5\), \(k=2\) og \(p=0{,}2\) må identifiseres korrekt.
Del 2 - Oppgave 1cKomplementær sannsynlighet og logaritmer
Oppgave 1c
Oppgave: Hvor mange avspillinger må Jakob høre på for at sannsynligheten for minst én Kygo-sang skal være større enn \(90\%\)?
Vis løsning
Hva spør oppgaven om? Det er enklest å bruke komplementet: ingen Kygo-sanger.
Steg 1 - Skriv komplementet
Sannsynligheten for ingen Kygo-sang i \(n\) avspillinger er \((0{,}8)^n\).
Steg 2 - Skriv ønsket sannsynlighet
\[P(X\ge1)=1-(0{,}8)^n.\]
Steg 3 - Sett opp ulikheten
\[1-(0{,}8)^n>0{,}90.\]
Steg 4 - Isoler potensen
\[(0{,}8)^n<0{,}10.\]
Steg 5 - Ta logaritmen
\[n\ln(0{,}8)<\ln(0{,}1).\]
Steg 6 - Del på et negativt tall
Siden \(\ln(0{,}8)<0\), snur ulikhetstegnet: \[n>\frac{\ln(0{,}1)}{\ln(0{,}8)}\approx10{,}319.\]
Steg 7 - Velg minste heltall
Det minste heltallet som oppfyller kravet er \(n=11\).
Steg 8 - Kontroller
For \(n=10\) er sannsynligheten ca. \(0{,}8926\), mens den for \(n=11\) er ca. \(0{,}9141\).
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Solve[1-0.8^n>0.9,n]
\(n>10.3189\)
Tolkning: Siden n må være et helt antall avspillinger, velges n=11.
Tolkning: GeoGebra bekrefter begge lengdene og vinkelen ved A.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
AB = sp.Matrix([6-3, 5-5])
AC = sp.Matrix([7-3, 9-5])
length_AB = sp.sqrt(AB.dot(AB))
length_AC = sp.sqrt(AC.dot(AC))
dot_product = AB.dot(AC)
cos_angle = sp.simplify(dot_product/(length_AB*length_AC))
angle_radians = sp.acos(cos_angle)
angle_degrees = sp.simplify(angle_radians*180/sp.pi)
print("Vector AB =", list(AB))
print("Vector AC =", list(AC))
print("Length AB =", length_AB)
print("Length AC =", length_AC)
print("Dot product AB dot AC =", dot_product)
print("cos(angle BAC) =", cos_angle)
print("Angle in radians =", angle_radians)
print("Angle in degrees =", angle_degrees)
Utskrift fra Python:
Vector AB = [3, 0]
Vector AC = [4, 4]
Length AB = 3
Length AC = 4*sqrt(2)
Dot product AB dot AC = 12
cos(angle BAC) = sqrt(2)/2
Angle in radians = pi/4
Angle in degrees = 45
Fasit: \(AB=3\), \(AC=4\sqrt2\) og \(\angle BAC=45^{\circ}\).
Vanlig feil: Å bruke vektorene i motsatt retning slik at vinkelen blir feil.
Sensorpunkt: Begge vektorene skal ha startpunkt A før skalarproduktet brukes.
Del 2 - Oppgave 2bVektorer - tyngdepunkt
Oppgave 2b
Oppgave: Bestem koordinatene til tyngdepunktet \(T\) i trekanten med \(A(3,5)\), \(B(6,5)\) og \(C(7,9)\).
Vis løsning
Hva spør oppgaven om? Tyngdepunktets posisjonsvektor er gjennomsnittet av de tre hjørnenes posisjonsvektorer.
Omtrent \((5{,}33,6{,}33)\), som ligger inne i trekanten.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Centroid[Polygon[(3,5),(6,5),(7,9)]]
\(\left(16/3,19/3\right)\)
Tolkning: Tyngdepunktet er koordinatgjennomsnittet av hjørnene.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
A = sp.Matrix([3, 5])
B = sp.Matrix([6, 5])
C = sp.Matrix([7, 9])
sum_vector = A + B + C
T = sum_vector/3
print("A =", list(A))
print("B =", list(B))
print("C =", list(C))
print("A + B + C =", list(sum_vector))
print("Tyngdepunkt T =", list(T))
print("T as decimals =", [sp.N(value, 8) for value in T])
print("Average x-coordinate =", sp.Rational(3+6+7, 3))
print("Average y-coordinate =", sp.Rational(5+5+9, 3))
Utskrift fra Python:
A = [3, 5]
B = [6, 5]
C = [7, 9]
A + B + C = [16, 19]
Tyngdepunkt T = [16/3, 19/3]
T as decimals = [5.3333333, 6.3333333]
Average x-coordinate = 16/3
Average y-coordinate = 19/3
Gjennomsnittet av \((2,3)\), \((-3,5)\) og \((13,-2)\) er \((4,2)\).
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
3(4,2)-(2,3)-(-3,5)
\((13,-2)\)
Tolkning: Den ukjente posisjonsvektoren isoleres direkte.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
D = sp.Matrix([2, 3])
E = sp.Matrix([-3, 5])
S = sp.Matrix([4, 2])
three_S = 3*S
F = three_S - D - E
centroid_check = (D + E + F)/3
print("D =", list(D))
print("E =", list(E))
print("S =", list(S))
print("3*S =", list(three_S))
print("F = 3*S - D - E =", list(F))
print("Centroid check =", list(centroid_check))
print("Check equals S =", centroid_check == S)
print("F coordinates =", (F[0], F[1]))
Utskrift fra Python:
D = [2, 3]
E = [-3, 5]
S = [4, 2]
3*S = [12, 6]
F = 3*S - D - E = [13, -2]
Centroid check = [4, 2]
Check equals S = True
F coordinates = (13, -2)
Fasit: \(F=(13,-2)\).
Vanlig feil: Å bruke \(D+E-S\) i stedet for å multiplisere tyngdepunktet med 3.
Sensorpunkt: Den isolerte vektorlikningen må være korrekt før koordinatene beregnes.
Del 2 - Oppgave 3aGraftegning - logaritmefunksjon
Oppgave 3a
Oppgave: Funksjonen er \[f(x)=2\ln(x^2+4)-\frac{1}{2}x.\] Bruk graftegner til å tegne grafen når \(x\in[-4,16]\).
Vis løsning
Hva spør oppgaven om? Vi skal angi korrekt inntasting, vindu og sentrale trekk som gjør grafen etterprøvbar.
Steg 1 - Kontroller definisjonsmengden
Siden \(x^2+4>0\) for alle reelle \(x\), er funksjonen definert på hele intervallet.
Steg 2 - Skriv grafkommandoen
I GeoGebra kan vi skrive \(f(x)=2\ln(x^2+4)-x/2\).
Steg 3 - Begrens intervallet
Vis grafen for \(-4\le x\le16\), for eksempel med kommandoen Funksjon.
Steg 4 - Velg et passende vindu
Et vindu omtrent \(x\in[-4,16]\) og \(y\in[0,8]\) viser utviklingen tydelig.
\(k=7>0\), så funksjonen er definert for alle reelle x.
Steg 6 - Kontroller at punktet er et ekstremalpunkt
For \(k=7\) har likningen \(g^{\prime}(x)=0\) røttene \(x=1\) og \(x=7\). Ved \(x=1\) skifter den deriverte fra negativ til positiv, så punktet er et lokalt minimum.
Tilfellet k=7 har to ekstremalpunkt, blant annet ved x=1.
Tolkning: CAS finner parameteren og fortegnskontrollen viser at x=1 er et minimum.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
x, k = sp.symbols("x k", real=True)
g = 2*sp.log(x**2 + k) - x/2
g_prime = sp.simplify(sp.diff(g, x))
condition = sp.simplify(g_prime.subs(x, 1))
k_solution = sp.solve(sp.Eq(condition, 0), k)
chosen_k = k_solution[0]
critical_for_k = sp.solve(sp.Eq(g_prime.subs(k, chosen_k), 0), x)
print("g(x) =", g)
print("g'(x) =", g_prime)
print("g'(1) =", condition)
print("Solution for k =", k_solution)
print("k > 0 check =", chosen_k > 0)
print("Critical x-values when k=7 =", critical_for_k)
print("Derivative at x=0 =", sp.N(g_prime.subs({k: chosen_k, x: 0})))
print("Derivative at x=2 =", sp.N(g_prime.subs({k: chosen_k, x: 2})))
print("Therefore x=1 changes from decreasing to increasing")
Utskrift fra Python:
g(x) = -x/2 + 2*log(k + x**2)
g'(x) = (-k - x**2 + 8*x)/(2*(k + x**2))
g'(1) = (7 - k)/(2*(k + 1))
Solution for k = [7]
k > 0 check = True
Critical x-values when k=7 = [1, 7]
Derivative at x=0 = -0.500000000000000
Derivative at x=2 = 0.227272727272727
Therefore x=1 changes from decreasing to increasing
Fasit: \(k=7\). Da er \(x=1\) et lokalt bunnpunkt.
Vanlig feil: Å bare løse \(g(1)=0\); ekstremalpunkt bestemmes av den deriverte, ikke funksjonsverdien.
Sensorpunkt: Det må minst vises at \(g^{\prime}(1)=0\), og helst at punktet faktisk er et ekstremalpunkt.
Del 2 - Oppgave 3dParameterdrøfting - antall ekstremalpunkt
Oppgave 3d
Oppgave: Bestem hvor mange ekstremalpunkt \(g(x)=2\ln(x^2+k)-\frac{1}{2}x\) har for ulike verdier av \(k>0\).
Vis løsning
Hva spør oppgaven om? Vi analyserer antall og type nullpunkter til den deriverte.
Steg 1 - Sett den deriverte lik null
\[\frac{4x}{x^2+k}-\frac12=0.\]
Steg 2 - Fjern nevneren
Siden \(x^2+k>0\), kan vi multiplisere uten å endre løsningene: \[8x=x^2+k.\]
Steg 3 - Skriv andregradslikningen
\[x^2-8x+k=0.\]
Steg 4 - Finn diskriminanten
\[\Delta=(-8)^2-4k=64-4k=4(16-k).\]
Steg 5 - Tilfelle \(0<k<16\)
Da er \(\Delta>0\), og vi får to ulike røtter \(x=4\pm\sqrt{16-k}\). Den deriverte skifter fortegn ved begge, så g har to ekstremalpunkt.
Steg 6 - Tilfelle \(k=16\)
Da får vi dobbeltroten \(x=4\). Den deriverte kan skrives \(-\frac{(x-4)^2}{2(x^2+16)}\le0\) og skifter ikke fortegn. Punktet er ikke et ekstremalpunkt.
Steg 7 - Tilfelle \(k>16\)
Da er \(\Delta<0\), så den deriverte har ingen nullpunkter og g er strengt avtakende.
Tre representative parameterverdier viser de ulike tilfellene.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Solve[x^2-8x+k=0,x]
\(x=4\pm\sqrt{16-k}\)
2
Discriminant[x^2-8x+k,x]
\(64-4k\)
Tolkning: Diskriminanten bestemmer antallet stasjonære punkt; ved k=16 er det ikke fortegnsskifte.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
x, k = sp.symbols("x k", real=True, positive=True)
g_prime_numerator = -x**2 + 8*x - k
discriminant = sp.discriminant(x**2 - 8*x + k, x)
roots = sp.solve(sp.Eq(x**2 - 8*x + k, 0), x)
print("Equation for stationary points: x**2 - 8*x + k = 0")
print("Discriminant =", discriminant)
print("Formal roots =", roots)
print("For 0 < k < 16: discriminant > 0, so there are two distinct roots")
print("Example k=7 roots =", sp.solve(sp.Eq(x**2 - 8*x + 7, 0), x))
print("For k=16: factored numerator =", sp.factor(g_prime_numerator.subs(k, 16)))
print("At k=16 the derivative is non-positive on both sides of x=4")
print("For k>16: discriminant < 0, so there are no stationary points")
print("Conclusion: 2 extrema for 0<k<16 and 0 extrema for k>=16")
Utskrift fra Python:
Equation for stationary points: x**2 - 8*x + k = 0
Discriminant = 64 - 4*k
Formal roots = [4 - sqrt(16 - k), sqrt(16 - k) + 4]
For 0 < k < 16: discriminant > 0, so there are two distinct roots
Example k=7 roots = [1, 7]
For k=16: factored numerator = -(x - 4)**2
At k=16 the derivative is non-positive on both sides of x=4
For k>16: discriminant < 0, so there are no stationary points
Conclusion: 2 extrema for 0<k<16 and 0 extrema for k>=16
Fasit: For \(0<k<16\) har g to ekstremalpunkt. For \(k=16\) og \(k>16\) har g ingen ekstremalpunkt.
Vanlig feil: Å telle dobbeltroten ved \(k=16\) som et ekstremalpunkt uten å kontrollere fortegnsskifte.
Sensorpunkt: Skillet mellom stasjonært punkt og ekstremalpunkt er avgjørende ved \(k=16\).
Del 2 - Oppgave 4aVektorer - fartsvektor og banefart
Oppgave 4a
Oppgave: Skipets posisjon t timer etter meldingen er gitt ved \[\overrightarrow{OP}(t)=[80+4t,16+3t].\] Hvilken fartsvektor driver skipet med, og hvor stor er banefarten?
Vis løsning
Hva spør oppgaven om? Fartsvektoren er den deriverte av posisjonsvektoren med hensyn på tiden.
Steg 1 - Deriver x-komponenten
\[\frac{d}{dt}(80+4t)=4.\]
Steg 2 - Deriver y-komponenten
\[\frac{d}{dt}(16+3t)=3.\]
Steg 3 - Skriv fartsvektoren
\[\vec v=[4,3]\ \text{nm/h}.\]
Steg 4 - Bruk lengdeformelen
Banefarten er lengden av fartsvektoren: \[|\vec v|=\sqrt{4^2+3^2}.\]
Steg 5 - Beregn
\[|\vec v|=\sqrt{16+9}=5\ \text{nm/h}.\]
Steg 6 - Eventuell omregning
\(5\) nautiske mil per time tilsvarer \(5\cdot1852=9260\) meter per time, altså omtrent \(2{,}57\) m/s.
Skipets drift og redningsbåtenes ruter.
GeoGebra/CAS-kontroll
GeoGebra - CAS
1
Derivative[(80+4t,16+3t),t]
\((4,3)\)
2
Length[(4,3)]
\(5\)
Tolkning: Den konstante fartsvektoren har lengde 5 nm/h.
Python-kontroll med SymPy
Python 3 - SymPy
import sympy as sp
t = sp.symbols("t", real=True)
position = sp.Matrix([80 + 4*t, 16 + 3*t])
velocity = position.diff(t)
speed = sp.sqrt(velocity.dot(velocity))
meters_per_hour = speed*1852
meters_per_second = sp.N(meters_per_hour/3600, 10)
print("Position vector OP(t) =", list(position))
print("Derivative of x-component =", sp.diff(position[0], t))
print("Derivative of y-component =", sp.diff(position[1], t))
print("Velocity vector v =", list(velocity), "nm/h")
print("Speed squared =", velocity.dot(velocity))
print("Speed =", speed, "nm/h")
print("Speed =", meters_per_hour, "m/h")
print("Speed in m/s =", meters_per_second)
Utskrift fra Python:
Position vector OP(t) = [4*t + 80, 3*t + 16]
Derivative of x-component = 4
Derivative of y-component = 3
Velocity vector v = [4, 3] nm/h
Speed squared = 25
Speed = 5 nm/h
Speed = 9260 m/h
Speed in m/s = 2.572222222
Fasit: Fartsvektoren er \([4,3]\) nm/h, og banefarten er \(5\) nm/h.
Vanlig feil: Å oppgi koordinatene \([80+4t,16+3t]\) som fartsvektor.
Sensorpunkt: Fartsvektoren skal deriveres fra posisjonen, og banefarten er vektorlengden.
Del 2 - Oppgave 4bBevegelse - gjennomsnittsfart mot møtepunkt
Oppgave 4b
Oppgave: En redningsbåt ligger i origo og kan være ved Euler om 4 timer. Hvor stor fart holder redningsbåten?
Vis løsning
Hva spør oppgaven om? Redningsbåten må nå skipets posisjon etter fire timer, ikke skipets startposisjon.
Fasit: Redningsbåten kan være framme etter \(t\approx3{,}0006\) timer, altså omtrent 3 timer.
Vanlig feil: Å bruke avstanden fra Q til startposisjonen \(P_0\) og dermed ignorere skipets drift.
Sensorpunkt: Likningen må bruke samme tid t for både skipets posisjon og redningsbåtens tilbakelagte distanse.
Kilde og metode: Oppgavetekstene er transkribert fra Utdanningsdirektoratets eksamenssett REA3022 Matematikk R1, høsten 2017. Løsningene, figurene og kontrollkodene er originale ifingo-utarbeidelser. Python-utskriftene er generert ved faktisk kjøring av kodene i denne filproduksjonen.
ifingo-lærerenHjelper deg å forstå
ifingo-læreren hjelper deg å forstå – ikke å gjøre leksene for deg 💜