18
R有沒有任何方法可以求解給定單變量函數的逆?我的動機是稍後告訴R使用值的向量作爲反函數的輸入,以便它可以吐出反函數值。例如,我有函數y(x)= x^2,反函數是y = sqrt(x)。有沒有一種方法R可以解決反函數?求解R中函數的反函數
我擡頭看uniroot(),但我沒有解決一個函數的零。
任何建議將有所幫助。
謝謝!
R有沒有任何方法可以求解給定單變量函數的逆?我的動機是稍後告訴R使用值的向量作爲反函數的輸入,以便它可以吐出反函數值。例如,我有函數y(x)= x^2,反函數是y = sqrt(x)。有沒有一種方法R可以解決反函數?求解R中函數的反函數
我擡頭看uniroot(),但我沒有解決一個函數的零。
任何建議將有所幫助。
謝謝!
你發現了什麼樣的反轉?如果您正在尋找一個符號反轉(例如,與sqrt(x)相同的函數y),您將不得不使用符號系統。查看ryacas,以便R庫與計算機代數系統連接,該計算機代數系統可能會計算逆矩陣Yacas。現在
,如果你只需要計算逐點逆,可以在uniroot來定義你的函數爲你寫的:
> inverse = function (f, lower = -100, upper = 100) {
function (y) uniroot((function (x) f(x) - y), lower = lower, upper = upper)[1]
}
> square_inverse = inverse(function (x) x^2, 0.1, 100)
> square_inverse(4)
[1] 1.999976
對於給定的y
和f(x)
,這將計算x
這樣的f(x) = y
,也被稱爲逆。
很好,雖然分號是不必要的... – 2012-04-10 00:58:45
啊,R不是我的主要語言,所以我不知道這是什麼風格...我會修復它。 – 2012-04-10 03:54:01
我打算建議生成一個大向量'y < - f(seq(0,100,.001)',並使用結果通過'ecdf'或類似工具用y建立x的分佈函數,但是Mike的方法 – 2012-04-10 12:36:21