Fibonacciho postupnosť
Fibonacciho postupnosť je pre mňa jednou z najzaujímavejších v celej
matematike. Na prvý pohľad pôsobí jednoducho, každý člen je len súčtom
dvoch predchádzajúcich, no v tejto jednoduchosti sa skrýva dokonalý
poriadok. Objavuje sa v prírode, v usporiadaní listov rastlín, v
špirálach mušlí aj v pomeroch umeleckých diel.
Pozrime sa, ako ju môžeme vygenerovať a zobraziť v R:
fib <- numeric(20)
fib[1:2] <- c(0, 1)
for (i in 3:20) fib[i] <- fib[i-1] + fib[i-2]
fib
[1] 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
[17] 987 1597 2584 4181
Operácie s vybranými vektormi
Ako prvé zistíme dĺžku oboch vektorov, aby sme si boli istí, že
môžeme medzi nimi robiť operácie. Zistíme to pomocou nasledujúceho
kódu:
[1] 20
[1] 20
Zistili sme, že oba vektori majú rovnaký rozmer. Počítame teda ich
súčet.
[1] 9.800495 11.514077 3.166965 10.165082 9.350795 10.508935
[7] 15.223757 13.018438 26.349689 41.710705 59.424098 95.300468
[13] 153.260764 236.161626 382.570525 619.184911 996.653630 1597.293292
[19] 2588.980019 4186.283330
Malé cvičenie
V tomto cvičení si vyberieme podmnožinu vektora w, ktorá obsahuje len
čísla väčšie ako je priemer w.
w <- runif(20, 0, 50)
subset <- w[w > mean(w)]
subset
[1] 29.08020 32.28159 38.79117 28.18234 33.37133 46.65171 46.28224 36.70472
[9] 25.75317 37.19873 30.95796
Matice
Vytvorili sme si 2x2 maticu, vypočítali sme jej determinant, aby sme
overili, že sa nerovná 0. Následne sme ku matici A urobili inverznú
maticu a overili sme si, či nám táto inverzná matica vyšla správne
pomocou súčinu matice A a k nej inverznej matice, z tohto súčinu nám
musí výjsť jednotková matica.
A <- matrix(c(2, 1, 5, 3), nrow = 2, byrow = TRUE)
A
[,1] [,2]
[1,] 2 1
[2,] 5 3
[1] 1
[,1] [,2]
[1,] 3 -1
[2,] -5 2
[,1] [,2]
[1,] 1 0
[2,] 0 1
Ukázalo sa, že nám naozaj vyšla jednotková matica a teda sme
postupovali správne.
Malé cvičenie
M2 <- matrix(1:16, nrow = 4, byrow = TRUE)
colSums(M2)
[1] 28 32 36 40
[,1] [,2] [,3] [,4]
[1,] 276 304 332 360
[2,] 304 336 368 400
[3,] 332 368 404 440
[4,] 360 400 440 480
LS0tCnRpdGxlOiAiw5psb2hhIDIsIGRydWjDoSDEjWFzxaUiCmF1dGhvcjogIk1pcm9zbGF2YSBNZWR2ZWNrw6EgIDxicj4iCmRhdGU6ICJTZXB0ZW1iZXIgMjAyNSIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0b2M6IHRydWUKICAgIHRvY19mbG9hdDogdHJ1ZQogICAgdGhlbWU6IHVuaXRlZAogICAgaGlnaGxpZ2h0OiB0YW5nbwogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IHRydWUKICAgIGRmX3ByaW50OiBwYWdlZAplZGl0b3Jfb3B0aW9uczoKICBtYXJrZG93bjoKICAgIHdyYXA6IDcyCi0tLQoKIyMgRmlib25hY2NpaG8gcG9zdHVwbm9zxaUKRmlib25hY2NpaG8gcG9zdHVwbm9zxaUgamUgcHJlIG3FiGEgamVkbm91IHogbmFqemF1asOtbWF2ZWrFocOtY2ggdiBjZWxlaiBtYXRlbWF0aWtlLiBOYSBwcnbDvSBwb2jEvmFkIHDDtHNvYsOtIGplZG5vZHVjaG8sIGthxb5kw70gxI1sZW4gamUgbGVuIHPDusSNdG9tIGR2b2NoIHByZWRjaMOhZHphasO6Y2ljaCwgbm8gdiB0ZWp0byBqZWRub2R1Y2hvc3RpIHNhIHNrcsO9dmEgZG9rb25hbMO9IHBvcmlhZG9rLiBPYmphdnVqZSBzYSB2IHByw61yb2RlLCB2IHVzcG9yaWFkYW7DrSBsaXN0b3YgcmFzdGzDrW4sIHYgxaFwaXLDoWxhY2ggbXXFoWzDrSBhaiB2IHBvbWVyb2NoIHVtZWxlY2vDvWNoIGRpZWwuICAgICAKUG96cmltZSBzYSwgYWtvIGp1IG3DtMW+ZW1lIHZ5Z2VuZXJvdmHFpSBhIHpvYnJhemnFpSB2IFI6ICAgICAKYGBge3J9CmZpYiA8LSBudW1lcmljKDIwKQpmaWJbMToyXSA8LSBjKDAsIDEpCmZvciAoaSBpbiAzOjIwKSBmaWJbaV0gPC0gZmliW2ktMV0gKyBmaWJbaS0yXQpmaWIKYGBgCiMjIE5vaXN5IHVuaWZvcm0KUHJpIGdlbmVyb3ZhbsOtIHNpbXVsw6FjacOtIGFsZWJvIHJlYWxpc3RpY2vDvWNoIGTDoXQgc2EgcG91xb7DrXZhasO6IHR6di4gdGFrbWVyIHJvdm5vbWVybsOpIGhvZG5vdHksIGt0b3LDqSBtYWrDuiBtYWzDvSBuw6Fob2Ruw70gcm96cHR5bC4gVGFrdG8gc2kgdG8gdnlnZW5lcnVqZW1lIHYgUjoKYGBge3J9CnNldC5zZWVkKDQyKQp1IDwtIHJ1bmlmKDIwLCAwLCAxMCkgKyBybm9ybSgyMCwgMCwgMC41KQp1CmBgYAojIyBPcGVyw6FjaWUgcyB2eWJyYW7DvW1pIHZla3Rvcm1pIApBa28gcHJ2w6kgemlzdMOtbWUgZMS6xb5rdSBvYm9jaCB2ZWt0b3JvdiwgYWJ5IHNtZSBzaSBib2xpIGlzdMOtLCDFvmUgbcO0xb5lbWUgbWVkemkgbmltaSByb2JpxaUgb3BlcsOhY2llLiBaaXN0w61tZSB0byBwb21vY291IG5hc2xlZHVqw7pjZWhvIGvDs2R1OiAKYGBge3J9Cmxlbmd0aChmaWIpCmxlbmd0aCh1KSAgICAgICAgICAgIApgYGAKWmlzdGlsaSBzbWUsIMW+ZSBvYmEgdmVrdG9yaSBtYWrDuiByb3ZuYWvDvSByb3ptZXIuIFBvxI3DrXRhbWUgdGVkYSBpY2ggc8O6xI1ldC4gCmBgYHtyfQpmaWIrdQpgYGAKIyMgKk1hbMOpIGN2acSNZW5pZSoKViB0b210byBjdmnEjWVuw60gc2kgdnliZXJpZW1lIHBvZG1ub8W+aW51IHZla3RvcmEgdywga3RvcsOhIG9ic2FodWplIGxlbiDEjcOtc2xhIHbDpMSNxaFpZSBha28gamUgcHJpZW1lciB3LiAKYGBge3J9CncgPC0gcnVuaWYoMjAsIDAsIDUwKQpzdWJzZXQgPC0gd1t3ID4gbWVhbih3KV0Kc3Vic2V0CmBgYAojIyBNYXRpY2UKVnl0dm9yaWxpIHNtZSBzaSAyeDIgbWF0aWN1LCB2eXBvxI3DrXRhbGkgc21lIGplaiBkZXRlcm1pbmFudCwgYWJ5IHNtZSBvdmVyaWxpLCDFvmUgc2EgbmVyb3Zuw6EgMC4gTsOhc2xlZG5lIHNtZSBrdSBtYXRpY2kgQSB1cm9iaWxpIGludmVyem7DuiBtYXRpY3UgYSBvdmVyaWxpIHNtZSBzaSwgxI1pIG7DoW0gdMOhdG8gaW52ZXJ6bsOhIG1hdGljYSB2ecWhbGEgc3Byw6F2bmUgcG9tb2NvdSBzw7rEjWludSBtYXRpY2UgQSBhIGsgbmVqIGludmVyem5laiBtYXRpY2UsIHogdG9odG8gc8O6xI1pbnUgbsOhbSBtdXPDrSB2w71qc8WlIGplZG5vdGtvdsOhIG1hdGljYS4gCmBgYHtyfQpBIDwtIG1hdHJpeChjKDIsIDEsIDUsIDMpLCBucm93ID0gMiwgYnlyb3cgPSBUUlVFKQpBCmRldChBKQpBX2ludiA8LSBzb2x2ZShBKQpBX2ludgpyb3VuZChBICUqJSBBX2ludiwgMTUpCmBgYApVa8OhemFsbyBzYSwgxb5lIG7DoW0gbmFvemFqIHZ5xaFsYSBqZWRub3Rrb3bDoSBtYXRpY2EgYSB0ZWRhIHNtZSBwb3N0dXBvdmFsaSBzcHLDoXZuZS4gCgojIyAqTWFsw6kgY3ZpxI1lbmllKgpgYGB7cn0KTTIgPC0gbWF0cml4KDE6MTYsIG5yb3cgPSA0LCBieXJvdyA9IFRSVUUpCmNvbFN1bXMoTTIpCnQoTTIpICUqJSBNMgpgYGAKCg==