# Code Created by Paras Takkar
# Problem 1
solve_interest_rate <- function(x, t) {
i <- x^(1/t) - 1
return(i)
}
# Test the function with x = 5 and t = 15
x <- 5
t <- 15
rate <- solve_interest_rate(x, t)
cat("Interest rate:", rate, "\n")
Interest rate: 0.1132636
# Verify by hand using k = 1000
k <- 1000
accumulated_value <- k * (1 + rate)^t
cat("Accumulated value of $1,000 after 15 years:", accumulated_value, "\n")
Accumulated value of $1,000 after 15 years: 5000
# Code Created by Paras Takkar
# Problem 2
t <- as.Date(c("2024-01-01",
"2024-02-01",
"2024-04-01",
"2024-06-01",
"2024-08-01",
"2024-10-01",
"2024-11-01",
"2024-12-31"))
B_t <- c(200000,
205000,
211000,
214000,
219000,
225000,
225500,
231000)
W_t <- c(0,
10000,
-2000,
-1500,
4000,
3500,
1500,
0)
df <- data.frame(t, B_t, W_t)
B_t_minus_1 <- c(NA, B_t[-length(B_t)])
B_before_flow <- B_t - W_t
r_t <- (B_before_flow / B_t_minus_1) - 1
df$B_t_minus_1 <- B_t_minus_1
df$r_t <- r_t
twrr_2024 <- prod(1 + r_t[-1]) - 1
df
cat("TWRR (decimal form):", twrr_2024, "\n")
TWRR (decimal form): 0.07221138
cat("TWRR expressed as a percentage:", 100 * twrr_2024, "%\n")
TWRR expressed as a percentage: 7.221138 %
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQNCiAgcGRmX2RvY3VtZW50OiBkZWZhdWx0DQotLS0NCg0KYGBge3J9DQojIENvZGUgQ3JlYXRlZCBieSBQYXJhcyBUYWtrYXINCiMgUHJvYmxlbSAxDQoNCnNvbHZlX2ludGVyZXN0X3JhdGUgPC0gZnVuY3Rpb24oeCwgdCkgew0KICBpIDwtIHheKDEvdCkgLSAxDQogIHJldHVybihpKQ0KfQ0KDQojIFRlc3QgdGhlIGZ1bmN0aW9uIHdpdGggeCA9IDUgYW5kIHQgPSAxNQ0KeCA8LSA1DQp0IDwtIDE1DQoNCnJhdGUgPC0gc29sdmVfaW50ZXJlc3RfcmF0ZSh4LCB0KQ0KDQpjYXQoIkludGVyZXN0IHJhdGU6IiwgcmF0ZSwgIlxuIikNCg0KDQojIFZlcmlmeSBieSBoYW5kIHVzaW5nIGsgPSAxMDAwDQprIDwtIDEwMDANCmFjY3VtdWxhdGVkX3ZhbHVlIDwtIGsgKiAoMSArIHJhdGUpXnQNCg0KY2F0KCJBY2N1bXVsYXRlZCB2YWx1ZSBvZiAkMSwwMDAgYWZ0ZXIgMTUgeWVhcnM6IiwgYWNjdW11bGF0ZWRfdmFsdWUsICJcbiIpDQpgYGANCg0KDQoNCg0KDQoNCmBgYHtyfQ0KIyBDb2RlIENyZWF0ZWQgYnkgUGFyYXMgVGFra2FyDQojIFByb2JsZW0gMg0KdCA8LSBhcy5EYXRlKGMoIjIwMjQtMDEtMDEiLA0KICAgICAgICAgICAgICAgIjIwMjQtMDItMDEiLA0KICAgICAgICAgICAgICAgIjIwMjQtMDQtMDEiLA0KICAgICAgICAgICAgICAgIjIwMjQtMDYtMDEiLA0KICAgICAgICAgICAgICAgIjIwMjQtMDgtMDEiLA0KICAgICAgICAgICAgICAgIjIwMjQtMTAtMDEiLA0KICAgICAgICAgICAgICAgIjIwMjQtMTEtMDEiLA0KICAgICAgICAgICAgICAgIjIwMjQtMTItMzEiKSkNCg0KQl90IDwtIGMoMjAwMDAwLA0KICAgICAgICAgMjA1MDAwLA0KICAgICAgICAgMjExMDAwLA0KICAgICAgICAgMjE0MDAwLA0KICAgICAgICAgMjE5MDAwLA0KICAgICAgICAgMjI1MDAwLA0KICAgICAgICAgMjI1NTAwLA0KICAgICAgICAgMjMxMDAwKQ0KDQpXX3QgPC0gYygwLA0KICAgICAgICAgMTAwMDAsDQogICAgICAgICAtMjAwMCwNCiAgICAgICAgIC0xNTAwLA0KICAgICAgICAgNDAwMCwNCiAgICAgICAgIDM1MDAsDQogICAgICAgICAxNTAwLA0KICAgICAgICAgMCkNCg0KZGYgPC0gZGF0YS5mcmFtZSh0LCBCX3QsIFdfdCkNCg0KQl90X21pbnVzXzEgPC0gYyhOQSwgQl90Wy1sZW5ndGgoQl90KV0pDQoNCkJfYmVmb3JlX2Zsb3cgPC0gQl90IC0gV190DQoNCnJfdCA8LSAoQl9iZWZvcmVfZmxvdyAvIEJfdF9taW51c18xKSAtIDENCg0KZGYkQl90X21pbnVzXzEgPC0gQl90X21pbnVzXzENCmRmJHJfdCA8LSByX3QNCg0KdHdycl8yMDI0IDwtIHByb2QoMSArIHJfdFstMV0pIC0gMQ0KDQpkZg0KY2F0KCJUV1JSIChkZWNpbWFsIGZvcm0pOiIsIHR3cnJfMjAyNCwgIlxuIikNCmNhdCgiVFdSUiBleHByZXNzZWQgYXMgYSBwZXJjZW50YWdlOiIsIDEwMCAqIHR3cnJfMjAyNCwgIiVcbiIpDQpgYGANCg0KDQoNCg0K