2012-04-05 11 views
1

Wie kann ich etwas wie ein Doppelpolynom machen?Wie kann ich ein Polynom einem Polynom zuordnen?

Ich habe dies:

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

Aber ich Fehler erhalten in 2 * ftn: nicht-numerische Argument Binäroperators

Gibt es irgendeine Art von x < -2x Ersatz kann ich tun?

Entschuldigung, ich bin ein kompletter Anfänger.

Antwort

2

Ja, aber Sie tun es, indem Sie eine anonyme Funktion zurückgeben, die den Wert x annimmt, ftn aufruft und die Umwandlung anwendet. z.B. für 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 

Man kann diese Technik verwenden, beliebige Transformationen zu tun, zum Beispiel 1+x durch Multiplikation:

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

oder Hinzufügen exp(x) zum Logarithmus der Funktion:

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