2017-08-28 127 views
1

我们如何获取某物的导数,然后在如下表达式中使用它:计算导数和积分

g:= t-> diff(f(t),t);

这会失败,因为枫不先采用导数,然后应用t,但应用t的值然后试图以象征性的方式区分该值。

要解决这个问题,我通常必须预先计算差分,然后复制并粘贴它。这种方法的问题是,只要原始函数发生变化,任何事情都需要重做,这可能很耗时。

有没有更好的方法?

回答

0

使用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运算符非常有用。你可以看看它的帮助页面。