Hopp til innhald

Fagstoff

Funksjonar med digitale hjelpemiddel

Her får du repetert og/eller lært korleis du teiknar grafar og løyser oppgåver med digitale hjelpemiddel.

Grafar i GeoGebra

Vi held fram med å bruke dømet vårt med ein joggar som spring 16 000 m på 100 minutt. Vi har då at funksjonsuttrykket er

St=160t,    DS=0,100

Dersom vi vil teikne grafen til S(t) heilt utan avgrensingar, skriv vi berre funksjonsnamnet og ‑uttrykket rett inn i algebrafeltet: S(t)=160t. Sidan funksjonen vår har ei avgrensa definisjonsmengde, bør vi berre teikne grafen for dei aktuelle x-verdiane. Det gjer vi ved å bruke kommandoen "Funksjon(Funksjon, start, slutt)". I tilfellet vårt skriv vi S(t)=Funksjon(160t, 0, 100). Då får funksjonen vår det rette namnet, og han blir teikna for t-verdiar mellom 0 og 100.

For å få eit fint bilete av grafen din i GeoGebra er det nokre viktige ting du må vite:

  • Du må hugse å setje namn på aksane. Dersom grafen beskriv ein konkret situasjon, bør du ha både namnet på variabelen og kva variabelen representer. I tilfellet vårt blir det "t, minutt" og "S(t), meter". Du gjer dette ved å høgreklikke i grafikkfeltet og ved å velje "Grafikkfelt" og så "Namn på aksen:" på dei to aksane.

  • Du kan trekke inn funksjonsuttrykket frå algebrafeltet ved å bruke verktøyet "Flytt"  heilt til venstre på verktøyrada, sjå nedanfor. Ta tak i uttrykket med musepeikaren, og plasser det der du vil ha det.

  • Du kan justere kva som blir vist i biletet ditt, ved å bruke verktøyet "Flytt grafikkfeltet", sjå nedanfor. Pass på at begge aksane blir vist med tal. Ha minst mogleg luft rundt grafen.

  • Du kan ta bilete av grafikkfeltet ved å velje "Fil" og "Eksporter bilete". Her kan du velje å legge biletet i utklippstavla og lime det inn i dokumentet der du jobbar etterpå.

Verktøylinja med dei tilgjengelege verktøyknappane i GeoGebra når grafikkfeltet eller algebrafeltet er aktivt. Lengst til venstre er det ein knapp med musepeikar på og ei blå ramme. Knappen er merkt med Flytt, aktivt verktøy. Lengst til høgre er det ein knapp med eit slags kryss. Denne knappen er merkt med Flytt grafikkfeltet. Illustrasjon.
Grafen til funksjonen S av t er lik 160 t er teikna for t-verdiar mellom 0 og 100. Grafen er ei rett linje som startar i origo. Illustrasjon.

Ver merksam på at det nokon gonger kan vere lurt å byte ut variabelen med x. Dersom vi skal bruke grafikkfeltet til å finne skjeringspunkt, vil ikkje GeoGebra alltid kunne finne skjeringspunkt mellom objekt som har ulike variabelnamn.


Grafar i Python

For å vise korleis vi teiknar grafar i Python, bruker vi ein litt annleis funksjon som døme. Vi tek for oss denne funksjonen:

f(x)=x3+4x2-2,      x-4,2

Grunnleggande grafteikning

For å teikne grafar i Python må vi importere eit ekstra bibliotek for grafteikning som heiter "matplotlib.pyplot". I dette biblioteket finn vi funksjonen "plot()", som teiknar grafen. "plot()" teiknar grafar litt på same måte som vi gjer for hand, ved å ta utgangspunkt i kjende punkt på grafen og så trekke ei linje mellom dei. Det vil seie at vi må gi Python ein verditabell å jobbe med.

Ein verditabell for funksjonen vår kan sjå slik ut:

Verditabell

x

-4

-3

-2

-1

0

1

2

f(x)

-2761-2322

Heldigvis slepp vi å rekne ut denne verditabellen sjølv, det gjer Python for oss. Vi må først lage ein array med dei x-verdiane vi vil bruke, og så rekne ut dei tilsvarande y-verdiane. I Python lagar vi lista over x-verdiar ved hjelp av funksjonen "linspace()", som vi hentar frå biblioteket "numpy".

No er vi klare for første forsøk på å teikne grafen i Python. Kopier koden under til editoren din (eller til den tomme trinketen i boksen nedst på sida) og køyr han.

python

1import matplotlib.pyplot as plt
2import numpy as np
3
4def f(x):
5    return x**3 + 4*x**2 - 2
6
7X = np.linspace(-4,2,7)
8Y = f(X)
9
10plt.plot(X,Y)
11plt.show()
Forklaring til koden

I linje 1 og 2 importerer vi dei to biblioteka vi treng. Det er vanleg å gi dei to biblioteka dei korte kallenamna "plt" og "np", slik at det skal bli lett å kalle på funksjonar derfrå.

I linje 4 og 5 definerer vi funksjonen. Legg merke til at vi må ha gongeteikn mellom 4 og x, og at vi skriv "opphøgd i" med **. Legg òg merke til at vi skriv "np." framfor "linspace". Dette er for å fortelje Python at funksjonen skal hentast frå biblioteket "numpy".

I linje 7 lagar vi ein array (tabell) X med x-verdiar. Argumenta til funksjonen, -4, 2 og 7, fortel Python høvesvis første verdi, siste verdi og tal på verdiar i X.

I linje 8 reknar Python ut funksjonsverdiane til alle dei 7 verdiane i X.

I linje 10 plottar vi funksjonen. Her skriv vi plt. framfor kommandoen "plot()" så Python veit at det er matplotlib.pyplot som har denne funksjonen.

Kommandoen i linje 11 trengst ikkje i alle editorar, men det kan vere greitt å venne seg til å ha han med. Når vi til dømes bruker trinket, vil ikkje grafen skrivast ut dersom vi utelet kodelinja.

🤔 Tenk over: Vi legg merke til at grafen vi får skrive ut, ikkje er så veldig glatt og pen i utskrifta vår. Kva kan vi gjere for at han skal bli finare?

Forklaring

Vi har berre sju punkt på grafen, og det er litt lite for å lage ein graf som ikkje er rett. Vi kan byte ut talet 7 i linje 11 med til dømes 100, så får vi ein finare graf.

Teikning av punkt

Dersom vi ønsker å teikne nokre punkt inn på grafen, har vi i matplotlib.pyplot ein funksjon som heiter "scatter()". Prøv å legge til kodelinja plt.scatter(X,Y) i programmet vårt. Kva skjer då?

Dersom vi ikkje ønsker å teikne inn alle punkta vi har brukt for å teikne grafen, men berre nokre bestemde punkt, må vil legge til nokre linjer for å finne desse punkta. Dersom vi til dømes vil teikne inn punkta -2,f-2 og 0,f0, kan vi prøve desse kodelinjene:

python

1X_1 = np.array([-2,0])
2Y_1 = f(X_1)
3
4plt.scatter(X_1,Y_1)
Forklaring til koden

I linje 1 lagar vi ein array med dei x-verdiane vi ønsker å bruke. Legg merke til at vi har brukt kommandoen np.array(liste). Dette er fordi at Python kan rekne med tal i ein array på fleire måtar enn tal i ei liste. Kommandoen "array()" gjer ei liste om til ein array.

I linje 2 finn vi dei tilhøyrande y-verdiane.

I linje 4 plottar vi dei to punkta.

Namn på aksar og funksjonen

Akkurat som når vi teiknar grafar med GeoGebra, må vi ha namn på aksane våre og sjølve funksjonen. For å få namnet på sjølve funksjonen, set vi inn koden label="namnet på funksjonen" i sjølve plot-kommandoen. For at denne skal visast, må vi òg ha på kommandoen "legend()".

Dersom du vil ha eit rutenett i plottet ditt, bruker du kommandoen "grid()".

Å få på plass aksar med namn er litt meir komplisert. Her tilrår vi at du tek vare på kodelinjene under og bruker dei kvar gong du skal teikne ein funksjon.

python

1plt.plot(X,Y,label = "f(x)")
2plt.legend()
3
4#lagar x- og y-akse
5plt.gca().spines['right'].set_visible(False)
6plt.gca().spines['top'].set_visible(False)
7plt.gca().spines['bottom'].set_position("zero")
8plt.gca().spines['left'].set_position("zero")
9
10#set namn på aksane på eigna stader
11plt.xlabel("$x$") # Tittel på x-aksen
12plt.ylabel("$f(x)$", rotation=0)
13plt.gca().yaxis.set_label_coords(0.3,1)
14plt.gca().xaxis.set_label_coords(1,0.23)
15
16plt.grid()
Forklaring til koden

I linje 1 legg vi inn namnet på funksjonen.

I linje 2 sørger vi for at namnet vi har lagt inn, blir vist i utskrifta.

Linje 5 og 6 fjernar den øvste linja og linja heilt til høgre. Linje 7 og 8 flyttar linjene nedanfrå og til venstre slik at dei kryssar kvarandre i origo.

I linje 11 og 12 set vi namn på aksane. Byt ut x og f(x) her med fornuftige namn om grafen din skal beskrive noko konkret. Kommandoen rotation = 0 i linje 12 gjer at teksten står rett veg. Klarer du å finne ut kva dollarteikna $ rundt aksetitlane gjer med formateringa av dei?

I linje 13 og 14 blir namna sett på rett plass på aksane. Her kan du eksperimentere med tal mellom 0 og 1 for å sjå kvar namna blir ståande.

I linje 16 har vi sett på rutenett.

Fullstendig kode

No kan vi samle alt vi har gjort, og skrive eit program som plottar funksjonen vår på ein tilfredsstillande måte:

python

1import matplotlib.pyplot as plt
2import numpy as np
3
4def f(x):
5    return x**3+4*x**2-2
6
7X = np.linspace(-4,2,100)
8Y = f(X)
9
10X_1 = np.array([-2,0])
11Y_1 = f(X_1)
12
13
14plt.plot(X,Y,label = "$f(x)$")
15plt.scatter(X_1,Y_1)
16
17plt.legend()
18
19plt.gca().spines['right'].set_visible(False)
20plt.gca().spines['top'].set_visible(False)
21plt.gca().spines['bottom'].set_position("zero")
22plt.gca().spines['left'].set_position("zero")
23
24plt.xlabel("$x$") # Tittel på x-aksen
25plt.ylabel("$f(x)$", rotation=0)
26plt.gca().yaxis.set_label_coords(0.7,1)
27plt.gca().xaxis.set_label_coords(1,0.1)
28
29plt.grid()
30
31plt.show()

Trinket

Nedanfor kan du teste koden. NB: Editoren vil ikkje vere tilgjengeleg under skriftleg eksamen.

CC BY-SASkrive av Tove Annette Holter og Bjarne Skurdal.
Sist fagleg oppdatert 31.07.2024

Læringsressursar

Funksjonsomgrepet