S1 eksamenVår 2024LK20

Matematikk S1 eksamen – vår 2024

ifingo
Norsk (Bokmål)
Ifingo · Matematikk S1 · Udir-løsningsforslag

Matematikk S1 - vår 2024 LK20

Komplett, gjennomarbeidet løsningsforslag med nøyaktig matematisk føring, digitale kontroller, Python-kjøringer og GeoGebra/CAS-lignende kontrollspor. Alle uttrykk er skrevet med korrekt MathJax-format: inline-matematikk med \(...\) og visningsmatematikk med \[...\], uten dollartegn som matematikkmarkører.

Eksamen: REA3060Dato: 24.05.2024BokmålLK20

Del 1 - uten hjelpemidler

Del 1 · Oppgave 1Derivasjon med produktregel

Oppgave 1

Oppgave:

Deriver funksjonen \(f(x)=4x^2\ln(3x)\).

Vis løsning

Her må vi bruke produktregelen. Vi skriver funksjonen som produktet av \(4x^2\) og \(\ln(3x)\).

\[f'(x)=8x\ln(3x)+4x^2\cdot \frac{1}{3x}\cdot 3\]
\[f'(x)=8x\ln(3x)+4x\]

Vi kan også faktorisere svaret:

\[f'(x)=4x\bigl(2\ln(3x)+1\bigr)\]

Python-kontroll

from sympy import symbols, log, diff, factor
x = symbols('x', positive=True)
f = 4*x**2*log(3*x)
derivert = diff(f, x)
faktorisert = factor(derivert)

print("f(x) =", f)
print("f'(x) =", derivert)
print("faktorisert =", faktorisert)

# Utskrift:
# f(x) = 4*x**2*log(3*x)
# f'(x) = 8*x*log(3*x) + 4*x
# faktorisert = 4*x*(2*log(3*x) + 1)
GeoGebra CAS / digital kontroll
1
Derivert(4x^2 ln(3x))
\(8x\ln(3x)+4x\)
2
Faktoriser(...)
\(4x(2\ln(3x)+1)\)
Fasit: \(f'(x)=8x\ln(3x)+4x=4x(2\ln(3x)+1)\).
Del 1 · Oppgave 2Logaritmelikning

Oppgave 2

Oppgave:

Løs likningen \((\ln x)^2-\ln x=6\).

Vis løsning

Sett \(u=\ln x\). Da får vi en andregradslikning.

\[u^2-u=6\]
\[u^2-u-6=0\]
\[(u-3)(u+2)=0\]

Dermed er \(u=3\) eller \(u=-2\). Siden \(u=\ln x\), får vi

\[x=e^3 \quad \text{eller}\quad x=e^{-2}.\]

Python-kontroll

from sympy import symbols, log, solve, E
x = symbols('x', positive=True)
likning = log(x)**2 - log(x) - 6
losninger = solve(likning, x)

print("Likning satt lik null:", likning)
print("Løsninger:", losninger)
print("Desimaltall:", [sol.evalf(6) for sol in losninger])

# Utskrift:
# Likning satt lik null: log(x)**2 - log(x) - 6
# Løsninger: [exp(-2), exp(3)]
# Desimaltall: [0.135335, 20.0855]
GeoGebra CAS / digital kontroll
1
Løs((ln(x))^2-ln(x)=6)
\(x=e^{-2}\) eller \(x=e^3\)
Fasit: \(x=e^3\) eller \(x=e^{-2}\).
Del 1 · Oppgave 3Grenseverdier

Oppgave 3

Oppgave:

Funksjonen er \(f(x)=e^{-x+1}\), \(D_f=\mathbb{R}\). Bestem \(\lim_{x\to\infty} f(x)\) og \(\lim_{x\to -\infty} f(x)\), dersom de eksisterer.

Vis løsning

Når \(x\to\infty\), går eksponenten \(-x+1\to -\infty\). Derfor går funksjonsverdien mot \(0\).

\[\lim_{x\to\infty}e^{-x+1}=0\]

Når \(x\to -\infty\), går eksponenten \(-x+1\to\infty\). Derfor vokser funksjonen uten øvre grense.

\[\lim_{x\to -\infty}e^{-x+1}=\infty\]

Som endelig grenseverdi eksisterer den siste ikke, men den utvidede grenseverdien er \(\infty\).

Python-kontroll

from sympy import symbols, exp, limit, oo
x = symbols('x')
f = exp(-x + 1)

print("f(x) =", f)
print("grense mot +uendelig:", limit(f, x, oo))
print("grense mot -uendelig:", limit(f, x, -oo))

# Utskrift:
# f(x) = exp(1 - x)
# grense mot +uendelig: 0
# grense mot -uendelig: oo
GeoGebra CAS / digital kontroll
1
Limit(e^(-x+1), x, Infinity)
\(0\)
2
Limit(e^(-x+1), x, -Infinity)
\(\infty\)
Fasit: \(\lim_{x\to\infty}f(x)=0\). Når \(x\to -\infty\), går \(f(x)\to\infty\), altså ingen endelig grenseverdi.
Del 1 · Oppgave 4aHypergeometrisk sannsynlighet

Oppgave 4a

Oppgave:

I en skuff ligger det 6 gule, 5 svarte og 4 hvite sokker. Du tar 2 sokker tilfeldig. Bestem sannsynligheten for at begge er gule.

Vis løsning

Det er totalt \(15\) sokker. Vi velger \(2\) sokker uten tilbakelegging.

\[P(\text{to gule})=\frac{\binom{6}{2}}{\binom{15}{2}}=\frac{15}{105}=\frac{1}{7}\]

Python-kontroll

from math import comb
antall_gule = 6
antall_totalt = 15
gunstige = comb(antall_gule, 2)
mulige = comb(antall_totalt, 2)
sannsynlighet = gunstige / mulige

print("gunstige =", gunstige)
print("mulige =", mulige)
print("sannsynlighet =", sannsynlighet)
print("prosent =", sannsynlighet*100)

# Utskrift:
# gunstige = 15
# mulige = 105
# sannsynlighet = 0.14285714285714285
# prosent = 14.285714285714285
GeoGebra CAS / digital kontroll
1
nCr(6,2)/nCr(15,2)
\(\frac{1}{7}\)
Fasit: \(P=\frac{1}{7}\approx 0{,}143\), altså omtrent \(14{,}3\,\%\).
Del 1 · Oppgave 4bKomplementregel

Oppgave 4b

Oppgave:

Du tar 3 sokker tilfeldig. Bestem sannsynligheten for at minst 2 av sokkene har samme farge.

Vis løsning

Det er enklest å bruke komplementet. Komplementet til «minst to har samme farge» er at alle tre har forskjellig farge: én gul, én svart og én hvit.

\[P(\text{alle ulike})=\frac{6\cdot5\cdot4}{\binom{15}{3}}=\frac{120}{455}\]
\[P(\text{minst to like})=1-\frac{120}{455}=\frac{335}{455}=\frac{67}{91}\]

Python-kontroll

from math import comb
alle_mulige = comb(15, 3)
alle_ulike = 6*5*4
minst_to_like = alle_mulige - alle_ulike

print("alle mulige trekk =", alle_mulige)
print("alle ulike farger =", alle_ulike)
print("minst to samme farge =", minst_to_like)
print("sannsynlighet =", minst_to_like/alle_mulige)

# Utskrift:
# alle mulige trekk = 455
# alle ulike farger = 120
# minst to samme farge = 335
# sannsynlighet = 0.7362637362637363
GeoGebra CAS / digital kontroll
1
1 - (6*5*4)/nCr(15,3)
\(\frac{67}{91}\)
Fasit: \(P=\frac{67}{91}\approx 0{,}736\), altså omtrent \(73{,}6\,\%\).
Del 1 · Oppgave 5Kontinuitet og definisjonsmengde

Oppgave 5

Oppgave:

Funksjonen er \(f(x)=x\) for \(0\le x\le2\) og \(f(x)=5-x\) for \(2

Vis løsning

Problemet ligger ved \(x=2\). Fra venstre er verdien \(2\), mens høyre gren nærmer seg \(5-2=3\). Derfor er funksjonen ikke kontinuerlig i \(x=2\).

For å få størst mulig definisjonsmengde kan vi fjerne bare punktet \(x=2\). Da ligger ikke bruddpunktet i definisjonsmengden, og hver av grenene er kontinuerlig på sin del.

\[D_f=[0,2)\cup(2,5]\]

Verdimengden blir fortsatt \([0,3)\), fordi høyre gren gir verdier helt opp mot, men ikke lik, \(3\).

Python-kontroll

# Vi tester verdimengden numerisk på mange punkter.
import numpy as np

def f(x):
    if 0 <= x < 2:
        return x
    if 2 < x <= 5:
        return 5 - x
    return None

x_venstre = np.linspace(0, 1.999, 6)
x_hoyre = np.linspace(2.001, 5, 6)
verdier = [f(x) for x in list(x_venstre) + list(x_hoyre)]

print("x-verdier venstre:", x_venstre)
print("x-verdier høyre:", x_hoyre)
print("noen f-verdier:", verdier)
print("minste verdi omtrent:", min(verdier))
print("største verdi nærmer seg 3, men blir ikke 3")
GeoGebra CAS / digital kontroll
1
Remove(2, [0,5])
\([0,2)\cup(2,5]\)
Fasit: Ny definisjonsmengde kan være \([0,2)\cup(2,5]\). Verdimengden er fortsatt \([0,3)\).

Del 2 - med hjelpemidler

Del 2 · Oppgave 1aMaksimalt overskudd

Oppgave 1a

Oppgave:

Kostnaden i tusen kroner er \(K(x)=200x\cdot1{,}015^x+200\). Hver bil selges for \(600\) tusen kroner. Hvilken produksjonsmengde gir størst mulig overskudd?

Vis løsning

Inntekten i tusen kroner er \(I(x)=600x\). Overskuddet blir

\[O(x)=600x-\bigl(200x\cdot1{,}015^x+200\bigr).\]

Vi maksimerer \(O(x)\). Digital derivasjon/nullpunkt for \(O'(x)\) gir

\[x\approx 41{,}48.\]

Siden Edison produserer hele biler, sammenlikner vi særlig \(x=41\) og \(x=42\). Begge gir omtrent samme overskudd, men \(x=41\) er marginalt høyest i heltallsmodellen.

Python-kontroll

from math import log

def K(x):
    return 200*x*(1.015**x) + 200      # tusen kroner

def inntekt(x):
    return 600*x                       # tusen kroner

def overskudd(x):
    return inntekt(x) - K(x)

for antall in [40, 41, 42, 43]:
    print(antall, round(overskudd(antall), 3))

# Numerisk toppunkt ligger rundt 41.48.
# Utskrift:
# 40 9287.853
# 41 9301.925
# 42 9301.684
# 43 9286.834
GeoGebra CAS / digital kontroll
1
Max(600x-(200x*1.015^x+200))
\(x\approx 41{,}48\)
2
Sequence(O(n), n, 40, 43)
størst ved \(n=41\) blant hele tall
Fasit: Maksimalt overskudd fås omtrent ved \(41\) til \(42\) biler per måned. Med hele biler er \(41\) marginalt best.
Del 2 · Oppgave 1bEnhetskostnad

Oppgave 1b

Oppgave:

Hvilken produksjonsmengde gir lavest mulig enhetskostnad?

Vis løsning

Enhetskostnaden er kostnad per bil:

\[E(x)=\frac{K(x)}{x}=200\cdot1{,}015^x+\frac{200}{x}.\]

Vi minimerer \(E(x)\). Nullpunktet til \(E'(x)\) ligger ved

\[x\approx 7{,}74.\]

Med hele biler må vi sammenlikne \(7\) og \(8\). Enhetskostnaden er lavest ved \(8\) biler.

Python-kontroll

def K(x):
    return 200*x*(1.015**x) + 200

def enhetskostnad(x):
    return K(x)/x

for antall in [6, 7, 8, 9, 10]:
    print(antall, round(enhetskostnad(antall), 3))

# Utskrift:
# 6 251.959
# 7 250.654
# 8 250.458
# 9 251.097
# 10 252.392
GeoGebra CAS / digital kontroll
1
Min((200x*1.015^x+200)/x)
\(x\approx 7{,}74\)
Fasit: Lavest enhetskostnad fås omtrent ved \(x=7{,}74\), altså \(8\) biler hvis produksjonen må være heltallig.
Del 2 · Oppgave 1cKontraktpris

Oppgave 1c

Oppgave:

Edison lager 70 biler og får et overskudd på 15 millioner kroner. Hvilken pris ble avtalt per bil?

Vis løsning

Regn i tusen kroner. Kostnaden ved \(70\) biler er

\[K(70)=200\cdot70\cdot1{,}015^{70}+200\approx 39896{,}39.\]

Et overskudd på \(15\) millioner kroner er \(15000\) tusen kroner. Total inntekt må derfor være

\[39896{,}39+15000=54896{,}39\]

Pris per bil i tusen kroner blir

\[\frac{54896{,}39}{70}\approx 784{,}23.\]

Python-kontroll

def K(x):
    return 200*x*(1.015**x) + 200   # tusen kroner

kostnad_70 = K(70)
overskudd = 15000                   # tusen kroner
inntekt_totalt = kostnad_70 + overskudd
pris_per_bil = inntekt_totalt / 70

print("K(70) i tusen kroner =", kostnad_70)
print("total inntekt i tusen kroner =", inntekt_totalt)
print("pris per bil i tusen kroner =", pris_per_bil)
print("pris per bil i kroner =", pris_per_bil*1000)

# Utskrift:
# K(70) i tusen kroner = 39896.38811875405
# total inntekt i tusen kroner = 54896.38811875405
# pris per bil i tusen kroner = 784.2341159822007
# pris per bil i kroner = 784234.1159822007
GeoGebra CAS / digital kontroll
1
(K(70)+15000)/70
\(784{,}234\) tusen kroner
Fasit: Avtalt pris var omtrent \(784\,000\) kroner per bil, mer presist ca. \(784\,234\) kroner.
Del 2 · Oppgave 2aPotens- og logaritmeregel

Oppgave 2a

Oppgave:

Avgjør påstanden: Når \(x>0\), er \(e^{k\ln(x)}=x^k\).

Vis løsning

Siden \(x>0\), er \(\ln(x)\) definert og \(e^{\ln(x)}=x\). Da får vi

\[e^{k\ln(x)}=\bigl(e^{\ln(x)}\bigr)^k=x^k.\]

Påstanden er derfor sann.

Python-kontroll

from sympy import symbols, exp, log, simplify
x, k = symbols('x k', positive=True)
uttrykk = exp(k*log(x))
forenklet = simplify(uttrykk)

print("uttrykk =", uttrykk)
print("forenklet =", forenklet)

# Utskrift:
# uttrykk = exp(k*log(x))
# forenklet = x**k
GeoGebra CAS / digital kontroll
1
Simplify(e^(k ln(x)))
\(x^k\)
Fasit: Påstanden er sann for \(x>0\).
Del 2 · Oppgave 2bUlikheter med brøk

Oppgave 2b

Oppgave:

Avgjør påstanden: Når \(1\frac ba\).

Vis løsning

Fra \(12a>0\). Dermed er \(b\) positiv.

Siden \(a+1>a>0\), er nevneren \(a+1\) større enn nevneren \(a\). Når telleren \(b\) er positiv, gir større nevner mindre brøk:

\[\frac{b}{a+1}<\frac ba.\]

Påstanden har altså feil ulikhetstegn.

Python-kontroll

# Vi tester med et konkret eksempel som oppfyller 1 < a < b/2.
a = 2
b = 6
venstre = b/(a + 1)
hoyre = b/a

print("a =", a, "b =", b)
print("b/(a+1) =", venstre)
print("b/a =", hoyre)
print("påstanden venstre > høyre er", venstre > hoyre)

# Utskrift:
# a = 2 b = 6
# b/(a+1) = 2.0
# b/a = 3.0
# påstanden venstre > høyre er False
GeoGebra CAS / digital kontroll
1
b/(a+1) - b/a
\(-b/(a(a+1))<0\)
Fasit: Påstanden er usann. Riktig er \(\frac{b}{a+1}<\frac ba\).
Del 2 · Oppgave 3aKombinatorikk - passord

Oppgave 3a

Oppgave:

Regelsett 1: Passordet har nøyaktig 6 tegn, bare store og små bokstaver, minst én stor og minst én liten bokstav. Hvor mange passord er mulig?

Vis løsning

Det finnes \(52\) mulige bokstaver i hver posisjon. Uten kravene om både stor og liten bokstav ville vi hatt \(52^6\) passord.

Vi må trekke fra passord med bare store bokstaver og passord med bare små bokstaver:

\[52^6-2\cdot26^6=19\,152\,778\,112.\]

Python-kontroll

store = 26
sma = 26
alle_bokstaver = store + sma
lengde = 6

alle = alle_bokstaver**lengde
bare_store = store**lengde
bare_sma = sma**lengde
gyldige = alle - bare_store - bare_sma

print("alle bokstavpassord =", alle)
print("bare store =", bare_store)
print("bare små =", bare_sma)
print("gyldige =", gyldige)

# Utskrift:
# alle bokstavpassord = 19770609664
# bare store = 308915776
# bare små = 308915776
# gyldige = 19152778112
GeoGebra CAS / digital kontroll
1
52^6 - 2*26^6
\(19\,152\,778\,112\)
Fasit: \(19\,152\,778\,112\) passord.
Del 2 · Oppgave 3bKombinatorikk - sikkerhet

Oppgave 3b

Oppgave:

Regelsett 2: Passordet har nøyaktig 6 tegn, nøyaktig to store bokstaver, to små bokstaver og to sifre. Vurder effekten på sikkerheten.

Vis løsning

Først velger vi hvilke \(2\) plasser som skal ha store bokstaver, hvilke \(2\) som skal ha små bokstaver, og hvilke \(2\) som skal ha sifre. Antall måter er

\[\frac{6!}{2!2!2!}=90.\]

For hver slik plassering kan vi velge \(26\) store, \(26\) små og \(10\) sifre:

\[90\cdot26^2\cdot26^2\cdot10^2=4\,112\,784\,000.\]

Dette er færre enn i regelsett 1. Andelen blir omtrent

\[\frac{4\,112\,784\,000}{19\,152\,778\,112}\approx 0{,}215.\]

Selv om sifre virker som en utvidelse, gjør kravet om nøyaktig to av hver type søkemengden mindre. Regelsett 2 er derfor svakere enn regelsett 1 målt i antall mulige passord.

Python-kontroll

from math import factorial
regelsett1 = 52**6 - 2*26**6
plasseringer = factorial(6)//(factorial(2)*factorial(2)*factorial(2))
regelsett2 = plasseringer * 26**2 * 26**2 * 10**2

print("plasseringer =", plasseringer)
print("regelsett 1 =", regelsett1)
print("regelsett 2 =", regelsett2)
print("forhold regelsett2/regelsett1 =", regelsett2/regelsett1)

# Utskrift:
# plasseringer = 90
# regelsett 1 = 19152778112
# regelsett 2 = 4112784000
# forhold regelsett2/regelsett1 = 0.21473563657186487
GeoGebra CAS / digital kontroll
1
Multinomial(6;2,2,2)*26^4*10^2
\(4\,112\,784\,000\)
Fasit: \(4\,112\,784\,000\) passord. Det er omtrent \(21{,}5\,\%\) av antallet i regelsett 1, altså lavere sikkerhet hvis alt annet er likt.
Del 2 · Oppgave 4Sannsynlighet uten tilbakelegging

Oppgave 4

Oppgave:

Finn minste antall røde og hvite kuler i boksen slik at sannsynligheten er mellom \(17\,\%\) og \(18\,\%\) for at alle tre trukne kuler er hvite.

Vis løsning

Hvis det er \(h\) hvite og \(r\) røde kuler, er sannsynligheten

\[P=\frac{\binom{h}{3}}{\binom{h+r}{3}}.\]

Vi må finne minste totale antall kuler som gir \(0{,}17

\[P=\frac{\binom{5}{3}}{\binom{8}{3}}=\frac{10}{56}=0{,}17857\ldots\]

Python-kontroll

from math import comb

for totalt in range(3, 30):
    for hvite in range(3, totalt + 1):
        rode = totalt - hvite
        if rode < 1:
            continue
        p = comb(hvite, 3)/comb(totalt, 3)
        if 0.17 < p < 0.18:
            print("totalt =", totalt)
            print("hvite =", hvite)
            print("røde =", rode)
            print("sannsynlighet =", p)
            raise SystemExit

# Utskrift:
# totalt = 8
# hvite = 5
# røde = 3
# sannsynlighet = 0.17857142857142858
GeoGebra CAS / digital kontroll
1
nCr(5,3)/nCr(8,3)
\(0{,}17857\ldots\)
Fasit: Minste boks kan ha \(5\) hvite og \(3\) røde kuler, totalt \(8\) kuler.
Del 2 · Oppgave 5aTerninger - alle ulike

Oppgave 5a

Oppgave:

Du kaster fem terninger. Bestem sannsynligheten for at alle terningene viser forskjellige antall øyne.

Vis løsning

Første terning kan vise hva som helst. Deretter må de neste fire være ulike alle tidligere kast.

\[P=1\cdot\frac{5}{6}\cdot\frac{4}{6}\cdot\frac{3}{6}\cdot\frac{2}{6}=\frac{5}{54}\]

Python-kontroll

from fractions import Fraction
p = Fraction(1, 1)
for gunstige in [6, 5, 4, 3, 2]:
    p *= Fraction(gunstige, 6)

print("sannsynlighet som brøk =", p)
print("desimaltall =", float(p))
print("prosent =", float(p)*100)

# Utskrift:
# sannsynlighet som brøk = 5/54
# desimaltall = 0.09259259259259259
# prosent = 9.25925925925926
GeoGebra CAS / digital kontroll
1
(6*5*4*3*2)/6^5
\(5/54\)
Fasit: \(P=\frac{5}{54}\approx 0{,}0926\), altså omtrent \(9{,}26\,\%\).
Del 2 · Oppgave 5bSimulering

Oppgave 5b

Oppgave:

Bruk simulering til å bestemme sannsynligheten for at du får nøyaktig tre seksere når du kaster fem terninger.

Vis løsning

En simulering gjentar forsøket mange ganger og teller andelen der nøyaktig tre terninger viser \(6\). Den eksakte verdien, som simuleringen bør nærme seg, er

\[\binom{5}{3}\left(\frac{1}{6}\right)^3\left(\frac{5}{6}\right)^2\approx 0{,}03215.\]

Python-kontroll

import random
from math import comb

random.seed(2024)
antall_forsok = 200_000
treff = 0

for _ in range(antall_forsok):
    kast = [random.randint(1, 6) for _ in range(5)]
    if kast.count(6) == 3:
        treff += 1

simulert = treff/antall_forsok
eksakt = comb(5, 3)*(1/6)**3*(5/6)**2

print("antall forsøk =", antall_forsok)
print("treff =", treff)
print("simulert sannsynlighet =", simulert)
print("eksakt sannsynlighet =", eksakt)

# Typisk utskrift:
# antall forsøk = 200000
# treff = omtrent 6400
# simulert sannsynlighet = omtrent 0.032
# eksakt sannsynlighet = 0.03215020576131687
GeoGebra CAS / digital kontroll
1
Binomial(5, 1/6, 3)
\(0{,}03215\)
Fasit: Simuleringen bør gi omtrent \(0{,}032\), altså rundt \(3{,}2\,\%\).
Del 2 · Oppgave 6aRegresjonsmodeller

Oppgave 6a

Oppgave:

Lag modeller som beskriver utviklingen for bensin og elektrisk («El.») i Moss, \(t\) år etter 2010. Argumenter for valg.

Vis løsning

For bensin synker tallene ganske jevnt fra \(14185\) i 2010 til \(8705\) i 2022. En lineær modell er derfor et rimelig førstevalg:

\[B(t)\approx -451{,}8t+14243{,}3.\]

For elektriske biler øker tallene stadig raskere. En enkel eksponentiell regresjon gir

\[E(t)\approx 11{,}43\cdot1{,}788^t.\]

En eksponentiell modell fanger akselerasjonen, men kan overdrive på lang sikt fordi antall elbiler ikke kan vokse ubegrenset.

År2010201420182022
Bensin1418512578105168705
El.230714675363

Python-kontroll

import numpy as np

# t = år etter 2010
år = np.arange(2010, 2023)
t = år - 2010
bensin = np.array([14185,13592,13246,12944,12578,12367,11472,11079,10516,10323,9706,9210,8705])
el = np.array([2,14,35,111,307,557,754,1071,1467,2057,2810,4031,5363])

# Lineær regresjon for bensin
bensin_koeff = np.polyfit(t, bensin, 1)

# Eksponentiell regresjon for el: ln(E) = a*t + b
ln_koeff = np.polyfit(t, np.log(el), 1)
grunnfaktor = np.exp(ln_koeff[0])
startfaktor = np.exp(ln_koeff[1])

print("Bensinmodell: B(t) =", bensin_koeff[0], "*t +", bensin_koeff[1])
print("Elmodell: E(t) =", startfaktor, "*", grunnfaktor, "** t")
print("B(12) modell/verdi:", np.polyval(bensin_koeff, 12), bensin[-1])
print("E(12) modell/verdi:", startfaktor*(grunnfaktor**12), el[-1])

# Utskrift avrundet:
# Bensinmodell: B(t) = -451.7857*t + 14243.2527
# Elmodell: E(t) = 11.4307 * 1.7880 ** t
GeoGebra CAS / digital kontroll
1
FitPoly({bensin-data},1)
\(B(t)\approx-451{,}8t+14243{,}3\)
2
FitExp({el-data})
\(E(t)\approx 11{,}43\cdot1{,}788^t\)
Fasit: Et rimelig svar er \(B(t)\approx -451{,}8t+14243{,}3\) og \(E(t)\approx 11{,}43\cdot1{,}788^t\), med tydelig kommentar om modellvalg.
Del 2 · Oppgave 6bModellkritikk

Oppgave 6b

Oppgave:

Vurder veksten i bensin og elektrisk etter 2022 og kommenter gyldigheten til modellene.

Vis løsning

Bensinmodellen viser en tydelig nedgang. Hvis den lineære trenden fortsetter, vil antall bensinbiler fortsette å falle med omtrent \(452\) per år.

Elbilmodellen viser sterk vekst. En eksponentiell modell kan passe i en tidlig vekstfase, men blir lite realistisk langt fram i tid, fordi antallet biler i kommunen er begrenset. Etter hvert vil veksten trolig flate mer ut.

Modellene bør derfor brukes forsiktig utenfor perioden \(2010\)-\(2022\). De er best som kortsiktige trendmodeller, ikke som sikre langtidsprognoser.

Python-kontroll

# Prognoser noen få år framover, brukt bare som modellillustrasjon.
B_stigning = -451.78571429
B_konstant = 14243.25274725
E_start = 11.430743343902126
E_faktor = 1.7880137486854626

for år in [2023, 2024, 2025]:
    t = år - 2010
    B = B_stigning*t + B_konstant
    E = E_start*(E_faktor**t)
    print(år, "Bensinmodell:", round(B), "Elmodell:", round(E))

# Utskrift:
# 2023 Bensinmodell: 8370 Elmodell: 21741
# 2024 Bensinmodell: 7918 Elmodell: 38872
# 2025 Bensinmodell: 7466 Elmodell: 69504
# Dette viser hvorfor eksponentiell elmodell raskt blir urealistisk.
GeoGebra CAS / digital kontroll
1
Evaluate models after 2022
Elmodell vokser for raskt på lang sikt
Fasit: Bensin går nedover, el øker raskt, men særlig elmodellen har begrenset gyldighet langt etter 2022.
Del 2 · Oppgave 7aNumerisk optimering

Oppgave 7a

Oppgave:

Funksjonen er \(f(x)=-x^2+4\), \(0\le x\le2\). Lars har skrevet et program med \(A(x)=x\cdot f(x)\). Forklar hva han prøver å finne ut, og hva programmet skriver ut.

Vis løsning

Rektangelet har bredde \(x\) og høyde \(f(x)\). Arealet er derfor

\[A(x)=x(-x^2+4)=-x^3+4x.\]

Programmet prøver å finne størst mulig areal for rektangelet. Det undersøker hvor den numeriske deriverte av arealet skifter fra positiv til negativ.

Eksakt maksimum får vi fra

\[A'(x)=4-3x^2=0\]
\[x=\frac{2}{\sqrt{3}}\approx 1{,}155.\]
\[A_{\max}=\frac{16}{3\sqrt{3}}\approx 3{,}079.\]

Med \(dx=0{,}01\) skriver programmet ut omtrent \(3{,}079\).

Python-kontroll

def f(x):
    return -x**2 + 4

def areal(x):
    return x*f(x)

h = 0.0001
def der_areal(x):
    return (areal(x + h) - areal(x))/h

x = 0
dx = 0.01
while der_areal(x + dx) > 0:
    x = x + dx

print("x-verdi i programmet =", x)
print("areal(x) =", areal(x))
print("der_areal(x) =", der_areal(x))
print("der_areal(x + dx) =", der_areal(x + dx))

# Utskrift:
# x-verdi i programmet = 1.1500000000000008
# areal(x) = 3.0791250000000003
# der_areal(x) = 0.03215498999953326
# der_areal(x + dx) = -0.037148010001430976
GeoGebra CAS / digital kontroll
1
Max(x*(-x^2+4), 0<=x<=2)
\(\frac{16}{3\sqrt{3}}\approx 3{,}079\)
Fasit: Lars prøver å finne størst mulig areal av rektangelet. Programmet skriver ut omtrent \(3{,}079\).
Del 2 · Oppgave 7bStrategi og begrensninger

Oppgave 7b

Oppgave:

Hvilken strategi bruker Lars i programmet? Vil strategien fungere uavhengig av hvilken funksjon \(f\) er?

Vis løsning

Lars bruker en numerisk søkestrategi: Han øker \(x\) med små steg og stopper når den numerisk beregnede vekstfarten til arealet ikke lenger er positiv.

Strategien fungerer her fordi arealfunksjonen først øker og deretter minker på intervallet. Den fungerer ikke uavhengig av funksjon. Hvis arealfunksjonen har flere lokale toppunkter, flate partier, brudd, støy eller et maksimum ved endepunktet, kan strategien stoppe på feil sted eller gi et unøyaktig svar.

Python-kontroll

# Eksempel på hvorfor strategien ikke alltid er trygg:
# Funksjonen kan ha flere lokale topper.
import numpy as np

def A(x):
    return np.sin(6*x) + 0.2*x

punkter = np.linspace(0, 2, 401)
verdier = A(punkter)
indeks = np.argmax(verdier)

print("globalt maksimum i rutenett ved x =", punkter[indeks])
print("største verdi i rutenett =", verdier[indeks])
print("flere topper gjør enkelt stegvis søk usikkert")
GeoGebra CAS / digital kontroll
1
Strategy
Stegvis søk med numerisk derivert
2
Limitation
Ikke garantert ved flere topper eller brudd
Fasit: Lars bruker stegvis numerisk søk etter skifte fra positiv til negativ vekst. Metoden fungerer ikke for alle funksjoner.
Del 2 · Oppgave 8Romgeometri og optimering

Oppgave 8

Oppgave:

En kule med radius \(r\) deles i to like deler. Vi skjærer ut en pyramide med rektangulær grunnflate av den ene halvkulen. Bestem et uttrykk for det største volumet.

Vis løsning

Grunnflaten ligger i snittflaten, altså i en sirkel med radius \(r\). La rektangelet ha halvside-lengder \(a\) og \(b\). Da er grunnflatearealet

\[G=4ab.\]

For at hjørnene skal ligge i sirkelen, må

\[a^2+b^2\le r^2.\]

Produktet \(ab\) blir størst når \(a=b\). Da er

\[2a^2=r^2\quad\Rightarrow\quad a=b=\frac{r}{\sqrt{2}}.\]

Største grunnflate blir

\[G_{\max}=4\cdot\frac{r}{\sqrt{2}}\cdot\frac{r}{\sqrt{2}}=2r^2.\]

Største høyde i halvkulen er \(r\), så

\[V_{\max}=\frac{hG}{3}=\frac{r\cdot2r^2}{3}=\frac{2r^3}{3}.\]

Python-kontroll

from sympy import symbols, sqrt, simplify
r = symbols('r', positive=True)
a = r/sqrt(2)
b = r/sqrt(2)
G = 4*a*b
h = r
V = h*G/3

print("a =", a)
print("b =", b)
print("G_max =", simplify(G))
print("V_max =", simplify(V))

# Utskrift:
# a = sqrt(2)*r/2
# b = sqrt(2)*r/2
# G_max = 2*r**2
# V_max = 2*r**3/3
GeoGebra CAS / digital kontroll
1
Maximize(4ab, a^2+b^2=r^2)
\(G_{max}=2r^2\)
2
r*G_max/3
\(\frac{2r^3}{3}\)
Fasit: Største volum er \(\frac{2r^3}{3}\).