knitr::opts_chunk$set(echo = FALSE, results = 'asis')
r6obj_docstat <- rmddochelper::R6ClassDocuStatus$new()
r6obj_docstat$set_current_status(psVersion = "0.0.901",
                                 psStatus  = "Initialisation",
                                 psProject = "[REPLACE_WITH_PROJECT]")
r6obj_docstat$include_doc_stat(psTitle = "## Document Status")
r6ob_abbrtable <- rmddochelper::R6ClassTableAbbrev$new()
### # include table of abbreviations only, if there are any
if (!r6ob_abbrtable$is_empty_abbr())
  r6ob_abbrtable$include_abbr_table(psAbbrTitle = "## Abbreviations")

Aufgabe 1: Matrixdefinitionen in R

In R werden Matrizen mit der Funktion matrix erstellt. In der Vorlesung hatten wir gesehen, dass die Funktion matrix() verschiedene Optionen aktzeptiert. Wir wollen uns hier anschauen, wie sich die Parameter auswirken.

Ihre Aufgabe wird es sein die Matrizen mit den verschiedenen Optionen zu erstellen und so besser zu verstehen, was die Optionen für eine Bedeutung haben.

Parameter data

matA <- matrix(data = c(1:9), nrow = 3, ncol = 3)
matB <- matrix(nrow = 3, ncol = 3)
matC <- matrix(data = c(1,2,3), nrow = 3, ncol = 3)
matC2 <- matrix(data = c(1,2,3,4), nrow = 3, ncol = 3)

Parameter nrow und ncol

matD <- matrix(data = c(1:9), nrow = 3)
matE <- matrix(data = c(1:9), ncol = 3)

Parameter byrow

matF <- matrix(data = c(1:9), nrow = 3, ncol = 3, byrow = TRUE)
matG <- matrix(data = c(1:9), nrow = 3, ncol = 3, byrow = FALSE)

Aufgabe 2: Matrixmultiplikation in R

Matrixmultiplikationen können in R mit dem Operator %*% oder mit den Funktionen crossprod() oder tcrossprod() ausgeführt werden. Der Vorteil von crossprod() und tcrossprod() gegenüber von %*% ist, dass wir mit crossprod() und tcrossprod() direkt Matrizen und Vektoren multiplizieren können. Das funktioniert mit %*% nicht. Bei der Matrix-Vektor-Multiplikation mit %*% muss der Vektor zuerst in eine Matrix verwandelt werden.

In einem ersten Teil der Aufgabe geht es um einen Vergleich zwischen crossprod(), tcrossprod() und %*% für die Matrix-Matrix-Multiplikation.

a) Gegeben sind die folgenden Matrizen

(matA <- matrix(data = c(1:9), ncol = 3))
(matB <- matrix(data = c(2:10), ncol = 3))

Finden Sie heraus welcher Multiplikationen mit %*% entspricht die folgende Anweisung?

crossprod(matA,matB)

Alternativ dazu gibt es die Funktion tcrossprod(). Finden Sie, welche Matrixmultiplikation mit %*%

tcrossprod(matA, matB)

ausführt.

\pagebreak

b) Gegeben ist zusätzlich der Vektor vecB als

vecB <- c(-3,16,1)

Multiplizieren Sie die Matrix matA mit dem Vektor vecB einmal mit %*% und einmal mit crossprod().

Hinweise: Ein Vektor kann mit der Funktion as.matrix() in eine Matrix verwandelt werden.

Aufgabe 3: Gleichungssysteme

Gegeben ist das folgende Gleichungssystem.

\begin{IEEEeqnarray}{rCl} 2x_2 + 2x_3 &=& 1 \nonumber\ 2x_1 + 4x_2 + 5x_3 &=& 9 \nonumber\ x_1 - x_2 + 2x_3 &=& 3 \label{eq:GlsA1} \end{IEEEeqnarray}

a) Bestimmen Sie die Lösungsmenge des Gleichungssystems (\ref{eq:GlsA1}) mit dem Gaussverfahren

b) Verwandeln Sie das Gleichungssystem (\ref{eq:GlsA1}) in Matrix-Vektor-Schreibweise

c) Wie lautet die Lösung des Gleichungssystem (\ref{eq:GlsA1}) in Matrix-Vektor-Schreibweise

d) Berechnen Sie die Lösung aus c) mit R

Hinweis: Für die Multiplikation der Matrix $A^{-1}$ mit dem Vektor $b$ muss der Vektor $b$ in eine Matrix verwandelt werden. Dies kann mit der Funktion as.matrix() gemacht werden.

Aufgabe 4: Quantitative Genetik

In einer Population wurden für einen Genort folgende Häufigkeiten bei Genotypen gezählt

dfGenotypeFreq <- data.frame(Genotypen = c("$A_1A_1$", "$A_1A_2$", "$A_2A_2$"),
                             Anzahl    = c(24, 53, 23),
                             stringsAsFactors = FALSE)
knitr::kable(dfGenotypeFreq)

a) Bestimmen Sie die Genotypfrequenzen

b) Bestimmen Sie die Allelfrequenzen

c) Berechnen Sie das Populationsmittel $\mu$ unter der Annahme, dass die genotypischen Werte zwischen den homozygoten Genotypen $20$ Einheiten auseinanderliegen und dass der heterozygote Genotyp einen genotypischen Wert von $2$ hat.

r6ob_abbrtable$writeToTsvFile()


charlotte-ngs/ZLHS2016 documentation built on May 13, 2019, 3:33 p.m.