如何将多项式映射到多项式?

时间:2012-04-05 02:05:38

标签: r func

我怎样才能做双倍多项式?

我有这个:

b <- function(ftn){2*ftn}
b(function(x) x)

但我在2 * ftn中得到错误:二元运算符的非数字参数

我可以做某种x&lt; -2x替换吗?

抱歉,我是一个完全的初学者。

1 个答案:

答案 0 :(得分:2)

是的,但是你通过返回一个带有x值的匿名函数,调用ftn并应用转换来实现。例如f(x) ↦ 2f(x)

> doublePoly <- function(ftn) { function(x) { 2 * ftn(x) } }
> f <- function(x) {x^2 + 1}
> g <- doublePoly(f)
> c(f(1), g(1))
[1] 2 4
> c(f(3), g(3))
[1] 10 20

可以使用这种技术进行任意转换,例如:乘以1+x

mult.1plusx <- function(ftn) { function(x) { (1+x) * ftn(x) } }

或者将exp(x)添加到函数的对数中:

exp.plus.log <- function(ftn) { function(x) { exp(x)  + log(ftn(x)) } }