我必须做一些计算,其中长公式,主要涉及具有可变系数的多项式的导数。
不幸的是,我从Mathematica或Maple这样的引擎获得的结果以与我需要的方式非常不同的方式表示,并且将结果重新排列为期望的形式需要太长时间(更不用说重新引入错误的风险) )。
因此我想知道是否有某种方法可以自己进行计算,然后检查结果 - 即某种“方程检查器”:
我输入了d / dx f(x)= g(x),其中我提供了两个边,系统将其评估为真或假。
答案 0 :(得分: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 documentation。它非常方便。
答案 1 :(得分:2)
在Maple中,使用is(f=g)
。如果结果为FAIL
,则设置_EnvTry:= hard;
并再次尝试is
命令。
答案 2 :(得分: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
时,最好利用assumptions。同样有趣的是sym/logical
:
syms x;
isAlways(1 == sin(x)^2+cos(x)^2)
返回1
,但
logical(1 == sin(x)^2+cos(x)^2)
返回0
,因为它在比较之前不会简化表达式。
答案 3 :(得分: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
假
真
真