我正在寻找一种表示符号表达式的方式,例如 sqrt(3)*x
,以避免提前计算 sqrt(3)
。
示例代码:
using Symbolics
@variables x
y = sqrt(3)*x
展示y,我们可以看到sqrt(3)已经变成了一个浮点数。
是否有一种机制可以使sqrt保持符号形式?
我正在寻找一种表示符号表达式的方式,例如 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 = Symbolics.Term(sqrt,[3])*x
x*sqrt(3)
我无法复现:
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)
//
运算符时,多重分派将选择具有签名operator //(Int64, Symbolics.Num)
的相应函数。 - Tarik
(1/3)x
还是(1//3)x
?因为(1//3)x
的效果是正常的... - Picaud Vincent