为什么此功能的精度不好?

时间:2019-12-02 01:59:21

标签: r precision numerical-methods finance exp

我目前正在研究基本的增长功能。由于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)也相差很大。 关于错误为何如此之大以及如何消除错误的任何想法?

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)
}