Julia使用符号变量在循环中更改名称

时间:2015-06-23 09:55:02

标签: julia sympy symbolic-math

我想在循环的每次迭代中更改符号变量的名称,然后使用这些符号变量求解方程式,例如:

using SymPy
for i in 1:5
  p{i} = symbols("p"{i}, real=true,positive=true)
  solve(p{i}^2-i^2)
end

所以我想创建一系列标量符号变量(因为我认为不可能创建一个矢量值符号变量),每个变量都有不同的名称 - p1,p2,p3,p4和p5 - 然后在方程求解器中使用它们。然而,根据matlab,花括号符号似乎不适用于julia中的命名。一个快速的谷歌没有提出任何明显的答案。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

在julia和大多数计算机语言中,如果你发现自己需要一堆数字变量x1,x2,x3,...,你可能需要一个数组。 在朱莉娅,这可能看起来像这样,(但请注意,我不知道我在用SymPy做什么)

using SymPy
pp=Sym[]
for i in 1:5
    p = symbols("x$i", real=true,positive=true)
    push!(pp,p)
    solve(pp[i]^2-i^2)
end

这里我们从pp空开始,但是正确的类型;我们将每个符号推到pp的末尾;最后,我们可以用pp[i]找出pp的第i项,这几乎是你的代码,但是没有shift键。