
Úlohy k procvičení
Cvičení 1. Vytvořte matici A1 s rozměry 3 x 5, jejíž první řádek bude tvořen posloupností -1, 1, 3,..., druhý řádek budou tvořit hodnoty 3 a poslední řádek ekvidistantní posloupnost s minimální hodnotou -2 a maximální hodnotou 2.
Řešení
A1 <- matrix(c(seq(from=-1, by=2, length=5), rep(3, 5),
seq(from=-2, to=2, length=5)), nrow=3, byrow=T)
|
Cvičení 2. Vytvořte matici A2 s rozměry 3 x 5, jejíž první sloupec bude tvořen náhodnými čísly z rovnoměrného rozložení na intervalu [0, 5], druhý a třetí sloupec bude tvořit posloupnost s maximální hodnotou 3.5 a krokem 0.2 a poslední dva sloupce budou obsahovat hodnotu NA.
Řešení
A2 <- matrix(c(runif(n=3, min=0, max=5), seq(to=3.5, by=0.2, length=6), rep(NA, 6)), nrow=3)
|
Cvičení 3. Vypište čtvrtý sloupec matice A1 jako řádkový i sloupcový vektor.
Řešení
A1[,4],
A1[,4, drop=FALSE]
|
Cvičení 4. Vypište prvky prvního a druhého řádku a všech lichých sloupců matice A1. Uložte je do matice A3 a vhodným příkazem zjistěte její rozměry, použijte i funkci pro zjištění počtu řádků a sloupců zvlášť.
Řešení
A3 <- A1[c(1,2), seq(from=1, by=2, to=ncol(A1))]
dim(A3)}, nrow(A3), ncol(A3)
|
Cvičení 5. Pomocí funkcí rbind nebo cbind vhodně doplňte hodnotami 1 matici A3 na čtvercovou matici a spočítejte její determinant, stopu a hodnost.
Řešení
A3 <- rbind(A3, rep(1, ncol(A3)))
det(A3)}, sum(diag(A3)), qr(A3)$rank
|
Cvičení 6. Byla pozorována kvalita říční vody. Z údajů v následující tabulce
|
||||||||
lokalita 1
|
měření 1
měření 2
|
|
||||||
lokalita 2
|
měření 1
měření 2
|
|
vytvořte pole kvalita s rozměry 2 x 3 x 2, dimenze, řádky i sloupce pojmenujte.
Řešení
kvalita <- array(c(19.4, 18.9, 0.832, 0.84, 1.9, 2.4, 21.2, 17, 0.826, 0.479, 2.1, 1.6), dim=c(2, 3, 2), dimnames=list(c("mereni1", "mereni2"), c("tvrdost", "vodivost", "koncentraceK"), c("lokalita1", "lokalita2")))
|
Cvičení 7. Vytvořte matici A, vektory c a d:
a matici B o rozměrech 3 x 6 s hodnotami rovnými 1.
a) Řešte systém lineárních rovnic Ax = c.
b) Vysvětlete výstupy příkazů A * B, A %*% B, A * c, A * d, c * A, d * A, A %*% c a A %*% d
c) Vhodnými příkazy vytvořte k matici A dolní trojúhelníkovou matici C a pro vektor pravé strany
řešte soustavu lineárních rovnic C x = e s dolní trojúhelníkovou maticí C.
Řešení
A <- matrix(c(1, -1, 0, 0, 1, -1, 1, 1, 1), 3),
B <- matrix(1, nrow=3, ncol=6),
c <- matrix(1:3, ncol=1), d <- matrix(1:2, ncol=1)
a) x <- solve(A, c)
b) A * B, A * c, A * d,... násobení po složkách (neodpovídající rozměry),
c * A, d * A,... násobení po složkách, uplatněno pravidlo recycling rule
A %*% B, A %*% c, A %*% d,... maticové násobení,
c) e <- matrix(c(3, 0, 1), nrow=3), backsolve(A, e, upper.tri=FALSE) nebo pomocí konstrukce dolní trojúhelníkové matice C:
C <- A, C[!lower.tri(A,1)] <- 0, solve(C, e)
|