评估多项式函数

时间:2018-11-12 06:31:40

标签: r polynomials

我正在尝试评估此多项式: 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 :(得分:0)

ptm <- proc.time()
#.... your function ...
proc.time() - ptm

也对第二个功能执行此操作并比较时间。