如何在Julia中将向量中的项求和转换?

4

你知道如何在Julia中将向量的一系列项转换为总和吗?

例如,如果我们有一个多项式p(x,y)=1+x+y+xy+x^2+y^2+xy^4,与p(x,y)关联的数组v将如下所示:

v=[1,x,y,xy,x^2,y^2,xy^4]

另一个例子:如果有以下表达式:a+b+c+abc+ac,则与此表达式关联的数组v将如下所示:

v=[a,b,c,abc,ac]


你正在描述昔日Derive符号语言中的TERMS(x)函数。我想知道其他计算机代数系统是否有类似的功能。Derive帮助页面截图。 - JAlex
我认为你需要的是元编程。metaprogramming - JAlex
2个回答

1
使用元编程来解析表达式并查看生成的表达式树。
ex = Meta.parse("1 +x+y+x*y+x^2+y^2+x*y^4")
ex.args
8-element Vector{Any}:
  :+
 1
  :x
  :y
  :(x * y)
  :(x ^ 2)
  :(y ^ 2)
  :(x * y ^ 4)

1
如果您想学习如何在Julia中进行符号计算,可以查找SymPy.jl。这是一个不错的教程:https://mth229.github.io/symbolic.html。一旦您理解了这个,就应该能够实现您想要做的事情。

5
Julia 中用于符号计算的新热门软件包(且是本地化的)是 https://github.com/JuliaSymbolics/Symbolics.jl,而 SymPy 则已经过时了 ;) - DNF
@DNF,您如何使用Symbolics.jl处理OP所需的内容? - Benoit Pasquier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接