何かの派生物をどのようにして表現の中で使うことができますか?計算の導関数と積分
g:= t-> diff(f(t)、t);
これは、メイプルが最初に導関数を取り入れてからtを適用するのではなく、tの値を適用してその値に対して象徴的に区別しようとするため失敗します。
これを解決するには、通常、差分を事前に計算してからコピーして貼り付けなければなりません。このメソッドの問題点は、元の関数が変更されるたびに、すべてをやり直す必要があり、時間がかかることがあります。
良い方法がありますか?
何かの派生物をどのようにして表現の中で使うことができますか?計算の導関数と積分
g:= t-> diff(f(t)、t);
これは、メイプルが最初に導関数を取り入れてからtを適用するのではなく、tの値を適用してその値に対して象徴的に区別しようとするため失敗します。
これを解決するには、通常、差分を事前に計算してからコピーして貼り付けなければなりません。このメソッドの問題点は、元の関数が変更されるたびに、すべてをやり直す必要があり、時間がかかることがあります。
良い方法がありますか?
D
演算子を使用すると、最初にf
に何も割り当てなくても、演算子f
をg
に割り当てることができます。
その後、別の演算子を割り当てて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)
もう1つの方法は次のとおりです。このメソドロジでは、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
演算子は非常に便利です。そのヘルプページをチェックすることができます。