Оценить полиноминальную функцию - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь оценить этот многочлен: enter image description here

Используя два разных подхода, один напрямую, а другой - правило Хорнера.Мой код:

Прямой путь:

directpoly1 <- function(x, coef, seqcoef = seq(coef) - 1) {
  sum(coef*x^seqcoef)
}
directpoly <- function(x, coef) {
  seqcoef <- seq(coef) - 1
  sapply(x, directpoly1, coef, seqcoef)

Правило Хорнера:

hornerpoly <- function(x, coef) {
  n <- length(coef);
  a <- rep(0, n);
  a[n] <- coef[n];
  while (n > 0) {
    n <- n - 1;
    a[n] <- coef[n] + a[n + 1] * x;
  }
  return(a[1]);
}

Мне нужно сравнить скорость двух разных подходов, но я могуНе понимаю, как это сделать.Мой первоначальный подход:

system.time(directpoly(x=seq(-10,10, length=5000000), c(1:39)))
system.time(hornerpoly(x=seq(-10,10, length=5000000), c(1:39)))

Есть предложения?

1 Ответ

0 голосов
/ 12 ноября 2018
ptm <- proc.time()
#.... your function ...
proc.time() - ptm

Сделайте это и для второй функции и сравните время.

...