【问题标题】:Julia Symbolics can't simplify derivative expressionsJulia Symbolics 无法简化导数表达式
【发布时间】:2021-12-20 01:16:39
【问题描述】:

我在 Julia 中使用 Symbolics 包,它似乎没有简化表达式的衍生物。

例如:

@variables r
Dr = Differential(r)
simplify(expand_derivatives(Dr((2/r)^2)))

结果

(-4(2 / (r^2))) / r

如果我改为手动创建导数表达式,那么简化效果很好

simplify((-4*(2 / (r^2))) / r)

给予

-8 / (r^3)

正如预期的那样。

为什么简化在微分创建的表达式上不能正常工作?

【问题讨论】:

  • 您的代码中的Dr 是什么?是Dr = Differential(r)
  • 正确!我已在其中添加了说明。

标签: julia symbolic-math derivative simplify


【解决方案1】:

使用expand=true。设置代码:

using Symbolics
@variables r
Dr = Differential(r)

现在:

julia> simplify(expand_derivatives(Dr((2/r)^2)); expand=true)
-8 / (r^3)

请注意,simplify((-4(2 / (r^2))) / r) 有效,因为 (-4(2 / (r^2))) / r 在达到该功能之前已被简化:

julia> -4(2 / (r^2)) / r
-8 / (r^3)

【讨论】:

  • 感谢您的帮助。问题:有必要做expand=true吗?这会产生令人讨厌的效果,即 (r-2)^2 -> r^2 - 4r + 4。我宁愿避免这种结果。
猜你喜欢
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
  • 2011-07-15
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多