2017-08-28 125 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運算符非常有用。你可以看看它的幫助頁面。