#' Wartość gęstości naszego rozkładu granicznego.
#'
#' @param mAlpha funkcja zadająca alfate momenty rozkładu pojedynczego kroku.
#'
#' @return function that returns values of
#'
#' @export
#'
dgraniczny <- function(mAlpha) {
force(mAlpha)
function(x, alpha) {
sapply(x, function(y) {
if(!is.finite(y)) return(NA)
else if(y <= 0) 0
else alpha*(mAlpha(alpha)^2)*y^(-(2*alpha + 1))*exp(-mAlpha(alpha)*y^(-alpha))
})
}
}
#' Wartość dystrybuanty naszego rozkładu granicznego.
#'
#' @param mAlpha funkcja zadająca alfate momenty rozkładu pojedynczego kroku.
#'
#' @return function funkcja zwracająca wartości dystr. dla zadanych punktów i wart. alfa.
#'
#' @export
#'
pgraniczny <- function(mAlpha) {
force(mAlpha)
function(x, alpha) {
sapply(x, function(y) {
if(!is.finite(y)) return(NA)
else if(y <= 0) 0
else (1 + mAlpha(alpha)*y^(-alpha))*exp(-mAlpha(alpha)*y^(-alpha))
})
}
}
#' Kwantyle rzędu p z naszego rozkładu granicznego.
#'
#' @param mAlpha funkcja zadająca alfate momenty rozkładu pojedynczego kroku.
#'
#' @return function funkcja zwracająca kwantyle odpowiedniego rzędu dla zadanego alfa.
#'
#' @export
#'
qgraniczny <- function(mAlpha) {
force(mAlpha)
function(p, alpha) {
naszaDystr <- function(x) pgraniczny(mAlpha)(x, alpha)
sapply(p, function(q) {
if(!is.finite(q)) return(NA)
else uniroot({function(x) naszaDystr(x) - q}, lower = 0, upper = 10^80)$root
})
}
}
#' Losowa liczba z naszego rozkładu.
#'
#' @param mAlpha funkcja zadająca alfate momenty rozkładu pojedynczego kroku.
#'
#' @return function funkcja zwracająca n losowych liczb z rozkładu z par. alfa.
#'
#' @export
#'
rgraniczny <- function(mAlpha) {
force(mAlpha)
function(n, alpha) {
sapply(1:n, {function(x)
qgraniczny(runif(1, 0, 1), mAlpha, alpha)
})
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.