任何区分张量的工具和另一个张量?

时间:2013-10-04 02:56:39

标签: matlab wolfram-mathematica sympy

我一直在处理连续介质力学,并且有很多操作我需要得到张量相对于另一个张量的导数。我想在计算机上试图象征性地做到这一点。

例如,弹性张量c = d(第二PK应力)/ d(应变张量),而第二PK应力张量和应变张量都是3x3矩阵,得到的弹性张量是3x3x3x3四阶张量。

我试图使用sympy,但它似乎最支持的是一个矩阵(张量为2的张量)。 numpy中的ndarray根本不是同情的。

我曾经使用过matlab,现在我也知道它在matlab中的作用方式。

因此,我想知道,有没有可用于此目的的工具? mathematica能做到吗?

提前多多感谢!

-Shawn

1 个答案:

答案 0 :(得分:2)

在python中执行此操作的方法是使用dtype=object使用numpy数组,以便您可以使用sympy表达式而不是数字填充它们。但是你必须自己编写所有的便捷方法(但它们非常简单,只需在numpy数组上循环已实现的sympy函数)。

如果你安装了必要的符号包,这显然可以在Mathematica中或在Matlab中完成。

Mathematica也有用于张量分析的软件包,但对于你所描述的问题来说,它们会有些过分。同样,在SymPy中有各种用于微分几何和张量分析的包,但同样,它们也是一种过度杀伤。