Почему эта функция не имеет хорошей точности? - PullRequest
0 голосов
/ 02 декабря 2019

Я сейчас изучаю основные функции роста. Поскольку R не очень хорош в работе с символическими уравнениями, я пишу как функцию роста, так и ее производную для последующего применения метода Ньютона-Рафсона. Код выглядит следующим образом:

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 голосов
/ 02 декабря 2019

Редактировать

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