Hva spør oppgaven om? Vi integrerer ledd for ledd. Det siste leddet er en konstant faktor multiplisert med \(1/x\).
Del opp integralet
Bruk linearitet på de tre leddene.
Integrer første ledd
\(\int x^2dx=x^3/3\).
Integrer andre ledd
\(\int2x\,dx=x^2\).
Integrer logaritmeleddet
\(\int\frac1{3x}dx=\frac13\ln|x|\).
Samle stamfunksjonen
\[F(x)=\frac{x^3}{3}+x^2+\frac13\ln|x|\]
Legg til konstant
Den generelle stamfunksjonen er \(F(x)+C\), på intervaller som ikke krysser \(x=0\).
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Integral(x^2+2x+1/(3x),x)
Resultat: \(x^3/3+x^2+\ln|x|/3\)
Tolkning: CAS gir samme stamfunksjon; \(+C\) må legges til i det endelige svaret.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,integrate,diff,log,Abs,simplify,Rationalx=symbols('x',real=True,nonzero=True)integrand=x**2+2*x+1/(3*x)F=x**3/3+x**2+log(Abs(x))/3back=diff(F,x)print("Integrand =",integrand)print("Stamfunksjon =",F)print("SymPy-integral =",integrate(integrand,x))print("Derivert tilbake =",back)print("Kontroll =",simplify(back-integrand))print("Definisjonskrav: x != 0")assertsimplify(back-integrand)==0
Tolkning: CAS bekrefter stamfunksjonen på definisjonsområdet \(x>0\).
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,log,integrate,diff,simplify,factorx=symbols('x',positive=True)integrand=x*log(x)F=x**2*log(x)/2-x**2/4sympy_F=integrate(integrand,x)print("Integrand =",integrand)print("Stamfunksjon fra delvis integrasjon =",F)print("Stamfunksjon fra SymPy =",sympy_F)print("Derivert tilbake =",factor(diff(F,x)))print("Kontroll mot integranden =",simplify(diff(F,x)-integrand))print("Kontroll mellom formene =",simplify(F-sympy_F))assertsimplify(diff(F,x)-integrand)==0assertsimplify(F-sympy_F)==0
Kjørt utskriftIntegrand = x*log(x)
Stamfunksjon fra delvis integrasjon = x**2*log(x)/2 - x**2/4
Stamfunksjon fra SymPy = x**2*log(x)/2 - x**2/4
Derivert tilbake = x*log(x)
Kontroll mot integranden = 0
Kontroll mellom formene = 0
Fasit: \(\displaystyle\frac{x^2}{2}\ln x-\frac{x^2}{4}+C\), for \(x>0\).
Vanlig feil: Å velge \(u=x\), som gjør integralet vanskeligere, eller å miste faktoren \(1/2\).
Sensorpunkt: Sensor ser etter et hensiktsmessig valg i delvis integrasjon og korrekt domene.
Del 1 / Oppgave 2cSubstitusjon og bestemt integral
Hva spør oppgaven om? Uttrykket \(\cos x\,dx\) er den deriverte av \(\sin x\), så en direkte substitusjon gjør integralet til et enkelt polynomintegral.
Velg substitusjon
Sett \(u=\sin x+1\).
Finn differensialet
\(du=\cos x\,dx\).
Endre grensene
Når \(x=0\), er \(u=1\). Når \(x=\pi/2\), er \(u=2\).
Grafen ligger under x-aksen mellom 0 og 1, så arealet beregnes med minusfortegn.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Solve(x^2-x=0,x)
Resultat: \(x=0\) og \(x=1\)
Tolkning: Nullpunktene gir integrasjonsgrensene.
2Integral(-(x^2-x),x,0,1)
Resultat: \(1/6\)
Tolkning: Minusfortegnet gjør integralet lik det geometriske arealet.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,solve,integrate,Rational,simplify,factorx=symbols('x',real=True)f=x**2-xzeros=solve(f,x)area=integrate(-f,(x,0,1))expected=Rational(1,6)print("Funksjon f(x) =",f)print("Faktorisert =",factor(f))print("Nullpunkter =",zeros)print("Arealintegrand på [0,1] =",-f)print("Areal =",area)print("Kontroll =",simplify(area-expected))assertzeros==[0,1]assertsimplify(area-expected)==0
Kjørt utskriftFunksjon f(x) = x**2 - x
Faktorisert = x*(x - 1)
Nullpunkter = [0, 1]
Arealintegrand på [0,1] = -x**2 + x
Areal = 1/6
Kontroll = 0
Fasit: Arealet er \(\displaystyle\frac16\).
Vanlig feil: Å bruke integralet av \(f\) direkte og dermed få et negativt fortegnet areal.
Sensorpunkt: Sensor ser etter nullpunkter, fortegnsvurdering og korrekt arealintegral.
Del 1 / Oppgave 3bOmdreiningsvolum
Oppgave 3b
Oppgave: Flatestykket \(F\) dreies 360° om x-aksen. Bestem volumet \(V\) av omdreiningslegemet.
Original poengangivelse: Oppgave 3 (4 poeng).
Vis løsning
Hva spør oppgaven om? Når området mellom grafen og x-aksen roteres om x-aksen, bruker vi skivemetoden med radius \(|f(x)|\). Kvadreringen fjerner fortegnet.
Det markerte området roteres om x-aksen; radiusen i hver skive er |f(x)|.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1pi*Integral((x^2-x)^2,x,0,1)
Resultat: \(\pi/30\)
Tolkning: CAS beregner volumet med skivemetoden og gir eksakt verdi.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,pi,integrate,expand,simplify,Nx=symbols('x',real=True)f=x**2-xsquare=expand(f**2)volume=pi*integrate(f**2,(x,0,1))expected=pi/30print("Radiusfunksjon i andre =",square)print("Integral uten pi =",integrate(f**2,(x,0,1)))print("Volum =",volume)print("Desimalverdi =",N(volume,12))print("Kontroll =",simplify(volume-expected))assertsimplify(volume-expected)==0
Kjørt utskriftRadiusfunksjon i andre = x**4 - 2*x**3 + x**2
Integral uten pi = 1/30
Volum = pi/30
Desimalverdi = 0.104719755120
Kontroll = 0
Fasit: \(\displaystyle V=\frac{\pi}{30}\).
Vanlig feil: Å bruke arealintegralet fra del a uten å kvadrere radiusen, eller å glemme faktoren \(\pi\).
Sensorpunkt: Sensor ser etter skiveformelen, riktige grenser og korrekt eksakt volum.
Hva spør oppgaven om? Vi reduserer først til en sinuslikning med standardverdien \(\sqrt{3}/2\), finner alle vinkler og avgrenser til det oppgitte intervallet.
Del på 2
\[\sin(2x-\pi)=\frac{\sqrt{3}}{2}\]
Bruk standardvinkler
\(\sin\theta=\sqrt{3}/2\) når \(\theta=\pi/3+2k\pi\) eller \(\theta=2\pi/3+2k\pi\).
Skjæringspunktene med y = √3 viser de fire løsningene i del a.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Solve(2*sin(2x-pi)=sqrt(3),x,0<=x<=2*pi)
Resultat: \(2\pi/3,\ 5\pi/6,\ 5\pi/3,\ 11\pi/6\)
Tolkning: De fire løsningene ligger i det lukkede intervallet og oppfyller original-likningen.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,sin,pi,sqrt,simplifyx=symbols('x',real=True)solutions=[2*pi/3,5*pi/6,5*pi/3,11*pi/6]residuals=[simplify(2*sin(2*s-pi)-sqrt(3))forsinsolutions]print("Likning: 2*sin(2*x-pi) = sqrt(3)")print("Løsninger i [0, 2*pi] =",solutions)print("Residualer i original-likningen =",residuals)print("Antall løsninger =",len(solutions))print("Alle ligger i intervallet =",all(0<=s<=2*piforsinsolutions))assertresiduals==[0,0,0,0]assertall(0<=s<=2*piforsinsolutions)
Kjørt utskriftLikning: 2*sin(2*x-pi) = sqrt(3)
Løsninger i [0, 2*pi] = [2*pi/3, 5*pi/6, 5*pi/3, 11*pi/6]
Residualer i original-likningen = [0, 0, 0, 0]
Antall løsninger = 4
Alle ligger i intervallet = True
Nullpunktene til 2cos²x + cos x − 1 viser løsningene i del b.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Solve(2*u^2+u-1=0,u)
Resultat: \(u=1/2\) eller \(u=-1\)
Tolkning: CAS løser andregradslikningen i hjelpevariabelen.
2Solve(2*cos(x)^2+cos(x)-1=0,x,0<=x<=2*pi)
Resultat: \(\pi/3,\pi,5\pi/3\)
Tolkning: Løsningene er kontrollert i det oppgitte intervallet.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,cos,pi,factor,solve,simplify,Rationalu,x=symbols('u x',real=True)polynomial=2*u**2+u-1u_solutions=solve(polynomial,u)x_solutions=[pi/3,pi,5*pi/3]residuals=[simplify(2*cos(s)**2+cos(s)-1)forsinx_solutions]print("Polynom i u =",polynomial)print("Faktorisert =",factor(polynomial))print("Løsninger for u = cos(x) =",u_solutions)print("Løsninger for x i [0, 2*pi] =",x_solutions)print("Residualer i original-likningen =",residuals)assertu_solutions==[-1,Rational(1,2)]assertresiduals==[0,0,0]
Kjørt utskriftPolynom i u = 2*u**2 + u - 1
Faktorisert = (u + 1)*(2*u - 1)
Løsninger for u = cos(x) = [-1, 1/2]
Løsninger for x i [0, 2*pi] = [pi/3, pi, 5*pi/3]
Residualer i original-likningen = [0, 0, 0]
Fasit: \(x=\frac\pi3,\ \pi,\ \frac{5\pi}{3}\).
Vanlig feil: Å forkaste \(\cos x=-1\), eller å bare ta én vinkel for \(\cos x=1/2\).
Sensorpunkt: Sensor ser etter faktorisering i \(\cos x\) og alle løsninger i intervallet.
Del 1 / Oppgave 5Aritmetisk rekke fra sumformel
Oppgave 5
Oppgave: En aritmetisk rekke har sum \(s_n=3n^2+4n\). Bruk dette til å bestemme \(a_3\).
Original poengangivelse: Oppgave 5 (2 poeng).
Vis løsning
Hva spør oppgaven om? Når sumformelen er kjent, finner vi et enkelt ledd ved differansen \(a_n=s_n-s_{n-1}\).
Bruk sammenhengen
\(a_3=s_3-s_2\).
Beregn \(s_3\)
\(s_3=3\cdot3^2+4\cdot3=27+12=39\).
Beregn \(s_2\)
\(s_2=3\cdot2^2+4\cdot2=12+8=20\).
Trekk fra
\[a_3=39-20\]
Finn verdien
\[a_3=19\]
Rimelighetskontroll
Generelt er \(a_n=s_n-s_{n-1}=6n+1\), og dette gir \(a_3=19\).
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Simplify((3*3^2+4*3)-(3*2^2+4*2))
Resultat: \(19\)
Tolkning: CAS beregner differansen mellom de to påfølgende delsummene.
Vanlig feil: Å sette \(n=3\) direkte i sumformelen og svare \(s_3=39\) i stedet for å finne det tredje leddet.
Sensorpunkt: Sensor ser etter sammenhengen \(a_n=s_n-s_{n-1}\).
Del 1 / Oppgave 6Uendelig geometrisk rekke
Oppgave 6
Oppgave: En uendelig geometrisk rekke konvergerer mot 6. Summen av de tre første leddene er \(38/9\). Bestem \(b_4\).
Original poengangivelse: Oppgave 6 (2 poeng).
Vis løsning
Hva spør oppgaven om? Vi bruker både sumformelen for hele rekken og summen av de tre første leddene for å bestemme kvotienten og det fjerde leddet.
Skriv totalsummen
\(S_\infty=b_1/(1-k)=6\).
Skriv summen av tre ledd
\(S_3=b_1(1-k^3)/(1-k)=6(1-k^3)\).
Sett inn opplysningen
\[6(1-k^3)=\frac{38}{9}\]
Løs for \(k^3\)
\(1-k^3=19/27\), så \(k^3=8/27\) og \(k=2/3\).
Finn første ledd
\(b_1=6(1-k)=6/3=2\).
Finn fjerde ledd
\[b_4=b_1k^3=2\cdot\frac8{27}=\frac{16}{27}\]
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Solve(6*(1-k^3)=38/9,k)
Resultat: \(k=2/3\)
Tolkning: Den reelle kvotienten har absoluttverdi mindre enn 1 og gir konvergens.
22*(2/3)^3
Resultat: \(16/27\)
Tolkning: Det fjerde leddet er første ledd multiplisert med kvotienten tre ganger.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,Eq,solve,Rational,simplifyk=symbols('k',real=True)equation=Eq(6*(1-k**3),Rational(38,9))k_solutions=solve(equation,k)k_value=Rational(2,3)b1=6*(1-k_value)b4=b1*k_value**3print("Likning for kvotienten =",equation)print("Reelle løsninger for k =",k_solutions)print("Valgt konvergent kvotient k =",k_value)print("Første ledd b_1 =",b1)print("Fjerde ledd b_4 =",b4)print("Kontroll av totalsum =",simplify(b1/(1-k_value)))print("Kontroll av S_3 =",simplify(b1*(1-k_value**3)/(1-k_value)))assertb4==Rational(16,27)assertsimplify(b1/(1-k_value))==6
Kjørt utskriftLikning for kvotienten = Eq(6 - 6*k**3, 38/9)
Reelle løsninger for k = [2/3]
Valgt konvergent kvotient k = 2/3
Første ledd b_1 = 2
Fjerde ledd b_4 = 16/27
Kontroll av totalsum = 6
Kontroll av S_3 = 38/9
Fasit: \(b_4=\frac{16}{27}\).
Vanlig feil: Å tolke differansen \(6-38/9\) direkte som \(b_4\); differansen er summen av hele halen fra og med \(b_4\).
Sensorpunkt: Sensor ser etter korrekt bruk av geometrisk sumformel og kvotientkravet \(|k|<1\).
Hva spør oppgaven om? Likningen er separerbar. Vi flytter alle y-faktorer til den ene siden og x-faktorer til den andre før vi integrerer.
Ta med nulløsningen
\(y(x)=0\) oppfyller likningen og må nevnes separat fordi vi senere deler på \(y^2\).
Separer variablene for \(y
e0\)
\(y^{-2}dy=2x\,dx\).
Integrer begge sider
\[\int y^{-2}dy=\int2x\,dx\]
Utfør integrasjonen
\(-1/y=x^2+C_1\).
Omdefiner konstanten
\(1/y=C-x^2\).
Isoler y
\[y(x)=\frac1{C-x^2}\]
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1SolveODE(y\prime=2*x*y^2)
Resultat: \(y=1/(C-x^2)\)
Tolkning: CAS gir den ikke-konstante løsningsfamilien; nulløsningen må legges til separat.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,Function,Eq,diff,dsolve,simplifyx,C=symbols('x C',real=True)y=Function('y')solution_family=1/(C-x**2)residual=simplify(diff(solution_family,x)-2*x*solution_family**2)zero_residual=simplify(diff(0,x)-2*x*0**2)ode=Eq(diff(y(x),x),2*x*y(x)**2)print("Differensiallikning =",ode)print("SymPy-generell løsning =",dsolve(ode))print("Foreslått familie y(x) =",solution_family)print("Residual for løsningsfamilien =",residual)print("Residual for nulløsningen =",zero_residual)print("Gyldig der nevneren C-x^2 ikke er 0")assertresidual==0assertzero_residual==0
Kjørt utskriftDifferensiallikning = Eq(Derivative(y(x), x), 2*x*y(x)**2)
SymPy-generell løsning = Eq(y(x), -1/(C1 + x**2))
Foreslått familie y(x) = 1/(C - x**2)
Residual for løsningsfamilien = 0
Residual for nulløsningen = 0
Gyldig der nevneren C-x^2 ikke er 0
Fasit: \(y(x)=0\) eller \(\displaystyle y(x)=\frac1{C-x^2}\), på intervaller der nevneren ikke er null.
Vanlig feil: Å dele på \(y^2\) uten å nevne nulløsningen, eller å få feil fortegn ved integrasjon av \(y^{-2}\).
Sensorpunkt: Sensor ser etter separasjon, integrasjon, konstantbehandling og nulløsningen.
Del 1 / Oppgave 7bTangent til løsningskurve
Oppgave 7b
Oppgave: En integralkurve går gjennom \((2,1)\). Bestem likningen for tangenten til løsningskurven i dette punktet.
Original poengangivelse: Oppgave 7 (4 poeng).
Vis løsning
Hva spør oppgaven om? Vi kan finne tangentens stigningstall direkte fra differensiallikningen og deretter bruke ettpunktsformelen.
Finn stigningstallet
Fra \(y\prime=2xy^2\) får vi i \((2,1)\):
Sett inn punktet
\[y\prime(2)=2\cdot2\cdot1^2=4\]
Bruk ettpunktsformelen
\[y-1=4(x-2)\]
Løs opp parentesen
\(y-1=4x-8\).
Isoler y
\[y=4x-7\]
Kontroller integralkurven
Punktet gir \(C=5\), så kurven er \(y=1/(5-x^2)\), og dens deriverte i \(x=2\) er 4.
Integralkurven y = 1/(5 − x²) og tangenten y = 4x − 7 møtes i (2, 1).
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Substitute(2*x*y^2,{x=2,y=1})
Resultat: \(4\)
Tolkning: Differensiallikningen gir tangentens stigningstall direkte.
2Tangent((2,1),1/(5-x^2))
Resultat: \(y=4x-7\)
Tolkning: Tangenten går gjennom punktet og har stigningstall 4.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,diff,simplifyx=symbols('x',real=True)solution=1/(5-x**2)slope=diff(solution,x).subs(x,2)tangent=1+slope*(x-2)print("Integralkurve gjennom (2,1) =",solution)print("Kontroll y(2) =",solution.subs(x,2))print("Derivert y'(x) =",diff(solution,x))print("Stigningstall y'(2) =",slope)print("Tangent i punktform = 1 + 4*(x-2)")print("Tangent forenklet =",simplify(tangent))print("Kontroll av punkt =",simplify(tangent.subs(x,2)-1))assertsolution.subs(x,2)==1assertslope==4assertsimplify(tangent-(4*x-7))==0
Kjørt utskriftIntegralkurve gjennom (2,1) = 1/(5 - x**2)
Kontroll y(2) = 1
Derivert y'(x) = 2*x/(5 - x**2)**2
Stigningstall y'(2) = 4
Tangent i punktform = 1 + 4*(x-2)
Tangent forenklet = 4*x - 7
Kontroll av punkt = 0
Fasit: Tangenten er \(y=4x-7\).
Vanlig feil: Å bruke selve funksjonsverdien 1 som stigningstall i stedet for å sette punktet inn i differensiallikningen.
Sensorpunkt: Sensor ser etter stigningstall 4 og korrekt tangentlikning.
Del 1 / Oppgave 8aAndreordens lineær differensiallikning
Oppgave 8a
Oppgave: Gitt \(y\prime\prime+b y\prime+c y=0\). Bestem \(b\) og \(c\) når den generelle løsningen er \(y=e^{-x}(A\cos2x+B\sin2x)\).
Original poengangivelse: Oppgave 8 (4 poeng).
Vis løsning
Hva spør oppgaven om? Løsningsformen viser at den karakteristiske likningen har komplekse røtter med realdel \(-1\) og imaginærdel \(\pm2\).
Les av røttene
Fra \(e^{\alpha x}(A\cos\beta x+B\sin\beta x)\) får vi \(r=\alpha\pm i\beta\).
Sett inn verdiene
Her er \(r=-1\pm2i\).
Bygg karakteristisk polynom
\[(r+1-2i)(r+1+2i)=(r+1)^2+4\]
Utvid
\[(r+1)^2+4=r^2+2r+5\]
Sammenlign koeffisienter
Karakteristisk likning er \(r^2+br+c=0\).
Les av
\[b=2,\qquad c=5\]
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Expand((r+1)^2+4)
Resultat: \(r^2+2r+5\)
Tolkning: Koeffisientene foran r og konstantleddet gir henholdsvis b og c.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,I,expand,solve,simplifyr=symbols('r')roots=[-1+2*I,-1-2*I]polynomial=expand((r-roots[0])*(r-roots[1]))calculated_roots=solve(r**2+2*r+5,r)print("Karakteristiske røtter =",roots)print("Karakteristisk polynom =",polynomial)print("Koeffisient b =",polynomial.coeff(r,1))print("Koeffisient c =",polynomial.coeff(r,0))print("Kontrollrøtter for r^2+2r+5 =",calculated_roots)print("Polynomkontroll =",simplify(polynomial-(r**2+2*r+5)))assertsimplify(polynomial-(r**2+2*r+5))==0
Planet skjærer alle tre koordinataksene i positive punkter.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Cross((0,1,-2),(-2,2,-1))
Resultat: \((3,4,2)\)
Tolkning: Kryssproduktet er normalt på begge retningsvektorene.
2Plane(A,B,C)
Resultat: \(3x+4y+2z=13\)
Tolkning: Alle tre punktene oppfyller planlikningen.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportMatrix,symbols,simplifyx,y,z=symbols('x y z',real=True)A=Matrix([1,1,3])B=Matrix([1,2,1])C=Matrix([-1,3,2])AB=B-AAC=C-Anormal=AB.cross(AC)plane=3*x+4*y+2*z-13print("A =",A.T)print("B =",B.T)print("C =",C.T)print("AB =",AB.T)print("AC =",AC.T)print("Normalvektor AB x AC =",normal.T)print("Planlikning: 3*x + 4*y + 2*z = 13")print("Kontroll A =",plane.subs({x:1,y:1,z:3}))print("Kontroll B =",plane.subs({x:1,y:2,z:1}))print("Kontroll C =",plane.subs({x:-1,y:3,z:2}))assertnormal==Matrix([3,4,2])assertall(plane.subs(dict(zip((x,y,z),P)))==0forPin[A,B,C])
Kjørt utskriftA = Matrix([[1, 1, 3]])
B = Matrix([[1, 2, 1]])
C = Matrix([[-1, 3, 2]])
AB = Matrix([[0, 1, -2]])
AC = Matrix([[-2, 2, -1]])
Normalvektor AB x AC = Matrix([[3, 4, 2]])
Planlikning: 3*x + 4*y + 2*z = 13
Kontroll A = 0
Kontroll B = 0
Kontroll C = 0
Fasit: \(\alpha:\ 3x+4y+2z=13\).
Vanlig feil: Å bruke punktkoordinatene direkte som normalvektor eller å ta differansevektorene i feil sammenheng.
Sensorpunkt: Sensor ser etter to retningsvektorer, et korrekt kryssprodukt og en planlikning som passer alle punktene.
Del 1 / Oppgave 9bSkjæring med koordinatakser
Oppgave 9b
Oppgave: Bestem skjæringspunktene mellom planet \(\alpha:3x+4y+2z=13\) og hver av de tre koordinataksene.
Original poengangivelse: Oppgave 9 (6 poeng).
Vis løsning
Hva spør oppgaven om? På én koordinatakse er de to andre koordinatene lik null. Vi setter derfor to variabler lik null om gangen.
De tre markerte punktene er planens akseavskjæringer.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Solve(3x=13,x)
Resultat: \(x=13/3\)
Tolkning: Dette er x-aksens skjæringskoordinat.
2Solve(4y=13,y)
Resultat: \(y=13/4\)
Tolkning: Dette er y-aksens skjæringskoordinat.
3Solve(2z=13,z)
Resultat: \(z=13/2\)
Tolkning: Dette er z-aksens skjæringskoordinat.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,solve,Eq,Rationalx,y,z=symbols('x y z',real=True)X=(solve(Eq(3*x,13),x)[0],0,0)Y=(0,solve(Eq(4*y,13),y)[0],0)Z=(0,0,solve(Eq(2*z,13),z)[0])print("Skjæring med x-aksen =",X)print("Skjæring med y-aksen =",Y)print("Skjæring med z-aksen =",Z)print("Kontroll X i planet =",3*X[0]+4*X[1]+2*X[2])print("Kontroll Y i planet =",3*Y[0]+4*Y[1]+2*Y[2])print("Kontroll Z i planet =",3*Z[0]+4*Z[1]+2*Z[2])assertX==(Rational(13,3),0,0)assertY==(0,Rational(13,4),0)assertZ==(0,0,Rational(13,2))
Kjørt utskriftSkjæring med x-aksen = (13/3, 0, 0)
Skjæring med y-aksen = (0, 13/4, 0)
Skjæring med z-aksen = (0, 0, 13/2)
Kontroll X i planet = 13
Kontroll Y i planet = 13
Kontroll Z i planet = 13
Fasit: \(\left(\frac{13}{3},0,0\right)\), \(\left(0,\frac{13}{4},0\right)\) og \(\left(0,0,\frac{13}{2}\right)\).
Vanlig feil: Å sette bare én koordinat lik null; på en koordinatakse må begge de andre koordinatene være null.
Sensorpunkt: Sensor ser etter tre korrekte innsettinger og eksakte koordinater.
Del 1 / Oppgave 9cVinkel mellom linje og plan
Oppgave 9c
Oppgave: Avgjør hvilken koordinatakse som danner minst vinkel med planet \(\alpha\).
Original poengangivelse: Oppgave 9 (6 poeng).
Vis løsning
Hva spør oppgaven om? Vinkelen mellom en akse og planet bestemmes av aksens retningsvektor og planens normalvektor. Den minste komponenten i normalvektoren gir den minste sinusverdien.
Bruk normalvektoren
En normalvektor er \(\mathbf n=(3,4,2)\), med lengde \(\sqrt{29}\).
Fasit: Z-aksen danner minst vinkel med planet; vinkelen er \(\arcsin(2/\sqrt{29})\approx21.8^\circ\).
Vanlig feil: Å velge aksen som svarer til den største normalkomponenten; det gir størst, ikke minst, linje-plan-vinkel.
Sensorpunkt: Sensor ser etter riktig vinkeldefinisjon og en tydelig sammenligning av alle tre aksene.
Del 2 - med hjelpemidler
Del 2 / Oppgave 1aGeometrisk sparemodell
Oppgave 1a
Oppgave: Rannveig setter inn 1000 kroner hver måned på en konto med fast månedlig rentefot 0,25 %. Hvor mye er det på kontoen like etter innskudd nummer 40?
Original poengangivelse: Oppgave 1 (6 poeng).
Vis løsning
Hva spør oppgaven om? Like etter innskudd nummer 40 har det første innskuddet fått rente i 39 måneder, mens det siste ikke har fått rente ennå. Beløpene danner en geometrisk sum.
Finn vekstfaktoren
\(q=1+0.0025=1.0025\).
Skriv de 40 bidragene
\(1000q^{39}+1000q^{38}+\cdots+1000\).
Bruk geometrisk sum
\[S_{40}=1000\frac{q^{40}-1}{q-1}\]
Sett inn q
\[S_{40}=1000\frac{1.0025^{40}-1}{0.0025}\]
Beregn
\(S_{40}\approx42013.204\).
Avrund til kroner
Det er omtrent \(42\,013\) kroner på kontoen.
Saldoen etter 40 innskudd er omtrent 42 013 kr.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Sum(1000*1.0025^k,k,0,39)
Resultat: \(42013.204\)
Tolkning: Summen inkluderer 40 innskudd med rentetider fra 0 til 39 måneder.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportRational,N,simplifymonthly_rate=Rational(25,10000)# 0.25 prosentq=1+monthly_raten=40balance=1000*(q**n-1)/(q-1)direct_sum=sum(1000*q**kforkinrange(n))print("Månedlig rentefot =",monthly_rate)print("Vekstfaktor q =",q)print("Antall innskudd =",n)print("Saldo fra sumformelen =",N(balance,15),"kr")print("Saldo fra direkte summering =",N(direct_sum,15),"kr")print("Avrundet til nærmeste krone =",round(float(balance)),"kr")print("Kontroll mellom metodene =",simplify(balance-direct_sum))assertsimplify(balance-direct_sum)==0
Kjørt utskriftMånedlig rentefot = 1/400
Vekstfaktor q = 401/400
Antall innskudd = 40
Saldo fra sumformelen = 42013.2040516283 kr
Saldo fra direkte summering = 42013.2040516283 kr
Avrundet til nærmeste krone = 42013 kr
Kontroll mellom metodene = 0
Fasit: Omtrent \(42\,013\) kroner.
Vanlig feil: Å la også det 40. innskuddet få én måneds rente, eller å bruke årlig rentefot.
Sensorpunkt: Sensor ser etter korrekt geometrisk sum og tydelig avrunding.
Del 2 / Oppgave 1bTerskel i geometrisk følge
Oppgave 1b
Oppgave: Hvor lang tid gikk det fra første innskudd til det var mer enn 50 000 kroner på kontoen?
Original poengangivelse: Oppgave 1 (6 poeng).
Vis løsning
Hva spør oppgaven om? Vi finner det minste innskuddsnummeret n som gir saldo over 50 000 og oversetter deretter innskuddsnummeret til antall måneder siden første innskudd.
Bruk saldouttrykket
\(S_n=1000(q^n-1)/(q-1)\), der \(q=1.0025\).
Sett opp ulikheten
\[1000\frac{1.0025^n-1}{0.0025}>50000\]
Løs numerisk
Det minste heltallet som oppfyller ulikheten er \(n=48\).
Kontroller innskudd 47
\(S_{47}\approx49\,806.69<50\,000\).
Kontroller innskudd 48
\(S_{48}\approx50\,931.21>50\,000\).
Tolk tiden
Innskudd nummer 48 settes inn 47 måneder etter det første. Det gikk derfor 47 måneder.
Grafen krysser 50 000 kr ved innskudd nummer 48, 47 måneder etter første innskudd.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1NSolve(1000*(1.0025^n-1)/0.0025=50000,n)
Resultat: \(n\approx47.17\)
Tolkning: Terskelen passeres ved neste heltall, altså innskudd nummer 48.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportRational,Nq=Rational(10025,10000)defbalance(n):return1000*(q**n-1)/(q-1)first_above=next(nforninrange(1,200)ifbalance(n)>50000)previous=balance(first_above-1)current=balance(first_above)months_from_first=first_above-1print("Første innskuddsnummer med saldo over 50 000 =",first_above)print("Saldo etter innskudd 47 =",N(previous,15),"kr")print("Saldo etter innskudd 48 =",N(current,15),"kr")print("Antall måneder fra første innskudd =",months_from_first)print("Kontroll: saldo 47 < 50 000 =",previous<50000)print("Kontroll: saldo 48 > 50 000 =",current>50000)assertfirst_above==48assertmonths_from_first==47
Kjørt utskriftFørste innskuddsnummer med saldo over 50 000 = 48
Saldo etter innskudd 47 = 49806.6916867567 kr
Saldo etter innskudd 48 = 50931.2084159736 kr
Antall måneder fra første innskudd = 47
Kontroll: saldo 47 < 50 000 = True
Kontroll: saldo 48 > 50 000 = True
Fasit: Det gikk \(47\) måneder; beløpet passerte 50 000 kroner like etter innskudd nummer 48.
Vanlig feil: Å svare 48 måneder uten å merke at første innskudd skjer ved starttidspunktet.
Sensorpunkt: Sensor ser etter både terskelkontroll for n=47 og n=48 og korrekt tidsfortolkning.
Del 2 / Oppgave 1cNumerisk rentebestemmelse
Oppgave 1c
Oppgave: Ivar har 47 900 kroner like etter innskudd nummer 40. Hvilken fast månedlig rentefot ville gitt samme sum på en sparekonto?
Original poengangivelse: Oppgave 1 (6 poeng).
Vis løsning
Hva spør oppgaven om? Vi setter den ukjente månedsrenten r inn i annuitetsformelen og løser den ikke-lineære likningen numerisk.
Definer vekstfaktoren
La \(q=1+r\).
Skriv saldolikningen
\[1000\frac{(1+r)^{40}-1}{r}=47900\]
Velg numerisk metode
Likningen har ikke en enkel algebraisk løsning, så vi bruker CAS eller numerisk rotfinner.
Løs for r
\(r\approx0.0090086973\).
Gjør om til prosent
\(100r\approx0.9008697\%\).
Kontroller saldoen
Innsetting av denne renten gir \(47\,900\) kroner etter 40 innskudd.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1NSolve(1000*((1+r)^40-1)/r=47900,r,0.009)
Resultat: \(r\approx0.0090086973\)
Tolkning: Dette tilsvarer omtrent 0,901 % månedsrente.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,nsolve,Nr=symbols('r',real=True)equation=1000*((1+r)**40-1)/r-47900root=nsolve(equation,0.009)check_balance=1000*((1+root)**40-1)/rootprint("Likningens venstreside minus 47 900 =",equation)print("Numerisk løsning r =",N(root,16))print("Månedlig rentefot i prosent =",N(100*root,12),"%")print("Kontrollsaldo =",N(check_balance,15),"kr")print("Kontrollresidual =",N(equation.subs(r,root),8))print("Avrundet månedsrente =",round(float(100*root),3),"%")assertabs(float(check_balance)-47900)<1e-7
Vanlig feil: Å oppgi vekstfaktoren 1,009 som rentefot, eller å bruke 40 måneders rente på alle innskuddene.
Sensorpunkt: Sensor ser etter korrekt annuitetslikning, numerisk løsning og prosenttolkning.
Del 2 / Oppgave 2aPeriodisk funksjon og graf
Oppgave 2a
Oppgave: Funksjonen er \(f(x)=\cos(2x)-2\cos x+2\). Tegn grafen og bestem perioden.
Original poengangivelse: Oppgave 2 (4 poeng).
Vis løsning
Hva spør oppgaven om? Vi analyserer periodene til leddene og kontrollerer grafisk at den samlede funksjonen gjentar seg etter \(2\pi\), men ikke etter \(\pi\).
Finn leddperiodene
\(\cos(2x)\) har periode \(\pi\), mens \(\cos x\) har periode \(2\pi\).
Finn felles periode
\(2\pi\) er en felles periode for begge trigonometriske ledd.
Kontroller at \(\pi\) ikke virker
\(f(0)=1\), mens \(f(\pi)=5\), så \(\pi\) er ikke en periode.
Konkluder om minste periode
Den minste positive perioden er derfor \(2\pi\).
Finn nyttige grafpunkter
\(f(0)=1\), \(f(\pi)=5\), og minimum \(1/2\) oppstår når \(\cos x=1/2\).
Tegn grafen
Grafen gjentar seg på hvert intervall med lengde \(2\pi\).
Den markerte delen fra 0 til 2π viser én full periode.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1f(x)=cos(2x)-2cos(x)+2
Resultat: Graf med minste periode \(2\pi\)
Tolkning: Grafen viser at funksjonsverdiene ved x og x+2π er like.
2Simplify(f(x+2pi)-f(x))
Resultat: \(0\)
Tolkning: Symbolsk kontroll bekrefter perioden 2π.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,cos,pi,simplify,diff,solve,Nx=symbols('x',real=True)f=cos(2*x)-2*cos(x)+2period_check=simplify(f.subs(x,x+2*pi)-f)pi_check=simplify(f.subs(x,x+pi)-f)critical=solve(diff(f,x),x)print("Funksjon f(x) =",f)print("f(0) =",f.subs(x,0))print("f(pi) =",f.subs(x,pi))print("Kontroll f(x+2*pi)-f(x) =",period_check)print("Kontroll f(x+pi)-f(x) =",pi_check)print("Minimumskandidater i en periode inkluderer pi/3 og 5*pi/3")print("f(pi/3) =",simplify(f.subs(x,pi/3)))print("f(5*pi/3) =",simplify(f.subs(x,5*pi/3)))assertperiod_check==0assertpi_check!=0
Kjørt utskriftFunksjon f(x) = -2*cos(x) + cos(2*x) + 2
f(0) = 1
f(pi) = 5
Kontroll f(x+2*pi)-f(x) = 0
Kontroll f(x+pi)-f(x) = 4*cos(x)
Minimumskandidater i en periode inkluderer pi/3 og 5*pi/3
f(pi/3) = 1/2
f(5*pi/3) = 1/2
Fasit: Minste periode er \(2\pi\).
Vanlig feil: Å velge \(\pi\) fordi det første leddet har periode \(\pi\), uten å kontrollere leddet \(-2\cos x\).
Sensorpunkt: Sensor ser etter dokumentert graf og en begrunnet minste periode.
Del 2 / Oppgave 2bDobbeltvinkelformel
Oppgave 2b
Oppgave: Skriv \(f(x)\) på formen \(a\cos^2x+b\cos x+c\), og bestem \(a\), \(b\) og \(c\).
Original poengangivelse: Oppgave 2 (4 poeng).
Vis løsning
Hva spør oppgaven om? Vi bruker dobbeltvinkelformelen \(\cos(2x)=2\cos^2x-1\) og samler ledd.
Skriv dobbeltvinkelformelen
\[\cos(2x)=2\cos^2x-1\]
Sett inn i f
\[f(x)=2\cos^2x-1-2\cos x+2\]
Samle konstantene
\(-1+2=1\).
Skriv ønsket form
\[f(x)=2\cos^2x-2\cos x+1\]
Sammenlign koeffisienter
\(a=2\), \(b=-2\), \(c=1\).
Ekstra kontroll
Uttrykket kan også skrives \(2(\cos x-1/2)^2+1/2\), som forklarer minimumsverdien.
Den kvadratkompletterte formen forklarer minimumspunktene i grafen.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1TrigExpand(cos(2x)-2cos(x)+2)
Resultat: \(2\cos^2x-2\cos x+1\)
Tolkning: CAS bruker dobbeltvinkelformelen og samler leddene.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,cos,expand_trig,simplify,expandx=symbols('x',real=True)f=cos(2*x)-2*cos(x)+2rewritten=2*cos(x)**2-2*cos(x)+1completed_square=2*(cos(x)-1/2)**2+1/2print("Opprinnelig funksjon =",f)print("Trigonometrisk utvidelse =",expand_trig(f))print("Ønsket form =",rewritten)print("Kvadratkomplettert form =",expand(completed_square))print("Kontroll opprinnelig - ønsket =",simplify(f-rewritten))print("Koeffisienter: a = 2, b = -2, c = 1")assertsimplify(f-rewritten)==0assertsimplify(rewritten-completed_square)==0
Kjørt utskriftOpprinnelig funksjon = -2*cos(x) + cos(2*x) + 2
Trigonometrisk utvidelse = 2*cos(x)**2 - 2*cos(x) + 1
Ønsket form = 2*cos(x)**2 - 2*cos(x) + 1
Kvadratkomplettert form = 2*cos(x)**2 - 2.0*cos(x) + 1.0
Kontroll opprinnelig - ønsket = 0
Koeffisienter: a = 2, b = -2, c = 1
Fasit: \(a=2\), \(b=-2\) og \(c=1\).
Vanlig feil: Å bruke \(\cos(2x)=2\cos x-1\) uten kvadratet.
Sensorpunkt: Sensor ser etter korrekt dobbeltvinkelformel og tydelig koeffisientsammenligning.
Del 2 / Oppgave 3aAkseavskjæringer med parameter
Oppgave 3a
Oppgave: Planet er \(\alpha:x+y+t z=4\), \(t\ne0\). Bestem skjæringspunktene A, B og C med x-, y- og z-aksen uttrykt ved t.
Original poengangivelse: Oppgave 3 (6 poeng).
Vis løsning
Hva spør oppgaven om? Vi setter to koordinater lik null for hver akse og løser den gjenværende likningen.
A, B og C er de tre akseavskjæringene som sammen med origo danner pyramiden.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Solve(x=4,x)
Resultat: \(A=(4,0,0)\)
Tolkning: På x-aksen er y og z lik null.
2Solve(y=4,y)
Resultat: \(B=(0,4,0)\)
Tolkning: På y-aksen er x og z lik null.
3Solve(t*z=4,z)
Resultat: \(C=(0,0,4/t)\)
Tolkning: Forutsetningen t≠0 gjør z-avskjæringen definert.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,solve,Eq,simplifyx,y,z,t=symbols('x y z t',real=True,nonzero=True)A=(solve(Eq(x,4),x)[0],0,0)B=(0,solve(Eq(y,4),y)[0],0)C=(0,0,solve(Eq(t*z,4),z)[0])print("A =",A)print("B =",B)print("C =",C)print("Kontroll A i planet =",simplify(A[0]+A[1]+t*A[2]))print("Kontroll B i planet =",simplify(B[0]+B[1]+t*B[2]))print("Kontroll C i planet =",simplify(C[0]+C[1]+t*C[2]))print("Forutsetning: t != 0")assertsimplify(A[0]+A[1]+t*A[2]-4)==0assertsimplify(B[0]+B[1]+t*B[2]-4)==0assertsimplify(C[0]+C[1]+t*C[2]-4)==0
Kjørt utskriftA = (4, 0, 0)
B = (0, 4, 0)
C = (0, 0, 4/t)
Kontroll A i planet = 4
Kontroll B i planet = 4
Kontroll C i planet = 4
Forutsetning: t != 0
\[t=\frac{16}{15}\quad\text{eller}\quad t=-\frac{16}{15}\] Dersom pyramiden skal ligge i første oktant, velges \(t=16/15\).
For t = 16/15 ligger tetraederet i første oktant og har volum 10.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Solve(32/(3*abs(t))=10,t)
Resultat: \(t=\pm16/15\)
Tolkning: Begge fortegn gir et tetraeder med samme volum; positiv t gir z-avskjæring i positiv retning.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,Matrix,Abs,Eq,solve,Rational,simplifyt=symbols('t',real=True,nonzero=True)OA=Matrix([4,0,0])OB=Matrix([0,4,0])OC=Matrix([0,0,4/t])determinant=Matrix.hstack(OA,OB,OC).det()volume=Abs(determinant)/6solutions=[Rational(16,15),Rational(-16,15)]print("Determinant =",determinant)print("Volumfunksjon V(t) =",volume)print("Kandidater for t =",solutions)forvalueinsolutions:print("V(",value,") =",simplify(volume.subs(t,value)))print("Positiv t gir pyramiden i første oktant")assertall(simplify(volume.subs(t,v)-10)==0forvinsolutions)
Kjørt utskriftDeterminant = 64/t
Volumfunksjon V(t) = 32/(3*Abs(t))
Kandidater for t = [16/15, -16/15]
V( 16/15 ) = 10
V( -16/15 ) = 10
Positiv t gir pyramiden i første oktant
Fasit: \(t=\pm16/15\). For en pyramide i første oktant er \(t=16/15\).
Vanlig feil: Å utelate absoluttverdien i volumet og dermed forkaste den negative parameteren uten begrunnelse.
Sensorpunkt: Sensor ser etter determinant- eller pyramideformel, absoluttverdi og en tydelig geometrisk tolkning.
Del 2 / Oppgave 3cTangentplan til kuleflate
Oppgave 3c
Oppgave: Kuleflaten K har sentrum \(S(-1,2,1)\) og radius 2. Bruk CAS til å bestemme t slik at planet \(x+y+tz=4\) tangerer K.
Original poengangivelse: Oppgave 3 (6 poeng).
Vis løsning
Hva spør oppgaven om? Et plan tangerer en kule når avstanden fra sentrum til planet er lik radiusen.
Planet er tangent når den korteste avstanden fra sentrum S til planet er lik 2.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Solve((t-3)^2=4*(t^2+2),t)
Resultat: \(t=-1\pm2\sqrt{3}/3\)
Tolkning: Begge parameterverdiene gir avstand 2 fra sentrum til planet og dermed tangering.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,solve,sqrt,simplify,Abs,Nt=symbols('t',real=True)equation=(t-3)**2-4*(t**2+2)solutions=solve(equation,t)print("Kvadrert tangentlikning =",equation,"= 0")print("Forenklet polynom =",simplify(equation))print("Løsninger for t =",solutions)forvalueinsolutions:distance_squared=simplify((value-3)**2/(value**2+2))print("t =",value,", t numerisk =",N(value,12),", avstand^2 =",distance_squared)print("Begge avstander er 2 siden avstand^2 = 4")assertall(simplify((v-3)**2/(v**2+2)-4)==0forvinsolutions)assertall(v!=0forvinsolutions)
Kjørt utskriftKvadrert tangentlikning = -4*t**2 + (t - 3)**2 - 8 = 0
Forenklet polynom = -3*t**2 - 6*t + 1
Løsninger for t = [-1 + 2*sqrt(3)/3, -2*sqrt(3)/3 - 1]
t = -1 + 2*sqrt(3)/3 , t numerisk = 0.154700538379 , avstand^2 = 4
t = -2*sqrt(3)/3 - 1 , t numerisk = -2.15470053838 , avstand^2 = 4
Begge avstander er 2 siden avstand^2 = 4
Tolkning: Modellen kombinerer et konstant og et mengdeproporsjonalt tap.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,Function,Eq,diff,Rationalx=symbols('x',real=True,nonnegative=True)V=Function('V')engine_loss=-Rational(70,100)leak_loss=-Rational(1,100)*V(x)ode=Eq(diff(V(x),x),engine_loss+leak_loss)print("Motorens bidrag per mil =",engine_loss,"liter per mil")print("Lekkasjens bidrag per mil =",leak_loss)print("Samlet differensiallikning =",ode)print("Startbetingelse: V(0) = 60")print("Ved start er V'(0) =",engine_loss-Rational(1,100)*60,"liter per mil")print("Ved start tapes altså 1.30 liter per mil")assertengine_loss-Rational(1,100)*60==Rational(-13,10)
Kjørt utskriftMotorens bidrag per mil = -7/10 liter per mil
Lekkasjens bidrag per mil = -V(x)/100
Samlet differensiallikning = Eq(Derivative(V(x), x), -V(x)/100 - 7/10)
Startbetingelse: V(0) = 60
Ved start er V'(0) = -13/10 liter per mil
Ved start tapes altså 1.30 liter per mil
Fasit: Modellen er riktig fordi \(V\prime\) er summen av det konstante motorforbruket \(-0.70\) og det proporsjonale lekkasjetapet \(-0.01V\), med \(V(0)=60\).
Vanlig feil: Å gi lekkasjeleddet positivt fortegn, eller å blande liter per mil med liter.
Sensorpunkt: Sensor ser etter en fysisk forklaring av begge leddene, fortegn og startverdi.
Hva spør oppgaven om? Likningen er lineær og kan løses ved homogen løsning pluss likevektsløsning eller med integrerende faktor.
Skriv standardform
\[V\prime+0.01V=-0.70\]
Finn likevektsverdien
Sett \(V\prime=0\): \(0.01V=-0.70\Rightarrow V=-70\).
Finn homogen løsning
\(V_h=Ce^{-0.01x}\).
Skriv generell løsning
\[V=Ce^{-0.01x}-70\]
Bruk startverdien
\(60=C-70\Rightarrow C=130\).
Skriv den bestemte løsningen
\[V(x)=130e^{-0.01x}-70\]
Den løste modellen starter i 60 liter og avtar mot null innen det fysiske gyldighetsområdet.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1SolveODE(V\prime=-0.70-0.01V,V(0)=60)
Resultat: \(V(x)=130e^{-0.01x}-70\)
Tolkning: CAS-løsningen oppfyller både differensiallikningen og startbetingelsen.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,Function,Eq,diff,dsolve,exp,Rational,simplifyx=symbols('x',real=True)V=Function('V')ode=Eq(diff(V(x),x),-Rational(70,100)-Rational(1,100)*V(x))solution=dsolve(ode,ics={V(0):60})formula=130*exp(-x/100)-70residual=simplify(diff(formula,x)+Rational(70,100)+Rational(1,100)*formula)print("Differensiallikning =",ode)print("Løsning fra SymPy =",solution)print("Forenklet formel =",formula)print("Kontroll V(0) =",formula.subs(x,0))print("ODE-residual =",residual)print("Grense når x går mot uendelig = -70 (matematisk likevekt)")assertsimplify(solution.rhs-formula)==0assertformula.subs(x,0)==60assertresidual==0
Kjørt utskriftDifferensiallikning = Eq(Derivative(V(x), x), -V(x)/100 - 7/10)
Løsning fra SymPy = Eq(V(x), -70 + 130*exp(-x/100))
Forenklet formel = -70 + 130*exp(-x/100)
Kontroll V(0) = 60
ODE-residual = 0
Grense når x går mot uendelig = -70 (matematisk likevekt)
Fasit: \(V(x)=130e^{-0.01x}-70\).
Vanlig feil: Å få \(+70\) som konstantledd eller å bruke \(e^{+0.01x}\), som ville gitt vekst.
Sensorpunkt: Sensor ser etter korrekt lineær løsning og bruk av startbetingelsen.
Del 2 / Oppgave 4cEvaluering av modell
Oppgave 4c
Oppgave: Hvor mye bensin er det på tanken etter at Sverre har kjørt 40 mil?
Original poengangivelse: Oppgave 4 (8 poeng).
Vis løsning
Hva spør oppgaven om? Vi setter \(x=40\) inn i den bestemte løsningen og avrunder hensiktsmessig.
Bruk løsningen
\(V(x)=130e^{-0.01x}-70\).
Sett inn 40
\[V(40)=130e^{-0.4}-70\]
Beregn eksponentialleddet
\(e^{-0.4}\approx0.670320\).
Multipliser
\(130e^{-0.4}\approx87.1416\).
Trekk fra 70
\(V(40)\approx17.1416\).
Oppgi svar med enhet
Det er omtrent 17,1 liter igjen.
Punktet ved x = 40 viser omtrent 17,14 liter.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Numeric(130*exp(-0.01*40)-70)
Resultat: \(17.1416\)
Tolkning: CAS evaluerer den løste bensinmodellen etter 40 mil.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportexp,NV40=130*exp(-0.4)-70print("V(40) = 130*exp(-0.4)-70")print("Eksakt SymPy-uttrykk =",V40)print("Numerisk verdi =",N(V40,15),"liter")print("Avrundet til én desimal =",round(float(V40),1),"liter")print("Bensin brukt eller lekket =",N(60-V40,15),"liter")print("Kontroll: V(40) er positiv =",V40>0)assertabs(float(V40)-17.1416059846331)<1e-12
Kjørt utskriftV(40) = 130*exp(-0.4)-70
Eksakt SymPy-uttrykk = 17.1416059846331
Numerisk verdi = 17.1416059846331 liter
Avrundet til én desimal = 17.1 liter
Bensin brukt eller lekket = 42.8583940153669 liter
Kontroll: V(40) er positiv = True
Fasit: Omtrent \(17.1\) liter.
Vanlig feil: Å beregne \(130e^{-40}-70\) i stedet for å bruke eksponenten \(-0.01\cdot40=-0.4\).
Sensorpunkt: Sensor ser etter riktig innsetting, numerisk beregning og enhet.
Del 2 / Oppgave 4dNullpunkt og lekkasjetap
Oppgave 4d
Oppgave: Hvor langt kan han maksimalt kjøre før tanken er tom? Hvor mye bensin har da forsvunnet på grunn av lekkasjen?
Original poengangivelse: Oppgave 4 (8 poeng).
Vis løsning
Hva spør oppgaven om? Vi finner nullpunktet til V. Motoren bruker 0,70 liter per mil, så resten av de 60 literne må ha lekket ut.
Sett tankinnholdet lik null
\[130e^{-0.01x}-70=0\]
Isoler eksponentialleddet
\[e^{-0.01x}=\frac7{13}\]
Ta ln
\(-0.01x=\ln(7/13)\).
Løs for x
\[x=100\ln(13/7)\approx61.904\text{ mil}\]
Beregn motorforbruket
\(0.70x\approx43.3327\) liter.
Finn lekkasjen
\[60-0.70x\approx16.6673\text{ liter}\]
Modellen treffer V = 0 ved omtrent 61,9 mil.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
1Solve(130*exp(-0.01x)-70=0,x)
Resultat: \(x=100\ln(13/7)\approx61.904\)
Tolkning: Dette er modellens første positive nullpunkt.
260-0.70*100*ln(13/7)
Resultat: \(16.6673\)
Tolkning: Total startmengde minus motorforbruk gir lekkasjetapet.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportsymbols,exp,log,solve,N,simplify,Rationalx=symbols('x',real=True)formula=130*exp(-x/100)-70x_empty=solve(formula,x)[0]engine_used=Rational(70,100)*x_emptyleaked=60-engine_usedprint("Løsning av V(x)=0 =",x_empty)print("Maksimal kjørelengde =",N(x_empty,15),"mil")print("Motorens forbruk fram til tom tank =",N(engine_used,15),"liter")print("Bensin lekket ut =",N(leaked,15),"liter")print("Kontroll motor + lekkasje =",N(engine_used+leaked,15),"liter")print("Kontroll V(x_empty) =",simplify(formula.subs(x,x_empty)))assertsimplify(formula.subs(x,x_empty))==0assertsimplify(engine_used+leaked-60)==0
Kjørt utskriftLøsning av V(x)=0 = log(2479335110965972533511072884734865136238774467874941149812189099406158699837975560158285662939982180192171594001/3234476509624757991344647769100216810857203198904625400933895331391691459636928060001)
Maksimal kjørelengde = 61.9039208406223 mil
Motorens forbruk fram til tom tank = 43.3327445884356 liter
Bensin lekket ut = 16.6672554115644 liter
Kontroll motor + lekkasje = 60.0000000000000 liter
Kontroll V(x_empty) = 0
Fasit: Maksimal kjørelengde er omtrent \(61.9\) mil, og omtrent \(16.7\) liter har lekket ut.
Vanlig feil: Å si at lekkasjen er \(60-0.70\cdot40\), eller å tolke all tapt bensin som motorforbruk.
Sensorpunkt: Sensor ser etter nullpunktet, motorens samlede forbruk og en korrekt differanseberegning.
Del 2 / Oppgave 4eStykkevis modell med påfylling
Oppgave 4e
Oppgave: Sverre fyller 30 liter, kjører 20 mil, fyller opp igjen til 30 liter og kjører 20 mil til. Hvor mye bensin bruker han totalt?
Original poengangivelse: Oppgave 4 (8 poeng).
Vis løsning
Hva spør oppgaven om? Hver 20-mils etappe starter med 30 liter og følger samme differensiallikning. Derfor er bensintapet likt på de to etappene.
Finn løsningen med startverdi 30
Generell form er \(V=Ce^{-0.01x}-70\). Fra \(V(0)=30\) får vi \(C=100\).
Skriv etappefunksjonen
\[V_{30}(x)=100e^{-0.01x}-70\]
Beregn etter 20 mil
\[V_{30}(20)=100e^{-0.2}-70\approx11.8731\]
Finn forbruk per etappe
\(30-11.8731\approx18.1269\) liter.
Dobbel for to like etapper
\[2\cdot18.1269\approx36.2538\]
Oppgi totalen
Han bruker omtrent 36,3 liter. Av dette går 28 liter til motoren og omtrent 8,25 liter til lekkasje.
Etter 20 mil fylles tanken fra omtrent 11,87 liter opp til 30 liter før etappe to.
Digital kontroll i GeoGebra/CAS
GeoGebra / CAS
12*(30-(100*exp(-0.01*20)-70))
Resultat: \(36.2538\)
Tolkning: Begge etappene har samme startmengde og varighet, så tapet dobles.
Digital kontroll i Python (SymPy)
Python 3.12 / SymPy - faktisk kjørt
fromsympyimportexp,N,Rational,simplifyremaining_after_20=100*exp(-Rational(1,5))-70used_per_leg=30-remaining_after_20total_used=2*used_per_legengine_used=Rational(70,100)*40leaked=total_used-engine_usedrefill_amount=30-remaining_after_20print("Bensin etter første 20-mils etappe =",N(remaining_after_20,15),"liter")print("Påfylling opp til 30 liter =",N(refill_amount,15),"liter")print("Bensin brukt per etappe =",N(used_per_leg,15),"liter")print("Totalt bensin brukt på 40 mil =",N(total_used,15),"liter")print("Motorforbruk på 40 mil =",N(engine_used,15),"liter")print("Lekkasjetap på de to etappene =",N(leaked,15),"liter")print("Kontroll motor + lekkasje =",N(engine_used+leaked,15),"liter")assertabs(float(total_used)-36.2538493844036)<1e-12assertsimplify(engine_used+leaked-total_used)==0
Kjørt utskriftBensin etter første 20-mils etappe = 11.8730753077982 liter
Påfylling opp til 30 liter = 18.1269246922018 liter
Bensin brukt per etappe = 18.1269246922018 liter
Totalt bensin brukt på 40 mil = 36.2538493844036 liter
Motorforbruk på 40 mil = 28.0000000000000 liter
Lekkasjetap på de to etappene = 8.25384938440363 liter
Kontroll motor + lekkasje = 36.2538493844036 liter
Fasit: Omtrent \(36.3\) liter totalt.
Vanlig feil: Å fortsette den første 60-litersmodellen etter påfyllingen, eller å glemme at andre etappe starter på nytt med 30 liter.
Sensorpunkt: Sensor ser etter ny startverdi, to like etapper og korrekt totalforbruk.
ifingo-lærerenHjelper deg å forstå
ifingo-læreren hjelper deg å forstå – ikke å gjøre leksene for deg 💜