Numeriske tabellar med linspace() - Matematikk 2P - NDLA

Hopp til innhald
Verktøy og mal

Numeriske tabellar med linspace()

Vi kan generere tabellar med tal med funksjonen linspace().

Eksempel på bruk

Funksjonen linspace() lagar ein tabell med tal med innbyrdes lik avstand. Nedanfor kan du køyre eit kort program der vi har brukt linspace() til å lage ein tabell med heile tal frå og med –2 til og med 6. (NB: Det kan ta litt tid frå du trykkjer på avspelingsknappen til programmet blir køyrt.)

linspace() er ein funksjon som ikkje finst i standard Python. Funksjonen er ein del av tilleggsmodulen med namnet numpy, som er eit bibliotek med matematiske funksjonar og kommandoar som vi kan importere og bruke når vi skriv pythonkode. Vi importerer modulen numpy i linje 1 i programmet ved å skrive import numpy.

I linje 2 opprettar vi variabelen x og set han lik resultatet av funksjonen linspace() med dei tre argumenta -2, 6 og 9. Legg merke til at vi må skrive "numpy." framfor funksjonsnamnet for å fortelje at funksjonen ligg i modulen med namnet numpy. Som utskrifta frå programmet viser, blir variabelen x ein tabell med totalt 9 talverdiar frå og med -2 til og med 6.

Spørsmål – kode

Kva betyr dei tre tala -2, 6 og 9 i argumentet til funksjonen?

Svar

-2 er første (og minste) verdi, og 6 er siste (og største) verdi i lista. Talet 9 står for kor mange tal vi skal ha i lista.

Oppgåve – algoritme

Skriv algoritmen til programmet.

Løysingsforslag

Algoritmen til programmet kan sjå slik ut:

  • Lag ein tabell med dei heile tala frå og med -2 til og med 6, og kall tabellen x.
  • Skriv ut lista til skjermen.

Importen av funksjonen numpy er strengt tatt ikkje ein del av algoritmen, men heller ei tilrettelegging.

Utforsking – kode

1) Byt ut det tredje talet i argumentet til linspace() (altså talet 9) med 5. Køyr programmet, og prøv å forklare resultatet.

Forklaring

Utskrifta frå programmet blir tala -2, 0, 2, 4 og 6. Vi har no bedd linspace() om å lage berre 5 tal i intervallet frå og med -2 til og med 6. Det har vi fått. Legg merke til at kvart tal har same innbyrdes avstand til nabotala, og denne avstanden er 2 fordi breidda av intervallet, som er 8, skal delast i 4 like delar. I den første varianten av programmet var denne avstanden lik 1 sidan intervallet skulle delast i 8 delar 9-1.

2) Kva skal argumenta i funksjonen linspace() vere dersom vi ønskjer ein tabell med verdiane -2, -1.5, -1, ... , 5.5, 6?

Løysing

Vi skal altså ha avstanden 0,5 mellom kvart tal, så vi må finne ut kor mange tal det blir i tabellen. Mellom kvart av dei 9 heile tala kjem det no eitt tal med desimalen ,5, og vi får totalt 17 tal. Kommandoen vi skriv blir

x = numpy.linspace(-2, 6, 17)

3) Kvifor kan vi ikkje bruke linspace() til å lage ein tabell der vi skal ha x-verdiane 0, 2, 3, 5 og 6?

Forklaring

Funksjonen linspace() lagar berre tabellar med tal med innbyrdes lik avstand frå eitt tal til nabotalet. I x-verdiane her varierer avstanden. Til dømes er skilnaden mellom 0 og 2 lik 2 mens skilnaden mellom 2 og 3 er 1.

For å lage denne tabellen, må vi rett og slett skrive opp alle tala, og da lagar vi det vi kallar ei liste:

x = [0, 2, 3, 5, 6]

4) Kva skal argumentet til funksjonen linspace() vere dersom du ønskjer å lage ein tabell som inneheld tala 2, 3, 4, ... , 13?

Svar

Tabellen skal gå frå og med 2 til og med 13. Det blir til saman 12 tal. Då må vi skrive

x = numpy.linspace(2, 13, 12)

5) Kva blir det andre talet og det nest siste talet i tabellen som vi lagar med kommandoen under?

x = numpy.linspace(-2, 3, 51)

Løysing

Sidan tabellen har 51 tal, blir intervallet frå -2 til 3 delt i 50 like delar. Då blir skilnaden på to nabotal lik

3--250=550=110=0,1

Det andre talet blir derfor

-2+0,1=-1,9

Det nest siste talet (tal nummer 50) blir

3-0,1=2,9

6) Skriv ei kort forklaring på kva funksjonen linspace() gjer.

Løysingsforslag

Funksjonen linspace() lagar ein tabell med ei rekkje med tal med innbyrdes lik avstand frå og med ei nedre grense til og med ei øvre grense. Vi kan bestemme kor mange tal det skal vere i tabellen, og linspace() fordeler tala jamt utover talintervallet.

Pythonkode å lære seg

Vis innhald

Tilleggsmodular

Eksempel:

import numpy

Kommandoen importerer modulen med namnet numpy.

Når vi bruker funksjonar frå andre modular, må vi skrive modulnamnet og eit punktum før sjølve funksjonsnamnet.

Eksempel på bruk av funksjonen linspace() frå modulen numpy:

x = numpy.linspace(0, 4, 5)

Kommandoen opprettar variabelen x som blir sett lik resultatet av funksjonen linspace(0, 4, 5). Resultatet er ein tabell med 5 tal jamt fordelt frå og med 0 til og med 4. Dette betyr at x er ein (numerisk) tabell og inneheld tala 0, 1, 2, 3 og 4.

I Python er det lov å gjere matematiske operasjonar på heile tabellar laga med funksjonen linspace() dersom operasjonen gir meining.

Skrive av Bjarne Skurdal.
Sist fagleg oppdatert 11.08.2020