对不起,如果问题很愚蠢/在其他地方回答/...我找不到任何不错的解决方案。
基于权力系列的想法,我有
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)