MATEMATIK OG DATABEHANDLING. Noter om R

Størrelse: px
Starte visningen fra side:

Download "MATEMATIK OG DATABEHANDLING. Noter om R"

Transkript

1 MATEMATIK OG DATABEHANDLING Noter om R Version 1.00 af Morten Larsen og Peter Sestoft Institut for Grundvidenskab Den Kongelige Veterinær- og Landbohøjskole, KVL Disse noter beskriver programsystemet R som det benyttes i kurset Matematik og Databehandling på KVL. Programsystemet R er velegnet til matematiske og statistiske beregninger, graftegning, og behandling af forsøgsdata. Du kan lovligt og gratis installere en kopi af R på din egen pc; systemet er open source software. Eksemplerne i disse noter benytter Windows-udgaven, men R fås også til MacOS og til Linux. Det bedste udbytte af disse noter fås hvis du selv eksperimenterer med de præsenterede funktioner i R under læsningen. Alle eksempelindtastninger fra noterne samt de benyttede eksempelfiler findes på nettet: 1

2 Indhold 1 Kom i gang med R Lagring af udtryk og definitioner i R Hjælp i R Regneudtryk og indbyggede funktioner Visning af tal, og intern regnenøjagtighed Resultater der ikke er tal Variable 7 4 Definition af funktioner 8 5 Plot af funktioner 9 6 Indlæsning af forsøgsdata Aktuel filmappe Forsøgsdata i fastbreddeformat Forsøgsdata i kommasepareret format Data fra regneark til R med klippe-klistre Data fra regneark til R via tekstfil Plot af forsøgsdata Indsættelse af plot i rapporter og præsentationer 17 8 Plotfiler og indsættelse af plot på websider 17 9 Eksport af data fra R Vektorer og matricer Oprettelse af vektorer Regning med vektorer Oprettelse af matricer Indeksering i matricer Regning med matricer Større matricer og ikke-kvadratiske matricer Associationslister og datasæt Nulpunkt for funktion, og løsning af ligning med én ubekendt Numerisk optimering: minimum og maksimum Numerisk integration Simple statistiske funktioner Lineær regression og regressionskurve Polynomiel regression og regressionskurve

3 16 Plot af funktioner af 2 variable D overfladeplot af en funktion af to variable Avanceret farvning af overfladeplot Plot med funktionen image Plot af niveaukurver Punkter og kurver i rummet med scatterplot3d Programmering med R Udtryk, værdier og sideeffekter Tildelingsudtryk og usynlige værdier Sekvenser og blokke af udtryk Funktionsdefinitioner Kommentarer Mere avancerede funktionsdefinitioner Logiske udtryk Betingede udtryk: if... else Betingede udtryk: ifelse Løkker: for og while Eksempel på brug af løkker: Fibonacci-tal Eksempel på brug af løkker: En funktion til potensopløftning af matricer Eksempel på brug af løkker: En funktion til potensopløftning af funktioner A Sådan installerer du R 54 A.1 Grundlæggende installation af R A.2 Installation af ekstra R-pakker B Indlæsning af forsøgsdata direkte fra regneark 54 C Indlejring af forsøgsdata i R-programmer 55 D Litteratur om R 55 Indeks 55 Tak til Bo Martin Bibby, Claus Ekstrøm, Henrik Laurberg Petersen, Jacob Engelbrecht og Thomas Vils Petersen for kommentarer og forslag, og selvfølgelig tak til de mange der har bidraget til udviklingen af R-systemet. 3

4 1 Kom i gang med R Hvis R er installeret findes programmet normalt som en ikon (et stort R) på skrivebordet. Se i appendiks A.1 hvordan du installerer R på din egen computer. 1. Start R ved at dobbeltklikke på R-ikonen på skrivebordet. 2. Skriv 11:15 efter prompten > i vinduet R Console og tryk på Enter-tasten: > 11:15 [1] Dit input skrives efter prompten >, og resultatet fra R kommer på den næste linie. Som det ses er resultatet en talsekvens med fem elementer. Klammen [1] betyder at 11-tallet er element nummer 1 i talsekvensen. 3. Summen af tallene , det vil sige 65, beregnes sådan her: > sum(11:15) [1] Du kan plotte sin(x) for x fra 0 til 6π ved at skrive linien nedenfor i R Console og trykke Enter. Det giver et nyt vindue som vist i figur 1. > plot(sin, 0, 6*pi) Figur 1: Et R Console vindue og en graf. 5. Afslut R ved at vælge FILE EXIT eller skrive quit(), og svar Nej til Save workspace image. 4

5 1.1 Lagring af udtryk og definitioner i R Når man starter R får man et stort vindue kaldet RGui som indeholder et mindre vindue kaldet R Console, som i figur 1. I R Console skriver man regneudtryk der skal udregnes samt definitioner af variable og funktioner. Når der trykkes på Enter udføres beregningen eller definitionen. Man kan bladre i de seneste linier med regneudtryk og definitioner ved hjælp af pil-op og pil-ned tasterne, om nødvendigt rette i en linie, og trykke Enter for at udføre den igen. Punkt 5 ovenfor anbefalede at svare Nej til Save workspace image når man R afsluttes. Hvis man svarer Ja, så gemmes definerede variable og funktioner til næste gang R startes på samme pc. Det er imidlertid bedre at gemme selve definitionerne i en tekstfil, der fylder mindre, kan skrives ud på en printer, og nemmere kan flyttes til en anden pc. Man kan redigere definitioner af variable og funktioner i R Editor og gemme definitionerne i en tekstfil: Vælg FILE NEW SCRIPT, så kommer der et tomt R Editor vindue. Skriv definitioner af variable og funktioner i R Editor. Definitionerne kan imidlertid kun udføres i R Console. Gør det ved at markere en linie eller definition i R Editor og vælge EDIT RUN LINE OR SELECTION; så udføres den i R Console. For at gemme indholdet af R Editor skal man skifte fokus til R Editor vinduet (så vinduets titelbjælke bliver blå), gå op i menuen og vælge FILE SAVE eller Ctrl+S, og så angive et navn til filen. Filen får filtype.r. Man kan gemme alle sine indtastningslinier fra R Console, men ikke deres resultater, ved at vælge File Save history og angive et filnavn. Man kan også bruge kommandoen savehistory("filnavn.r"). Ved at slette fejltagelser og eksperimenter fra den resulterende fil kan man bevare nyttige definitioner af variable og funktioner til senere brug. 1.2 Hjælp i R Man kan finde hjælp til brugen af R i menupunktet Help i R-systemet, og man kan få hjælp til en bestemt funktion i R, fx log, ved at skrive et spørgsmålstegn og funktionens navn: >?log Det åbner et nyt vindue med en beskrivelse af funktionen og nogle eksempler, men forklaringerne kan være ret uforståelige. Hvis man ikke kan huske navnet på en funktion eller en regneoperator kan man være heldig at finde den med help.search: > help.search("matrix multiplication") En pakke er en samling af funktioner til et bestemt formål. Man kan få oplysninger om en bestemt pakke, fx scatterplot3d, og alle de funktioner den indeholder, sådan her: > library(help = scatterplot3d) 5

6 2 Regneudtryk og indbyggede funktioner Der er mange indbyggede regneoperatorer og funktioner i R, for det meste med de velkendte navne, men notationen i R er ofte lidt anderledes end i matematik. Funktioner og operatorer kan bruges i regneudtryk: Regneudtryk i R Resultat Matematik Betydning * Fem plus syv gange otte sqrt(10) Kvadratroden af 10 10^ opløftet i tredje log10(17) log(17) Titalslogaritme af 17 exp(3) e 3 Eksponentialfunktionen af 3 log(17) ln(17) Naturlig logaritme af 17 sin(3*pi/2) -1 sin( 3 2 π) Sinus af 3 2 π For eksempel kan den tredje rod af 17 beregnes som 3 17 = 17 1/3 hvad der i R skrives sådan her: > 17^(1/3) [1] Bemærk at hat-symbolet (^) er en såkaldt død tast på nogle computere, så man skal trykke hat (^) efterfulgt af mellemrum for at få tegnet vist på skærmen. 2.1 Visning af tal, og intern regnenøjagtighed Som det fremgår af eksemplet ovenfor viser R normalt kun 7 betydende cifre i resultater. Dette tal kan sættes op til 12 på denne måde: > options(digits=12) > 17^(1/3) [1] Der er ikke nogen mening i at bede R om at vise mere end 16 betydende cifre, for moderne computere regner kun med betydende cifre internt. Det gør pcer og R også, uanset hvor mange eller få cifre der vises i resultaterne. Visningen af resultater sættes tilbage til det normale sådan her: > options(digits=7) 2.2 Resultater der ikke er tal Nogle regneudtryk har ikke nogen fornuftig talværdi: hvad skulle resultatet af 1/0 eller log(0) eller 0/0 være? Disse udtryk giver nogle specielle resultater, nemlig Inf, der betyder uendelig; og -Inf, der betyder minus uendelig; og NaN, der betyder Not a Number. Hvis NaN dukker op i resultatet af en beregning, så er der gået noget galt og man må hellere tjekke sine regneudtryk. Derimod betegner den specielle værdi NA, der betyder not available eller not applicable, en manglende observation i et datasæt, fx en manglende aflæsning fra et forsøg. 6

7 3 Variable Funktion i R Matematik Betydning x + y x + y x plus y x - y x y x minus y x * y x y x gange y x / y x/y x divideret med y x %/% y x heltalsdivideret med y; fx vil 7%/%3 give 2 x %% y x modulo y, rest ved heltalsdivision; fx vil 7%%3 give 1 x ^ y x y x opløftet i y abs(x) x numerisk (absolut) værdi af x sqrt(x) x kvadratrod af x log(x) ln(x) naturlig logaritme af x log10(x) log(x) titalslogaritme af x exp(x) e x eksponentialfunktionen af x, dvs. e x sin(x) sin(x) sinus til x radianer cos(x) cos(x) cosinus til x radianer tan(x) tan(x) tangens til x radianer asin(x) sin 1 (x) arcus sinus til x acos(x) cos 1 (x) arcus cosinus til x atan(x) tan 1 (x) arcus tangens til x pi π enhedscirklens areal π = exp(1) e den naturlige logaritmes grundtal e = Figur 2: Numeriske operatorer, funktioner og konstanter Man kan binde resultatet af et regneudtryk til en variabel, for eksempel z. Pilen (<-) betyder at udtrykket på højresiden udregnes og værdien gemmes i variablen z: > z <- 17^(1/3) Resultatet af beregningen bliver ikke vist, men lagret i variablen z. Man kan få oplyst en variabels værdi blot ved at skrive dens navn: > z [1] Variable kan bruges i efterfølgende beregninger. Det er nyttigt fordi man undgår at skrive det samme komplicerede regneudtryk flere gange: > z^6 - z^3 [1] 272 Et navn kan indeholde punktummer, så antal.planter er et lovligt variabelnavn. I R anses store og små bogstaver for at være forskellige, så z og Z er to forskellige variable. Undgå at bruge navnene c, F, t og T, da de allerede bruges af R til forskellige formål. Se også afsnit 18 om programmering i R. 7

8 4 Definition af funktioner Man kan nemt definere sine egne funktioner i R. For eksempel kan man definere en funktion cbrt(x) til at finde tredje rod ( cubic root ) af et vilkårligt positivt tal x sådan her: > cbrt <- function(x) ( x^(1/3) ) Variablen x kaldes en formel parameter for funktionen cbrt, og parentesen ( x^(1/3) ) er funktionens krop. Udtrykket x^(1/3) beregner 3 x. Den nye funktion bruges som alle andre funktioner ved at skrive funktionsnavnet efterfulgt af en argumentparentes: > cbrt(1000) [1] 10 Værdien af dette udtryk udregnes ved at sætte x lig 1000 og så udregne funktionskroppen x^(1/3), hvilket giver 10. Funktioner med flere formelle parametre defineres på samme måde. Her er en funktion root(x, n) til at beregne den n te rod af x: > root <- function(x, n) ( x^(1/n) ) Funktioner med flere parametre kaldes på sædvanlig vis ved at skrive argumentudtrykkene i parentes efter funktionsnavnet: > root(625, 4) [1] 5 Den såkaldte logistiske funktion: kan i R defineres således: logis(t) = K 1 + ae rt > logis <- function(t) ( K / (1 + a*exp(-r*t)) ) Bemærk at der ikke er givet nogen konkrete værdier for a, r og K. Man kan derfor ikke bruge funktionen til noget før a, r og K er blevet defineret: > logis(5) Error in logis(5) : Object "K" not found Når a, r og K er blevet defineret kan man kalde funktionen for at beregne fx logis(5), eller plotte funktionen. Hvis man ændrer a, r eller K, så ændres funktionen: > a <- 50 > r <- 1 > K <- 1 > logis(5) [1] > K <- 10 > logis(5) [1]

9 5 Plot af funktioner Man kan plotte indbyggede funktioner såsom sin(x) for x løbende fra 0 til 6π ved brug af funktionen plot: > plot(sin, 0, 6*pi) For at plotte mere indviklede udtryk, for eksempel polynomiet p(x) = 10 5x 2 +x 3 for x løbende fra 2 til 6, kan man definere en funktion p med formel parameter x og med polynomiet som funktionskrop: > p <- function(x) ( 10-5*x^2 + x^3 ) > plot(p, -2, 6) Som standard sætter R akserne som en kasse uden om selve funktionsgrafen, men i matematik er det mere normalt at akserne skærer hinanden i (0,0). For at opnå dette skal man i plot-funktionen angive axes=false (med store bogstaver), og dernæst bruge funktionen axis til at angive at første-aksen skal gå gennem y = 0 og at anden-aksen skal gå gennem x = 0: > plot(p, -2, 6, axes=false) > axis(1, pos=0) > axis(2, pos=0) Det resulterende plot ses i figur 3. Man kan tilføje flere funktionsgrafer til et eksisterende plot ved at p (x) x Figur 3: Plot af polynomiet p(x) = 10 5x 2 + x 3 fremstillet med funktionen plot. bruge add=true i plot-ordren. Med parameteren col kan man give den nye kurve en bestemt farve: > q <- function(x) ( 7*x - x^2 ) > plot(q, -2, 6, add=true, col="red") Funktionen plot beregner normalt den givne funktions værdier i 100 støttepunkter. Hvis grafen for en funktion svinger meget i et lille interval kan det være nødvendigt at sætte antal punkter n til en højere værdi end 100. Prøv fx at tegne funktionen f (x) = xsin( 1 x ), der svinger voldsomt når x er tæt på 0: 9

10 > f <- function(x) ( x * sin(1/x) ) > plot(f, 0.001, 0.1) > plot(f, 0.001, 0.1, n=5000) De resulterende plot ses i figur 4. f (x) f (x) x x Figur 4: Plot af f (x) = xsin( 1 x ) for x [0.001,0.1], tegnet med 100 henholdsvis 5000 støttepunkter. For små værdier af x er det venstre plot klart forkert. Talrige andre egenskaber ved funktionsplot kan styres med R-funktionen par. Nogle få er vist i figur 5; de øvrige kan findes i R s hjælp under?par,?plot.default og?title. Effekt Parameter Mulige værdier Akseetiketstil las 0 (parallel med akse), 1 (vandret), 2 (vinkelret på akse), 3 (lodret) Linietype lty "solid" "dashed" "dotted" "dotdash" "longdash" "twodash" Linietykkelse lwd 1, 2, 3,..., hvor standard er 1 Multiplot mfrow c(1,2), c(2,1), c(2,2),... ; generel form: c(rækker, søjler) Plottype type "p" (punkter), "l" (linier), "b" (begge), "s"/"s" (trin), "h" (histogram) Figur 5: Nogle grafikparametre til brug i funktionerne par og plot. Dette eksempel bruger mfrow=c(1,2) til at lave 1 række med 2 plot i samme figur. Der plottes tre funktioner inden for hvert lille plot for at demonstrere forskellige linietyper og linietykkelser: > g1 <- function(x) ( x ) > g2 <- function(x) ( 2 * x ) > g3 <- function(x) ( 3 * x ) > par(mfrow=c(1,2)) 10

11 > par(las=0) > plot(g1, xlab="x", ylab="g1 g2 g3", main="linietyper", lty="dashed") > plot(g2, add=true, lty="dotted") > plot(g3, add=true, lty="twodash") > par(las=1) > plot(g1, xlab="x", ylab="g1 g2 g3", main="linietykkelser", lwd=1) > plot(g2, add=true, lwd=2) > plot(g3, add=true, lwd=3) Ovenfor har vi også brugt xlab og ylab til at sætte akseetiketter, og main til at sætte plottitler. De resulterende plot ses i figur 6. Linietyper Linietykkelser g1 g2 g g1 g2 g x x Figur 6: Effekt af nogle grafikparametre. I venstre plot ses fra neden linietyperne (lty) dashed, dotted og twodash; og i højre plot ses linietykkelserne (lwd) 1, 2 og 3. Forskellen på andenaksernes etiketter skyldes parameteren las. 11

12 6 Indlæsning af forsøgsdata Forsøgsdata i tekstfiler foreligger normalt enten i fastbreddeformat eller kommasepareret format. Figur 7 viser hvordan de samme data ser ud i de to formater hvis man bruger fx NotePad eller WordPad til at se på tekstfilerne. Indlæsning fra fastbreddeformat er beskrevet i afsnit 6.2 og indlæsning fra kommasepareret format er beskrevet i afsnit 6.3. Kopiering fra regneark (OpenOffice og Excel) til R er beskrevet i afsnit 6.4. En anden metode til dataoverførsel fra regneark, som formentlig er bedre ved meget store datasæt, er beskrevet i appendiks B. 6.1 Aktuel filmappe Når R læser datafiler fra disken via funktioner som read.csv2 og read.table (forklaret nedenfor), så sker det som standard fra den aktuelle filmappe. Den aktuelle filmappe vælges i R med funktionen setwd. Man kan vælge at den aktuelle filmappe skal være mappen Dokumenter, eller såmænd skrivebordet i Windows, sådan her: > setwd("c:/dokumenter og Indstillinger/Peter Sestoft/Dokumenter") > setwd("c:/dokumenter og Indstillinger/Peter Sestoft/Skrivebord") Du skal selvfølgelig anvende dit eget brugernavn i stien. I engelsksproget Windows 2000/XP skal de danske ord udskiftes med Documents and Settings, My Documents og Desktop. Bemærk at der bruges forlæns skråstreger (/) i R selvom Windows normalt bruger baglæns skråstreger (\) i stier. Hvis dit DSR-netværksdrev er tilsluttet som drev P og du ønsker at bruge en mappe kaldet Matdat på netværksdrevet som R s aktuelle filmappe, så skal du skrive: > setwd("p:/matdat") Valget af aktuel filmappe gælder resten af R-sessionen. Funktionen getwd viser den aktuelle filmappes sti: > getwd() [1] "C:/Dokumenter og Indstillinger/Peter Sestoft/Skrivebord" 6.2 Forsøgsdata i fastbreddeformat Figur 7 (a) viser en tekstfil med data opstillet i fastbreddeformat. Filen har tre variable Tid, Kontrol og Vækst, og 20 observationer. Hver observation angiver et antal minutter efter slagtning sammen med målt ph i kødet fra grise der er opdrættet normalt (kontrolgruppen) og fra grise der har fået væksthormon. I fastbreddeformat står overskrifter og data opstillet under hinanden ved at der er indsat tilpas mange mellemrumstegn på hver linie. En tekstfil i fastbreddeformat og med decimalkomma (a) kan indlæses i R med funktionen read.table: > d <- read.table("grise2fast.txt", header=true, dec=",") Tekstfilen Grise2Fast.txt skal ligge i den aktuelle filmappe; se afsnit 6.1. Parameteren header=true angiver at første linie af tekstfilen indeholder datasættets variabelnavne (kolonnenavne), og dec="," angiver at denne fil benytter decimalkomma i tal 6,45 (som på dansk, tysk og fransk) snarere end decimalpunktum 6.45 (som på amerikansk og engelsk). Ved ovenstående ordre indlæses data fra filen til et R-datasæt d, kaldet en data frame (se afsnit 11). Som med alle andre variable kan man få vist værdien af d bare ved at skrive navnet: 12

13 Tid Kontrol Vækst 30 6,45 6, ,32 5, ,17 5, ,06 5, ,02 5, ,98 5, ,94 5, ,85 5, ,80 5, ,76 5, ,71 5, ,63 5, ,59 5, ,52 5, ,49 5, ,47 5, ,45 5, ,44 5, ,43 5, ,43 5,34 Tid;Kontrol;Vækst 30;6,45;6,07 45;6,32;5,94 60;6,17;5,82 75;6,06;5,72 90;6,02;5,62 105;5,98;5,54 120;5,94;5,47 150;5,85;5,38 180;5,8;5,37 210;5,76;5,34 240;5,71;5,34 270;5,63;5,35 300;5,59;5,31 330;5,52;5,31 360;5,49;5,32 390;5,47;5,32 420;5,45;5,33 450;5,44;5,33 480;5,43;5, ;5,43;5,34 Tid,Kontrol,Vækst 30,6.45, ,6.32, ,6.17, ,6.06, ,6.02, ,5.98, ,5.94, ,5.85, ,5.8, ,5.76, ,5.71, ,5.63, ,5.59, ,5.52, ,5.49, ,5.47, ,5.45, ,5.44, ,5.43, ,5.43,5.34 (a) (b) (c) Fastbreddeformat Kommasepareret, DK Kommasepareret, US Grise2Fast.txt Grise2KommaDK.csv Grise2KommaUS.csv Figur 7: Tre tekstfiler i (a) fastbreddeformat, (b) dansk kommasepareret format og (c) amerikansk kommasepareret format. Dansk OpenOffice og Excel eksporterer normalt i format (b), mens engelsksprogede versioner eksporterer i format (c). Filtypen.csv betyder comma-separated variables. 13

14 > d Tid Kontrol Vækst Som det ses bruger R altid decimalpunktum i tal, uanset hvad der stod i den oprindelige tekstfil. De enkelte søjler i d fås ved at skrive datasættets navn og variablens navn adskilt af dollartegn ($): > d$kontrol [1] [16] Klammerne [1] og [16] angiver at liniens første tal er observation nummer 1 henholdsvis 16. For at bekræfte dette kan vi se nærmere på variablen Kontrol fra observation nummer 16: > d$kontrol[16] [1] Forsøgsdata i kommasepareret format Forsøgsdata i såkaldt kommasepareret format ligger i en tekstfil hvor hver linie svarer til en observation og hvor variablene (kolonnerne) er adskilt af semikolon (;) eller komma (,) afhængig af om filen er af dansk eller amerikansk oprindelse. Tekstfiler i kommasepareret format har typisk et navn der ender i.csv for comma-separated variables, men navnet kan også ende på.txt. Figur 7 (b) og (c) viser samme tekstfil i henholdsvis dansk og amerikansk kommasepareret format. Tekstfiler i dansk kommasepareret format (b), med semikolon som skilletegn og med decimalkomma i tal, kan indlæses i R med funktionen read.csv2: > d <- read.csv2("grise2kommadk.csv") Tekstfiler i amerikansk kommasepareret format (c), med komma som skilletegn og med decimalpunktum i tal, kan indlæses i R med funktionen read.csv: > d <- read.csv("grise2kommaus.csv") 6.4 Data fra regneark til R med klippe-klistre Den nemmeste måde at flytte data fra et regneark til R er at markere dataene i regnearket og derefter enten trykke Ctrl+C eller højreklikke og vælge KOPIER som vist i figur 8. I begge tilfælde anbringes en kopi af dataene på det såkaldte klippebord i Windows. Skift derefter til R Console, hvor man kan læse fra Windows-klippebordet clipboard: > d <- read.table("clipboard", header=true, dec=",") Når man overfører data fra et engelsksproget regneark skal argumentet dec="," udelades: > d <- read.table("clipboard", header=true) Bemærk at når man redigerer i R Console eller i et andet program, så forsvinder den klippede tekst fra klippebordet, og read.table("clipboard",...) vil ikke virke før man igen har valgt data der skal kopieres. 14

15 Figur 8: Markering og kopiering af data i regneark. 6.5 Data fra regneark til R via tekstfil I stedet for at læse direkte fra regneark til R med klippe-klistre kan man først eksportere data fra regneark til en tekstfil i kommasepareret format (.csv), og dernæst importere fra tekstfil til R med funktionen read.csv2 eller read.csv. Fordelen ved dette er at man kan gemme tekstfilen og senere tjekke (med NotePad eller WordPad) at det var de rigtige tal man regnede videre på betryggende hvis man bruger resultaterne i sit bachelor- eller specialeprojekt eller en anden videnskabelig publikation. Fra dansk OpenOffice eller Excel eksporterer man til.csv-fil ved at vælge FILER GEM SOM FILTYPE TEKST CSV. I dansk OpenOffice skal man derefter vælge FELTSEPARATOR (;), altså semikolon. Den resulterende kommaseparerede fil kan derefter importeres med read.csv2 som vist i afsnit 6.3. Fra amerikansk OpenOffice eksporterer man til.csv-fil ved at vælge FILE SAVE AS FILE TYPE TEXT CSV, og her er det bedst at lade FIELD DELIMITER forblive komma (,). Den resulterende kommaseparerede fil kan derefter importeres med read.csv som vist i afsnit Plot af forsøgsdata Man kan plotte observationerne fra datasættet d indlæst ovenfor på talrige måder. For eksempel kan kontrolgruppens ph plottes som funktion af tiden med funktionen plot: > plot(d$tid, d$kontrol, type="o") Argumentet type="o" gør at datapunkterne vises i plottet og at der trækkes linier mellem datapunkterne. Andre muligheder er type="p" (kun datapunkter), type="l" (kun linier), og type="b" (begge dele). Hvis man vil plotte både Kontrol og Vækst som funktion af Tid, så kan man samle værdierne af Kontrol og Vækst i en matrix med to søjler: 15

16 > matrix(c(d$kontrol, d$vækst), ncol=2) [,1] [,2] [1,] [2,] [19,] [20,] R-funktionerne c og matrix forklares senere, i afsnit 10.1 og Kort fortalt så sætter c sætter de to sæt af værdier sammen til en vektor, og matrix omdanner dem til en matrix med 2 søjler (ncol=2). Nu kan man bruge R-funktionen matplot til at plotte begge søjler som funktion af Tid: > attach(d) > matplot(tid, matrix(c(d$kontrol, d$vækst), ncol=2), type="ll", + xlab="tid (min)", ylab="surhed (ph)") Desuden har vi ovenfor brugt xlab og ylab til at sætte etiketter med enheder på de to akser. Det resulterende plot ses i figur 9. Surhed (ph) Tid (min) Figur 9: Plot af forsøgsdata: to sæt aflæsninger som funktion af tid. Endelig kan man få plottet alle datasættets variable mod hinanden på en gang ved at skrive: > plot(d) I dette tilfælde er der tre variable Tid, Kontrol, Vækst hvilket giver 3 2 = 6 små (x,y)-plots, som vist i figur 10. Lige i dette tilfælde er det ikke så nyttigt, men generelt er det en god måde at få overblik over sammenhængene i et datasæt med flere afhængige variable. 16

17 Tid Kontrol Vækst Figur 10: Overbliksplot af datasæt med tre variable Tid, Kontrol og Vækst. 7 Indsættelse af plot i rapporter og præsentationer Under Windows kan man inkludere et plot (en graf) i en rapport eller præsentation ved at kopiere plottet i grafikformatet Windows (Enhanced) Metafile og derefter indsætte det i OpenOffice eller Microsoft Word eller PowerPoint: Lav plottet i R. Peg på plottet med musen, og vælg FILE COPY TO THE CLIPBOARD AS A METAFILE; eller tryk Ctrl+W. Skift til OpenOffice eller Word eller PowerPoint, og indsæt figuren ved at vælge REDIGER SÆT IND eller ved at trykke Ctrl+V. Efter indsættelse kan plottet skaleres (formindskes eller forstørres) og beskæres uden kvalitetsforringelse hvis det er overført som Windows Metafile. Hvis plottet er overført som bitmap, bliver det ofte meget grimt ved skalering. 8 Plotfiler og indsættelse af plot på websider Hvis man skal lave mange plot, så er det praktisk at gemme hvert plot direkte i en separat grafikfil poly.emf i formatet Windows Metafile. Det kan gøres sådan her: > p <- function(x) ( 10-5*x^2 + x^3 ) > win.metafile("poly.emf") > plot(p, -2, 8) > dev.off() Ordren dev.off() afslutter opbygning af plot-filen, og først derefter er filen poly.emf klar. 17

18 En fil af denne type kan indsættes i OpenOffice (med INDSÆT GRAFIK FRA FIL) eller Word eller PowerPoint (med INDSÆT BILLEDE FRA FIL). Men direkte overførsel af plots som beskrevet i afsnit 7 er meget nemmere. Hvis et plot skal bruges på en webside duer Windows Enhanced Metafile ikke. I stedet kan grafen laves i grafikformatet Portable Network Graphics (PNG): > png("poly.png") > plot(p, -2, 8) > dev.off() PNG-filer er gode til websider fordi de er ret kompakte, men de bliver grimme hvis de skaleres, som det normalt er nødvendigt i dokumenter og præsentationer. To andre gode grafikformater er Portable Document Format (PDF) og Encapsulated Postscript. Begge formater kan skaleres uden kvalitetstab og bruges i professionel bogproduktion. PDF-filer kan bruges uanset operativsystem; Postscript er mest egnet til tekstbehandling i Linux og MacOS. Plotfilerne laves på samme måde som ovenfor: > postscript("poly.eps") > plot(p, -2, 8) > dev.off() > pdf("poly.pdf") > plot(p, -2, 8) > dev.off() Der er flere andre grafikfilformater end de fire nævnte; de ses ved at skrive?device i R Console. 9 Eksport af data fra R Datasæt som d kan eksporteres fra R til tekstfil og dermed til regneark med funktionen write.table. For at skrive i dansk kommasepareret format som i figur 7 (b), skal man angive semikolon (;) som separator og bruge decimalkomma (,) i tal: > write.table(d, "output.csv", sep=";", dec=",", quote=false, row.names=false) Parameteren quote=false betyder at der ikke kommer anførselstegn om tekster (fx kolonneoverskrifter) i tekstfilen, og parameteren row.names=false betyder at der ikke kommer rækkenumre på observationerne. Den resulterende tekstfil "output.csv" lægges i den aktuelle filmappe (se afsnit 6.1) og kan importeres i dansk OpenOffice eller Excel med FILER ÅBEN FILTYPE ALLE FILER. For at skrive i amerikansk kommasepareret format som i figur 7 (c), skal man angive komma (,) som separator; decimalpunktum (.) i tal er standard: > write.table(d, "output.csv", sep=",", quote=false, row.names=false) Den resulterende tekstfil "output.csv" kan åbnes direkte i (dansk) Excel ved at dobbeltklikke på den, og den kan importeres i amerikansk OpenOffice. 18

19 10 Vektorer og matricer 10.1 Oprettelse af vektorer Definér vektoren v til at være (3, 4), altså have de to elementer 3 og 4: > v <- c(3, 4) Funktionen c betyder combine og bruges til at konstruere vektorværdier. Som altid kan man vise værdien af variablen v bare ved at skrive den: > v [1] 3 4 Man kan lave en vektor med elementerne med udtrykket 11:15, eller ved brug af funktionen seq, der er en forkortelse af sequence : > 11:15 [1] > seq(11,15) [1] Funktionen seq kan også bruges til at lave en inddeling af intervallet [0, 2π] i 9 lige store delintervaller. Resultatet er en vektor af længde 10 hvis første element er 0 og sidste element er 2π: > s <- seq(0, 2*pi, length=10) > s [1] [8] Et indeksudtryk s[i] giver det i te element af vektoren. For eksempel får man det tredje element af s på denne måde: > s[3] [1] Med funktionen rep, der er en forkortelse af replicate, kan man fx lave en vektor med 10 kopier af tallet 1: > rep(1, 10) [1] Funktionen c(...) kan bruges til at kombinere flere dele, også eksisterende vektorer, til en enkelt vektor: > c(3, 4, rep(5, 10)) [1] > c(v, v, 42) [1]

20 10.2 Regning med vektorer Når man regner på vektorer der har samme antal elementer, så anvendes regneoperatoren elementvis, og resultatet er en vektor med samme antal elementer: > c(1,2,3) + c(7,9,13) [1] > c(1,2,3) * c(7,9,13) [1] Bemærk at ovenstående ikke beregner prikproduktet. Prikproduktet eller indre produkt eller af to vektorer med samme antal elementer beregnes som summen af de to vektorers elementvise produkt: > sum(c(1,2,3) * c(7,9,13)) [1] 64 Alternativt kan prikproduktet beregnes som matrixprodukt, se afsnit Længden (i planen eller rummet) af en vektor v = c(3, 4) kan beregnes som kvadratroden af det indre produkt af vektoren med sig selv, altså: > sqrt(sum(v * v)) [1] 5 Pas på: Udtrykket length(v) giver antallet af elementer i vektoren, ikke vektorens geometriske længde (i planen eller rummet): > length(v) [1] 2 To vektorer med forskelligt antal elementer kan bruges i samme regneudtryk: > c(3, 4) + c(11, 13, 17, 19) [1] I R-systemet gælder der følgende genbrugsregel: Når to vektorer med forskelligt antal elementer bruges i samme regneudtryk, så genbruges elementerne fra vektoren med færrest elementer så antallet passer med den vektor der har flest elementer. Udtrykket ovenfor beregnes derfor som om elementerne fra c(3, 4) var blevet gentaget, på præcis samme måde som dette: > c(3, 4, 3, 4) + c(11, 13, 17, 19) [1] Bemærk at dette er helt anderledes end i matematik, hvor det ikke giver nogen mening at lægge en vektor der har to elementer sammen med en vektor der har fire elementer. Et simpelt tal og en vektor kan også bruges i samme regneudtryk. Faktisk opfatter R et almindeligt tal som en vektor af længde én. I overensstemmelse med genbrugsreglen vil det simple tal blive genbrugt for hvert element i vektoren. For eksempel kan man beregne kvadraterne på de første fem primtal sådan her: > c(2, 3, 5, 7, 11) ^ 2 [1] Dette regneudtryk betyder det samme som 20

21 > c(2, 3, 5, 7, 11) ^ c(2, 2, 2, 2, 2) Tilsvarende gælder at hvis man anvender en indbygget funktion på en vektor, så anvendes funktionen elementvis: > sqrt(c(49, 81, 169)) [1] Det fungerer fordi funktionen sqrt forventer et enkelt tal som argument, og den eneste fornuftige måde at anvende den på en vektor af tal er at anvende den på hvert tal for sig. Det samme gælder de funktioner man selv definerer: > cbrt <- function(x) ( x^(1/3) ) > cbrt(c(8, 27, 64)) [1] Hvis der er tvivl om hvordan funktionen virker på en vektor, så er det bedre udtrykkeligt at angive at funktionen skal anvendes på hvert element for sig. Hertil bruges R-funktionen sapply der tager en vektor som første argument og en funktion som andet argument, anvender funktionen på hvert element af vektoren, og producerer en vektor af resultaterne: > sapply(c(8, 27, 64), cbrt) [1] Oprettelse af matricer Man kan definere matricen sådan her > A <- matrix(c(1,2,3,4), 2) ( 1 3 A = 2 4 Det sidste 2-tal betyder at matricen skal have to rækker. Det kan også skrives nrow=2, og tilsvarende kan man skrive ncol=2 for at angive at der skal være to søjler. Som sædvanlig vises værdien af A ved at skrive navnet: > A [,1] [,2] [1,] 1 3 [2,] 2 4 Bemærk at A oprettes søjlevis: de to første elementer går til søjle 1, de to sidste til søjle 2. Klammen [,1] betyder søjle 1, og klammen [1,] betyder række 1. Hvis man synes det er for besværligt at oprette 2 2 matricer med matrix(c(...), 2), kan man definere sin egen funktion mat2 til formålet: > mat2 <- function(x11,x21,x12,x22) ( matrix(c(x11,x21,x12,x22), 2) ) > A <- mat2(1,2,3,4) Man kan definere enhedsmatricen med 2 rækker og 2 søjler sådan her: > E <- diag(2) ( 1 0 E = 0 1 ) ) 21

22 Funktion i R Matematik Betydning A + B A + B A plus B, elementvis addition A - B A B A minus B, elementvis subtraktion A * B PAS PÅ A gange B, elementvis multiplikation A %*% B AB A gange B, matrixprodukt A / B PAS PÅ A divideret med B, elementvis division A ^ y PAS PÅ A opløftet i y, elementvis t(a) A den transponerede til A det(a) det(a), A determinanten af A solve(a) A 1 den inverse til A solve(a, v) find u der løser ligningen A %*% u = v eigen(a) egenvektorer og egenværdier for A A[i,j] A i j indeksering: i te række, j te søjle af A A[i,] A i indeksering: i te række af A A[,j] A j indeksering: j te søjle af A Figur 11: Operatorer og funktioner på matricer og vektorer. Inden du bruger en operator mærket PAS PÅ, så overvej om ikke der snarere er brug for fx %*% eller solve(a) eller matrixpotensopløftning Indeksering i matricer Hvis A er en matrix som ovenfor, så er A[1,2] elementet i første rækkes anden søjle, og A[,1] og A[,2] er første og anden søjle, og tilsvarende er A[1,] og A[2,] første og anden række: > A[1,2] [1] 3 > A[,1] [1] 1 2 > A[1,] [1] Regning med matricer Alle sædvanlige regneoperatorer på matricer findes også i R, men nogle af dem har uventede navne. Især kan det overraske at A * B ikke er matrixprodukt; det skal i stedet skrives A %*% B. Læg også mærke til at A^-1 ikke beregner den inverse til matrix A; det skal gøres med solve(a). Nedenfor følger nogle eksempler på matrixoperationer. Lad B være den transponerede af A, altså A spejlet i diagonalen: > B <- t(a) > B [,1] [,2] [1,] 1 2 [2,] 3 4 Beregn resultatet af at addere matrix A og B: > A + B [,1] [,2] [1,] 2 5 [2,]

23 Beregn resultatet af at gange alle elementer af A med 7 (à la genbrugsreglen fra afsnit 10.2): > 7 * A [,1] [,2] [1,] 7 21 [2,] Beregn resultatet af at lægge 7 til alle elementer af A (à la genbrugsreglen): > 7 + A [,1] [,2] [1,] 8 10 [2,] 9 11 Beregn resultatet af at gange matrix A med matrix B, som matrixprodukt: > A %*% B [,1] [,2] [1,] [2,] Dette viser at ( 1 3 AB = 2 4 )( ) ( = Tjek at det i almindelighed ikke er det samme som at gange matrix B med matrix A: > B %*% A [,1] [,2] [1,] 5 11 [2,] Det er slet ikke det samme som A * B, der ganger A med B elementvis. Beregn resultatet af at multiplicere matrix A med søjlevektoren (5, 6); det er en søjlevektor: > A %*% c(5,6) [,1] [1,] 23 [2,] 34 Dette viser at ( 5 A 6 ) ( 1 3 = 2 4 )( 5 6 ) ( 23 = 34 Beregn resultatet af at multiplicere rækkevektor (5, 6) med matrix A; det er en rækkevektor: > c(5,6) %*% A [,1] [,2] [1,] Dette viser at ( 5 6 ) A = ( 5 6 ) ( ) ) ) = ( ) Beregn prikproduktet eller indre produkt af vektorerne c(1,2,3) og c(7,9,13): 23

24 > c(1,2,3) %*% c(7,9,13) [,1] [1,] 64 Beregn determinanten af A: > det(a) [1] -2 Beregn den inverse til A, der i matematik ofte betegnes A 1 : > solve(a) [,1] [,2] [1,] [2,] Beregn resultatet af at gange A med sin inverse, og omvendt. I begge tilfælde bør resultatet være enhedsmatricen: > A %*% solve(a) [,1] [,2] [1,] 1 0 [2,] 0 1 > solve(a) %*% A [,1] [,2] [1,] 1 0 [2,] 0 1 Find den søjlevektor u der løser ligningen A %*% u = v, hvor v = c(3, 4) er defineret i afsnit 10.1: > u <- solve(a, v) > u [1] 0 1 Tjek at u faktisk er en løsning ved at gange A med u; resultatet skal være v: > A %*% u [,1] [1,] 3 [2,] 4 Beregn egenvektorer og egenværdier for matrix A og gem dem i variablen ev: > ev <- eigen(a) > ev $values [1] $vectors [,1] [,2] [1,] [2,] Resultatet ev indeholder dels egenværdierne ev$values og dels matricen af egenvektorer ev$vectors. Den første og anden egenvektor fås ved at udtrække første og anden søjle af denne: 24

25 > ev1 <- ev$vectors[,1] > ev2 <- ev$vectors[,2] Eftersom ev1 er en egenvektor for A og ev$values[1] er den tilhørende egenværdi, skal nedenstående to udregninger give samme resultat: > A %*% ev1 [,1] [1,] [2,] > ev$values[1] * ev1 [1] Hvis A er en matrix og n er et naturligt tal, så betyder A n opløftning af A til n te potens, der er det samme som A matrixmultipliceret med sig selv n gange: A n = A A } {{ } n Der er ikke nogen indbygget funktion til dette formål i R; udtrykket A^n beregner noget helt andet som forklaret ovenfor. For mindre potenser, fx n = 4, kan man nemt beregne R = A n manuelt: > R <- A; m <- 1 > R <- R %*% A; m <- m+1 > R <- R %*% A; m <- m+1 > R <- R %*% A; m <- m+1 > R [,1] [,2] [1,] [2,] > m [1] 4 Husk at man kan gentage en indtastning i R Console bare ved at bruge pil-op og Enter. Variablen m ovenfor påvirker ikke beregningen af R; dens formål er udelukkende at tælle hvilken potens af R man er nået til. Mere bekvemt er det dog selv at definere en funktion matpow(a, n) til at beregne A n som vist i afsnit , og derefter bruge den som enhver anden funktion: > matpow(a, 4) [,1] [,2] [1,] [2,] Større matricer og ikke-kvadratiske matricer Matricer kan have lige så mange rækker og søjler man ønsker, og behøver ikke være kvadratiske: > D <- matrix(c(1:12), 3) > D [,1] [,2] [,3] [,4] [1,] [2,] [3,]

26 > F <- matrix(c(1:8), 4) > F [,1] [,2] [1,] 1 5 [2,] 2 6 [3,] 3 7 [4,] 4 8 > D %*% F [,1] [,2] [1,] [2,] [3,] Når en matrix der har r rækker og k søjler multipliceres med en matrix der har k rækker og s søjler, så har resultatmatricen r rækker og s søjler. Ovenfor er r = 3, k = 4 og s = Associationslister og datasæt En associationsliste er en værdi der kan indeholde flere navngivne komponenter. En associationsliste oprettes med funktionen list. I dette eksempel har associationslisten xx to komponenter t og y, som begge er vektorer: > xx <- list(t=c(1.0, 1.5, 2.0, 2.5, 3.0), y=c(1.4, 0.3, -1.5, -3.1, -4.8)) > xx $t [1] $y [1] Mange af R s indbyggede funktioner returnerer en associationsliste som resultat; se fx afsnit Komponenterne i en associationsliste behøver ikke være vektorer, og behøver ikke have samme længde: > blandet <- list(a=matrix(c(1, 2, 3, 4), 2), d=42.2) Man kan få fat på de enkelte komponenter af en associationsliste med operatoren $, og man kan få oplyst navnene på en associationslistes komponenter med funktionen names: > xx$t [1] > xx$y [1] > names(xx) [1] "t" "y" Hvis man gentagne gange skal bruge en komponent xx$y fra en associationsliste xx kan man bruge funktionen attach til at åbne xx så komponenterne bliver umiddelbart synlige. Når man er færdig kan detach bruges til at skjule dem igen, og så kan man ikke længere referere til y men skal skrive xx$y: > y Error: Object "y" not found > attach(xx) > y 26

27 [1] > detach(xx) > y Error: Object "y" not found Et datasæt i R, også kaldet en data frame, er en associationsliste hvis komponenter er vektorer af samme længde. Alle funktioner ($, names, attach, detach) der virker på associationslister kan også bruges på datasæt. Et datasæt kan oprettes ved indlæsning med funktionerne read.csv og read.table som vist i afsnit 6.2 og 6.3, eller med funktionen data.frame. I modsætning til en associationsliste vises et datasæt på tabelform med en kolonne for hver komponent. Det er muligt netop fordi komponenterne er vektorer af samme længde: > d <- data.frame(t=c(1.0, 1.5, 2.0, 2.5, 3.0), y=c(1.4, 0.3, -1.5, -3.1, -4.8)) > d t y Nulpunkt for funktion, og løsning af ligning med én ubekendt I R kan man løse vilkårlige ligninger med én ubekendt x ved at finde nulpunkt i en passende funktion. For eksempel kan man løse ligningen x = cos(x) ved at definere funktionen f (x) = x cos(x) og så bruge R til at finde en værdi af x for hvilken f (x) = 0: > f <- function(x) ( x - cos(x) ) > res <- uniroot(f, c(-10, 10)) > res $root [1] $f.root [1] e-06 $iter [1] 5 $estim.prec [1] e-05 Argumentet c(-10,10) til uniroot angiver at nulpunktet skal søges i intervallet [ 10, 10]. Funktionen f skal have forskelligt fortegn i de to endepunkter, og uniroot benytter så en iterativ procedure til at finde et nulpunkt for f. Resultatet res er en associationsliste med fire komponenter: root er løsningen til ligningen; f.root er funktionens værdi beregnet som f(res$root) i det punkt; iter angiver hvor meget arbejde der skulle til at finde løsningen; og estim.prec er den formodede fejl på løsningen. Det er ikke alle funktioner der har nulpunkter og ikke alle ligninger der har løsninger, så man skal tjekke at f.root faktisk er tæt på nul. I eksemplet ovenfor er den e-06, der som bekendt betyder , altså , som er ganske tæt på nul. På grund af computerens begrænsede regnenøjagtighed kan man ikke forvente at resultatet er eksakt nul. Med uniroot kan man kun finde ét nulpunkt ad gangen. For at finde alle nulpunkter kan man plotte funktionen, og derefter søge nulpunkter separat for passende små intervaller omkring skæringspunkterne med første-aksen (hvor jo f (x) = 0). For eksempel ser man for polynomiet p i figur 3 at der må være et nulpunkt i intervallet [ 2,0], et nulpunkt i intervallet [0,2], og et nulpunkt i intervallet [4,6]: 27

28 > uniroot(p, c(-2,0)) $ root [1] > uniroot(p, c(0,2)) $ root [1] > uniroot(p, c(4,6)) $ root [1] Men netop i specialtilfældet hvor funktionen er et polynomium p(x) = a 0 + a 1 x + + a n x n kan man finde alle rødder på en gang ved at bruge den specielle funktion polyroot(c(a 0, a 1,..., a n )). 13 Numerisk optimering: minimum og maksimum Numerisk optimering af en funktion f går ud på at finde den værdi af x som giver den mindste (eller største) værdi f (x) af funktionen. For eksempel kunne f (x) udtrykke det økonomiske udbytte ved at tilføre x enheder kunstgødning til en mark. Dette udbytte består jo af en indtægt fra salg af høstudbyttet minus en udgift til indkøb og spredning af kunstgødningen. Lad os antage at høstudbyttet som funktion af gødningstilførslen t beskrives af funktionen u(t) = 20t t og at vi tjener 4000 kroner per ton høstudbytte men skal betale 5000 kroner per ton gødning, så det økonomiske udbytte som funktion af gødningstilførslen t er f (t) = 4000u(t) 5000t Nu kan vi bruge R til at finde den værdi af t der maksimerer fortjenesten: > u <- function(t) ( 20 * t / (t+1) + 10 ) > f <- function(t) ( 4000 * u(t) * t ) > optimize(f, interval=c(0,100), maximum=true) $maximum [1] $objective [1] Argumenterne til funktionen optimize er først funktionen f (t) der skal maksimeres og dernæst det interval af t-værdier der skal undersøges, her [0, 100]. Parameteren maximum=true angiver at f (t) skal maksimeres, ikke minimeres. Resultatet er en associationsliste med to komponenter: maximum er den værdi af t der maksimerer f (t), og objective er den tilsvarende (maksimale) værdi af f (t). Man skal tænke sig om når man bruger numerisk optimering til at minimere (eller maksimere) en funktion, for der er flere faldgruber: 1. Det kan være at funktionen slet ikke har noget minimum (eller maksimum), enten fordi den er ubegrænset eller fordi den konvergerer mod en øvre (eller nedre) grænse for x ±. For eksempel har funktionen g(x) = x 2 ikke noget minimum, og h(x) = 1 1 x har ikke noget maksimum. 2. Det kan være at funktionen har flere minima (eller maksima); i så fald giver R s optimeringsrutine bare et af dem, men ikke nødvendigvis det man forventede. Således er det vigtigt i eksemplet ovenfor at søge maksimum blandt ikke-negative værdier af gødningstilførslen t, her intervallet [0, 100]. Dels er det meningsløst i praksis at tilføre en negativ mængde gødning, dels kan funktionen f faktisk antage vilkårlig store værdier for store negative t. 28

29 3. Det kan være at funktionen har lokale minima (eller maksima) og at R s optimeringsrutine finder et af de lokale minima (eller maksima) i stedet for et af de globale. Som eksempel på det første problem kan vi forsøge at minimere funktionen g(x) = x 2. Som det ses er svaret fra optimize helt hen i vejret: > g <- function(x) ( -x^2 ) > optimize(g, interval=c(-100,100)) $minimum [1] $objective [1] Funktionen optimize kan kun bruges til at optimere (maksimere eller minimere) en funktion f (x) af ét argument. En anden funktion, optim, kan bruges til at optimere funktioner af flere argumenter. 14 Numerisk integration Man kan bruge R til at foretage numerisk integration af en funktion. For eksempel for at integrere sinusfunktionen fra 0 til π: > integrate(sin, 0, pi) 2 with absolute error < 2.2e-14 Dette virker naturligvis på samme måde med en funktion man selv har defineret: > f <- function(x) ( 7*x^2+x^4 ) > integrate(f, 0, 3) with absolute error < 1.2e-12 eller med funktionen defineret direkte i kaldet af integrate: > integrate(function(x) ( 7*x^2+x^4 ), 0, 3) with absolute error < 1.2e-12 Ud over værdien af integralet får man også en vurdering af størrelsen af fejlen. Funktionen integrate giver ikke bare en talværdi, men en associationsliste (afsnit 11) med bl.a. komponenterne value (værdien af integralet) og abs.error (størrelsen af fejlen). Hvis man ønsker at regne videre på resultatet af integrationen skal man altså udtage value fra listen, fx som følger: > res <- integrate(f, 0, 3) > res$value * 3 [1] Det er muligt at integrere til eller fra uendelig (Inf): > integrate(function(x)(exp(-2*x)), 0, Inf) 0.5 with absolute error < 7.7e-05 > integrate(function(x)(1/x^2), 1, Inf) 1 with absolute error < 1.1e-14 > integrate(function(x)(exp(-x^2)), -Inf, Inf) with absolute error < 4.3e-06 29

30 Funktion Resultat runif(n) Vektor med n ligefordelte tilfældige tal i [0,1] runif(n,min=1,max=4) Vektor med n ligefordelte tilfældige tal i [1,4] rnorm(n) Vektor med n tilfældige tal, normalfordelt N(0, 1) rnorm(n,m,v) Vektor med n tilfældige tal, normalfordelt N(m, v) prod(v) Produktet af elementerne i vektor v sum(v) Summen af elementerne i vektor v mean(v) Middelværdi af elementerne i vektor v var(v) Varians af elementerne i vektor v min(v) Minimum af elementerne i vektor v max(v) Maksimum af elementerne i vektor v summary(d) Min, max, middelværdi og kvartiler i d lm(formel, data=datasæt) Tilpasning af lineær model, lineær regression Figur 12: Nogle simple statistiske funktioner. Funktionen integrate virker ved at beregne værdien af den givne funktion i passende mange punkter. Antallet kan begrænses med parameteren subdivisions, hvis defaultværdi er 100. For funktioner såsom f (x) = sin( 1 x ), som svinger meget så det er vanskeligt at beregne integralet, kan det være nødvendigt at forøge subdivisions for at få et resultat: > integrate(function(x)(sin(1/x)), 0, 1) Error in integrate(function(x) (sin(1/x)), 0, 1) : maximum number of subdivisions reached > integrate(function(x)(sin(1/x)), 0, 1, subdivisions=10000) with absolute error < 9.7e-05 Man kan ikke bruge R til at beregne stamfunktion (symbolsk integration). 15 Simple statistiske funktioner Figur 12 viser nogle simple statistiske funktioner; mere avancerede statistiske funktioner i R forklares i KVL s statistikkurser. Funktionerne runif og rnorm, der står for random uniform (ligefordeling) og random normal (normalfordeling), bruges til at generere pseudotilfældige tal. Dette er især nyttigt til simulering af fx biologiske eller økonomiske processer. Funktionen summary beregner middelværdi, kvartiler og nogle andre oplysninger om et datasæt fra en kontinuert fordeling. Hvis d er grisedatasættet fra afsnit 6 får man således: > summary(d) Tid Kontrol Vækst Min. : 30.0 Min. :5.430 Min. : st Qu.: st Qu.: st Qu.:5.330 Median : Median :5.735 Median :5.345 Mean : Mean :5.776 Mean : rd Qu.: rd Qu.: rd Qu.:5.560 Max. : Max. :6.450 Max. :

Noter om R. Morten Larsen og Peter Sestoft. Institut for Grundvidenskab og Miljø Det Biovidenskabelige Fakultet Københavns Universitet

Noter om R. Morten Larsen og Peter Sestoft. Institut for Grundvidenskab og Miljø Det Biovidenskabelige Fakultet Københavns Universitet Noter om R Morten Larsen og Peter Sestoft Institut for Grundvidenskab og Miljø Det Biovidenskabelige Fakultet Københavns Universitet Version 6.0 af 2010-11-25. Den seneste udgave af disse noter kan hentes

Læs mere

MATEMATIK OG DATABEHANDLING. Noter om R. Noter om Regneark

MATEMATIK OG DATABEHANDLING. Noter om R. Noter om Regneark MATEMATIK OG DATABEHANDLING Noter om R og Noter om Regneark Morten Larsen og Peter Sestoft Institut for Grundvidenskab Den Kongelige Veterinær- og Landbohøjskole, KVL Version 2.0.1 af 2006-09-20 Indhold

Læs mere

MATEMATIK OG DATABEHANDLING. Noter om R. Noter om Regneark

MATEMATIK OG DATABEHANDLING. Noter om R. Noter om Regneark MATEMATIK OG DATABEHANDLING Noter om R og Noter om Regneark Morten Larsen og Peter Sestoft Institut for Grundvidenskab Det Biovidenskabelige Fakultet Københavns Universitet Version 3.0 af 2007-07-25 Indhold

Læs mere

Noter om R. Morten Larsen og Peter Sestoft. Institut for Grundvidenskab og Miljø Det Biovidenskabelige Fakultet Københavns Universitet

Noter om R. Morten Larsen og Peter Sestoft. Institut for Grundvidenskab og Miljø Det Biovidenskabelige Fakultet Københavns Universitet Noter om R Morten Larsen og Peter Sestoft Institut for Grundvidenskab og Miljø Det Biovidenskabelige Fakultet Københavns Universitet Version 4.0.6 af 2009-01-30. Den seneste udgave af disse noter kan hentes

Læs mere

1 Start og afslutning. Help.

1 Start og afslutning. Help. Afdeling for Teoretisk Statistik STATISTIK 2 Institut for Matematiske Fag Jørgen Granfeldt Aarhus Universitet 24. september 2003 Hermed en udvidet udgave af Jens Ledet Jensens introduktion til R. 1 Start

Læs mere

Huskesedler. Anvendelse af regneark til statistik

Huskesedler. Anvendelse af regneark til statistik Huskesedler Anvendelse af regneark til statistik August 2013 2 Indholdsfortegnelse Aktivere Analysis Toolpak... 4 Dataudtræk fra Danmarks Statistik... 4 Kopiering af formler... 4 Målsøgning... 5 Normalfordeling...

Læs mere

APPENDIX A INTRODUKTION TIL DERIVE

APPENDIX A INTRODUKTION TIL DERIVE APPENDIX A INTRODUKTION TIL DERIVE z x y z=exp( x^2 0.5y^2) CAS er en fællesbetegnelse for matematikprogrammer, som foruden numeriske beregninger også kan regne med symboler og formler. Det betyder: Computer

Læs mere

Vejledning i brug af Gym-pakken til Maple

Vejledning i brug af Gym-pakken til Maple Vejledning i brug af Gym-pakken til Maple Gym-pakken vil automatisk være installeret på din pc eller mac, hvis du benytter cd'en Maple 16 - Til danske Gymnasier eller en af de tilsvarende installere. Det

Læs mere

i x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0

i x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0 BAndengradspolynomier Et polynomium er en funktion på formen f ( ) = an + an + a+ a, hvor ai R kaldes polynomiets koefficienter. Graden af et polynomium er lig med den højeste potens af, for hvilket den

Læs mere

Brugervejledning til Graph

Brugervejledning til Graph Graph (brugervejledning) side 1/17 Steen Toft Jørgensen Brugervejledning til Graph Graph er et gratis program, som ikke fylder meget. Downloades på: www.padowan.dk/graph/. Programmet er lavet af Ivan Johansen,

Læs mere

Deskriptiv statistik. Version 2.1. Noterne er et supplement til Vejen til matematik AB1. Henrik S. Hansen, Sct. Knuds Gymnasium

Deskriptiv statistik. Version 2.1. Noterne er et supplement til Vejen til matematik AB1. Henrik S. Hansen, Sct. Knuds Gymnasium Deskriptiv (beskrivende) statistik er den disciplin, der trækker de væsentligste oplysninger ud af et ofte uoverskueligt materiale. Det sker f.eks. ved at konstruere forskellige deskriptorer, d.v.s. regnestørrelser,

Læs mere

Newtons afkølingslov

Newtons afkølingslov Newtons afkølingslov miniprojekt i emnet differentialligninger Teoretisk del Vi skal studere, hvordan temperaturen i en kop kaffe aftager med tiden. Lad T ( t ) betegne temperaturen i kaffen til tiden

Læs mere

Dokumentation af programmering i Python 2.75

Dokumentation af programmering i Python 2.75 Dokumentation af programmering i Python 2.75 Af: Alexander Bergendorff Jeg vil i dette dokument, dokumentere det arbejde jeg har lavet i løbet opstarts forløbet i Programmering C. Jeg vil forsøge, så vidt

Læs mere

Højere Teknisk Eksamen maj 2008. Matematik A. Forberedelsesmateriale til 5 timers skriftlig prøve NY ORDNING. Undervisningsministeriet

Højere Teknisk Eksamen maj 2008. Matematik A. Forberedelsesmateriale til 5 timers skriftlig prøve NY ORDNING. Undervisningsministeriet Højere Teknisk Eksamen maj 2008 HTX081-MAA Matematik A Forberedelsesmateriale til 5 timers skriftlig prøve NY ORDNING Undervisningsministeriet Fra onsdag den 28. maj til torsdag den 29. maj 2008 Forord

Læs mere

Institut for Matematiske Fag Sandsynlighedsregning og Statistik 2. R opgaver

Institut for Matematiske Fag Sandsynlighedsregning og Statistik 2. R opgaver Institut for Matematiske Fag Sandsynlighedsregning og Statistik 2 Københavns Universitet Susanne Ditlevsen og Helle Sørensen R opgaver Det er en god ide at vænne sig til at skrive kommandoerne i en editor

Læs mere

qwertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwert yuiopåasdfghjklæøzxcvbnmqwertyui Polynomier opåasdfghjklæøzxcvbnmqwertyuiopå

qwertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwert yuiopåasdfghjklæøzxcvbnmqwertyui Polynomier opåasdfghjklæøzxcvbnmqwertyuiopå qwertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwert yuiopåasdfghjklæøzxcvbnmqwertyui Polynomier opåasdfghjklæøzxcvbnmqwertyuiopå Kort gennemgang af polynomier og deres egenskaber. asdfghjklæøzxcvbnmqwertyuiopåasd

Læs mere

Introduktion til R. March 8, Regne- og tegneprogrammet R kan frit downloades fra adressen. http : //mirrors.sunsite.dk.cran

Introduktion til R. March 8, Regne- og tegneprogrammet R kan frit downloades fra adressen. http : //mirrors.sunsite.dk.cran Introduktion til R March 8, 2004 1 Adgang til R Regne- og tegneprogrammet R kan frit downloades fra adressen http : //mirrors.sunsite.dk.cran 2 Start og afslutning. Help. I et vindue starter i R, typisk

Læs mere

Rygtespredning: Et logistisk eksperiment

Rygtespredning: Et logistisk eksperiment Rygtespredning: Et logistisk eksperiment For at det nu ikke skal ende i en omgang teoretisk tørsvømning er det vist på tide vi kigger på et konkret logistisk eksperiment. Der er selvfølgelig flere muligheder,

Læs mere

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Computere er uvurderlige redskaber for personer der ønsker at arbejde med matematiske modeller

Læs mere

Talrækker. Aktivitet Emne Klassetrin Side

Talrækker. Aktivitet Emne Klassetrin Side VisiRegn ideer 3 Talrækker Inge B. Larsen ibl@dpu.dk INFA juli 2001 Indhold: Aktivitet Emne Klassetrin Side Vejledning til Talrækker 2-4 Elevaktiviteter til Talrækker 3.1 Talrækker (1) M-Æ 5-9 3.2 Hanoi-spillet

Læs mere

Formler og diagrammer i OpenOffice Calc

Formler og diagrammer i OpenOffice Calc Formler i Calc Regneudtryk Sådan skal det skrives i Excel Facit 34 23 =34*23 782 47 23 =47/23 2,043478261 27³ =27^3 19683 456 =KVROD(456) 21,3541565 7 145558 =145558^(1/7) 5,464829073 2 3 =2*PI()*3 18,84955592

Læs mere

REDCAPS DATADICTIONARY. Ekport og overblik over datadictionary Redigering af instrumenter via datadictionary Import a datadictionary

REDCAPS DATADICTIONARY. Ekport og overblik over datadictionary Redigering af instrumenter via datadictionary Import a datadictionary REDCAPS DATADICTIONARY Ekport og overblik over datadictionary Redigering af instrumenter via datadictionary Import a datadictionary Datadictionary Den komplette samling af opbyggede instrumenter, felter,

Læs mere

Skrivebordet Windows 10

Skrivebordet Windows 10 Få adgang til Stifinder, Indstillinger og andre apps, du bruger ofte, i venstre side af menuen Start. Hvis du vil se alle dine apps og programmer, skal du vælge Alle apps. Vises der en pil til højre for

Læs mere

Søren Christiansen 22.12.09

Søren Christiansen 22.12.09 1 2 Dette kompendie omhandler simpel brug af Excel til brug for simpel beregning, såsom mængde og pris beregning sammentælling mellem flere ark. Excel tilhører gruppen af programmer som samlet kaldes Microsoft

Læs mere

Praktiske Maple Ting. - Hvis du skal indsætte kvadratroden, et integrale, lambda, osv. Så skriv eks. Sqrt, int, eller lambda, tryk escape og du kan

Praktiske Maple Ting. - Hvis du skal indsætte kvadratroden, et integrale, lambda, osv. Så skriv eks. Sqrt, int, eller lambda, tryk escape og du kan Praktiske Maple Ting. - Hvis du skal indsætte kvadratroden, et integrale, lambda, osv. Så skriv eks. Sqrt, int, eller lambda, tryk escape og du kan så vælge tegnet. - For at definere noget, eks en x værdi,

Læs mere

π er irrationel Frank Nasser 10. december 2011

π er irrationel Frank Nasser 10. december 2011 π er irrationel Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau)

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau) Matematik i WordMat En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau) Indholdsfortegnelse 1. Introduktion... 3 2. Beregning... 4 3. Beregning med brøker...

Læs mere

Matlab-kommandoer. Robert Jacobsen. 9. august 2010

Matlab-kommandoer. Robert Jacobsen. 9. august 2010 Matlab-kommandoer Robert Jacobsen 9. august 2010 1 Kommandoer til Matlabs funktionaliteter Ønsker man at køre Matlab fra terminalen, ses de mulige options med matlab -help. For at starte Matlab uden det

Læs mere

Manual til overføring af fotografier fra kamera til harddisk.

Manual til overføring af fotografier fra kamera til harddisk. Manual til overføring af fotografier fra kamera til harddisk. Det første man skal gøre sig klart er, hvor man som udgangspunkt vil lægge sine fotografier. Især når man er mange, der bruger den samme computer,

Læs mere

Brugervejledning til diverse i OS X

Brugervejledning til diverse i OS X Brugervejledning til diverse i OS X Gert Søndergaard 19. august 2003 Indholdsfortegnelse Indholdsfortegnelse...2 Introduktion til Mac OS X...3 Flere brugere på samme maskine...3 Dock - den gamle kvikstart...4

Læs mere

Opgaver til Maple kursus 2012

Opgaver til Maple kursus 2012 Opgaver til Maple kursus 2012 Jonas Camillus Jeppesen, jojep07@student.sdu.dk Martin Gyde Poulsen, gyde@nqrd.dk October 7, 2012 1 1 Indledende opgaver Opgave 1 Udregn følgende regnestykker: (a) 2342 +

Læs mere

SPSS introduktion Om at komme igang 1

SPSS introduktion Om at komme igang 1 SPSS introduktion Om at komme igang 1 af Henrik Lolle, oktober 2003 Indhold Indledning 1 Indgang til SPSS 2 Frekvenstabeller 3 Deskriptive statistikker gennemsnit, standardafvigelse, median osv. 4 Søjlediagrammer

Læs mere

Tastevejledning Windows XP

Tastevejledning Windows XP Tastevejledning Windows XP Tastevejledningen dækker den danske udgave af Windows XP. Der er taget udgangspunkt i en standard installation, hvor der ikke er foretaget tilpasninger i skærmopsætning, valg

Læs mere

VDI-GUIDE FOR AALESTRUP REALSKOLE

VDI-GUIDE FOR AALESTRUP REALSKOLE VDI-GUIDE FOR AALESTRUP REALSKOLE Af Martin Lohse Mikkelsen IT-vejleder - Side 1 af 37 Forord Dette dokument skal hjælpe dig med brugen af skolens VDI system. Et VDI-system er en virtuel computer, som

Læs mere

R E D C A P M A N U A L. Importér data til REDCap fra CSV-fil. Opbyg din eksisterende database i REDCap Version 1.0

R E D C A P M A N U A L. Importér data til REDCap fra CSV-fil. Opbyg din eksisterende database i REDCap Version 1.0 R E D C A P M A N U A L Importér data til REDCap fra CSV-fil Opbyg din eksisterende database i REDCap Version 1.0 Introduktion Der opstår ofte et ønske om at importere data fra andre databaser til REDCap,

Læs mere

[PJ] QuickGuide.dfw QuickGuide

[PJ] QuickGuide.dfw QuickGuide [PJ] QuickGuide.dfw 07-04-003 QuickGuide Derives resultater Husk at Derive angiver decimalbrøker uden at forhøje sidste ciffer. Så når du udregner fx /3 får du 0.66666 og ikke 0.66667. Du kan altså ikke

Læs mere

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje.

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje. Maple Dette kapitel giver en kort introduktion til hvordan Maple 12 kan benyttes til at løse mange af de opgaver, som man bliver mødt med i matematiktimerne på HHX. Skærmbilledet Vi starter med at se lidt

Læs mere

i tredje sum overslag rationale tal tiendedele primtal kvotient

i tredje sum overslag rationale tal tiendedele primtal kvotient ægte 1 i tredje 3 i anden rumfang år 12 måle kalender hældnings a hældningskoefficient lineær funktion lagt n resultat streg adskille led adskilt udtrk minus (-) overslag afrunde præcis skøn formel andengradsligning

Læs mere

Noter til Computerstøttet Beregning Taylors formel

Noter til Computerstøttet Beregning Taylors formel Noter til Computerstøttet Beregning Taylors formel Arne Jensen c 23 1 Introduktion I disse noter formulerer og beviser vi Taylors formel. Den spiller en vigtig rolle ved teoretiske overvejelser, og også

Læs mere

Om at udregne enkeltstående hexadecimaler i tallet pi

Om at udregne enkeltstående hexadecimaler i tallet pi Om at udregne enkeltstående hexadecimaler i tallet pi I 996 var det en sensation, da det kom frem, at det var lykkedes D. Bailey, P. Borwein og S. Plouffe at finde en formel for tallet π, med hvilken man

Læs mere

Komplekse Tal. 20. november 2009. UNF Odense. Steen Thorbjørnsen Institut for Matematiske Fag Århus Universitet

Komplekse Tal. 20. november 2009. UNF Odense. Steen Thorbjørnsen Institut for Matematiske Fag Århus Universitet Komplekse Tal 20. november 2009 UNF Odense Steen Thorbjørnsen Institut for Matematiske Fag Århus Universitet Fra de naturlige tal til de komplekse Optælling af størrelser i naturen De naturlige tal N (N

Læs mere

Et udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0.

Et udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0. Konkrete funktioner Potenser Som udgangspunkt er brugen af potenser blot en forkortelse for at gange et tal med sig selv et antal gange. Hvis a Rskriver vi a 2 for a a a 3 for a a a a 4 for a a a a (1).

Læs mere

R syntaks. Installation af R

R syntaks. Installation af R R syntaks Denne note er en introduktion 1 til syntaksen i R. Den kode, vi skal bruge til modellerne, står i bogen eller kommer til at være på hjemmesiden i den takt, vi gennemgår teorien. Så det, vi skal

Læs mere

Sådan får du Salmebogen på CD-ROM til at fungere i Internet Explorer 7 både under Windows XP og Windows Vista

Sådan får du Salmebogen på CD-ROM til at fungere i Internet Explorer 7 både under Windows XP og Windows Vista Sådan får du Salmebogen på CD-ROM til at fungere i Internet Explorer 7 både under Windows XP og Windows Vista Beskrivelse af fejlen Salmebogen på CD-ROM har visse problemer med at fungere i Internet Explorer

Læs mere

ALMINDELIGT ANVENDTE FUNKTIONER

ALMINDELIGT ANVENDTE FUNKTIONER ALMINDELIGT ANVENDTE FUNKTIONER I dette kapitel gennemgås de almindelige regnefunktioner, samt en række af de mest nødvendige redigerings- og formateringsfunktioner. De øvrige redigerings- og formateringsfunktioner

Læs mere

Formler og diagrammer i Excel 2007

Formler og diagrammer i Excel 2007 Formler i Excel Regneudtryk Sådan skal det skrives i Excel Facit 34 23 =34*23 782 47 23 =47/23 2,043478261 27³ =27^3 19683 456 =KVROD(456) 21,3541565 7 145558 =145558^(1/7) 5,464829073 2 3 =2*PI()*3 18,84955592

Læs mere

Lidt om harddisken. Harddisken er dit lager

Lidt om harddisken. Harddisken er dit lager 60+Bornholm Lidt om harddisken Harddisken er dit lager Alt, hvad du arbejder med på din pc, skal ligge på en (hard)disk (eller på en cd/dvd eller USBstick men de opfattes som diske af pc en). Alle de programmer,

Læs mere

Kom i gang-opgaver til differentialregning

Kom i gang-opgaver til differentialregning Kom i gang-opgaver til differentialregning 00 Karsten Juul Det er kortsigtet at løse en opgave ved blot at udskifte tallene i en besvarelse af en tilsvarende opgave Dette skyldes at man så normalt ikke

Læs mere

Matricer og lineære ligningssystemer

Matricer og lineære ligningssystemer Matricer og lineære ligningssystemer Grete Ridder Ebbesen Virum Gymnasium Indhold 1 Matricer 11 Grundlæggende begreber 1 Regning med matricer 3 13 Kvadratiske matricer og determinant 9 14 Invers matrix

Læs mere

Matematikken bag Parallel- og centralprojektion

Matematikken bag Parallel- og centralprojektion Matematikken bag parallel- og centralojektion 1 Matematikken bag Parallel- og centralojektion Dette er et redigeret uddrag af lærebogen: Programmering med Delphi fra 2003 (570 sider). Delphi ophørte med

Læs mere

Lectio. Overgang til Lectio Eksamensmodul. MaCom A/S Vesterbrogade 48, 1. 1620 København V Telefon: 33 79 79 00

Lectio. Overgang til Lectio Eksamensmodul. MaCom A/S Vesterbrogade 48, 1. 1620 København V Telefon: 33 79 79 00 Lectio Overgang til Lectio Eksamensmodul 1992-2008 MaCom A/S MaCom A/S Vesterbrogade 48, 1. 1620 København V Telefon: 33 79 79 00 Telefax: 33 79 79 84 E-mail: mail@macom.dk Internet: www.macom.dk Forord

Læs mere

Velkommen til ABC Analyzer! Denne basis manual indeholder introduktion til: De primære funktioner De 6 faneblade Dataslicers Rapporter og klikrapport

Velkommen til ABC Analyzer! Denne basis manual indeholder introduktion til: De primære funktioner De 6 faneblade Dataslicers Rapporter og klikrapport Velkommen til ABC Analyzer! Denne basis manual indeholder introduktion til: De primære funktioner De 6 faneblade Dataslicers Rapporter og klikrapport Manual opdateret Oktober 2015 Copyright ABC Softwork

Læs mere

Epistel E2 Partiel differentiation

Epistel E2 Partiel differentiation Epistel E2 Partiel differentiation Benny Lautrup 19 februar 24 Funktioner af flere variable kan differentieres efter hver enkelt, med de øvrige variable fasthol Definitionen er f(x, y) x f(x, y) f(x +

Læs mere

Mathcad Survival Guide

Mathcad Survival Guide Mathcad Survival Guide Mathcad er en blanding mellem et tekstbehandlingsprogram (Word), et regneark (Ecel) og en grafisk CAS-lommeregner. Programmet er velegnet til matematikopgaver, fysikrapporter og

Læs mere

Manual og Hjælp Skoletasken 2

Manual og Hjælp Skoletasken 2 Manual og Hjælp Skoletasken 2 I Skoletasken 2 - Hjælp Indhold I Introduktion 1 Velkomst 2... 2 2 Systemkrav... 2 3 Installation... 3 4 Skoletasken... 8 II Opsætning 10 1 Systemopsætning... 10 2 Bogopsætning...

Læs mere

Tirsdagssejladser 2011 -Brugervejledning til Sailwave

Tirsdagssejladser 2011 -Brugervejledning til Sailwave Tirsdagssejladser 2011 -Brugervejledning til Sailwave Dette dokument beskriver brugen af Sailwave i forbindelse med tirsdagssejladser i Kerteminde Sejlklub. Pt anvendes Sailwave til resultatberegning efter

Læs mere

Vejledning til LKdaekW.exe 1. Vejledning til programmet LKdaekW.exe Kristian Hertz

Vejledning til LKdaekW.exe 1. Vejledning til programmet LKdaekW.exe Kristian Hertz Vejledning til LKdaekW.exe 1 Vejledning til programmet LKdaekW.exe Kristian Hertz Vejledning til LKdaekW.exe 2 Ansvar Programmet anvendes helt på eget ansvar, og hverken programmør eller distributør kan

Læs mere

Vejledning Aarhus Universitets wordskabeloner

Vejledning Aarhus Universitets wordskabeloner Vejledning Aarhus Universitets wordskabeloner Opdateret den 13. maj 2014 Indhold Introduktion... 3 Sådan opretter du et nyt dokument via menuen 'AU'... 4 Dialogboksen Dokumentoplysninger... 6 Side1: Dokumentoplysninger...

Læs mere

Modul 8: Clouds (Lagring af filer)

Modul 8: Clouds (Lagring af filer) Det sprogpædagogiske kørekort 2012/2013 Modul 8: Clouds (Lagring af filer) Del I Christoph Schepers Studieskolen 8/2012 Indholdsfortegnelse Introduktion... 2 Installer Dropbox (punkt 1-3).. 3 Åbn Dropbox

Læs mere

Formler og diagrammer i Excel 2000/2003 XP

Formler og diagrammer i Excel 2000/2003 XP Formler i Excel Regneudtryk Sådan skal det skrives i Excel Facit 34 23 =34*23 782 47 23 =47/23 2,043478261 27³ =27^3 19683 456 =KVROD(456) 21,3541565 7 145558 =145558^(1/7) 5,464829073 2 3 =2*PI()*3 18,84955592

Læs mere

Fagets IT Introduktion til MATLAB

Fagets IT Introduktion til MATLAB Fagets IT Introduktion til MATLAB Mads G. Christensen mgc@kom.auc.dk Afdeling for Kommunikationsteknologi, Aalborg Universitet. MATLAB 2002 p.1/28 Kursusoversigt 1. Introduktion, matrix-indeksering, -operationer

Læs mere

Allan C. Malmberg. Terningkast

Allan C. Malmberg. Terningkast Allan C. Malmberg Terningkast INFA 2008 Programmet Terning Terning er et INFA-program tilrettelagt med henblik på elever i 8. - 10. klasse som har særlig interesse i at arbejde med situationer af chancemæssig

Læs mere

Vejledning for anvendelse af PensionsIndberetningssystem PI

Vejledning for anvendelse af PensionsIndberetningssystem PI Vejledning for anvendelse af PensionsIndberetningssystem PI PNN PENSION 190503/AMB Indholdsfortegnelse 1. INDBERETNINGER... 3 2. SØG INDBERETNING... 4 3. NY INDBERETNING... 5 4. INDLÆS FIL... 7 5. INDTAST

Læs mere

Betjeningsvejledning. for. UniRace

Betjeningsvejledning. for. UniRace Betjeningsvejledning for UniRace 2007 Et konkurrence indtastningsprogram. Indholdsfortegnelse Indholdsfortegnelse... 2 Figur fortegnelse... 3 Indledning... 4 Race info... 4 Indtastning af deltagere...

Læs mere

IDAP manual Analog modul

IDAP manual Analog modul IDAP manual Analog modul Dato: 15-06-2005 11:01:06 Indledning Til at arbejde med opsamlede og lagrede analoge data i IDAP portalen, findes en række funktions områder som brugeren kan anvende. Disse områder

Læs mere

IT Support Guide. Installation af netværksprinter (direkte IP print)

IT Support Guide. Installation af netværksprinter (direkte IP print) IT Support Guide Denne guide er hentet på www.spelling.dk Program: Microsoft Windows Vista Program sprog version: ENG (US) Guide emne: Installation af netværksprinter (direkte IP print) Publikationsnr.:

Læs mere

Statistik Lektion 1. Introduktion Grundlæggende statistiske begreber Deskriptiv statistik Sandsynlighedsregning

Statistik Lektion 1. Introduktion Grundlæggende statistiske begreber Deskriptiv statistik Sandsynlighedsregning Statistik Lektion 1 Introduktion Grundlæggende statistiske begreber Deskriptiv statistik Sandsynlighedsregning Introduktion Kasper K. Berthelsen, Inst f. Matematiske Fag Omfang: 8 Kursusgang I fremtiden

Læs mere

Graph brugermanual til matematik C

Graph brugermanual til matematik C Graph brugermanual til matematik C Forord Efterfølgende er en guide til programmet GRAPH. Programmet kan downloades gratis fra nettet og gemmes på computeren/et usb-stik. Det betyder, det også kan anvendes

Læs mere

Billedbeskæring & Irfan View

Billedbeskæring & Irfan View Indholdsfortegnelse Indholdsfortegnelse...1 Hvordan redigerer jeg billeder?...2 Installation af Irfan View...2 Opsætning af Irfan View...5 Gem med en fornuftig billedtype...5 Irfanview på dansk...6 Brug

Læs mere

Skriv punkternes koordinater i regnearket, og brug værktøjet To variabel regressionsanalyse.

Skriv punkternes koordinater i regnearket, og brug værktøjet To variabel regressionsanalyse. Opdateret 28. maj 2014. MD Ofte brugte kommandoer i Geogebra. Generelle Punktet navngives A Geogebra navngiver punktet Funktionen navngives f Funktionen navngives af Geogebra Punktet på grafen for f med

Læs mere

Lineære ligningssystemer

Lineære ligningssystemer enote 2 1 enote 2 Lineære ligningssystemer Denne enote handler om lineære ligningssystemer, om metoder til at beskrive dem og løse dem, og om hvordan man kan få overblik over løsningsmængdernes struktur.

Læs mere

Brug Photo Story 3 en let introduktion

Brug Photo Story 3 en let introduktion Brug Photo Story 3 en let introduktion Denne vejledning forudsætter at programmet Photo Story 3 er installeret på din computer. Se andetsteds for vejledning i at installere programmet, der kan findes gratis

Læs mere

t a l e n t c a m p d k Matematik Intro Mads Friis, stud.scient 27. oktober 2014 Slide 1/25

t a l e n t c a m p d k Matematik Intro Mads Friis, stud.scient 27. oktober 2014 Slide 1/25 Slide 1/25 Indhold 1 2 3 4 5 6 7 8 Slide 2/25 Om undervisningen Hvorfor er vi her? Hvad kommer der til at ske? 1) Teoretisk gennemgang ved tavlen. 2) Instruktion i eksempler. 3) Opgaveregning. 4) Opsamling.

Læs mere

Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 3. Juni 2014

Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 3. Juni 2014 Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 3. Juni 204 Mikkel Findinge Bemærk, at der kan være sneget sig fejl ind. Kontakt mig endelig, hvis du skulle falde over

Læs mere

Velkommen til ABC Analyzer! Grundkursusmanual 2 vil introducere dig til ABC Analyzers mere avancerede funktioner, bl.a.:

Velkommen til ABC Analyzer! Grundkursusmanual 2 vil introducere dig til ABC Analyzers mere avancerede funktioner, bl.a.: Velkommen til ABC Analyzer! Grundkursusmanual 2 vil introducere dig til ABC Analyzers mere avancerede funktioner, bl.a.: Kategoriseringer uden ABC-kategorier Krydstabel (trebenede) Beregnede og avancerede

Læs mere

Opgaver om koordinater

Opgaver om koordinater Opgaver om koordinater Formålet med disse opgaver er dels at træne noget matematik, dels at give oplysninger om og træning i brug af Mathcad: Matematik: Øge grundlæggende indsigt vedrørende koordinater

Læs mere

Differentialregning Infinitesimalregning

Differentialregning Infinitesimalregning Udgave 2.1 Differentialregning Infinitesimalregning Noterne gennemgår begreberne differentialregning, og anskuer dette som et derligere redskab til vækst og funktioner. Noterne er supplement til kapitel

Læs mere

1. Opbygning af et regneark

1. Opbygning af et regneark 1. Opbygning af et regneark Et regneark er et skema. Vandrette rækker og lodrette kolonner danner celler, hvori man kan indtaste tal, tekst, datoer og formler. De indtastede tal og data kan bearbejdes

Læs mere

Geometrimodulet generelt

Geometrimodulet generelt Indholdsfortegnelse side 1 side 3 side 3 side 4 side 5-6 side 7 side 7 side 7 side 8 side 8-16 side 17 side 17-20 side 21-24 side 25-28 side 29 side 30-32 side 33 Geometrimodulet generelt Opbygning af

Læs mere

Excel-4: Diagrammer og udskrift

Excel-4: Diagrammer og udskrift Excel-4: Diagrammer og udskrift Udfra indtastede tal og formler kan Excel oprette forskellige typer meget flotte diagrammer: grafer, kurver, søjler og cirkeldiagrammer. OPGAVE: Men der skal være nogle

Læs mere

Eksempel på logistisk vækst med TI-Nspire CAS

Eksempel på logistisk vækst med TI-Nspire CAS Eksempel på logistisk vækst med TI-Nspire CAS Tabellen herunder viser udviklingen af USA's befolkning fra 1850-1910 hvor befolkningstallet er angivet i millioner: Vi har tidligere redegjort for at antallet

Læs mere

Note om Monte Carlo eksperimenter

Note om Monte Carlo eksperimenter Note om Monte Carlo eksperimenter Mette Ejrnæs og Hans Christian Kongsted Økonomisk Institut, Københavns Universitet 9. september 003 Denne note er skrevet til kurset Økonometri på. årsprøve af polit-studiet.

Læs mere

Eksempel 9.1. Areal = (a 1 + b 1 )(a 2 + b 2 ) a 1 a 2 b 1 b 2 2a 2 b 1 = a 1 b 2 a 2 b 1 a 1 a 2 = b 1 b 2

Eksempel 9.1. Areal = (a 1 + b 1 )(a 2 + b 2 ) a 1 a 2 b 1 b 2 2a 2 b 1 = a 1 b 2 a 2 b 1 a 1 a 2 = b 1 b 2 Oversigt [LA] 9 Nøgleord og begreber Helt simple determinanter Determinant defineret Effektive regneregler Genkend determinant nul Test determinant nul Produktreglen Inversreglen Test inversregel og produktregel

Læs mere

Anklagemyndighedens Vidensbase

Anklagemyndighedens Vidensbase Anklagemyndighedens Vidensbase Indhold 1 OM DENNE VEJLEDNING... 2 2 LOGIN... 3 3 SØGNINGER... 4 3.1 SØG EFTER DOKUMENTER... 4 3.2 NAVIGÉR DIG FREM... 5 3.3 KOMBINÉR SØGNING OG NAVIGATION... 6 3.4 VISNING

Læs mere

Formelsamling Matematik C

Formelsamling Matematik C Formelsamling Matematik C Ib Michelsen Ikast 2011 Ligedannede trekanter Hvis to trekanter er ensvinklede har de proportionale sider (dvs. alle siderne i den ene er forstørrelser af siderne i den anden

Læs mere

Det sprogpædagogiske kørekort 2012/2013. Modul 9: Rettelse af kursistopgaver (Del 1)

Det sprogpædagogiske kørekort 2012/2013. Modul 9: Rettelse af kursistopgaver (Del 1) Det sprogpædagogiske kørekort 2012/2013 Modul 9: Rettelse af kursistopgaver (Del 1) Christoph Schepers Indhold I Ret opgaver i Word Markér fejl i farver (nemt og hurtigt).. Brug Words egne retteværktøjer:

Læs mere

Indhold. Jennie Mathiasen. Google Drev

Indhold. Jennie Mathiasen. Google Drev Indhold Opret Googlekonto... 2 Åbning af Google Drev... 5 Værktøjet Ny... 8 Værktøjet Mappe... 8 Værktøjet Upload fil... 10 Værktøjet Google Docs... 13 Værktøjet Google Sheets... 16 Værktøjet Google Slides...

Læs mere

Vejledende besvarelse på august 2009-sættet 2. december 2009

Vejledende besvarelse på august 2009-sættet 2. december 2009 Vejledende besvarelse på august 29-sættet 2. december 29 Det følgende er en vejledende besvarelse på eksamenssættet i kurset Calculus, som det så ud i august 29. Den tjener primært til illustration af,

Læs mere

Differentialligninger. Ib Michelsen

Differentialligninger. Ib Michelsen Differentialligninger Ib Michelsen Ikast 203 2 Indholdsfortegnelse Indholdsfortegnelse Indholdsfortegnelse...2 Ligninger og løsninger...3 Indledning...3 Lineære differentialligninger af første orden...3

Læs mere

Velkommen til IT for let øvede

Velkommen til IT for let øvede Velkommen til IT for let øvede Kursus er hjælp til selvhjælp og I får mest ud af det, hvis I også derhjemme afsætter nogle timer til øvelser på jeres computer. Vi sørger for hjemmeopgaver!! Der er masser

Læs mere

Fig. 1 Billede af de 60 terninger på mit skrivebord

Fig. 1 Billede af de 60 terninger på mit skrivebord Simulation af χ 2 - fordeling John Andersen Introduktion En dag kastede jeg 60 terninger Fig. 1 Billede af de 60 terninger på mit skrivebord For at danne mig et billede af hyppighederne flyttede jeg rundt

Læs mere

Sådan gør du Microsoft Word 2013

Sådan gør du Microsoft Word 2013 Microsoft Word 2013 Microsoft Word 2013 Indholdsfortegnelse Anvend skabelon... 3 Billede... 4 Dokumenthåndtering... 5 Flyt, kopier og sæt ind... 6 Flyt og kopier mellem dokumenter... 7 Gem... 8 Genbrug

Læs mere

CD-ORD hjælp CD-ORD 7. Mikro Værkstedet A/S

CD-ORD hjælp CD-ORD 7. Mikro Værkstedet A/S CD-ORD hjælp CD-ORD 7 Mikro Værkstedet A/S CD-ORD hjælp: CD-ORD 7 Mikro Værkstedet A/S Indholdsfortegnelse Forord... vii 1. CD-ORD i Windowsprogrammer... 1 2. Værktøjslinjen... 3 3. Profiler... 11 3.1.

Læs mere

Note om Monte Carlo metoden

Note om Monte Carlo metoden Note om Monte Carlo metoden Kasper K. Berthelsen Version 1.2 25. marts 2014 1 Introduktion Betegnelsen Monte Carlo dækker over en lang række metoder. Fælles for disse metoder er, at de anvendes til at

Læs mere

BRUGERMANUAL. easyweather pc software

BRUGERMANUAL. easyweather pc software BRUGERMANUAL easyweather pc software 1.0 general information BRUGERMANUAL FOR EASYWEATHER PC-SOFTWARE 4.0 grundlæggende indstillinger for easyweather software Når EASYWEATHER.EXE programmet er startet

Læs mere

Egenskaber ved Krydsproduktet

Egenskaber ved Krydsproduktet Egenskaber ved Krydsproduktet Frank Nasser 12. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk:

Læs mere

Maple 11 - Chi-i-anden test

Maple 11 - Chi-i-anden test Maple 11 - Chi-i-anden test Erik Vestergaard 2014 Indledning I dette dokument skal vi se hvordan Maple kan bruges til at løse opgaver indenfor χ 2 tests: χ 2 - Goodness of fit test samt χ 2 -uafhængighedstest.

Læs mere

Dynamicweb Exchange Opsætning

Dynamicweb Exchange Opsætning Brugervejledning Dynamicweb Exchange Opsætning OUTLOOK 2003 Document ID: UG-4008 Version: 1.30 2006.07.04 Dansk UG-4008 - Dynamicweb Exchange Opsætning, Outlook 2003 JURIDISK MEDDELELSE Copyright 2005-2006

Læs mere

Some like it HOT: Højere Ordens Tænkning med CAS

Some like it HOT: Højere Ordens Tænkning med CAS Some like it HOT: Højere Ordens Tænkning med CAS Bjørn Felsager, Haslev Gymnasium & HF, 2001 I år er det første år, hvor CAS-forsøget er et standardforsøg og alle studentereksamensopgaverne derfor foreligger

Læs mere