要計算概率,我必須計算導數(然後求值),如$\frac{\partial^5 f}{\partial x_1^2 \partial x_2^3}$
,其中$f$
是一個多項式函數。問題在於,導數的階數可能會隨着計算導數的變量列表而變化。計算函數的第n個導數
我已經嘗試過rSymPy和Ryacas,它的工作原理...直到變量的數量變得重要。所以我必須尋找一個不同的解決方案。我嘗試使用deriv()文檔中指出的DD()函數,並且反覆使用此函數似乎很好(並且出乎意料地比使用rSymPy和Ryacas更有效)。
我的問題是創建DD(DD(DD(...my.expr...,"xi",ni),"xj",nj),"xk",nk)
命令。我嘗試以下的代碼:
step1 <- function(k) paste0(",x", k, ",", r[k]-1, ")", collapse="")
step2 <- function(expr) {
paste0(paste0(rep.int("DD(",u), collapse=""), expr,
paste0(sapply(t,f4), collapse=""), collapse="") }
step2(f)
其中r
是指示導出的每個變量的順序的載體,t
一個該矢量的子集,並且u <- length(t)
f
是表達對象。此解決方案不起作用,因爲變量名稱周圍缺少引號。事實上,我得到了實例(我放棄了從代碼的功能):
DD(DD(DD(DD(DD(my.expr,x1,1),x7,1),x9,2),x10,1),x11,1)
代替:
DD(DD(DD(DD(DD(my.expr,"x1",1),"x7",1),"x9",2),"x10",1),"x11",1)
我想在我的功能step1
加入\"
,但我必須再與計算的問題的衍生物。任何建議來解決這個問題? PS:它肯定會更容易一個循環,但我想避免,如果可能的話。
PS2:對於LaTeX代碼抱歉。
感謝您的幫助。就我而言,更簡單的解決方案首先需要擴展多項式。我不知道如何用R來表演。 – PlaymoBill