R1 eksamenHøst 2021

Matematikk R1 eksamen – høst 2021

ifingo
Norsk (Bokmål)

ifingo · Matematikk R1

Matematikk R1 - eksempelsett høsten 2021 (REA3056)

Løsningsforslag til eksamenssettet fra Utdanningsdirektoratet.

Del 1 - uten hjelpemidler

Del 1 - Oppgave 1Grenseverdi og faktorisering

Oppgave 1

Oppgave: Bestem grenseverdien \[\lim_{x\to1}\frac{x-1}{x^2+x-2}.\]
Vis løsning

Hva spør oppgaven om? Vi skal fjerne den ubestemte formen 0/0 ved å faktorisere nevneren og forkorte en felles faktor.

Steg 1 - Sett inn grensepunktet

Direkte innsetting gir \(0/0\), så uttrykket må omskrives.

Steg 2 - Faktoriser nevneren

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

Steg 3 - Forkort for x ulik 1

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

Steg 4 - Bruk grenseverdi

Forkortingen er lovlig i et punktert nabolag rundt 1, som er det grenseverdien undersøker.

Steg 5 - Sett inn

\[\lim_{x\to1}\frac1{x+2}=\frac13.\]

Steg 6 - Konklusjon

Funksjonen har et fjernbart hull i \(x=1\), men grenseverdien finnes.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Limit[(x-1)/(x^2+x-2),1]
\(1/3\)
2
Factor[x^2+x-2]
\((x-1)(x+2)\)

Tolkning: CAS faktoriserer nevneren og beregner den tosidige grenseverdien.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
expr = (x-1)/(x**2+x-2)
factored_denominator = sp.factor(x**2+x-2)
cancelled = sp.cancel(expr)
limit_value = sp.limit(expr, x, 1)
print("Expression =", expr)
print("Factorized denominator =", factored_denominator)
print("Cancelled expression for x != 1 =", cancelled)
print("Direct numerator at x=1 =", (x-1).subs(x,1))
print("Direct denominator at x=1 =", (x**2+x-2).subs(x,1))
print("Two-sided limit =", limit_value)
print("Decimal value =", sp.N(limit_value,12))
Utskrift fra Python:
Expression = (x - 1)/(x**2 + x - 2)
Factorized denominator = (x - 1)*(x + 2)
Cancelled expression for x != 1 = 1/(x + 2)
Direct numerator at x=1 = 0
Direct denominator at x=1 = 0
Two-sided limit = 1/3
Decimal value = 0.333333333333

Fasit: Grenseverdien er \(\boxed{1/3}\).

Vanlig feil: Å sette inn x=1 og konkludere med at grenseverdien ikke finnes fordi man får 0/0.
Sensorpunkt: Faktoriseringen, forkortingen og begrunnelsen for at grenseverdien likevel kan beregnes må framgå.
Del 1 - Oppgave 2aVektorlengder

Oppgave 2a

Oppgave: Vi har \(\vec a=[2,-5]\), \(\vec b=[1,-4]\), \(\vec c=[-2,10]\) og \(\vec d=[4,1]\). Avgjør om noen av vektorene har lik lengde.
Vis løsning

Hva spør oppgaven om? Vi sammenlikner kvadratene av lengdene; da slipper vi unødvendige kvadratrøtter.

Steg 1 - Bruk lengdeformelen

For \([u,v]\) er \(|\vec v|^2=u^2+v^2\).

Steg 2 - Vektor a

\(|\vec a|^2=2^2+(-5)^2=29\).

Steg 3 - Vektor b

\(|\vec b|^2=1^2+(-4)^2=17\).

Steg 4 - Vektor c

\(|\vec c|^2=(-2)^2+10^2=104\).

Steg 5 - Vektor d

\(|\vec d|^2=4^2+1^2=17\).

Steg 6 - Sammenlikn

Bare \(\vec b\) og \(\vec d\) har samme lengde, nemlig \(\sqrt{17}\).

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Length[Vector[(0,0),(1,-4)]]
\(\sqrt{17}\)
2
Length[Vector[(0,0),(4,1)]]
\(\sqrt{17}\)

Tolkning: De to lengdene er eksakt like, mens de andre lengdekvadratene er 29 og 104.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
vectors = {
    "a": sp.Matrix([2,-5]),
    "b": sp.Matrix([1,-4]),
    "c": sp.Matrix([-2,10]),
    "d": sp.Matrix([4,1]),
}
length_squares = {name: sp.expand(v.dot(v)) for name,v in vectors.items()}
lengths = {name: sp.sqrt(value) for name,value in length_squares.items()}
print("Vectors =", vectors)
print("Squared lengths =", length_squares)
print("Exact lengths =", lengths)
for first in vectors:
    for second in vectors:
        if first < second and length_squares[first] == length_squares[second]:
            print("Equal-length pair =", first, second)
print("Common length of b and d =", lengths["b"])
print("Decimal common length =", sp.N(lengths["b"],12))
Utskrift fra Python:
Vectors = {'a': Matrix([
[ 2],
[-5]]), 'b': Matrix([
[ 1],
[-4]]), 'c': Matrix([
[-2],
[10]]), 'd': Matrix([
[4],
[1]])}
Squared lengths = {'a': 29, 'b': 17, 'c': 104, 'd': 17}
Exact lengths = {'a': sqrt(29), 'b': sqrt(17), 'c': 2*sqrt(26), 'd': sqrt(17)}
Equal-length pair = b d
Common length of b and d = sqrt(17)
Decimal common length = 4.12310562562

Fasit: \(\vec b\) og \(\vec d\) har lik lengde: \(|\vec b|=|\vec d|=\sqrt{17}\).

Vanlig feil: Å sammenlikne koordinatsummene i stedet for kvadratsummen.
Sensorpunkt: Alle fire lengdene eller lengdekvadratene må vises før paret identifiseres.
Del 1 - Oppgave 2bSkalarprodukt og normalitet

Oppgave 2b

Oppgave: Avgjør om noen av vektorene \(\vec a,\vec b,\vec c,\vec d\) står normalt på hverandre.
Vis løsning

Hva spør oppgaven om? To ikke-nullvektorer er normale når skalarproduktet er 0. Vi kontrollerer alle seks par.

Steg 1 - Kriterium

\([u_1,u_2]\cdot[v_1,v_2]=u_1v_1+u_2v_2\).

Steg 2 - Par med a

\(\vec a\cdot\vec b=22\), \(\vec a\cdot\vec c=-54\), \(\vec a\cdot\vec d=3\).

Steg 3 - Par med b

\(\vec b\cdot\vec c=-42\) og \(\vec b\cdot\vec d=1\cdot4+(-4)\cdot1=0\).

Steg 4 - Siste par

\(\vec c\cdot\vec d=-8+10=2\).

Steg 5 - Identifiser nullproduktet

Bare paret \(\vec b,\vec d\) gir skalarprodukt 0.

Steg 6 - Konklusjon

\(\vec b\perp\vec d\).

GeoGebra/CAS-kontroll

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

Tolkning: Skalarproduktet 0 bekrefter at b og d står normalt på hverandre.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
vectors = {
    "a": sp.Matrix([2,-5]),
    "b": sp.Matrix([1,-4]),
    "c": sp.Matrix([-2,10]),
    "d": sp.Matrix([4,1]),
}
names = list(vectors)
dot_products = {}
for i, first in enumerate(names):
    for second in names[i+1:]:
        dot_products[(first,second)] = vectors[first].dot(vectors[second])
print("All pairwise dot products:")
for pair,value in dot_products.items():
    print(pair, "->", value)
normal_pairs = [pair for pair,value in dot_products.items() if value == 0]
print("Pairs with dot product zero =", normal_pairs)
print("b dot d =", vectors["b"].dot(vectors["d"]))
print("Conclusion: b and d are perpendicular")
Utskrift fra Python:
All pairwise dot products:
('a', 'b') -> 22
('a', 'c') -> -54
('a', 'd') -> 3
('b', 'c') -> -42
('b', 'd') -> 0
('c', 'd') -> 2
Pairs with dot product zero = [('b', 'd')]
b dot d = 0
Conclusion: b and d are perpendicular

Fasit: \(\boxed{\vec b\perp\vec d}\). Ingen andre par er normale.

Vanlig feil: Å kontrollere bare ett tilfeldig par eller å bruke determinantkriteriet for normalitet.
Sensorpunkt: Sensor forventer et eksplisitt skalarprodukt lik 0 og en tydelig konklusjon.
Del 1 - Oppgave 2cParallelle vektorer

Oppgave 2c

Oppgave: Avgjør om noen av vektorene \(\vec a,\vec b,\vec c,\vec d\) er parallelle.
Vis løsning

Hva spør oppgaven om? Parallelle vektorer må være skalarmultipler. I planet kan vi også kontrollere at determinanten er 0.

Steg 1 - Kriterium

Vektorene \([u_1,u_2]\) og \([v_1,v_2]\) er parallelle når \(u_1v_2-u_2v_1=0\).

Steg 2 - Par med a

Determinantene for \((a,b),(a,c),(a,d)\) er henholdsvis \(-3,10,22\).

Steg 3 - Par med b

Determinantene for \((b,c),(b,d)\) er \(2\) og \(17\).

Steg 4 - Siste par

Determinanten for \((c,d)\) er \(-42\).

Steg 5 - Vurder null

Ingen av determinantene er 0.

Steg 6 - Konklusjon

Ingen av de fire vektorene er parallelle med hverandre.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Determinant[{{2,-5},{-2,10}}]
\(10\)
2
Determinant[{{1,-4},{4,1}}]
\(17\)

Tolkning: Alle par gir determinant ulik 0, derfor finnes ingen parallelle par.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
vectors = {
    "a": sp.Matrix([2,-5]),
    "b": sp.Matrix([1,-4]),
    "c": sp.Matrix([-2,10]),
    "d": sp.Matrix([4,1]),
}
names = list(vectors)
determinants = {}
for i, first in enumerate(names):
    for second in names[i+1:]:
        matrix = sp.Matrix.hstack(vectors[first], vectors[second])
        determinants[(first,second)] = matrix.det()
print("Pairwise determinants:")
for pair,value in determinants.items():
    print(pair, "->", value)
parallel_pairs = [pair for pair,value in determinants.items() if value == 0]
print("Parallel pairs =", parallel_pairs)
print("Number of parallel pairs =", len(parallel_pairs))
print("Conclusion: no two vectors are parallel")
Utskrift fra Python:
Pairwise determinants:
('a', 'b') -> -3
('a', 'c') -> 10
('a', 'd') -> 22
('b', 'c') -> 2
('b', 'd') -> 17
('c', 'd') -> -42
Parallel pairs = []
Number of parallel pairs = 0
Conclusion: no two vectors are parallel

Fasit: Ingen av vektorene er parallelle.

Vanlig feil: Å se bare på fortegn eller omtrentlige retninger uten å kontrollere samme skalafaktor i begge koordinater.
Sensorpunkt: Et gyldig parallellkriterium må brukes systematisk på alle par.
Del 1 - Oppgave 3aNumerisk derivasjon og maksimum

Oppgave 3a

Oppgave: Programmet definerer \(f(x)=x/(1+x^2)\), setter \(h=0{,}0001\) og øker x med 0,01 så lenge \((f(x+h)-f(x))/h>0\). Hva ønsker eleven å finne ut?
Vis løsning

Hva spør oppgaven om? Vi tolker differansekvotienten som en numerisk tilnærming til den deriverte.

Steg 1 - Gjenkjenn differansekvotienten

\((f(x+h)-f(x))/h\) tilnærmer \(f^\prime(x)\) når h er liten.

Steg 2 - Tolk while-betingelsen

Løkken fortsetter så lenge den numeriske deriverte er positiv.

Steg 3 - Tolk positiv derivert

Positiv derivert betyr at funksjonen vokser.

Steg 4 - Tolk stoppet

Programmet stopper ved første rutenettpunkt der veksten ikke lenger er positiv.

Steg 5 - Knytt til ekstremalpunkt

Dette er en numerisk søking etter x-koordinaten til et toppunkt.

Steg 6 - Presisjon

Stegvidden 0,01 bestemmer hvor fint programmet søker, mens h brukes i selve derivasjonen.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
f(x):=x/(1+x^2)
Funksjonen
2
Derivative[f]
\((1-x^2)/(1+x^2)^2\)

Tolkning: Den eksakte deriverte skifter fortegn fra positiv til negativ ved x=1.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
f = x/(1+x**2)
f_prime = sp.factor(sp.diff(f,x))
critical_points = sp.solve(sp.Eq(sp.together(f_prime).as_numer_denom()[0],0),x)
print("f(x) =", f)
print("Exact derivative =", f_prime)
print("Critical points =", critical_points)
print("Derivative at x=0 =", f_prime.subs(x,0))
print("Derivative at x=2 =", sp.simplify(f_prime.subs(x,2)))
print("The loop searches while the forward difference is positive")
print("Therefore it approximates the x-coordinate of a local maximum")
print("Expected stopping location is close to x=1")
Utskrift fra Python:
f(x) = x/(x**2 + 1)
Exact derivative = -(x - 1)*(x + 1)/(x**2 + 1)**2
Critical points = [-1, 1]
Derivative at x=0 = 1
Derivative at x=2 = -3/25
The loop searches while the forward difference is positive
Therefore it approximates the x-coordinate of a local maximum
Expected stopping location is close to x=1

Fasit: Eleven ønsker å finne omtrent hvor \(f\) har toppunkt, altså x-verdien der funksjonen slutter å vokse.

Vanlig feil: Å tro at løkken finner et nullpunkt for f i stedet for et nullpunkt for den deriverte.
Sensorpunkt: Forklaringen må knytte differansekvotient, vekst og toppunkt sammen.
Del 1 - Oppgave 3bSporing av Python-program

Oppgave 3b

Oppgave: Forklar hva som skjer når programmet kjøres, og bestem resultatet som skrives ut.
Vis løsning

Hva spør oppgaven om? Vi følger løkken og sammenlikner med den eksakte deriverte for å forstå stoppverdien.

Steg 1 - Startverdi

Programmet starter med \(x=0\).

Steg 2 - Første test

Differansekvotienten er positiv nær 0, så x økes til 0,01.

Steg 3 - Gjentakelse

x økes med 0,01 for hver runde så lenge funksjonen vokser.

Steg 4 - Teoretisk kontroll

\[f^\prime(x)=\frac{1-x^2}{(1+x^2)^2},\] som er positiv for \(0\le x<1\) og 0 ved x=1.

Steg 5 - Numerisk framoverdifferanse

Ved x nær 1 ser differansekvotienten litt framover og blir negativ ved den lagrede flyttallsverdien rett over 1.

Steg 6 - Faktisk utskrift

På vanlig Python-flyttall skrives \(x=1.0000000000000007\).

Steg 7 - Tolkning

Matematisk skal resultatet leses som \(x\approx1,00\).

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Root[Derivative[x/(1+x^2)]]
\(x=-1,1\)

Tolkning: Når søket starter ved 0 og går mot høyre, er den relevante stasjonære x-verdien 1.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
def f(x):
    return x/(1+x**2)
h = 0.0001
x = 0
iterations = 0
while (f(x+h)-f(x))/h > 0:
    x = x + 0.01
    iterations += 1
final_difference = (f(x+h)-f(x))/h
print("Number of loop iterations =", iterations)
print("x=", x)
print("f(x) =", f(x))
print("Final forward difference =", final_difference)
print("Rounded x to two decimals =", round(x,2))
print("Mathematical interpretation: maximum near x = 1")
Utskrift fra Python:
Number of loop iterations = 100
x= 1.0000000000000007
f(x) = 0.5
Final forward difference = -2.4997500180923282e-05
Rounded x to two decimals = 1.0
Mathematical interpretation: maximum near x = 1

Fasit: Programmet skriver `x= 1.0000000000000007`, som tolkes som \(x\approx1\).

Vanlig feil: Å oppgi bare 1 uten å forklare flyttallsutskriften eller hva løkken gjør.
Sensorpunkt: Sensorpunktet er både korrekt sporing og matematisk tolkning av resultatet.
Del 1 - Oppgave 4Speiling om en linje med vektorer

Oppgave 4

Oppgave: Bruk vektorregning til å bestemme koordinatene til punktet vi får når vi speiler \(P(6,1)\) om linjen \(y=2x+4\).
Vis løsning

Hva spør oppgaven om? Vi finner fotpunktet H fra P på linjen langs en normalvektor og bruker at H er midtpunkt mellom P og speilpunktet.

Steg 1 - Standardform

Linjen skrives \(2x-y+4=0\), så en normalvektor er \(\vec n=[2,-1]\).

Steg 2 - Parametriser normalen gjennom P

\[(x,y)=(6,1)+t(2,-1).\]

Steg 3 - Finn skjæringen med linjen

\[2(6+2t)-(1-t)+4=0\Rightarrow15+5t=0\Rightarrow t=-3.\]

Steg 4 - Finn fotpunktet

\[H=(6,1)-3(2,-1)=(0,4).\]

Steg 5 - Bruk midtpunkt

Når \(P^\prime\) er speilpunktet, er \(H=(P+P^\prime)/2\).

Steg 6 - Løs for speilpunktet

\[P^\prime=2H-P=2(0,4)-(6,1)=(-6,7).\]

Steg 7 - Kontroll

Midtpunktet av \((6,1)\) og \((-6,7)\) er \((0,4)\), som ligger på linjen.

Illustrasjon til Oppgave 4
H=(0,4) er fotpunktet og midtpunktet mellom P og speilpunktet.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Reflect[(6,1), y=2x+4]
\((-6,7)\)
2
Intersect[PerpendicularLine[(6,1),y=2x+4],y=2x+4]
\((0,4)\)

Tolkning: GeoGebra finner samme fotpunkt og speilpunkt.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
P = sp.Matrix([6,1])
normal = sp.Matrix([2,-1])
t = sp.symbols("t", real=True)
point_on_normal = P + t*normal
equation = sp.Eq(2*point_on_normal[0]-point_on_normal[1]+4,0)
t_value = sp.solve(equation,t)[0]
H = sp.simplify(point_on_normal.subs(t,t_value))
reflected = 2*H-P
midpoint = sp.simplify((P+reflected)/2)
print("P =", P.T)
print("Normal vector =", normal.T)
print("Line-intersection equation =", equation)
print("Parameter t =", t_value)
print("Foot point H =", H.T)
print("Reflected point P' =", reflected.T)
print("Midpoint check =", midpoint.T)
print("Line check at H =", 2*H[0]-H[1]+4)
print("Equal distances squared =", (P-H).dot(P-H), (reflected-H).dot(reflected-H))
Utskrift fra Python:
P = Matrix([[6, 1]])
Normal vector = Matrix([[2, -1]])
Line-intersection equation = Eq(5*t + 15, 0)
Parameter t = -3
Foot point H = Matrix([[0, 4]])
Reflected point P' = Matrix([[-6, 7]])
Midpoint check = Matrix([[0, 4]])
Line check at H = 0
Equal distances squared = 45 45

Fasit: Speilpunktet er \(\boxed{(-6,7)}\).

Vanlig feil: Å speile i x- eller y-aksen i stedet for i den skrå linjen.
Sensorpunkt: Normalretning, fotpunkt og midtpunktegenskap må dokumenteres.
Del 1 - Oppgave 5Grafanalyse av eksponentialfunksjon

Oppgave 5

Oppgave: Funksjonen er \(f(x)=4x\,e^{-x}\). Begrunn hvilken av grafene I–IV som er grafen til f.
Vis løsning

Hva spør oppgaven om? Vi bruker nullpunkt, fortegn, ekstremalpunkt, krumning og grenseverdier til å identifisere riktig skisse.

Steg 1 - Nullpunkt og fortegn

\(f(0)=0\). Fordi \(e^{-x}>0\), har f samme fortegn som x.

Steg 2 - Endeadferd mot høyre

\(\lim_{x\to\infty}4xe^{-x}=0^+\), så grafen nærmer seg x-aksen ovenfra.

Steg 3 - Endeadferd mot venstre

Når \(x\to-\infty\), blir \(4xe^{-x}\to-\infty\).

Steg 4 - Deriver

\[f^\prime(x)=4e^{-x}(1-x).\]

Steg 5 - Maksimum

Deriverten skifter fra positiv til negativ ved \(x=1\), så toppunktet er \((1,4/e)\).

Steg 6 - Andrederivert

\[f^{\prime\prime}(x)=4e^{-x}(x-2),\] så vendepunktet ligger ved x=2.

Steg 7 - Sammenlikn skissene

Graf IV har nullpunkt 0, topp ved x=1, vendepunkt nær x=2 og horisontal asymptote y=0 mot høyre.

Illustrasjon til Oppgave 5
Den beregnede formen har topp ved x=1 og vendepunkt ved x=2.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
f(x):=4x exp(-x)
Funksjon
2
Extremum[f]
\((1,4/e)\)
3
InflectionPoint[f]
\((2,8/e^2)\)

Tolkning: De karakteristiske punktene samsvarer med graf IV.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
f = 4*x*sp.exp(-x)
f_prime = sp.factor(sp.diff(f,x))
f_second = sp.factor(sp.diff(f,x,2))
maximum_x = sp.solve(sp.Eq(f_prime,0),x)[0]
inflection_x = sp.solve(sp.Eq(f_second,0),x)[0]
print("f(x) =", f)
print("f(0) =", f.subs(x,0))
print("f'(x) =", f_prime)
print("Maximum x-coordinate =", maximum_x)
print("Maximum value =", sp.simplify(f.subs(x,maximum_x)), "=", sp.N(f.subs(x,maximum_x),12))
print("f''(x) =", f_second)
print("Inflection x-coordinate =", inflection_x)
print("Inflection value =", sp.simplify(f.subs(x,inflection_x)))
print("Limit as x -> infinity =", sp.limit(f,x,sp.oo))
print("Limit as x -> -infinity =", sp.limit(f,x,-sp.oo))
print("Matching sketch = IV")
Utskrift fra Python:
f(x) = 4*x*exp(-x)
f(0) = 0
f'(x) = -4*(x - 1)*exp(-x)
Maximum x-coordinate = 1
Maximum value = 4*exp(-1) = 1.47151776469
f''(x) = 4*(x - 2)*exp(-x)
Inflection x-coordinate = 2
Inflection value = 8*exp(-2)
Limit as x -> infinity = 0
Limit as x -> -infinity = -oo
Matching sketch = IV

Fasit: Den riktige grafen er \(\boxed{\text{IV}}\).

Vanlig feil: Å velge graf bare ut fra at den går gjennom origo, uten å kontrollere maksimum og asymptote.
Sensorpunkt: En full begrunnelse bør bruke minst nullpunkt, toppunkt og endeadferd.

Del 2 - med hjelpemidler

Del 2 - Oppgave 1aVektorfunksjon og banefart

Oppgave 1a

Oppgave: Ballens posisjon er \(\vec r(t)=[28t-3t^2,\,10t-5t^2]\). Bestem banefarten da ballen ble sparket.
Vis løsning

Hva spør oppgaven om? Banefarten er lengden av fartsvektoren \(ec v(t)=ec r^{\prime}(t)\).

Steg 1 - Deriver posisjonen

\[\vec v(t)=[28-6t,\,10-10t].\]

Steg 2 - Sett inn starttid

\[\vec v(0)=[28,10].\]

Steg 3 - Bruk lengdeformelen

\[|\vec v(0)|=\sqrt{28^2+10^2}.\]

Steg 4 - Regn ut kvadratsummen

\(28^2+10^2=784+100=884\).

Steg 5 - Forenkle

\[\sqrt{884}=2\sqrt{221}.\]

Steg 6 - Desimal og enhet

\[2\sqrt{221}\approx29.73\ \text{m/s}.\]

Illustrasjon til Oppgave 1a
Ballen starter i origo og beveger seg langs en parabel.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
r(t):=(28t-3t^2,10t-5t^2)
Posisjon
2
Length[r'(0)]
\(2\sqrt{221}\approx29.732\)

Tolkning: Lengden av den deriverte vektoren ved t=0 er startfarten.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
t = sp.symbols("t", real=True)
r = sp.Matrix([28*t-3*t**2, 10*t-5*t**2])
v = r.diff(t)
v0 = v.subs(t,0)
speed0 = sp.sqrt(v0.dot(v0))
print("Position r(t) =", r.T)
print("Velocity v(t) =", v.T)
print("Initial velocity v(0) =", v0.T)
print("Speed squared at t=0 =", v0.dot(v0))
print("Exact initial speed =", sp.simplify(speed0))
print("Decimal initial speed =", sp.N(speed0,12))
print("Unit = m/s")
Utskrift fra Python:
Position r(t) = Matrix([[-3*t**2 + 28*t, -5*t**2 + 10*t]])
Velocity v(t) = Matrix([[28 - 6*t, 10 - 10*t]])
Initial velocity v(0) = Matrix([[28, 10]])
Speed squared at t=0 = 884
Exact initial speed = 2*sqrt(221)
Decimal initial speed = 29.7321374946
Unit = m/s

Fasit: Banefarten ved utsparket var \(2\sqrt{221}\approx29.73\ \text{m/s}\).

Vanlig feil: Å oppgi fartsvektoren [28,10] som banefart uten å ta lengden.
Sensorpunkt: Derivasjon, innsetting og norm med enhet må vises.
Del 2 - Oppgave 1bTid til bakken

Oppgave 1b

Oppgave: Hvor lang tid tok det fra ballen ble sparket til den traff bakken?
Vis løsning

Hva spør oppgaven om? Ballen treffer bakken når høydekoordinaten er 0 igjen etter starttidspunktet.

Steg 1 - Høydefunksjon

\[y(t)=10t-5t^2.\]

Steg 2 - Sett høyden lik 0

\[10t-5t^2=0.\]

Steg 3 - Faktoriser

\[5t(2-t)=0.\]

Steg 4 - Finn løsningene

\(t=0\) eller \(t=2\).

Steg 5 - Tolk løsningene

t=0 er selve utsparket; den neste bakkekontakten skjer ved t=2.

Steg 6 - Konklusjon

Flytiden er 2 sekunder.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Solve[10t-5t^2=0,t]
\(t=0,2\)

Tolkning: Den positive løsningen etter start er t=2 sekunder.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
t = sp.symbols("t", real=True)
y = 10*t-5*t**2
solutions = sp.solve(sp.Eq(y,0),t)
positive_after_start = [s for s in solutions if s > 0]
print("Height y(t) =", y)
print("Factorized height =", sp.factor(y))
print("Ground equation: y(t) = 0")
print("All solutions =", solutions)
print("Solution after the kick =", positive_after_start)
for value in solutions:
    print("Check y(", value, ") =", y.subs(t,value))
print("Flight time = 2 seconds")
Utskrift fra Python:
Height y(t) = -5*t**2 + 10*t
Factorized height = -5*t*(t - 2)
Ground equation: y(t) = 0
All solutions = [0, 2]
Solution after the kick = [2]
Check y( 0 ) = 0
Check y( 2 ) = 0
Flight time = 2 seconds

Fasit: Ballen traff bakken etter \(\boxed{2\text{ s}}\).

Vanlig feil: Å velge t=0 som svar, selv om det er startøyeblikket.
Sensorpunkt: Begge røttene skal finnes og tolkes i situasjonen.
Del 2 - Oppgave 1cBanefart i høyeste punkt

Oppgave 1c

Oppgave: Bestem ballens banefart da den var i sitt høyeste punkt.
Vis løsning

Hva spør oppgaven om? I høyeste punkt er den vertikale komponenten av farten 0. Vi finner tidspunktet og deretter hele banefarten.

Steg 1 - Fartsvektor

\[\vec v(t)=[28-6t,\,10-10t].\]

Steg 2 - Høyeste punkt

Den vertikale farten er \(10-10t\). Sett den lik 0.

Steg 3 - Tidspunkt

\[10-10t=0\Rightarrow t=1.\]

Steg 4 - Fartsvektor ved t=1

\[\vec v(1)=[22,0].\]

Steg 5 - Banefart

\[|\vec v(1)|=\sqrt{22^2+0^2}=22.\]

Steg 6 - Konklusjon

Ballen beveger seg horisontalt med 22 m/s i toppunktet.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Derivative[10t-5t^2]
\(10-10t\)
2
Length[(28-6,10-10)]
\(22\)

Tolkning: Toppunktet finnes når den vertikale farten er 0; den horisontale komponenten er da 22.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
t = sp.symbols("t", real=True)
r = sp.Matrix([28*t-3*t**2, 10*t-5*t**2])
v = r.diff(t)
top_time = sp.solve(sp.Eq(v[1],0),t)[0]
v_top = sp.simplify(v.subs(t,top_time))
speed_top = sp.sqrt(v_top.dot(v_top))
print("Velocity v(t) =", v.T)
print("Vertical velocity =", v[1])
print("Time at highest point =", top_time)
print("Position at highest point =", r.subs(t,top_time).T)
print("Velocity at highest point =", v_top.T)
print("Speed squared =", v_top.dot(v_top))
print("Speed at highest point =", speed_top)
print("Unit = m/s")
Utskrift fra Python:
Velocity v(t) = Matrix([[28 - 6*t, 10 - 10*t]])
Vertical velocity = 10 - 10*t
Time at highest point = 1
Position at highest point = Matrix([[25, 5]])
Velocity at highest point = Matrix([[22, 0]])
Speed squared = 484
Speed at highest point = 22
Unit = m/s

Fasit: Banefarten i høyeste punkt var \(\boxed{22\ \text{m/s}}\).

Vanlig feil: Å bruke høyden 5 m som fart eller å sette hele fartsvektoren lik null.
Sensorpunkt: Bare den vertikale komponenten skal være 0 i toppunktet.
Del 2 - Oppgave 2Omvendt funksjon og monotoni

Oppgave 2

Oppgave: \(f(x)=x^4-bx^3+2\) har definisjonsmengde \([-3,\infty)\). For hvilke verdier av b har f en omvendt funksjon?
Vis løsning

Hva spør oppgaven om? En kontinuerlig funksjon på intervallet har en omvendt funksjon når den er én-til-én. Her sikrer vi dette ved monotoni.

Steg 1 - Deriver

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

Steg 2 - Fortegnsfaktor

Faktoren \(x^2\) er ikke-negativ og endrer ikke fortegn. Fortegnet styres av \(4x-3b\).

Steg 3 - Kritisk skiftepunkt

Faktoren skifter fortegn ved \(x=3b/4\).

Steg 4 - Krav på domenet

For at f skal være voksende på hele \([-3,\infty)\), må skiftepunktet ligge til venstre for eller i venstre endepunkt.

Steg 5 - Løs ulikheten

\[\frac{3b}{4}\le-3\Rightarrow b\le-4.\]

Steg 6 - Kontroller randtilfellet

Når b=-4, er \(f^\prime=x^2(4x+12)\ge0\) på domenet og positiv bortsett fra isolerte punkt.

Steg 7 - Utelukk større b

Når b>-4, ligger et lokalt minimum inne i domenet; funksjonen avtar først og vokser så, og er derfor ikke én-til-én.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Derivative[x^4-bx^3+2]
\(x^2(4x-3b)\)
2
Solve[3b/4<=-3,b]
\(b\le-4\)

Tolkning: Parameterkravet flytter fortegnsskiftet utenfor den indre delen av domenet.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x, b = sp.symbols("x b", real=True)
f = x**4-b*x**3+2
f_prime = sp.factor(sp.diff(f,x))
turning_location = sp.solve(sp.Eq(4*x-3*b,0),x)[0]
condition = sp.solve_univariate_inequality(turning_location <= -3,b)
print("f(x) =", f)
print("f'(x) =", f_prime)
print("Sign-changing critical location =", turning_location)
print("Required inequality =", sp.Le(turning_location,-3))
print("Parameter solution =", condition)
for value in [-5,-4,-3,0]:
    derivative = sp.factor(f_prime.subs(b,value))
    print("b =", value, "-> f'(x) =", derivative)
print("Final condition: b <= -4")
Utskrift fra Python:
f(x) = -b*x**3 + x**4 + 2
f'(x) = x**2*(-3*b + 4*x)
Sign-changing critical location = 3*b/4
Required inequality = 3*b/4 <= -3
Parameter solution = b <= -4
b = -5 -> f'(x) = x**2*(4*x + 15)
b = -4 -> f'(x) = 4*x**2*(x + 3)
b = -3 -> f'(x) = x**2*(4*x + 9)
b = 0 -> f'(x) = 4*x**3
Final condition: b <= -4

Fasit: f har en omvendt funksjon når \(\boxed{b\le-4}\).

Vanlig feil: Å kreve at den deriverte aldri kan være 0; isolerte horisontale tangenter ødelegger ikke streng monotoni.
Sensorpunkt: Fortegnsanalysen må gjelde hele det oppgitte intervallet, inkludert b=-4.
Del 2 - Oppgave 3aAlgoritme for punkt og sirkel

Oppgave 3a

Oppgave: En sirkel har sentrum \(S(a,b)\) og radius r. Beskriv en algoritme som avgjør om \(P(s,t)\) ligger på, inni eller utenfor sirkelen.
Vis løsning

Hva spør oppgaven om? Vi sammenlikner avstanden fra punktet til sentrum med radiusen. Kvadrerte avstander gir en enklere og mer robust algoritme.

Steg 1 - Beregn forskyvning

\(\Delta x=s-a\) og \(\Delta y=t-b\).

Steg 2 - Kvadrert avstand

\[d^2=(s-a)^2+(t-b)^2.\]

Steg 3 - Kvadrert radius

Beregn \(r^2\).

Steg 4 - Innenfor

Hvis \(d^2<r^2\), ligger punktet innenfor.

Steg 5 - På sirkelen

Hvis \(d^2=r^2\), ligger punktet på sirkelen.

Steg 6 - Utenfor

Hvis \(d^2>r^2\), ligger punktet utenfor.

Steg 7 - Flyttall

I et program med desimaltall bør likhet testes med en liten toleranse.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Distance[(a,b),(s,t)]
\(\sqrt{(s-a)^2+(t-b)^2}\)

Tolkning: Sammenlikning med r klassifiserer punktets plassering.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
a,b,r,s,t = sp.symbols("a b r s t", real=True)
distance_squared = (s-a)**2 + (t-b)**2
radius_squared = r**2
difference = sp.expand(distance_squared-radius_squared)
print("Center S = (a,b)")
print("Point P = (s,t)")
print("Squared distance d^2 =", distance_squared)
print("Squared radius r^2 =", radius_squared)
print("Comparison expression d^2-r^2 =", difference)
print("If d^2-r^2 < 0: inside")
print("If d^2-r^2 = 0: on the circle")
print("If d^2-r^2 > 0: outside")
print("Using squared values avoids an unnecessary square root")
Utskrift fra Python:
Center S = (a,b)
Point P = (s,t)
Squared distance d^2 = (-a + s)**2 + (-b + t)**2
Squared radius r^2 = r**2
Comparison expression d^2-r^2 = a**2 - 2*a*s + b**2 - 2*b*t - r**2 + s**2 + t**2
If d^2-r^2 < 0: inside
If d^2-r^2 = 0: on the circle
If d^2-r^2 > 0: outside
Using squared values avoids an unnecessary square root

Fasit: Beregn \(d^2=(s-a)^2+(t-b)^2\) og sammenlikn med \(r^2\).

Vanlig feil: Å sammenlikne bare én koordinat eller å glemme å kvadrere radiusen.
Sensorpunkt: Algoritmen må ha alle tre utfall og tydelige betingelser.
Del 2 - Oppgave 3bPython-kode for sirkelklassifisering

Oppgave 3b

Oppgave: Skriv kode med input a, b, r, s og t som skriver om punktet ligger innenfor, på eller utenfor sirkelen.
Vis løsning

Hva spør oppgaven om? Vi implementerer algoritmen med kvadrerte avstander og en toleranse for flyttallsregning.

Steg 1 - Les eller definer input

Programmet trenger sentrum, radius og punkt.

Steg 2 - Kontroller radius

Radius må være ikke-negativ.

Steg 3 - Beregn differansen

\(q=(s-a)^2+(t-b)^2-r^2\).

Steg 4 - Test omtrent likhet

Hvis \(|q|\) er mindre enn toleransen, klassifiseres punktet som på sirkelen.

Steg 5 - Test negativ verdi

Hvis q er negativ, ligger punktet innenfor.

Steg 6 - Ellers

Punktet ligger utenfor.

Steg 7 - Dokumenter test

Vi prøver ett punkt av hver type for å kontrollere alle grener.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
IsInRegion[(s,t),Circle[(a,b),r]]
Boolsk kontroll for området

Tolkning: GeoGebra kan brukes til visuell kontroll, mens koden må skille mellom rand og indre.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
def classify_point(a, b, r, s, t, tolerance=1e-9):
    if r < 0:
        raise ValueError("Radius must be non-negative")
    difference = (s-a)**2 + (t-b)**2 - r**2
    if abs(difference) <= tolerance:
        return "Punktet ligger på sirkelen"
    if difference < 0:
        return "Punktet ligger innenfor sirkelen"
    return "Punktet ligger utenfor sirkelen"

test_cases = [
    (0,0,5,3,4),
    (0,0,5,1,1),
    (0,0,5,6,0),
]
print("Algorithm compares squared distance with radius squared")
print("Floating-point tolerance =", 1e-9)
print("Number of test cases =", len(test_cases))
for case in test_cases:
    a,b,r,s,t = case
    squared_distance = (s-a)**2 + (t-b)**2
    print("Input =", case)
    print("Squared distance =", squared_distance, "radius squared =", r**2)
    print("Output =", classify_point(a,b,r,s,t))
Utskrift fra Python:
Algorithm compares squared distance with radius squared
Floating-point tolerance = 1e-09
Number of test cases = 3
Input = (0, 0, 5, 3, 4)
Squared distance = 25 radius squared = 25
Output = Punktet ligger på sirkelen
Input = (0, 0, 5, 1, 1)
Squared distance = 2 radius squared = 25
Output = Punktet ligger innenfor sirkelen
Input = (0, 0, 5, 6, 0)
Squared distance = 36 radius squared = 25
Output = Punktet ligger utenfor sirkelen

Fasit: En korrekt if/elif/else-kode klassifiserer punktet ved å sammenlikne kvadrert avstand med \(r^2\).

Vanlig feil: Å bruke eksakt `==` på generelle flyttall uten toleranse.
Sensorpunkt: Koden skal produsere nøyaktig ett av de tre etterspurte tekstsvarene.
Del 2 - Oppgave 4aEksponentialregresjon med asymptote

Oppgave 4a

Oppgave: Målingene er \((0,70),(4,53),(8,42),(12,35),(16,30)\), og romtemperaturen er 21,2 °C. Vis hvordan modellen \(h(x)=21,2+49e^{-0,11x}\) kan være funnet.
Vis løsning

Hva spør oppgaven om? Newtons avkjølingsmodell beskriver temperaturforskjellen til rommet som en eksponentialfunksjon.

Steg 1 - Trekk fra romtemperaturen

Sett \(z=T-21,2\). Da får vi omtrent \(48,8,31,8,20,8,13,8,8,8\).

Steg 2 - Velg modell

Anta \(z=Ae^{kx}\), slik at \(T=21,2+Ae^{kx}\).

Steg 3 - Lineariser

\[\ln z=\ln A+kx.\]

Steg 4 - Lineær regresjon

En lineær regresjon av \(\ln z\) mot x gir omtrent \(k=-0,1065\) og \(\ln A=3,8885\).

Steg 5 - Tilbakefør parameteren

\[A=e^{3,8885}\approx48,84.\]

Steg 6 - Avrund

\(A\approx49\) og \(k\approx-0,11\).

Steg 7 - Modell

\[h(x)=21,2+49e^{-0,11x}.\]

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
L1={0,4,8,12,16}
Tider
2
L2={70-21.2,53-21.2,42-21.2,35-21.2,30-21.2}
Temperaturforskjeller
3
FitGrowth[L1,L2]
Omtrent \(48.8e^{-0.1065x}\)

Tolkning: Eksponentialregresjon på differansen til romtemperaturen gir modellen etter avrunding.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import numpy as np
x = np.array([0,4,8,12,16], dtype=float)
temperature = np.array([70,53,42,35,30], dtype=float)
room_temperature = 21.2
difference = temperature-room_temperature
slope, intercept = np.polyfit(x, np.log(difference), 1)
A = np.exp(intercept)
predicted = room_temperature + A*np.exp(slope*x)
print("Times =", x)
print("Measured temperatures =", temperature)
print("Temperature differences =", difference)
print("Regression slope k =", slope)
print("Regression intercept ln(A) =", intercept)
print("A = exp(intercept) =", A)
print("Rounded A =", round(A), "rounded k =", round(slope,2))
print("Predicted temperatures =", np.round(predicted,6))
print("Rounded model: 21.2 + 49*exp(-0.11*x)")
Utskrift fra Python:
Times = [ 0.  4.  8. 12. 16.]
Measured temperatures = [70. 53. 42. 35. 30.]
Temperature differences = [48.8 31.8 20.8 13.8  8.8]
Regression slope k = -0.10651887200932143
Regression intercept ln(A) = 3.888464956674536
A = exp(intercept) = 48.83586379013603
Rounded A = 49 rounded k = -0.11
Predicted temperatures = [70.035864 53.093093 42.028328 34.802295 30.08321 ]
Rounded model: 21.2 + 49*exp(-0.11*x)

Fasit: Regresjon av \(T-21,2\) gir \(A\approx48,84\) og \(k\approx-0,1065\), som avrundes til den oppgitte modellen.

Vanlig feil: Å kjøre vanlig eksponentialregresjon direkte på T uten å ta hensyn til romtemperaturasymptoten.
Sensorpunkt: Transformasjonen eller det digitale regresjonsoppsettet må dokumenteres.
Del 2 - Oppgave 4bGyldighetsområde for modeller

Oppgave 4b

Oppgave: Vurder gyldighetsområdet til modellene \(f(x)=-2,45x+65,6\), \(g(x)=0,13x^2-4,45x+70\) og \(h(x)=21,2+49e^{-0,11x}\) ut fra situasjonen.
Vis løsning

Hva spør oppgaven om? En matematisk regresjonsmodell må også oppføre seg fysisk rimelig: tiden er ikke-negativ, og kaffen bør nærme seg romtemperaturen uten å fortsette under eller begynne å varme seg opp av seg selv.

Steg 1 - Felles sikkert område

Alle tre modellene er først og fremst støttet av dataene i intervallet \(0\le x\le16\).

Steg 2 - Lineær modell

f når romtemperaturen når \(-2,45x+65,6=21,2\), altså ved \(x\approx18,12\). Etter dette blir den kaldere enn rommet og senere negativ.

Steg 3 - Andregradsmodell

g har bunnpunkt ved \(x=4,45/(2\cdot0,13)\approx17,12\). Etter bunnpunktet stiger temperaturen igjen uten ytre varmekilde.

Steg 4 - Eksponentialmodell

h er avtakende for x≥0 og nærmer seg 21,2 °C ovenfra når x går mot uendelig.

Steg 5 - Praktisk konklusjon for f og g

De kan brukes nær måleintervallet, omtrent fram til 16–18 minutter, men ikke til langtidsprognoser.

Steg 6 - Praktisk konklusjon for h

h har riktig asymptotisk form for x≥0 og er derfor best egnet til ekstrapolasjon, selv om usikkerheten øker utenfor måleområdet.

Steg 7 - Negative tider

Ingen modell har praktisk mening for x<0 i denne forsøksbeskrivelsen.

Illustrasjon til Oppgave 4b
Den lineære modellen går under romtemperaturen, og andregradsmodellen snur oppover; h nærmer seg asymptoten.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Solve[-2.45x+65.6=21.2,x]
\(x\approx18.12\)
2
Extremum[0.13x^2-4.45x+70]
Bunnpunkt ved \(x\approx17.12\)
3
Limit[21.2+49exp(-0.11x),infinity]
\(21.2\)

Tolkning: De tre kontrollene viser hvorfor bare h har rimelig langtidsoppførsel.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
f = -sp.Rational(245,100)*x + sp.Rational(656,10)
g = sp.Rational(13,100)*x**2 - sp.Rational(445,100)*x + 70
h = sp.Rational(212,10) + 49*sp.exp(-sp.Rational(11,100)*x)
room = sp.Rational(212,10)
linear_room_time = sp.solve(sp.Eq(f,room),x)[0]
quadratic_vertex = sp.solve(sp.Eq(sp.diff(g,x),0),x)[0]
quadratic_minimum = sp.simplify(g.subs(x,quadratic_vertex))
print("Linear model f(x) =", f)
print("Time when f reaches room temperature =", linear_room_time, "=", sp.N(linear_room_time,10))
print("Quadratic model g(x) =", g)
print("Quadratic vertex time =", quadratic_vertex, "=", sp.N(quadratic_vertex,10))
print("Quadratic minimum temperature =", sp.N(quadratic_minimum,10))
print("Exponential model h(x) =", h)
print("h'(x) =", sp.factor(sp.diff(h,x)))
print("Long-term limit of h =", sp.limit(h,x,sp.oo))
print("Practical data interval = [0,16] minutes")
print("Best long-term qualitative model = h")
Utskrift fra Python:
Linear model f(x) = 328/5 - 49*x/20
Time when f reaches room temperature = 888/49 = 18.12244898
Quadratic model g(x) = 13*x**2/100 - 89*x/20 + 70
Quadratic vertex time = 445/26 = 17.11538462
Quadratic minimum temperature = 31.91826923
Exponential model h(x) = 106/5 + 49*exp(-11*x/100)
h'(x) = -539*exp(-11*x/100)/100
Long-term limit of h = 106/5
Practical data interval = [0,16] minutes
Best long-term qualitative model = h

Fasit: f og g bør hovedsakelig brukes nær \([0,16]\) min; h er fysisk rimelig for \(x\ge0\) og nærmer seg 21,2 °C.

Vanlig feil: Å vurdere bare regresjonstilpasningen i datapunktene og ignorere modellens oppførsel utenfor intervallet.
Sensorpunkt: Gyldighetsvurderingen skal knyttes til romtemperatur, tid og langtidsoppførsel.
Del 2 - Oppgave 5aDeriverbar stykkevis funksjon

Oppgave 5a

Oppgave: \[f(x)=\begin{cases}2x^2+3x+a,&x<1\\-2x^2+bx,&x\ge1\end{cases}\] Bestem a og b slik at f blir deriverbar i x=1.
Vis løsning

Hva spør oppgaven om? Deriverbarhet krever både kontinuitet og like ensidige deriverte i skjøtepunktet.

Steg 1 - Kontinuitet fra venstre

\[\lim_{x\to1^-}f(x)=2+3+a=5+a.\]

Steg 2 - Funksjonsverdi fra høyre

\[f(1)=-2+b=b-2.\]

Steg 3 - Kontinuitetslikning

\[5+a=b-2\Rightarrow b=a+7.\]

Steg 4 - Venstre derivert

\((2x^2+3x+a)^\prime=4x+3\), så verdien ved 1 er 7.

Steg 5 - Høyre derivert

\((-2x^2+bx)^\prime=-4x+b\), så verdien ved 1 er \(b-4\).

Steg 6 - Lik deriverte

\[7=b-4\Rightarrow b=11.\]

Steg 7 - Finn a

Fra \(b=a+7\) får vi \(a=4\).

Steg 8 - Kontroll

Begge funksjonsuttrykk gir 9, og begge deriverte gir 7 ved x=1.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Solve[{2+3+a=-2+b,4+3=-4+b},{a,b}]
\(a=4,b=11\)

Tolkning: CAS løser kontinuitets- og derivasjonsbetingelsen samtidig.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x,a,b = sp.symbols("x a b", real=True)
left = 2*x**2+3*x+a
right = -2*x**2+b*x
continuity = sp.Eq(left.subs(x,1), right.subs(x,1))
derivative_match = sp.Eq(sp.diff(left,x).subs(x,1), sp.diff(right,x).subs(x,1))
solution = sp.solve([continuity,derivative_match],[a,b], dict=True)[0]
left_fixed = left.subs(solution)
right_fixed = right.subs(solution)
print("Continuity equation =", continuity)
print("Derivative equation =", derivative_match)
print("Solution =", solution)
print("Left expression =", left_fixed)
print("Right expression =", right_fixed)
print("Value from left at x=1 =", left_fixed.subs(x,1))
print("Value from right at x=1 =", right_fixed.subs(x,1))
print("Derivative from left =", sp.diff(left_fixed,x).subs(x,1))
print("Derivative from right =", sp.diff(right_fixed,x).subs(x,1))
Utskrift fra Python:
Continuity equation = Eq(a + 5, b - 2)
Derivative equation = Eq(7, b - 4)
Solution = {a: 4, b: 11}
Left expression = 2*x**2 + 3*x + 4
Right expression = -2*x**2 + 11*x
Value from left at x=1 = 9
Value from right at x=1 = 9
Derivative from left = 7
Derivative from right = 7

Fasit: \(\boxed{a=4\text{ og }b=11}\).

Vanlig feil: Å kontrollere bare kontinuitet eller bare likhet mellom deriverte.
Sensorpunkt: Begge nødvendige betingelser må settes opp og løses.
Del 2 - Oppgave 5bVendepunkt i stykkevis funksjon

Oppgave 5b

Oppgave: Avgjør om grafen til den deriverbare funksjonen fra del a har vendepunkt.
Vis løsning

Hva spør oppgaven om? Et vendepunkt krever skifte i konkavitet. Vi undersøker andrederiverten på hver side av x=1.

Steg 1 - Bruk parameterverdiene

Venstre gren er \(2x^2+3x+4\), høyre gren er \(-2x^2+11x\).

Steg 2 - Andrederivert til venstre

\[f^{\prime\prime}(x)=4\quad(x<1).\] Grafen er konkav opp.

Steg 3 - Andrederivert til høyre

\[f^{\prime\prime}(x)=-4\quad(x>1).\] Grafen er konkav ned.

Steg 4 - Kontinuitet og tangent

Fra del a vet vi at grafen er sammenhengende og har samme tangent på begge sider.

Steg 5 - Krumningen skifter

Konkaviteten går fra opp til ned når x passerer 1.

Steg 6 - Koordinat

\[f(1)=-2+11=9.\]

Steg 7 - Konklusjon

Grafen har vendepunkt \((1,9)\), selv om den klassiske andrederiverte ikke er definert akkurat i skjøten.

Illustrasjon til Oppgave 5b
De to parabelgrenene møtes med samme tangent, mens krumningen skifter fortegn.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
f(x):=If[x<1,2x^2+3x+4,-2x^2+11x]
Stykkevis funksjon

Tolkning: Grafvisningen viser felles tangent og skifte fra konkav opp til konkav ned ved (1,9).

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
left = 2*x**2+3*x+4
right = -2*x**2+11*x
left_second = sp.diff(left,x,2)
right_second = sp.diff(right,x,2)
point_value = right.subs(x,1)
left_slope = sp.diff(left,x).subs(x,1)
right_slope = sp.diff(right,x).subs(x,1)
print("Left branch =", left)
print("Right branch =", right)
print("Left second derivative =", left_second)
print("Right second derivative =", right_second)
print("Common point value =", point_value)
print("Left slope at x=1 =", left_slope)
print("Right slope at x=1 =", right_slope)
print("Concavity changes from up to down")
print("Inflection point = (1,9)")
Utskrift fra Python:
Left branch = 2*x**2 + 3*x + 4
Right branch = -2*x**2 + 11*x
Left second derivative = 4
Right second derivative = -4
Common point value = 9
Left slope at x=1 = 7
Right slope at x=1 = 7
Concavity changes from up to down
Inflection point = (1,9)

Fasit: Ja. Grafen har vendepunkt \(\boxed{(1,9)}\).

Vanlig feil: Å kreve at andrederiverten må eksistere i selve punktet og dermed overse definisjonen via konkavitetsskifte.
Sensorpunkt: Skifte i konkavitet og koordinaten til punktet må begrunnes.
Del 2 - Oppgave 6aEkstremalpunkt i parameterfamilie

Oppgave 6a

Oppgave: \(f(x)=\dfrac{e^x}{e^x+C}\), der C er konstant. Finnes det C-verdier som gjør at grafen har topp- eller bunnpunkt?
Vis løsning

Hva spør oppgaven om? Vi deriverer med hensyn på x og undersøker om den deriverte kan skifte fortegn i et punkt i definisjonsmengden.

Steg 1 - Definisjonsmengde

Nevneren må være ulik 0. For C<0 mangler punktet \(x=\ln(-C)\).

Steg 2 - Deriver

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

Steg 3 - C større enn 0

Da er teller og nevner positive, så f er strengt voksende.

Steg 4 - C mindre enn 0

Da er f′ negativ på begge delene av definisjonsmengden, så hver gren er strengt avtakende.

Steg 5 - C lik 0

Da er \(f(x)=1\), en konstant funksjon. Den har ingen strenge lokale topp- eller bunnpunkter.

Steg 6 - Nullpunkter for deriverten

For C ulik 0 er f′ aldri 0 fordi \(e^x>0\).

Steg 7 - Konklusjon

Ingen C-verdi gir et ordinært topp- eller bunnpunkt.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Derivative[exp(x)/(exp(x)+C)]
\(Ce^x/(e^x+C)^2\)

Tolkning: Fortegnet er konstant på hver sammenhengende del av definisjonsmengden.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x,C = sp.symbols("x C", real=True)
f = sp.exp(x)/(sp.exp(x)+C)
f_prime = sp.factor(sp.diff(f,x))
print("f(x) =", f)
print("f'(x) =", f_prime)
print("Numerator of derivative =", sp.factor(sp.together(f_prime).as_numer_denom()[0]))
print("Denominator of derivative =", sp.factor(sp.together(f_prime).as_numer_denom()[1]))
for value in [2,-2,0]:
    specialized = sp.simplify(f.subs(C,value))
    specialized_derivative = sp.simplify(f_prime.subs(C,value))
    print("C =", value, "-> f =", specialized, ", f' =", specialized_derivative)
print("For C>0 the derivative is positive")
print("For C<0 the derivative is negative where defined")
print("For C=0 the function is constant 1")
print("No strict top or bottom point occurs")
Utskrift fra Python:
f(x) = exp(x)/(C + exp(x))
f'(x) = C*exp(x)/(C + exp(x))**2
Numerator of derivative = C*exp(x)
Denominator of derivative = (C + exp(x))**2
C = 2 -> f = exp(x)/(exp(x) + 2) , f' = 2*exp(x)/(exp(x) + 2)**2
C = -2 -> f = exp(x)/(exp(x) - 2) , f' = -2*exp(x)/(exp(x) - 2)**2
C = 0 -> f = 1 , f' = 0
For C>0 the derivative is positive
For C<0 the derivative is negative where defined
For C=0 the function is constant 1
No strict top or bottom point occurs

Fasit: Nei. Ingen verdi av C gir et ordinært topp- eller bunnpunkt.

Vanlig feil: Å sette telleren Ce^x lik 0 og feilaktig løse e^x=0.
Sensorpunkt: Definisjonsmengden og særtilfellet C=0 må omtales.
Del 2 - Oppgave 6bVendepunkt i parameterfamilie

Oppgave 6b

Oppgave: Bestem hvilke verdier av C som gjør at grafen til f har et vendepunkt.
Vis løsning

Hva spør oppgaven om? Vi finner andrederiverten og krever et reelt nullpunkt der funksjonen er definert og konkaviteten skifter.

Steg 1 - Andrederiver

\[f^{\prime\prime}(x)=\frac{Ce^x(C-e^x)}{(e^x+C)^3}.\]

Steg 2 - Mulige nullpunkter

For C ulik 0 og \(e^x>0\) må \(C-e^x=0\).

Steg 3 - Eksistenskrav

Likningen \(e^x=C\) har en reell løsning bare når \(C>0\).

Steg 4 - x-koordinat

For C>0 får vi \(x=\ln C\).

Steg 5 - y-koordinat

\[f(\ln C)=\frac{C}{C+C}=\frac12.\]

Steg 6 - Fortegnsskifte

Når x passerer \(\ln C\), skifter faktoren \(C-e^x\) fra positiv til negativ; nevneren er positiv.

Steg 7 - Andre C-verdier

C=0 gir konstant funksjon, og C<0 gir ingen løsning av \(e^x=C\).

Steg 8 - Konklusjon

Vendepunkt finnes nøyaktig for C>0, ved \((\ln C,1/2)\).

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
SecondDerivative[exp(x)/(exp(x)+C)]
\(Ce^x(C-e^x)/(e^x+C)^3\)
2
Solve[exp(x)=C,x]
\(x=\ln C\), krever C>0

Tolkning: Andrederiverten skifter fortegn ved den logistiske kurvens midtpunkt.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x,C = sp.symbols("x C", real=True)
f = sp.exp(x)/(sp.exp(x)+C)
f_second = sp.factor(sp.diff(f,x,2))
inflection_x = sp.log(C)
inflection_y = sp.simplify(f.subs(x,inflection_x))
print("f(x) =", f)
print("f''(x) =", f_second)
print("Candidate equation = exp(x) = C")
print("Real candidate requires C > 0")
print("Candidate x-coordinate =", inflection_x)
print("Candidate y-coordinate =", inflection_y)
for value in [sp.Rational(1,4),1,4]:
    x_value = sp.log(value)
    print("C =", value, "-> inflection point =", (x_value, sp.simplify(f.subs({C:value,x:x_value}))))
print("For C <= 0 there is no regular inflection point")
Utskrift fra Python:
f(x) = exp(x)/(C + exp(x))
f''(x) = C*(C - exp(x))*exp(x)/(C + exp(x))**3
Candidate equation = exp(x) = C
Real candidate requires C > 0
Candidate x-coordinate = log(C)
Candidate y-coordinate = 1/2
C = 1/4 -> inflection point = (-log(4), 1/2)
C = 1 -> inflection point = (0, 1/2)
C = 4 -> inflection point = (log(4), 1/2)
For C <= 0 there is no regular inflection point

Fasit: Grafen har vendepunkt akkurat når \(\boxed{C>0}\), og punktet er \((\ln C,1/2)\).

Vanlig feil: Å glemme at e^x alltid er positiv eller å godta x=ln C for negativ C.
Sensorpunkt: Nullpunkt, definisjonskrav og faktisk fortegnsskifte skal dokumenteres.
Del 2 - Oppgave 6cHorisontal forskyvning for C positiv

Oppgave 6c

Oppgave: Anta \(C>0\). Vis at \(f(x+\ln C)=\dfrac{e^x}{e^x+1}\), og beskriv hvordan grafen påvirkes når C endres.
Vis løsning

Hva spør oppgaven om? Identiteten viser at alle grafene for positiv C har samme form og bare er horisontalt forskjøvet.

Steg 1 - Sett inn forskjøvet argument

\[f(x+\ln C)=\frac{e^{x+\ln C}}{e^{x+\ln C}+C}.\]

Steg 2 - Bruk eksponentialregelen

Når C>0, er \(e^{\ln C}=C\), så \(e^{x+\ln C}=Ce^x\).

Steg 3 - Forkort C

\[\frac{Ce^x}{Ce^x+C}=\frac{e^x}{e^x+1}.\]

Steg 4 - Skriv med grunnkurven

La \(F(x)=e^x/(e^x+1)\). Da er \(f_C(u)=F(u-\ln C)\).

Steg 5 - Tolk forskyvning

Grafen til F forskyves \(\ln C\) enheter horisontalt: mot høyre når C>1, mot venstre når 0<C<1.

Steg 6 - Form og asymptoter

Formen og de horisontale asymptotene y=0 og y=1 endres ikke.

Steg 7 - Vendepunktet følger med

Vendepunktet flyttes til \((\ln C,1/2)\).

Illustrasjon til Oppgave 6c
Positive C-verdier gir samme logistiske form med ulik horisontal plassering.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Simplify[exp(x+ln(C))/(exp(x+ln(C))+C)]
\(e^x/(e^x+1)\), C>0

Tolkning: Identiteten isolerer parameteren som en ren horisontal translasjon.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x,C,u = sp.symbols("x C u", positive=True)
f_shifted = sp.exp(x+sp.log(C))/(sp.exp(x+sp.log(C))+C)
base = sp.exp(x)/(sp.exp(x)+1)
difference = sp.simplify(f_shifted-base)
family_at_u = sp.exp(u)/(sp.exp(u)+C)
translated_base = sp.exp(u-sp.log(C))/(sp.exp(u-sp.log(C))+1)
print("f(x+ln(C)) =", sp.simplify(f_shifted))
print("Base logistic function =", base)
print("Difference =", difference)
print("Equivalent family form f_C(u) =", family_at_u)
print("Translated base F(u-ln(C)) =", sp.simplify(translated_base))
print("Translation difference =", sp.simplify(family_at_u-translated_base))
for value in [sp.Rational(1,4),1,4]:
    print("C =", value, "-> horizontal shift ln(C) =", sp.N(sp.log(value),10))
print("Horizontal asymptotes remain y=0 and y=1")
Utskrift fra Python:
f(x+ln(C)) = exp(x)/(exp(x) + 1)
Base logistic function = exp(x)/(exp(x) + 1)
Difference = 0
Equivalent family form f_C(u) = exp(u)/(C + exp(u))
Translated base F(u-ln(C)) = exp(u)/(C + exp(u))
Translation difference = 0
C = 1/4 -> horizontal shift ln(C) = -1.386294361
C = 1 -> horizontal shift ln(C) = 0
C = 4 -> horizontal shift ln(C) = 1.386294361
Horizontal asymptotes remain y=0 and y=1

Fasit: For C>0 er grafen grunnkurven \(e^x/(e^x+1)\) forskjøvet \(\ln C\) horisontalt.

Vanlig feil: Å tolke identiteten som en vertikal skalering eller å bruke ln C når C ikke er positiv.
Sensorpunkt: Algebraen og korrekt retning på forskyvningen må forklares.
Del 2 - Oppgave 6dGrafstruktur for C negativ

Oppgave 6d

Oppgave: Anta \(C<0\). Beskriv hvordan grafen til f påvirkes når C endres.
Vis løsning

Hva spør oppgaven om? For negativ C får nevneren et nullpunkt og grafen består av to grener. Parameteren bestemmer først og fremst plasseringen av den vertikale asymptoten.

Steg 1 - Skriv C med positiv størrelse

Sett \(A=-C>0\). Da er \[f(x)=\frac{e^x}{e^x-A}.\]

Steg 2 - Vertikal asymptote

Nevneren er 0 når \(e^x=A\), altså ved \(x=\ln A=\ln(-C)\).

Steg 3 - Forskyvningsidentitet

\[f(x+\ln A)=\frac{e^x}{e^x-1}.\]

Steg 4 - Horisontal flytting

Når \(-C=A\) øker, flyttes grafen og asymptoten mot høyre; når A minker mot 0, flyttes de mot venstre.

Steg 5 - Venstre gren

For x<ln A er nevneren negativ. Grafen er negativ og går fra \(0^-\) til \(-\infty\).

Steg 6 - Høyre gren

For x>ln A går grafen fra \(+\infty\) ned mot 1 ovenfra.

Steg 7 - Monotoni

Fordi f′<0 for C<0, er begge grenene strengt avtakende.

Steg 8 - Asymptoter

Den horisontale asymptoten mot høyre er y=1, og mot venstre nærmer grafen seg y=0 nedenfra.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Asymptote[exp(x)/(exp(x)+C)]
Vertikal \(x=\ln(-C)\) for C<0

Tolkning: Grafene er translasjoner av e^x/(e^x-1) og har to adskilte grener.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x,A = sp.symbols("x A", positive=True)
C = -A
f = sp.exp(x)/(sp.exp(x)+C)
shifted = sp.simplify(f.subs(x,x+sp.log(A)))
asymptote = sp.log(A)
derivative = sp.factor(sp.diff(f,x))
print("Let A = -C > 0")
print("f(x) =", f)
print("Vertical asymptote x =", asymptote)
print("f(x+ln(A)) =", shifted)
print("Derivative =", derivative)
print("Limit x -> -infinity =", sp.limit(f,x,-sp.oo))
print("Limit x -> infinity =", sp.limit(f,x,sp.oo))
print("Left limit at asymptote =", sp.limit(f,x,asymptote,dir='-'))
print("Right limit at asymptote =", sp.limit(f,x,asymptote,dir='+'))
for value in [sp.Rational(1,4),1,4]:
    print("A =", value, "(C =", -value, ") -> asymptote =", sp.N(sp.log(value),10))
Utskrift fra Python:
Let A = -C > 0
f(x) = exp(x)/(-A + exp(x))
Vertical asymptote x = log(A)
f(x+ln(A)) = exp(x)/(exp(x) - 1)
Derivative = -A*exp(x)/(A - exp(x))**2
Limit x -> -infinity = 0
Limit x -> infinity = 1
Left limit at asymptote = -oo
Right limit at asymptote = oo
A = 1/4 (C = -1/4 ) -> asymptote = -1.386294361
A = 1 (C = -1 ) -> asymptote = 0
A = 4 (C = -4 ) -> asymptote = 1.386294361

Fasit: For C<0 består grafen av to avtakende grener med vertikal asymptote \(x=\ln(-C)\); endring i C flytter strukturen horisontalt.

Vanlig feil: Å overse hullet i definisjonsmengden og tegne én sammenhengende kurve.
Sensorpunkt: Asymptoten, grenfortegnene, monotoni og forskyvningsretning må beskrives.
Del 2 - Oppgave 7aTangentresultat i konkret eksempel

Oppgave 7a

Oppgave: For \(f(x)=x^3-x^2-2x+3\) og linjen \(y=2x-1\) er skjæringsverdiene \(x_1=-2\), \(x_2=1\), \(x_3=2\). Vis at tangenten ved \(m=(x_1+x_2)/2\) går gjennom \((x_3,f(x_3))\).
Vis løsning

Hva spør oppgaven om? Vi beregner m, tangentlikningen og kontrollerer punktet med x-koordinat 2.

Steg 1 - Finn m

\[m=\frac{-2+1}{2}=-\frac12.\]

Steg 2 - Funksjonsverdi

\[f(-1/2)=29/8.\]

Steg 3 - Deriver

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

Steg 4 - Tangentstigning

\[f^\prime(-1/2)=-1/4.\]

Steg 5 - Tangentlikning

\[y-\frac{29}{8}=-\frac14\left(x+\frac12\right).\]

Steg 6 - Sett inn x=2

\[y=\frac{29}{8}-\frac14\cdot\frac52=\frac{24}{8}=3.\]

Steg 7 - Kontroller målpunktet

\(f(2)=8-4-4+3=3\), så tangenten går gjennom \((2,3)\).

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
f(x):=x^3-x^2-2x+3
Funksjon
2
Tangent[-1/2,f]
\(y=-x/4+7/2\)

Tolkning: Ved x=2 gir tangentlinjen y=3, samme som f(2).

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
f = x**3-x**2-2*x+3
x1,x2,x3 = -2,1,2
m = sp.Rational(x1+x2,2)
f_m = sp.simplify(f.subs(x,m))
slope = sp.simplify(sp.diff(f,x).subs(x,m))
tangent = sp.expand(f_m+slope*(x-m))
target = sp.simplify(f.subs(x,x3))
print("f(x) =", f)
print("Intersection x-values =", (x1,x2,x3))
print("m =", m)
print("f(m) =", f_m)
print("f'(m) =", slope)
print("Tangent y =", tangent)
print("Tangent value at x3 =", tangent.subs(x,x3))
print("f(x3) =", target)
print("Difference =", sp.simplify(tangent.subs(x,x3)-target))
Utskrift fra Python:
f(x) = x**3 - x**2 - 2*x + 3
Intersection x-values = (-2, 1, 2)
m = -1/2
f(m) = 29/8
f'(m) = -1/4
Tangent y = 7/2 - x/4
Tangent value at x3 = 3
f(x3) = 3
Difference = 0

Fasit: Tangenten ved \(x=-1/2\) er \(y=-x/4+7/2\) og går gjennom \((2,3)\).

Vanlig feil: Å bruke gjennomsnittet av alle tre x-verdiene i stedet for bare x1 og x2.
Sensorpunkt: Tangentens stigning, likning og punktkontroll skal vises eksakt.
Del 2 - Oppgave 7bFaktorisering relativt til en linje

Oppgave 7b

Oppgave: La en tredjegradsfunksjon g skjære linjen \(y=ax+b\) ved x-verdiene \(x_1,x_2,x_3\). Forklar at \[g(x)=k(x-x_1)(x-x_2)(x-x_3)+(ax+b),\quad k\in\mathbb R.\]
Vis løsning

Hva spør oppgaven om? Vi ser på differansen mellom tredjegradsfunksjonen og linjen.

Steg 1 - Definer differansen

La \(q(x)=g(x)-(ax+b)\).

Steg 2 - Grad

Siden g er tredjegrad og ax+b er lineær, er q en tredjegradsfunksjon med samme ledende koeffisient k som g.

Steg 3 - Bruk skjæringspunktene

I hvert skjæringspunkt er \(g(x_i)=ax_i+b\), så \(q(x_i)=0\).

Steg 4 - Nullpunktfaktorer

Dermed har q faktorene \((x-x_1),(x-x_2),(x-x_3)\).

Steg 5 - Grad tre

Et tredjegradspolynom med disse tre røttene må være \(q(x)=k(x-x_1)(x-x_2)(x-x_3)\).

Steg 6 - Flytt linjen tilbake

\[g(x)=q(x)+ax+b.\]

Steg 7 - Konklusjon

Dette gir den oppgitte formen.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Expand[k(x-x1)(x-x2)(x-x3)+a x+b]
Tredjegradspolynom med ønskede skjæringer

Tolkning: Setter vi x=xi, forsvinner produktleddet og g(xi)=axi+b.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x,x1,x2,x3,k,a,b = sp.symbols("x x1 x2 x3 k a b")
q = k*(x-x1)*(x-x2)*(x-x3)
g = sp.expand(q+a*x+b)
print("q(x) = g(x)-(a*x+b) =", q)
print("Expanded general g(x) =", g)
for root in [x1,x2,x3]:
    difference_at_root = sp.simplify(g.subs(x,root)-(a*root+b))
    print("At x =", root, ", g(x)-(a*x+b) =", difference_at_root)
print("Degree of product term =", sp.Poly(q,x).degree())
print("Leading coefficient =", sp.Poly(q,x).LC())
print("Therefore g(x) = k product + (a*x+b)")
Utskrift fra Python:
q(x) = g(x)-(a*x+b) = k*(x - x1)*(x - x2)*(x - x3)
Expanded general g(x) = a*x + b + k*x**3 - k*x**2*x1 - k*x**2*x2 - k*x**2*x3 + k*x*x1*x2 + k*x*x1*x3 + k*x*x2*x3 - k*x1*x2*x3
At x = x1 , g(x)-(a*x+b) = 0
At x = x2 , g(x)-(a*x+b) = 0
At x = x3 , g(x)-(a*x+b) = 0
Degree of product term = 3
Leading coefficient = k
Therefore g(x) = k product + (a*x+b)

Fasit: Fordi \(g-(ax+b)\) er et tredjegradspolynom med røttene \(x_1,x_2,x_3\), har g den oppgitte formen.

Vanlig feil: Å faktorisere g selv i stedet for differansen mellom g og skjæringslinjen.
Sensorpunkt: Argumentet må bruke både grad og de tre nullpunktene.
Del 2 - Oppgave 7cGenerelt tangentbevis

Oppgave 7c

Oppgave: Vis at tangenten til g ved \(m=(x_1+x_2)/2\) går gjennom \((x_3,g(x_3))\).
Vis løsning

Hva spør oppgaven om? Vi bruker formen fra del b og viser at produktleddets tangentbidrag kansellerer akkurat ved x3.

Steg 1 - Skill ut produktet

Skriv \(g(x)=kp(x)+ax+b\), der \(p(x)=(x-x_1)(x-x_2)(x-x_3)\).

Steg 2 - Innfør halvavstanden

La \(d=(x_2-x_1)/2\). Da er \(m-x_1=d\) og \(m-x_2=-d\).

Steg 3 - Beregn p(m)

\[p(m)=d(-d)(m-x_3)=d^2(x_3-m).\]

Steg 4 - Beregn p′(m)

Produktregelen gir \[p^\prime(m)=(m-x_1)(m-x_2)+(m-x_1)(m-x_3)+(m-x_2)(m-x_3)=-d^2.\]

Steg 5 - Tangenten vurdert i x3

\[T(x_3)=g(m)+g^\prime(m)(x_3-m).\]

Steg 6 - Produktdelen kansellerer

\[kp(m)+kp^\prime(m)(x_3-m)=kd^2(x_3-m)-kd^2(x_3-m)=0.\]

Steg 7 - Linjærdelen

Tangenten til \(ax+b\) er linjen selv, så den gir \(ax_3+b\).

Steg 8 - Bruk skjæringen

Fordi \(p(x_3)=0\), er \(g(x_3)=ax_3+b\). Dermed \(T(x_3)=g(x_3)\).

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
m:=(x1+x2)/2
Midtverdi
2
Simplify[p(m)+p'(m)(x3-m)]
\(0\)

Tolkning: CAS-kanselleringen viser at tangentens produktdel forsvinner ved x3.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x,x1,x2,x3,k,a,b = sp.symbols("x x1 x2 x3 k a b")
m = (x1+x2)/2
p = (x-x1)*(x-x2)*(x-x3)
g = k*p+a*x+b
p_m = sp.factor(p.subs(x,m))
p_prime_m = sp.factor(sp.diff(p,x).subs(x,m))
tangent_at_x3 = sp.simplify(g.subs(x,m)+sp.diff(g,x).subs(x,m)*(x3-m))
g_at_x3 = sp.simplify(g.subs(x,x3))
print("m =", m)
print("p(m) =", p_m)
print("p'(m) =", p_prime_m)
print("Cancellation expression =", sp.factor(p_m+p_prime_m*(x3-m)))
print("Tangent evaluated at x3 =", tangent_at_x3)
print("g(x3) =", g_at_x3)
print("Difference =", sp.factor(tangent_at_x3-g_at_x3))
print("Identity proved symbolically")
Utskrift fra Python:
m = x1/2 + x2/2
p(m) = -(x1 - x2)**2*(x1 + x2 - 2*x3)/8
p'(m) = -(x1 - x2)**2/4
Cancellation expression = 0
Tangent evaluated at x3 = a*x3 + b
g(x3) = a*x3 + b
Difference = 0
Identity proved symbolically

Fasit: Tangentlinjen ved m går gjennom \((x_3,g(x_3))\) fordi produktbidraget kansellerer og begge y-verdier blir \(ax_3+b\).

Vanlig feil: Å påstå symmetri uten å vise hvordan produktet og den deriverte oppfører seg ved m.
Sensorpunkt: Beviset må gjelde generelt og ende med likheten \(T(x_3)=g(x_3)\).
Del 2 - Oppgave 7dKonstruksjon av tangent gjennom et punkt

Oppgave 7d

Oppgave: Gitt \(h(x)=x^3-2x+1\) og \(P(2,5)\). Forklar hvordan linjen \(y=2x+1\) kan brukes til å bestemme et tangeringspunkt for en tangent til grafen som går gjennom P.
Vis løsning

Hva spør oppgaven om? Linjen går gjennom P og skjærer tredjegradsfunksjonen i tre punkter. Resultatet over gjør at midtverdien av de to andre skjæringsverdiene gir tangeringspunktet.

Steg 1 - Kontroller at P ligger på linjen

Når x=2, er \(2x+1=5\), så linjen går gjennom P.

Steg 2 - Finn skjæringsverdiene

\[x^3-2x+1=2x+1\Rightarrow x^3-4x=0.\]

Steg 3 - Faktoriser

\[x(x-2)(x+2)=0.\] Dermed er skjæringsverdiene \(-2,0,2\).

Steg 4 - Velg målpunktet

P svarer til \(x_3=2\). De to andre er \(x_1=-2\) og \(x_2=0\).

Steg 5 - Finn midtverdien

\[m=\frac{-2+0}{2}=-1.\]

Steg 6 - Finn punktet på grafen

\[h(-1)=-1+2+1=2.\] Tangeringspunktet er \((-1,2)\).

Steg 7 - Kontroller tangenten

\(h^\prime(x)=3x^2-2\), så \(h^\prime(-1)=1\). Tangenten blir \(y-2=x+1\), altså \(y=x+3\).

Steg 8 - Kontroller P

Ved x=2 gir tangenten y=5. Den går derfor gjennom P.

Illustrasjon til Oppgave 7d
Hjelpelinjen skjærer grafen ved -2, 0 og 2; midtverdien av de to første gir tangering ved x=-1.

GeoGebra/CAS-kontroll

GeoGebra - CAS
1
Intersect[x^3-2x+1,2x+1]
\(x=-2,0,2\)
2
Tangent[-1,x^3-2x+1]
\(y=x+3\)

Tolkning: Sekantens tre skjæringer gir m=-1, og tangenten der går gjennom P.

Python-kontroll med SymPy

Python 3 - faktisk kjøring
import sympy as sp
x = sp.symbols("x", real=True)
h = x**3-2*x+1
line = 2*x+1
intersection_polynomial = sp.factor(h-line)
intersections = sp.solve(sp.Eq(h,line),x)
x1,x2,x3 = intersections
m = sp.Rational(x1+x2,2)
tangent_point = (m,sp.simplify(h.subs(x,m)))
slope = sp.diff(h,x).subs(x,m)
tangent = sp.expand(tangent_point[1]+slope*(x-m))
print("h(x) =", h)
print("Auxiliary line =", line)
print("h(x)-line =", intersection_polynomial)
print("Intersection x-values =", intersections)
print("Choose x3=2 for P=(2,5)")
print("m = average of the other two =", m)
print("Tangency point =", tangent_point)
print("Tangent slope =", slope)
print("Tangent equation y =", tangent)
print("Tangent value at x=2 =", tangent.subs(x,2))
print("P y-coordinate =", h.subs(x,2))
Utskrift fra Python:
h(x) = x**3 - 2*x + 1
Auxiliary line = 2*x + 1
h(x)-line = x*(x - 2)*(x + 2)
Intersection x-values = [-2, 0, 2]
Choose x3=2 for P=(2,5)
m = average of the other two = -1
Tangency point = (-1, 2)
Tangent slope = 1
Tangent equation y = x + 3
Tangent value at x=2 = 5
P y-coordinate = 5

Fasit: Linjen gir skjæringene \(-2,0,2\). Med P som x3=2 får vi \(m=-1\), så det ikke-trivielle tangeringspunktet er \(\boxed{(-1,2)}\), og tangenten er \(y=x+3\).

Vanlig feil: Å bruke gjennomsnittet av alle tre skjæringsverdiene eller å velge P selv som det eneste tangeringspunktet.
Sensorpunkt: Faktorisering, valg av de to andre røttene og kontroll av tangent gjennom P må være med.
Kilde og metode: Oppgavetekstene er transkribert fra Utdanningsdirektoratets eksempelsett REA3056 Matematikk R1, datert 13.09.2021. Sidebildene fra original-PDF-en er brukt som autoritativ kilde ved symboler, programkode og figurer. Løsningene, figurene og kontrollkodene er originale ifingo-utarbeidelser. Python-utskriftene er generert ved faktisk kjøring av hver kodeblokk under produksjonen.