关于Mathematica求导的问题
mathematica吧
全部回复
仅看楼主
level 6
JIΩNG 楼主
如何让Mathematica对函数的第i个参数求导?
比如f[q1_, q2_, q3_, q4_] := q1 q2^2 q3^3,
我想算这个东西:
要对f的第i个参数求偏导,我只能想到用梯度的第i个分量表示:
有没有更简单的方法?
用这个D[f[q1, q2, q3, q4], q1]的话没法直接求和
2018年01月15日 10点01分 1
吧务
level 12
直接的写法
vars = {q1, q2, q3, q4};
f[q1_, q2_, q3_, q4_] := q1 q2^2 q3^3;
Sum[D[f[q1, q2, q3, q4], vars[[i]]]*
D[f[q1, q2, q3, q4], vars[[j]]], {i, 4}, {j, 4}]
简单些的写法(不懂的地方按F1查阅帮助即可)
Outer[Times, #, #] &[Grad[f[q1, q2, q3, q4], {q1, q2, q3, q4}]]~Total~2
2018年01月16日 12点01分 2
谢谢冬瓜[吐舌]。所以想表示“对f的第i个参数求导”,最简单的方法就是D[f[q1, q2, q3, q4], vars[[i]]]?有没有自带的函数可以表示这个东西?主要是之前也遇到过这个问题但是没解决。。
2018年01月16日 12点01分
@JIΩNG 自带函数的话可以看下Derivative的帮助,要比D更直接一些。但是对多元函数求偏时写法其实也比较麻烦,在你这个问题里不如D好用
2018年01月16日 13点01分
1