Hopp til innhold
Oppgave

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.

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

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.

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.

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))."

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".

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.

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.

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

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

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

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?