【问题标题】:Maxima simplify expression with diffMaxima 用 diff 简化表达式
【发布时间】:2017-05-23 15:57:00
【问题描述】:

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

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

我不使用 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)。怎么处理?

【问题讨论】:

    标签: diff constants maxima


    【解决方案1】:

    我看到'diff(...)(即派生名词表达式)不是线性的(不会分布在+ 上,也不会排除常量),但diff(...)(动词表达式)是线性的。至少这是一个错误的特征。

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

    尝试ev(eq2, nouns); 将导数重新评估为动词——我认为这应该会导致常量被排除在外。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多