我有一個簡短的問題,希望有人能幫我解決這個問題。我找不到解決方案......
我想用uniroot()來尋找一個函式的零點,或者更確切地說,從一個函式的導數中尋找零點。如果我把函式寫成function(x)......這沒有問題,但如果我想通過一個變數把導數帶到uniroot中,那就不行了。
#This will not work:
deriv1 < - D(運算式(x^2-2*x)。 "x")
uniroot(deriv1, c(0。 5))
# 這將作業:
func < - function(x) 2 * x - 2
uniroot(func, c(0。 5))
預先感謝!
uj5u.com熱心網友回復:
你可以構造一個以派生運算式為主體的函式:
deriv1 < -D(運算式(X^2-2*x)。 "x")
f <- function(x){}
body(f) <- deriv1
uniroot(f, c(0。 5))
你也可以用符號微積分來代替uniroot:
library(Ryacas)
fun <- yac_symbol("x^2-2*x")
dfun <- deriv(fun, "x")
解決(dfun, "x")
# {x==1}。
而要提取解決方案:
yac_solution < -解(dfun, "x")
解決方案 < -yac_symbol(paste0("x where"。 解決方案))
yac(solution)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/334048.html
標籤:
上一篇:在R中創建一個聯合頻率分布表
