2012-04-05 18 views
1

二重多項式のように何かできますか? 多項式を多項式にどのようにマッピングできますか?

私はこれがあります。

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

をしかし、私は2 * FTNでエラーが出ます:バイナリ演算子

に非数値引数私にできるのx < -2x交換のいくつかの並べ替えがありますか?

私は完全な初心者です。

答えて

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 

一つは、例えば、任意の変換を行うために、この技術を使用することができ

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

または関数の対数にexp(x)を追加:1+x乗じ

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