计算导数和积分
问题描述:
我们如何获取某物的导数,然后在如下表达式中使用它:计算导数和积分
g:= t-> diff(f(t),t);
这会失败,因为枫不先采用导数,然后应用t,但应用t的值然后试图以象征性的方式区分该值。
要解决这个问题,我通常必须预先计算差分,然后复制并粘贴它。这种方法的问题是,只要原始函数发生变化,任何事情都需要重做,这可能很耗时。
有没有更好的方法?
答
使用D
操作您可以指定运营商f
的“衍生物”到g
,而不必首先被分配什么f
。
您可以随后分配并重新分配不同的运算符到f
,之后可以调用g
。在下例中调用g
不会导致f
被调用任何符号参数。
restart;
g := D(f);
g := D(f)
f := x->sin(x)+x^2:
g(x);
cos(x) + 2 x
g(2);
cos(2) + 4
f := x->tan(x)+x^3:
g(x);
2 2
1 + tan(x) + 3 x
g(2);
2
13 + tan(2)
另一种方法如下。请注意,使用此方法,每次拨打g
将导致Maple在符号本地T
上拨打diff
。如果 - 在分配给f
后 - 你多次拨打g
然后这将会更加昂贵(即使只是检查记忆结果并使额外功能呼叫到diff
)。此外,你的f
可能是一些甚至没有设置为适当的非数字参数返回,所以f(T)
的调用可能会有问题。
restart;
g := proc(t) local T; eval(diff(f(T),T),T=t); end proc:
f := x->sin(x)+x^2:
g(x);
cos(x) + 2 x
g(2);
cos(2) + 4
f := x->tan(x)+x^3:
g(x);
2 2
1 + tan(x) + 3 x
g(2);
2
13 + tan(2)
D
运算符非常有用。你可以看看它的帮助页面。