Eine R-Funktion wird mir übergeben, die in einem Intervall der Real Line definiert ist und einen numerischen Wert zurückgibt. Gibt es eine Möglichkeit zu überprüfen, ob die Funktion konstant ist?Wie überprüft man, ob eine Funktion in R eine konstante Funktion ist?
Beispiel Funktionen:
f1<-function(x) {11}
f2<-function(x) {x+2}
f3<-function(x) {1+1}
f4<-function(x) {return(3)}
ich für einen Test suchen, die diesen f1, f3, f4 sind konstante Funktionen aber f2 sagen will, ist es nicht. Irgendwelche Ideen?
Edit:
Frank und Gregor (edit: und Michael Lawrence zweite Lösung) Lösungen unter allen Arbeiten für alle vier Testfälle gegeben oben (Marats und Michaels funktionieren nicht auf allen 4 Fällen). Es gibt also schon Lösungen. Aber zusätzliche Bonuspunkte, wenn Sie eine Lösung finden, die auch die richtige Antwort für die folgenden drei Testfunktionen gibt:
f5 <- function(x) ifelse(x == 5.46512616432116, 0, 1)
f6 <- function(x) ifelse(x == 5.46512616432116, 0, 0)
f7 <- function(x) {x - x}
Das Beste, was Sie tun können, ist eine Reihe von Werten versuchen. Viel Glück beim Abfangen meiner Funktion 'f3 = Funktion (x) ifelse (x == 5.46512616432116, 0, 1)'. – Gregor
Nicht sicher, ob es programmatisch für beliebige Funktionen möglich ist. Aber wenn Sie den Zusammenhang erkennen können, wäre vielleicht jemand in der Lage, eine Lösung vorzuschlagen. –
Ja genau Gregor, ich würde gerne solche Funktionen abfangen können. Deshalb habe ich gehofft, eine programmatische Lösung zu haben, die genau eine Reihe von Werten nicht testet. Weil R die Funktion kennt, ist die Information theoretisch dort ... –