\[ x_1 + 2x_2 -x_3=1 \\ 2x_1 + x_2 + 4x_3=2 \\ 3x_1 + 3x_2 + 4x_3=1 \]
Jika sistem persamaan dinyatakan dalam bentuk \(Ax=b\) maka:
A <- rbind(c(1, 2, -1),
c(2, 1, 4),
c(3, 3, 4))
A
## [,1] [,2] [,3]
## [1,] 1 2 -1
## [2,] 2 1 4
## [3,] 3 3 4
cat(paste("\n invers A \n"))
##
## invers A
solve(A)
## [,1] [,2] [,3]
## [1,] 2.666667 3.666667 -3
## [2,] -1.333333 -2.333333 2
## [3,] -1.000000 -1.000000 1
cat(paste("\n solusi SPL \n"))
##
## solusi SPL
solve(A) %*% c(1, 2, 1)
## [,1]
## [1,] 7
## [2,] -4
## [3,] -2
cat(paste("\n det A \n"))
##
## det A
det(A)
## [1] -3
cat(paste("\n eigen A \n"))
##
## eigen A
eigen(A)
## eigen() decomposition
## $values
## [1] 6.5413813 -1.0000000 0.4586187
##
## $vectors
## [,1] [,2] [,3]
## [1,] -0.07327085 7.071068e-01 -0.8373583
## [2,] -0.60096556 -7.071068e-01 0.4083692
## [3,] -0.79590940 -5.226448e-17 0.3634083
\[f(x, \alpha, \beta)=\frac{\beta^\alpha}{\Gamma(\alpha)} x^{\alpha-1} e^{-\beta x}\]
dist_gamma <- function(x, alpha, beta) {
hasil <- x^(alpha-1) * exp(-beta*x) * (beta^alpha)/(factorial(alpha-1))
return(hasil)
}
cat(paste("\n nilai f(x) untuk x=1, 2, 3, 4, 5 \n"))
##
## nilai f(x) untuk x=1, 2, 3, 4, 5
dist_gamma(1:5, 1, 2)
## [1] 2.706706e-01 3.663128e-02 4.957504e-03 6.709253e-04 9.079986e-05
cat(paste("\n grafik f \n"))
##
## grafik f
curve(dist_gamma(x, 1, 2), from=0, to=10,
ylab = "pdf", ylim=c(0, 1),
col="lightblue", lwd=2)
grid()
find_outlier <- function(data) {
iqr = IQR(data)
q1 <- quantile(data, .25)
q3 <- quantile(data, .75)
pencilan <- c()
for (point in data) {
if (point < q1 - 1.5*iqr | point > q3 + 1.5*iqr) {
pencilan <- append(pencilan, point)
}
}
if(length(pencilan) != 0) {
cat(paste("\n ada pencilan \n"))
pencilan
} else {
cat("\n tidak ada pencilan \n")
}
}
## generate data with outliers
data <- c(rnorm(90), rnorm(5, -10, 1), rnorm(5, 10, 1))
## find outliers
find_outlier(data)
##
## ada pencilan
## [1] -10.988477 -9.978496 -10.016885 -11.322466 -11.411451 10.306696
## [7] 10.369868 11.194572 10.901590 9.136225
data_index = c()
data_mean = c()
data_growth = c()
data_status = c()
for (index in 1:100) {
sample <- runif(100, -1, 1)
mean <- round(mean(sample), 2)
if (index == 1) {
growth <- NA
status <- NA
} else {
if (abs(data_mean[index-1]) == 0.00) {
growth <- mean * 100
} else {
growth <- (mean-data_mean[index-1])/(abs(data_mean[index-1])) * 100
}
if (growth>0) {
status <- 'increase'
} else {
status <- 'decrease'
}
}
data_index <- append(data_index, paste("day", index))
data_mean <- append(data_mean, mean)
data_growth <- append(data_growth, round(growth, 2))
data_status <- append(data_status, status)
}
df <- data.frame(data_index, data_mean, data_growth, data_status)
colnames(df) = c('day', 'value', 'growth (%)', 'status')
head(df)
## day value growth (%) status
## 1 day 1 -0.04 NA <NA>
## 2 day 2 0.09 325.00 increase
## 3 day 3 0.07 -22.22 decrease
## 4 day 4 0.06 -14.29 decrease
## 5 day 5 -0.02 -133.33 decrease
## 6 day 6 -0.03 -50.00 decrease
simulated_value <- rexp(10000, 0.5)
exact_mean <- 1/0.5
exact_var <- 1/(0.5)^2
cat(paste("\n exact mean & exact var \n", exact_mean, " & ", exact_var))
##
## exact mean & exact var
## 2 & 4
simulated_mean <- mean(simulated_value)
simulated_var <- var(simulated_value)
cat(paste("\n simulated mean & simulated var \n", simulated_mean, " & ", simulated_var))
##
## simulated mean & simulated var
## 2.00090909454315 & 3.85347693713325
plot(density(simulated_value), col="blue", main="simulation vs theoritical",
xlab="x", ylab="pdf")
curve(dexp(x, 0.5), col="red", add=TRUE)
legend("center", legend=c("simulation", "theoritical"), fill=c("blue", "red"))
grid()