Funksjonar med digitale hjelpemiddel
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
Dersom vi vil teikne grafen til 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å.
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.
For å vise korleis vi teiknar grafar i Python, bruker vi ein litt annleis funksjon som døme. Vi tek for oss denne funksjonen:
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:
-4 | -3 | -2 | -1 | 0 | 1 | 2 | |
-2 | 7 | 6 | 1 | -2 | 3 | 22 |
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.
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()
🤔 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?
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
1X_1 = np.array([-2,0]) 2Y_1 = f(X_1) 3 4plt.scatter(X_1,Y_1)
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.
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()
Fullstendig kode
No kan vi samle alt vi har gjort, og skrive eit program som plottar funksjonen vår på ein tilfredsstillande måte:
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()
Nedanfor kan du teste koden. NB: Editoren vil ikkje vere tilgjengeleg under skriftleg eksamen.