符号数组表达式

时间:2012-11-30 06:08:41

标签: python scipy sympy

我想知道是否有一种方法可以象征性地处理数组变量(类似于sympy而是数组而不是数值变量)。这样我就可以使用数组表达式,例如

f1 = 3*A[i] + 4*B[i][j] - 7 == 0

或更高级的东西,如嵌套数组关系

f2= 3 * A[C[i][j]] == B[i] + 3

通过象征性地处理A,B,我可以通过使用替换来改变A,B的内容,例如:

f1.subs(A=[1,2,3,4],B=[[1,2],[3,4]])

然后我可以添加f1和f2等。

1 个答案:

答案 0 :(得分:2)

从您的标签判断我会假设您主要对Python解决方案感兴趣。

有一些项目以符号方式构建数组表达式。我建议你看看

  • Theano - 为代码生成构建数组表达式。主要用于机器学习应用程序,但是一个相当普遍的项目。
  • SymPy Matrix Expressions - 仅限于矩阵,但处理我们对线性代数的一些特殊知识。
  • SymPy Indexed
  • Blaze - 一个由Continuum人员组成的新项目。

如果您愿意退出Python,可以查看Mathematica中的xAct

根据您的应用,我在此处未列出的许多其他项目可能相关。符号线性代数是一个非常活跃的领域。每个项目的设计都考虑了特定的应用程序。