我想在方向V:
的点p处取出函数omega的方向导数omega:x*y*z*z;
p:[2,3,-1];
V:[1,2,3];
p2:p+t*V;
sp:[x=p[1],y=p[2],z=p[3]];
sp2:[x=p2[1],y=p2[2],z=p2[3]];
deltaomega:subst(sp2,omega)-subst(sp,omega);
slope:ratsimp(deltaomega/t);
gVomega:limit(slope,t,0);
这样可行,但这两个替换看起来有点hacky。有没有更好的方式来说'在p和p + t * V'评估omega?
我知道有更好的方法可以做到这一点!我希望能够从最初的原则开始(因为我有更复杂的版本,没有内置的内容)。
答案 0 :(得分:2)
我至少可以看到两种方法;我们也可以找到其他人。
(%i1) omega (x, y, z) := x * y * z^2 $
(%i2) p : [2, 3, -1] $
(%i3) V : [1, 2, 3] $
(%i4) p2 : p + t * V $
(%i5) deltaomega : apply (omega, p2) - apply (omega, p);
2
(%o5) (t + 2) (2 t + 3) (3 t - 1) - 6
......然后其余的都是一样的。或者定义omega
所以它的参数是一个列表:
(%i1) omega (p) := p[1] * p[2] * p[3]^2 $
(%i2) p : [2, 3, -1] $
(%i3) V : [1, 2, 3] $
(%i4) p2 : p + t * V $
(%i5) deltaomega : omega (p2) - omega (p);
2
(%o5) (t + 2) (2 t + 3) (3 t - 1) - 6
请注意,在这两种情况下,我都将omega
定义为函数。