多项式作为R中的功能



对不起,如果问题很愚蠢/在其他地方回答/...我找不到任何不错的解决方案。

基于权力系列的想法,我有

a(长度为n的真实系数的向量,它来自另一个循环,可以很长,但假设它很简单,例如,

a<-1:10

b(一个真正的中心,例如

c<-3

我想定义多项式(在我的示例中(

a[1]+a[2]*(x-3)+ a[3]*(x-3)^2+ .... + a[10]*(x-3)^9 

作为功能。不幸的是

1(功能as.polynomial(a)仅允许中心0(据我所知(,因此我无法使用它,

2(系数列表可能很长,太长了,无法手动完成

3(我以后可能需要一个多变量版本。

我希望使用循环来定义此"有限的功率系列",但我不知道循环和函数总和如何以干净的方式实现(我也没有找到它(。

类似(非常天真的(

t<-function(x) 0 for(i in 1:length(a)) {t<-function(x) {t(x) + a[i]*(x-c)^(i-1}}

非常感谢您的帮助。

我认为这有效

my_polynomial = function(x) {
  sum(sapply(seq_along(a), function(ii) a[ii] * (x - c) ^ (ii - 1L)))
}

仅用于将来的参考。使用包装polynom使用change.origin

更改中心

例如:

change.origin(as.polynomial(a),3)

最新更新