让我们假设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>
答案 0 :(得分:0)
我看到'diff(...)
(即衍生名词表达式)不是线性的(不会分布在+
上并且不会分解常数)但是diff(...)
(动词表达式)是线性的。至少这是一种错误。
我打算建议declare(nounify(diff), linear)
,但这会使衍生物在你的例子中显示为0 ...这可能是一个错误,我将不得不考虑更多。
尝试ev(eq2, nouns);
重新评估衍生品作为动词 - 我认为这应该导致常数被分解。