Ilustrácia výsledkov simulácií

Janko Hraško počíta príklady na skúške. Zostávajú mu dva príklady a hodina času. Čas, ktorý potrebuje na vyriešenie každého z príkladov, má exponenciálne rozdelenie so strednou hodnotou 20 minút a tieto dva časy sú nezávislé. Aká je pravdepodobnosť, že stihne vyriešiť obidva príklady?

set.seed(12)
priklad1 <- rexp(5, rate = 1/20)
priklad2 <- rexp(5, rate = 1/20)
plot(priklad1, priklad2)

plot(priklad1, priklad2, pch = 19) # iny symbol pre body

Môžeme zobraziť na grafe:

podmienka <- (priklad1 + priklad2) <= 60
podmienka
## [1]  TRUE FALSE FALSE FALSE  TRUE
podmienka + 1
## [1] 2 1 1 1 2
plot(priklad1, priklad2, col = c("red", "blue")[podmienka + 1])

abline(a = 60, b = -1) # priamka 60 - 1 * x

Spravte viac simulácií a zobrazte ich:

Funkcia apply

set.seed(12)
priklad1 <- rexp(5, rate = 1/20)
priklad2 <- rexp(5, rate = 1/20)
simulacia <- data.frame(priklad1, priklad2)
simulacia
##    priklad1  priklad2
## 1 43.784324  5.666615
## 2 12.711008 78.598230
## 3  2.347663 84.489218
## 4 57.144973 25.278719
## 5 36.331488 12.555222
plot(simulacia)

plot(simulacia, pch = 19)

apply(X = simulacia, # na aky objekt sa ma funkcia aplikovat
      MARGIN = 1,    # 1 = po riadkoch, 2 = po stlpcoch
      FUN = function(x) sum(x) <= 60) # aka funkcia sa ma pouzit
## [1]  TRUE FALSE FALSE FALSE  TRUE
simulacia$podmienka <- apply(simulacia, 1, function(x) sum(x) <= 60)
simulacia
##    priklad1  priklad2 podmienka
## 1 43.784324  5.666615      TRUE
## 2 12.711008 78.598230     FALSE
## 3  2.347663 84.489218     FALSE
## 4 57.144973 25.278719     FALSE
## 5 36.331488 12.555222      TRUE
plot(simulacia$priklad1, simulacia$priklad2, 
     col = c("red", "blue")[simulacia$podmienka + 1], pch = 19)

with(simulacia, plot(priklad1, priklad2, 
                     pch = 19,
                     col = c("red", "blue")[podmienka + 1]))

Prípadné ďalšie úpravy grafu:

with(simulacia, plot(priklad1, priklad2, 
                     pch = 19,
                     col = c("red", "blue")[podmienka + 1],
                     asp = 1 # aspect ratio
))

Čisla A, B sú zvolené nezávisle rovnomerne na intervale (-2, 2). Aká je pravdepodobnosť, že rovnica \(1 - Ax - Bx^2 = 0\) má všetky korene v absolútnej hodnote väčšie ako 1?

# funkcia polyroot pocita korene polynomu a0 + a1*x + a2 * x^2 + ... 
# vstup: vektor c(a0, a1, a2, ...)

# 1 - 0.5 x + 0.7 x^2 = 0
polyroot(c(1, -0.5, 0.7))
## [1] 0.357143+1.140623i 0.357143-1.140623i
set.seed(12)
A <- runif(20, -2, 2)
B <- runif(20, -2, 2)
simulacia <- data.frame(A, B)
simulacia
##             A           B
## 1  -1.7225563 -1.12653133
## 2   1.2711008  1.15134539
## 3   1.7704869 -1.60858784
## 4  -0.9224725  0.83932186
## 5  -1.3226075 -1.12870783
## 6  -1.8644175 -0.92822563
## 7  -1.2848600  0.01907181
## 8   0.5666615 -1.24565229
## 9  -1.9084890 -0.24228270
## 10 -1.9667007  0.67927718
## 11 -0.4292112 -1.03646708
## 12  1.2555222  1.57305958
## 13 -0.4950062  1.53102555
## 14 -0.4767513  1.25625302
## 15 -0.9403265  0.53305843
## 16 -0.2426627  1.76435018
## 17 -0.1695714  0.77564570
## 18  0.1628302  1.37480896
## 19  0.6627193 -0.46142216
## 20 -1.5492042 -0.43548021
testKorenov <- function(koefAB){ # DOPLNTE
  korene <- ...
  return(...)
}
  
simulacia$podmienka <- apply(simulacia, 1, testKorenov)
simulacia
with(simulacia, plot(A, B,
                     col = c("red", "blue")[podmienka + 1], pch = 19))
##             A           B podmienka
## 1  -1.7225563 -1.12653133     FALSE
## 2   1.2711008  1.15134539     FALSE
## 3   1.7704869 -1.60858784     FALSE
## 4  -0.9224725  0.83932186     FALSE
## 5  -1.3226075 -1.12870783     FALSE
## 6  -1.8644175 -0.92822563      TRUE
## 7  -1.2848600  0.01907181     FALSE
## 8   0.5666615 -1.24565229     FALSE
## 9  -1.9084890 -0.24228270     FALSE
## 10 -1.9667007  0.67927718     FALSE
## 11 -0.4292112 -1.03646708     FALSE
## 12  1.2555222  1.57305958     FALSE
## 13 -0.4950062  1.53102555     FALSE
## 14 -0.4767513  1.25625302     FALSE
## 15 -0.9403265  0.53305843     FALSE
## 16 -0.2426627  1.76435018     FALSE
## 17 -0.1695714  0.77564570      TRUE
## 18  0.1628302  1.37480896     FALSE
## 19  0.6627193 -0.46142216      TRUE
## 20 -1.5492042 -0.43548021     FALSE

Spravte viac simulácií:

Cvičenia

Rómeo a Júlia sa majú stretnúť o dvanástej. Obaja však notoricky meškajú, doba ich meškania má exponenciálne rozdelenie. Stredná hodnota meškania Rómea je 30 minút a Júlie 20 minút. Ich meškania sú nezávislé. Keď prídu na dohodnuté miesto a svojho partnera tam nenájdu, štvrť hodiny čakajú a ak ani za ten čas neprídu, vrátia sa domov. Aká je pravdepodobnosť, že sa im podarí stretnúť

Spravte simulácie zobrazte ich:

Čisla x, y sú zvolené nezávisle rovnomerne na intervale (0, 1). Aká je pravdepodobnosť, že celé číslo, ktoré je najbližšie k podielu x/y , je párne?

Spravte simulácie zobrazte ich.

Čisla A, B sú zvolené nezávisle rovnomerne na intervale (-10, 10). Aká je pravdepodobnosť, že rovnica \(x^2+Ax+B=0\) nemá reálne korene?

Spravte simulácie zobrazte ich.