1
我們如何獲取某物的導數,然後在如下表達式中使用它:計算導數和積分
g:= t-> diff(f(t),t);
這會失敗,因爲楓不先採用導數,然後應用t,但應用t的值然後試圖以象徵性的方式區分該值。
要解決這個問題,我通常必須預先計算差分,然後複製並粘貼它。這種方法的問題是,只要原始函數發生變化,任何事情都需要重做,這可能很耗時。
有沒有更好的方法?
我們如何獲取某物的導數,然後在如下表達式中使用它:計算導數和積分
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
運算符非常有用。你可以看看它的幫助頁面。