Numeriske tabeller med 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 og . 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 tallverdier fra og med til og med .
Spørsmål – kode
Hva betyr de tre tallene og i argumentet til funksjonen?
Svar
er første (og minste) verdi, og er siste (og største) verdi i tabellen. Tallet 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 til og med , 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 og . Vi har nå bedt linspace() om å lage bare tall i intervallet fra og med til og med . Det har vi fått. Legg merke til at hvert tall har samme innbyrdes avstand til nabotallene, og denne avstanden er fordi bredden av intervallet, som er , skal deles i like deler. I den første varianten av programmet var denne avstanden lik siden intervallet skulle deles i deler .
2) Hva skal argumentene i funksjonen linspace() være dersom vi ønsker en tabell med verdiene ?
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 -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 -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 til delt i like deler. Da blir forskjellen på to nabotall lik
Det andre tallet blir derfor
Det nest siste tallet (tall nummer 50) blir
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.