Julia Symbolics 中常量表示的 Sqrt

Sqrt of constant representation in Julia Symbolics

我正在寻找一种表示符号表达式的方法,例如 sqrt(3)*x,以避免预先计算 sqrt(3)

示例代码:

using Symbolics
@variables x
y = sqrt(3)*x

显示y,可以看到sqrt(3)变成了浮点数

是否有一种机制可以将 sqrt 保持为符号形式?

我无法重现:

julia> using Symbolics

julia> @variables x
(x,)

julia> y = 1//3*x
(1//3)*x

julia> y
(1//3)*x

我的配置:

[0c5d862f] Symbolics v0.1.21

julia> versioninfo()

Julia Version 1.6.0
Commit f9720dc2eb (2021-03-24 12:55 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-9850H CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, skylake)

is there a mechanism to keep the sqrt in symbolic form?

julia> using Symbolics
julia> @variables x
(x,)
julia> y = Symbolics.Term(sqrt,[3])*x

x*sqrt(3)

有趣,y = 1//3 * x 有效,但根据原始问题,y = sqrt(3) * x 无效。所以,用户 Nasser 的回答真的很有帮助谢谢。