这是我想扩展和派生的函数的乳胶代码:
$f(x) = \sum\limits_{i=1}^n \left(x_i + \frac{h}{2}(1-ih)\sum\limits_{j=1}^i jh(x_j + jh +1)^3 + \frac{h}{2}ih\sum\limits_{j=i+1}^n (1-jh)(x_j+jh+1)^3 \right)^2$
我计划n=6
通过deriv(expression(myfunction),c('x1', 'x2','x3','x4','x5','x6'))
. 我不知道如何在不扩展函数的情况下计算导数,但如果有办法请告诉我。
我的问题始于尝试仅在一个字符串中扩展函数时,因为部分表达式会重复,因此将不胜感激:
n<-6
myexpr <- sapply(1:n, function(i) paste( paste('x',i,sep=''),paste('+h/2*(1-',i,'*h)*(',sep=''),
sapply(1:i,function(j) paste('(j*h*(',paste('x',j,sep=''),'j*h+1)^3)',collapse='+')),
paste('+h/2*',i,'*h*(',sep=''),
sapply((i+1):n,function(j) paste('((1-j*h)*(',paste('x',j,sep=''),'+j*h+1)^3)',collapse='+'))
,collapse='+'))
deriv(expression(myexpr),c('x1', 'x2','x3','x4','x5','x6'))