R 如何创建多项式的下列函数?

R 如何创建多项式的下列函数?,r,function,R,Function,我想创建一个参数为“n”的函数,如下所示: (a_n)*x^n+(a_n-1)*x^(n-1)+…+(a_1)*x+(a_0) 已知(a_i)s系数 我知道这是一个简单的问题,但我就是不知道怎么做 我的想法是构造一个函数向量: xx <- numeric(n+1) for (i in 1:n+1) { xx[i] <- function(x) x^i } 这给了我答案。但这不起作用,R显示以下错误消息: Error in xx[i] <- function(x

我想创建一个参数为“n”的函数,如下所示:

(a_n)*x^n+(a_n-1)*x^(n-1)+…+(a_1)*x+(a_0)

已知(a_i)s系数

我知道这是一个简单的问题,但我就是不知道怎么做

我的想法是构造一个函数向量:

xx <- numeric(n+1)
  for (i in 1:n+1) {
    xx[i] <- function(x) x^i
  }
这给了我答案。但这不起作用,R显示以下错误消息:

Error in xx[i] <- function(x) { : 
  incompatible types (from closure to double) in subassignment type fix

计算(a_n)*x^n+(a_n-1)*x^(n-1)+……+的xx[i]函数中的
错误(a_1)*x+(a_0)


您是否尝试过使用stats函数“poly”来构造多项式?@eyjo Nope。你能详细解释一下它是如何工作的吗?poly(x,degree=n,raw=TRUE)%*%coe仍然不熟悉R中的基本向量代数,我想…很好的解决方案,谢谢@我相信你的方法可以奏效。尝试将xx作为结果而不是函数来获得该结果。
Error in xx[i] <- function(x) { : 
  incompatible types (from closure to double) in subassignment type fix
p <- function(x,coefs) {
ens <- rev(seq_len(length(coefs)))-1
sapply(x,FUN=function(x)sum(coefs*x^ens))
}
> p(x=2,coefs=c(0.5,-3,1,-2))
[1] -8
> p(x=1:3,coefs=c(0.5,-3,1,-2))
[1]  -3.5  -8.0 -12.5