我目前正在研究基本的增长功能。由于R并不是真正善于处理符号方程,因此我在编写增长函数及其导数,以随后应用Newton-Raphson方法。代码看起来像这样:
invested <- c(10000, 20000, 15000, 30000)
rates <- c(5e-3, 6e-3, 7e-3, 8e-3)
amount <- 0
prediction <- function(t){
for(i in invested){
for(j in rates){
parcel <- i * exp(j * t)
}
amount <- amount + parcel
}
print(amount)
}
dt <- 0
dpred <- function(t){
for(i in invested){
for(j in rates){
parcial <- (j*i) * exp(j * t)
}
dt <- dt + parcial
}
print(dt)
}
问题在于它对于我发现使用以下代码测试的实际值来说,prediction(1)
的吐出量是85,59,太多了:
(10000*exp(5e-3))+(20000*exp(6e-3))+(15000*exp(7e-3))+(30000*exp(8e-3))
根据我以前的计算,导数dpred(1)
也相差很大。
关于错误为何如此之大以及如何消除错误的任何想法?
答案 0 :(得分:0)
invested <- c(10000, 20000, 15000, 30000)
rates <- c(5e-3, 6e-3, 7e-3, 8e-3)
prediction <- function(t){
amount <- sum(invested * exp(rates*t))
return(amount)
}