3

主に可変係数を持つ多項式の導関数を含む長い式が発生する計算を行う必要があります。

残念ながら、Mathematica や Maple などのエンジンから取得した結果は、必要なものとは大きく異なる方法で表現されており、結果を望ましい形式に再配置するには時間がかかりすぎます (エラーが再び発生するリスクは言うまでもありません)。

したがって、代わりに自分で計算を行い、結果をチェックする方法があるかどうか疑問に思っていました。つまり、ある種の「式チェッカー」です。

d/dx f(x) = g(x) を入力すると、両側が提供され、システムはこれが true または false であると評価します。

4

4 に答える 4

4

私はチェックアウトしsym/isequalnます。isequalnこれは、シンボリック式の比較に使用されるのオーバーロード バージョンです。例えば:

syms x
f(x) = 3*x^3-2*ln(x);
g(x) = 9*x^2 - 2/x;
isequaln(f,g)

ans =
    0

isequaln(diff(f), g)

ans = 
    1

関数については、 MathWorks のドキュメントを参照してください。それはかなり便利です。

于 2013-11-12T21:10:36.213 に答える
2

Maple では、 を使用しますis(f=g)。結果が の場合はFAIL、設定してコマンドを再_EnvTry:= hard;試行してください。is

于 2013-11-13T19:46:44.630 に答える
1

Matlab の少し古いバージョン ( R2012aに戻る) では、isAlways記号方程式をテストする方法として を使用できます。この関数は、不等式のテストにも役立ちます。関数名の「A」が大文字であることを忘れないでください。@ zachd1_618の例を自由に使用してください:

syms x;
f = 3*x^3-2*log(x);
g = 9*x^2 - 2/x;
isAlways(f == g)

返品0しますが、

isAlways(diff(f,x) == g)

戻ります1

または のいずれisequalnかを使用する場合、仮定isAlwaysを利用することをお勧めします。また興味深いのは次のとおりです。sym/logical

syms x;
isAlways(1 == sin(x)^2+cos(x)^2)

返品1しますが、

logical(1 == sin(x)^2+cos(x)^2)

0比較する前に式を単純化しないため、返されます。

于 2013-11-13T03:22:35.310 に答える
1
f = 3 x^3 - 2 Log[x];
g = 9 x^2 - 2/x;
PossibleZeroQ[f - g]
PossibleZeroQ[D[f, x] - g]
D[f, x] == g

間違い

真実

真実

于 2013-11-13T06:14:10.527 に答える