# Matematik og databehandling 2012 # Dette er R-kode, der løser de stillede øvelsesopgaver i R i modul B # (dog ikke afleveringsopgaverne). # Opgave Dat-B-2 # delopgave (1) seq(1, 10) seq(10, 1) seq(0.25, 5, by=0.25) seq(1, 29, by=2) # delopgave (2) 1:10 -1:-10 # Eller: -(1:10) 6.4:19.4 # Opgave Dat-B-3 # delopgave (1) seq(0.1, 1, by=0.1) seq(5, 100, by=5) seq(1.5, 9.5) seq(100, 0, by=-10) # delopgave (2) (1:10)/10 (1:20)*5 1.5:9.5 # Eller: (1:9)+0.5 (10:0)*10 # Opgave Dat-B-6 # delopgave (1) A <- matrix(c(1, 5, 2, 3), 2) B <- matrix(c(4, 7, 6, 8), 2) # delopgave (2) A%*%B B%*%A # Opgave Dat-B-7 # delopgave (1) solve(matrix(c(1, 9, 7, 13), 2)) # delopgave (2) solve(matrix(c(1, 9, 7, 13), 2), c(3, -2)) # Opgave Dat-B-8 # delopgave (1) A <- matrix(1:20, 4) # delopgave (2) A[1, 3] # række 1, søjle 3 A[4, 2] # række 4, søjle 2 A[3,] # hele 3. række A[, 4] # hele 4. søjle A[, 1:3] # tre første søjler A[3:4,] # hele række 3 og 4 A[3:4, 4:5] # to sidste rækker og søjler A[, c(1, 2, 4, 5)] # alle søjler undt. 3. A[, -3] # samme, alternativ måde # Opgave Dat-B-9 # delopgave (1) A <- matrix(c(0.2, 0.9, 0.8, 0.15), 2) v0 <- c(100, 0) v1 <- A%*%v0 v2 <- A%*%v1 v3 <- A%*%v2 v4 <- A%*%v3 v5 <- A%*%v4 V <- cbind(v0, v1, v2, v3, v4, v5) # delopgave (2) # Det er ikke eksplicit krævet i opgaven, men man er nødt til at angive # ylim for ikke at skære datapunkter i anden serie væk. # De tomme aksetekster er angivet fordi de automatisk valgte ser bøvede ud. plot(0:5, V[1,], type="o", col="red", ylim=c(0, 100), xlab="", ylab="") points(0:5, V[2,], type="o", col="blue") # Opgave Dat-B-10 plot(sin, -5, 5, axes=FALSE) axis(1, pos=0, at=-5:5) axis(2, pos=0, at=c(-4:-1, 1:4)/4, las=1) # Tricky at undgå mærke for y=0 ... # Opgave Dat-B-11 # delopgave (1) M <- matrix(c(0.2, 0.9, 0.8, 0.0), 2) q <- c(10, 0) v0 <- c(100, 0) # Initialisering: v <- v0 V <- matrix(v0, 2) # Fremskrivninger: for(i in 1:20) { v <- M%*%v + q ; V <- cbind(V, v) } # Vis resultatet: V # delopgave (2) # Det er ikke eksplicit krævet i opgaven, men man er nødt til at angive # ylim for ikke at skære datapunkter i anden serie væk. # De tomme aksetekster er angivet fordi de automatisk valgte ser bøvede ud. plot(0:20, V[1,], type="o", col="red", xlab="", ylab="", ylim=c(0, 100)) points(0:20, V[2,], type="o", col="blue") # Opgave Dat-B-13 u <- rep(3, 10) for (i in 2:10) { u[i] <- u[i-1]+i } u # Viser resultatet v <- rep(1, 10) for (i in 2:10) { v[i] <- i-2*v[i-1] } v # Viser resultatet w <- rep(10, 10) for (i in 3:10) { w[i] <- w[i-2]-w[i-1] } w # Viser resultatet z <- rep(1, 10) for (i in seq(3, 9, by=2)) { z[i] <- z[i-2]+i^2 } for (i in seq(2, 10, by=2)) { z[i] <- z[i-1]+3 } z # Viser resultatet # Opgave Dat-B-14 # delopgave (1) # Initialisering x <- 0 y <- 0 X <- rep(0, 100) Y <- rep(0, 100) # Simulation af 100 trin for ( t in 1:100 ) { v <- runif(1, 0, 2*pi) d <- runif(1, 0 , 1) x <- x + d*cos(v) y <- y + d*sin(v) X[t] <- x Y[t] <- y } # delopgave (2) plot(c(0, X), c(0, Y), asp=1, type="l", xlab="x", ylab="y") points(0, 0) points(x, y, pch=16)