Maxima使用diff简化表达式

时间:2017-05-23 15:57:01

标签: diff constants maxima

让我们假设a是一个常数,x是我关于时间的变量,所以基本上是x(t)。

然后在Maxima中,使用'diff(a*x,t)自动替换a*'diff(x,t)而不使用subst命令的最佳方法是什么。

我不使用subst的原因是我有许多变量和更高阶的导数。使用subst来替换所有出现次数是没有效率的。

感谢。

更新

我尝试使用depends(x,t)命令,但它只适用于简单的情况。这是我情况的一个最小例子。

depends([x,y],t);
eq1:diff(x,t)-b=c;
eq2:subst([x=a*y],eq1);
sol_dy=solve(eq2,diff(y,t))

当然这里a,b,c是常数,x,y是t上的变量。 Maxima无法直接求解diff(y,t)。怎么处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

我看到'diff(...)(即衍生名词表达式)不是线性的(不会分布在+上并且不会分解常数)但是diff(...)(动词表达式)是线性的。至少这是一种错误。

我打算建议declare(nounify(diff), linear),但这会使衍生物在你的例子中显示为0 ...这可能是一个错误,我将不得不考虑更多。

尝试ev(eq2, nouns);重新评估衍生品作为动词 - 我认为这应该导致常数被分解。