符号数组表达式
问题描述:
我想知道是否有办法象征性地处理数组变量(像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等
答
从你的标签判断,我假设你主要对Python解决方案感兴趣。
有几个项目以符号方式构建数组表达式。我建议你看看
- Theano - 为代码生成构建数组表达式。主要用于机器学习应用程序,但是一个相当普遍的项目。
- SymPy Matrix Expressions - 限于矩阵,但处理一些线性代数的特殊知识。
- SymPy Indexed
- Blaze - Continuum的一个新项目正在成长。
如果你愿意走出Python,你可以看看Mathematica中的xAct。
还有很多其他项目,我没有在这里列出可能相关取决于您的应用程序。符号线性代数是一个非常活跃的领域。不过,每个项目都倾向于设计一个特定的应用程序。
你能写出一个函数来确定''我''和'j'的'A [i]','B [i] [j]'吗?如果是这样,您可能会哄['numpy.fromfunction'](http://docs.scipy.org/doc/numpy/reference/generated/numpy.fromfunction.html#numpy.fromfunction)进行您的出价。 –
也许已编入索引。不过,我不知道它是否可以嵌套。 – asmeurer