我有一个类似的公式:
y= Sum[ i x[i] , {i,10}]
我想计算衍生物:
D[y,x[i]] -> = i
我怎样才能在mathematica中做到这一点?
我可以D[y, x[3]]
,它给了我3
但是如果我输入D[y, x[i]]
它会返回0但我希望我。
有没有办法在Mathematica中为上述系列定义参数导数?
答案 0 :(得分:1)
无论如何,可能不是思考问题的最佳方式:
构建变量列表:
vars = Table[Symbol["x" <> ToString[i]], {i, 1, 10}]
(* {x1, x2, x3, x4, x5, x6, x7, x8, x9, x10} *)
建立你的功能:
expr = Dot[Range[10], vars]
(* x1 + 10 x10 + 2 x2 + 3 x3 + 4 x4 + 5 x5 + 6 x6 + 7 x7 + 8 x8 + 9 x9 *)
拿衍生物:
D[expr, #] & /@ vars
(* {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} *)
答案 1 :(得分:1)
以下是需要考虑的一些事项。
符号x_3
并不表示带索引3的x。它表示x_的三倍。
您应该使用下标[x,3]。
您的y是:Sum[n * Subscript[x, n], {n, 1, 5}]
您现在可以找到部分派生词:
D[Sum[n * Subscript[x, n], {n, 1, 5}], Subscript[x, 2]]
给出2。
D[Sum[Subscript[x, n], {n, 1, 5}], Subscript[x, j]]
给出0。
原因是Subscript[x, j]
被视为变量。