Hopp til innhold

Oppgaver og aktiviteter

Logistisk vekst

Øv på å løse oppgaver med logistisk vekst.

FM-20

a) Gjennomfør den logistiske regresjonen i eksempelet om ørretbestand på teorisiden "Logistisk vekst".

b) Når vokser ørretbestanden mest, og hvor stor er veksten da?

Løsning

Vi kopierer funksjonen fra regresjonsanalyseverktøyet til grafikkfeltet. Så bruker vi CAS til å analysere funksjonen. Her må vi finne det punktet der grafen er brattest. Det vil være i vendepunktet til grafen til g.

CAS-utregning med GeoGebra. På linje 1 er det skrevet g dobbeltderivert av x er lik 0. Svaret med Løs er x er lik et stort, eksakt uttrykk som vi forenkler på neste linje. På linje 2 er det skrevet dollartegn 1. Svaret med tilnærming er x er lik 4,84. På linje 3 er det skrevet g dobbeltderivert av x større enn 0. Svaret med Løs er x mindre enn et stort, eksakt uttrykk som vi forenkler på neste linje. På linje 4 er det skrevet dollartegn 3. Svaret med tilnærming er x mindre enn 4,84. På linje 5 er det skrevet g derivert av 4,84. Svaret med tilnærming er 2,74. Skjermutklipp.

I linje 3 og 4 kontrollerer vi at nullpunktet til den dobbeltderiverte faktisk er et vendepunkt ved å sjekke om fortegnet skifter ved nullpunktet, noe det gjør. Ørretbestanden vokste raskest nesten 5 år etter at kalkingen startet, og da vokste bestanden med 2 740 ørreter per år.

I oppgave FM-23 viser vi at vi alltid har ett vendepunkt for en logistisk funksjon, og at funksjonen er brattest der, så vi trenger ikke å sjekke dette flere ganger.

FM-21

Løvetann i blomst til venstre og avblomstret løvetann til høyre. Foto.

I 1970 dukket det for første gang opp løvetann på Fureøya. I noen år framover ble antallet løvetannplanter kartlagt. Resultatet vises i tabellen nedenfor.

Antall løvetannplanter

År

1970

1971

1971

1973

1974

1975

1976

1977

1978

1979

1980

Antall løvetann-planter

3

15

80

201

300

501

731

915

1 131

1 350

1 490

a) Finn den logistiske modellen nx som passer best til utviklingen av antall løvetannplanter der x står for antall år etter 1970.

Løsning

Når x betyr antall år etter 1970, får vi at x=0 betyr året 1970, x=1 betyr 1971 og så videre. Vi legger derfor tallene fra og med 0 til og med 10 i én kolonne i regnearket i GeoGebra og antall løvetannplanter i neste kolonne. Så velger vi "Regresjonsanalyse" og regresjonsmodellen logistisk.

Til venstre i figuren er tallene 0 til 10 lagt i én kolonne, og tallene fra tabellen i oppgaven er lagt inn i nabokolonnen i regnearkdelen av programmet GeoGebra. Til høyre vises regresjonsverktøyet med et koordinatsystem med punkter tegnet ut ifra tallene i regnearkdelen. Regresjonsmodellen "Logistisk" er valgt, og modellen er y er lik 1675,39 delt på parentes 1 pluss 46,3 e opphøyd i minus 0,58 x parentes slutt. Skjermutklipp.
Åpne bilde i et nytt vindu

Bildet viser at en logistisk modell passer bra med tallene. Den modellen som passer best, er

nx=1675,391+46,3 e-0,58x

b) Hvor mange løvetannplanter blir det på lang sikt etter denne modellen?

Løsning

Når x, vil e-0,58x0 og nevneren gå mot 1. Funksjonen går derfor mot tallet i telleren.

Antall løvetannplanter på lang sikt, eller det vi kaller bæreevnen, vil derfor være 1 675 etter modellen.

c) Når vokste antallet løvetannplanter raskest, og hvor raskt vokste det da?

Løsning

Vi kopierer funksjonen fra regresjonsanalyseverktøyet til grafikkfeltet. Så bruker vi CAS til å analysere funksjonen.

CAS-utregning med GeoGebra. På linje 1 er det skrevet Løs parentes n dobbeltderivert av x er lik 0 parentes slutt. Svaret er x er lik et stort, eksakt uttrykk som vi forenkler på neste linje. På linje 2 er det skrevet dollartegn 1. Svaret med tilnærming er x er lik 6,59. På linje 3 er det skrevet n derivert av 6,59. Svaret med tilnærming er 243,91. Skjermutklipp.

Etter modellen økte antallet løvetannplanter mest i det sjette året etter 1970, det vil si i 1976. Da økte antallet løvetannplanter med 244 planter per år.

d) Bruk regresjon i Python til å lage en modell som passer best mulig med tallene i tabellen. Tegn funksjonen.

Løsning

Forslag til kode:

python

1        # importerer nødvendige bibliotek
2from scipy.optimize import curve_fit
3import numpy as np
4import matplotlib.pyplot as plt
5
6        # lager funksjonen som beskriver modellen
7def modell(x,B,a,k):
8  return B/(1+a*np.e**(-k*x))
9  
10        # legger inn måledataene i lister
11x_verdier = [0,1,2,3,4,5,6,7,8,9,10]
12y_verdier = [3,15,80,201,300,501,731,915,1131,1350,1490]
13
14        # bruker metoden curve_fit og legger resultatene i to lister
15konstanter,kovarians = curve_fit(modell,x_verdier,y_verdier, p0 = [max(y_verdier),1,1])
16        # henter ut konstantene fra lista konstanter
17B, a, k = konstanter
18
19        # lager utskrift av funksjonen
20print(f"Funksjonen blir n(x) = {B:.0f}/(1+{a:.2f}e^(-{k:.2f}x)).")
21
22        # plotter data
23plt.plot(x_verdier,y_verdier,'.', label = "Målinger")
24 
25        # plotter modell
26x_array = np.linspace(min(x_verdier),max(x_verdier),300)
27y_array = modell(x_array,B,a,k)
28plt.plot(x_array,y_array,"brown", label = "Modell")
29plt.grid(True)
30plt.legend(bbox_to_anchor=(0.6,1))
31plt.xlabel("$x$, antall år etter 1970") # tittel på x-aksen
32plt.ylabel("$y$, antall løvetannplanter")
33plt.show()

Koden gir følgende utskrift:

"Funksjonen blir n(x) = 1675/(1+46.30e^(-0.58x))."

Grafen til en logistisk funksjon kalt Modell er tegnet for x-verdier mellom 0 og 10. Grafen passer godt med punktene kalt Målinger som er utgangspunktet for funksjonen. Illustrasjon.

Kommentar til koden: I linje 12 har vi lagt til p0 = [max(y_verdier),1,1] i kommandoen curve_fit. Hvis vi ikke gjør det, feiler regresjonen. Tallene max(y_verdier), 1 og 1 er startverdier for de tre variablene B, a og k, som programmet bruker i de numeriske beregningene for å komme fram til de endelige verdiene for de tre variablene. Jo riktigere startverdiene er, jo større er sjansen for at de numeriske beregningene blir vellykket.

max(y_verdier) er et godt valg for startverdien til B fordi den plukker ut den største y-verdien i målingene, og vi vet at i en logistisk modell er B den øvre grenseverdien for funksjonen. For de to andre parametrene a og k setter vi bare startverdien lik 1, som er den automatiske startverdien for parametre ved bruk av curve_fit.

FM-22

Antall hjort har økt kraftig i et område. Tabellen viser antall hjort for enkelte år i perioden 1973–2003.

Antall hjort

Årstall

1973

1976

1979

1983

1988

1993

1998

2003

Antall hjort, N

500

840

1 350

2 250

3 500

4 300

4 700

4 900

a) Finn en logistisk funksjon Nt som passer med tallene i tabellen. La t stå for antall år etter 1973.

Løsning

Vi skriver inn tallene i tabellen inn i regnearkdelen i GeoGebra og regner ut verdiene for t. Så velger vi verktøyet "Regresjonsanalyse" og regresjonsmodellen "Logistisk".

I den venstre delen er tallene fra oppgaven lagt inn i regnearkdelen i GeoGebra. Den høyre delen viser regresjonsanalyseverktøyet med punktene fra regnearket og grafen til funksjonen y er lik 4987,6584 delt på parentes 1 pluss 9,1016 multiplisert med e opphøyd i minus 0,2027 x parentes slutt. Det er valgt logistisk regresjonsmodell. Skjermutklipp.

Vi ser at grafen som kommer opp, passer godt til punktene. Den logistiske funksjonen som passer best med tallene i tabellen, er

Nt=4 9881+9,10 e-0,203t

b) Tegn grafen til den logistiske funksjonen du fant i a), og punktene den er basert på, i det samme koordinatsystemet.

Løsning

Vi kopierer grafen (inkludert punktene) fra regresjonsverktøyet over i grafikkfeltet.

Grafen til funksjonen N av t er lik 4988 delt på parentes 1 pluss 9,1 multiplisert med e opphøyd i minus 0,20 x parentes slutt er tegnet for x-verdier mellom 0 og 35. Grafen flater ut når x blir stor. Punktene som funksjonen er dannet av, er markert. Illustrasjon.

c) Hva er bæreevnen til hjortebestanden i dette området?

Løsning

Her må vi basere oss på modellen. Når t, vil e-0,203t0, nevneren i funksjonen, gå mot 1, og antallet hjort vil gå mot tallet i telleren. Det er dette vi kaller bæreevnen for hjortebestanden.

Bæreevnen er 4 988 hjort etter modellen, noe vi runder av til 5 000.

d) Når vokste hjortebestanden raskest, og hvor raskt vokste den da?

Løsning

Vi må finne vendepunktet til funksjonen, og vi bruker CAS.

CAS-utregning med GeoGebra. På linje 1 er det skrevet N dobbeltderivert av t er lik 0. Svaret med "Løs" er et stort, eksakt svar som vi forenkler på neste linje. På linje 2 er det skrevet dollartegn 1. Svaret med tilnærming er 10,89. På linje 3 er det skrevet N dobbeltderivert av t er større enn 0. Svaret med "Løs" er et stort, eksakt svar som vi forenkler på neste linje. Skjermutklipp.

Hjortebestanden vokste mest omtrent 11 år etter 1973, det vil si i 1984, og da vokste bestanden med 253 dyr per år.

e) Hvor mange hjort var det da hjortebestanden vokste raskest i forhold til bæreevnen?

Løsning
CAS-utregning med GeoGebra. På linje 6 er det skrevet N av 10,89 delt på 4988. Svaret med tilnærming er 0,5. Skjermutklipp.

Vi får at hjortebestanden var på halvparten av bæreevnen da den vokste raskest.

Vil det være slik for alle logistiske modeller, tror du?

FM-23

Vi skal se litt mer på den generelle logistiske funksjonen

fx=B1+a·e-kx

Ved å analysere den kan vi få et godt bilde på hvordan en logistisk modell fungerer. Vi forutsetter at konstantene a, k og B alle er større enn null slik de er når det er snakk om vekst i en bestand.

a) Bruk CAS og finn ut for hvilken x-verdi funksjonen vokser raskest. Hvor stor er veksten da?

Løsning
CAS-utregning med GeoGebra. På linje 1 er det skrevet f av x kolon er lik B delt på parentes parentes a multiplisert med e opphøyd i minus k x parentes slutt pluss 1 parentes slutt. Svaret er det samme. På linje 2 er det skrevet f dobbeltderivert av x er lik 0. Svaret med "Løs" er x er lik l n parentes a parentes slutt delt på k. På linje 3 er det skrevet f trippelderivert av parentes l n parentes a parentes slutt delt på k parentes slutt. Svaret er minus 1 åttendedels B multiplisert med k i tredje. På linje 4 er det skrevet f derivert av parentes l n parentes a parentes slutt delt på k parentes slutt. Svaret er 1 fjerdedels B k. Skjermutklipp.

Vi får at grafen til f vokser mest når x=lnak, og da vokser den med 14Bk per enhet på x-aksen. Det betyr at for alle logistiske modeller kan vi finne når veksten er størst, og hvor stor den er, ved å bruke resultatene i linje 2 og linje 4.

For å sjekke at nullpunktet til den dobbeltderiverte faktisk er et vendepunkt, kan vi ikke løse ulikheten f''x>0 slik vi vanligvis ville ha gjort fordi GeoGebra ikke vet at konstantene a, k og B er positive slik forutsetningen er. Det vi kan gjøre, er å bruke den trippelderiverte funksjonen. Et vendepunkt er et ekstremalpunkt for den deriverte. Da kan vi bruke dobbeltderiverttesten på den deriverte (altså den trippelderiverte til f) for å sjekke om det er et toppunkt eller et bunnpunkt for den deriverte. Vi ser av linje 3 at den trippelderiverte er negativ, som betyr at grafen til den deriverte vender den hule siden ned. Dette viser at den deriverte har et toppunkt der, og vi har vist at veksten er størst der.

b) Hvis fx er antallet individer i en bestand, hvor mange individer er det når bestanden vokser raskest?

Løsning
CAS-utregning med GeoGebra. På linje 5 er det skrevet f av parentes l n parentes a parentes slutt delt på k parentes slutt. Svaret er en halv B. Skjermutklipp.

Siden B er den verdien funksjonen går mot når x, det vi kaller bæreevnen, er antallet individer når funksjonen vokser raskest, lik halve bæreevnen.

c) Er det mulig å løse oppgave a) og b) ved regning for hånd? Gjør et forsøk!

Løsning

Vi starter med å derivere funksjonen to ganger.

fx = B1+a·e-kxf'x = 1+a·e-kx·0-B·a·-ke-kx1+a·e-kx2= akBe-kx1+a·e-kx2f''x = 1+a·e-kx2·akB·-ke-kx-akBe-kx·21+a·e-kx·a-ke-kx1+a·e-kx4= -ak2Be-kx1+a·e-kx2+2a2k2Be-kx1+a·e-kxe-kx1+a·e-kx4=ak2Be-kx1+a·e-kx-1+a·e-kx+2ae-kx1+a·e-kx4 3= ak2Be-kxae-kx-11+a·e-kx3

Kommentar: I tredje linje i utregningen av f'' har vi satt uttrykket ak2Be-kx1+a·e-kx utenfor parentes.

Når funksjonen er mål på en bestand, er konstantene a, k og B positive. Det betyr for eksempel at nevneren i den dobbeltderiverte alltid er positiv.

Så må vi finne nullpunktene til den dobbeltderiverte.

f''x = 0ak2Be-kxae-kx-11+a·e-kx3 = 0ak2Be-kxae-kx-1 = 0ae-kx-1 = 0ae-kx = 1lne-kx = ln1a=lna-1=-lna-kx = -lnax = lnak

I løsningen har vi enkelt kvittet oss med nevneren og uttrykket foran parentesen i telleren siden begge disse ikke kan være null. Vi må nå sjekke at løsningen faktisk er x-koordinaten til et vendepunkt. Det er slitsomt å skulle derivere én gang til for hånd slik vi gjorde enkelt med CAS. Vi prøver å løse ulikheten f''0>0 slik vi vanligvis gjør i stedet.

f''x > 0ak2Be-kxae-kx-11+a·e-kx3 > 0ak2Be-kxae-kx-1 > 0ae-kx-1 > 0ae-kx > 1lne-kx > ln1a=lna-1=-lna-kx > -lnax < lnak

Kommentar til løsningen: Siden de tre konstantene a, k og B alle er større enn null, vet vi at vi kan dele med dem uten å måtte snu ulikhetstegnet i overgangen mellom tredje og fjerde linje.

Vi får altså at grafen vender sin hule side opp på venstresiden av nullpunktet og motsatt på høyre side, som vi forventet. Da vet vi at løsningen er x-koordinaten til et vendepunkt, og videre at grafen vil stige raskest her.

Til slutt må vi regne ut f'lnak og flnak.

f'lnak = akBe-klnak1+ae-klnak2=akBelna-11+aelna-12= akBa-11+aa-12=kB1+12= kB4

flnak = B1+ae-klnak= B1+aa-1= B2

FM-24

Utforsk den generelle logistiske funksjonen

fx=B1+a·e-kx

med GeoGebra ved å lage glidere for konstantene a, k og B. Hvordan påvirkes grafen til f når du endrer på konstantene?

CC BY-SASkrevet av Stein Aanensen, Olav Kristensen og Bjarne Skurdal.
Sist faglig oppdatert 10.12.2023

Læringsressurser

Matematiske modeller