Hopp til innhold
Verktøy og mal

Numeriske tabeller med linspace()

Vi kan generere tabeller med tall med funksjonen linspace().

Eksempel på bruk

Funksjonen linspace() lager en tabell med tall med innbyrdes lik avstand. Nedenfor kan du kjøre et kort program der vi har brukt linspace() til å lage en tabell med hele tall fra og med –2 til og med 6. (NB: Det kan ta litt tid fra du trykker på avspillingsknappen til programmet blir kjørt.)

linspace() er en funksjon som ikke finnes i standard Python. Funksjonen er en del av tilleggsmodulen med navnet numpy, som er et bibliotek med matematiske funksjoner og kommandoer som vi kan importere og bruke når vi skriver pythonkode. Vi importerer modulen numpy i linje 1 i programmet ved å skrive import numpy.

I linje 2 oppretter vi variabelen x og setter den lik resultatet av funksjonen linspace() med de tre argumentene -2, 6 og 9. Legg merke til at vi må skrive "numpy." foran funksjonsnavnet for å fortelle at funksjonen ligger i modulen med navnet numpy. Som utskriften fra programmet viser, blir variabelen x en tabell med totalt 9 tallverdier fra og med -2 til og med 6.

Spørsmål – kode

Hva betyr de tre tallene -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 tabellen. Tallet 9 står for hvor mange tall vi skal ha i tabellen.

Oppgave – algoritme

Skriv algoritmen til programmet.

Løsningsforslag

Algoritmen til programmet kan se slik ut:

  • Lag ei tabell med de hele tallene fra og med -2 til og med 6, og kall tabellen x.
  • Skriv ut tabellen til skjermen.

Importen av funksjonen numpy er strengt tatt ikke en del av algoritmen, men heller en tilrettelegging.

Utforsking – kode

1) Bytt ut det tredje tallet i argumentet til linspace() (altså tallet 9) med 5. Kjør programmet, og prøv å forklare resultatet.

Forklaring

Utskriften fra programmet blir tallene -2, 0, 2, 4 og 6. Vi har nå bedt linspace() om å lage bare 5 tall i intervallet fra og med -2 til og med 6. Det har vi fått. Legg merke til at hvert tall har samme innbyrdes avstand til nabotallene, og denne avstanden er 2 fordi bredden av intervallet, som er 8, skal deles i 4 like deler. I den første varianten av programmet var denne avstanden lik 1 siden intervallet skulle deles i 8 deler 9-1.

2) Hva skal argumentene i funksjonen linspace() være dersom vi ønsker en tabell med verdiene -2, -1.5, -1, ... , 5.5, 6?

Løsning

Vi skal altså ha avstanden 0,5 mellom hvert tall, så vi må finne ut hvor mange tall det blir i tabellen. Mellom hvert av de 9 hele tallene kommer det nå ett tall med desimalen ,5, og vi får totalt 17 tall. Kommandoen vi skriver blir

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

3) Hvorfor kan vi ikke bruke linspace() til å lage en tabell der vi skal ha x-verdiene 0, 2, 3, 5 og 6?

Forklaring

Funksjonen linspace() lager bare tabeller med tall med innbyrdes lik avstand fra ett tall til nabotallet. I x-verdiene her varierer avstanden. For eksempel er forskjellen mellom 0 og 2 lik 2 mens forskjellen mellom 2 og 3 er 1.

For å lage denne tabellen, må vi rett og slett skrive opp alle tallene. Da får vi det vi kaller en liste:

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

4) Hva skal argumentet til funksjonen linspace() være dersom du ønsker å lage en tabell som inneholder tallene 2, 3, 4, ... , 13?

Svar

Tabellen skal gå fra og med 2 til og med 13. Det blir til sammen 12 tall. Da må vi skrive

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

5) Hva blir det andre tallet og det nest siste tallet i tabellen som vi lager med kommandoen under?

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

Løsning

Siden tabellen har 51 tall, blir intervallet fra -2 til 3 delt i 50 like deler. Da blir forskjellen på to nabotall lik

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

Det andre tallet blir derfor

-2+0,1=-1,9

Det nest siste tallet (tall nummer 50) blir

3-0,1=2,9

6) Skriv en kort forklaring på hva funksjonen linspace() gjør.

Løsningsforslag

Funksjonen linspace() lager en tabell med en rekke med tall med innbyrdes lik avstand fra og med ei nedre grense til og med ei øvre grense. Vi kan bestemme hvor mange tall det skal være i tabellen, og linspace() fordeler tallene jevnt utover tallintervallet.

Pythonkode å lære seg

Vis innhold

Tilleggsmoduler

Eksempel:

import numpy

Kommandoen importerer modulen med navnet numpy.

Når vi bruker funksjoner fra andre moduler, må vi skrive modulnavnet og et punktum før selve funksjonsnavnet.

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

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

Kommandoen oppretter variabelen x som blir satt lik resultatet av funksjonen linspace(0, 4, 5). Resultatet er en tabell med 5 tall jevnt fordelt fra og med 0 til og med 4. Dette betyr at x er en (numerisk) tabell og inneholder tallene 0, 1, 2, 3 og 4.

I Python er det lov å gjøre matematiske operasjoner på hele tabeller lagd med funksjonen linspace() dersom operasjonen gir mening.