Python 口述SymPy和x27中术语的符号;s";线性“u eq”到“u矩阵”;

Python 口述SymPy和x27中术语的符号;s";线性“u eq”到“u矩阵”;,python,matrix,sympy,matrix-multiplication,Python,Matrix,Sympy,Matrix Multiplication,我正在用SymPy(在Juptyer笔记本中)用一个方程组做一些基本的计算。我正在使用sympy.linear\u eq\u to\u matrix将它们转换为矩阵形式 我试图在教育环境中使用这些函数,虽然sympy.linear_eq_to_matrix的结果是正确的,但它对什么数量是正的和负的做出了非典型的选择 例如,我试图得到矩阵方程F=Ku,其中F和u是1乘n向量,K是n乘n矩阵。学生通常会遇到这个符号形式的方程,其中F和u中的所有量都显示为正项,而矩阵K带有使方程有效的适当符号。当我调

我正在用SymPy(在Juptyer笔记本中)用一个方程组做一些基本的计算。我正在使用
sympy.linear\u eq\u to\u matrix
将它们转换为矩阵形式

我试图在教育环境中使用这些函数,虽然sympy.linear_eq_to_matrix的结果是正确的,但它对什么数量是正的和负的做出了非典型的选择

例如,我试图得到矩阵方程F=Ku,其中F和u是1乘n向量,K是n乘n矩阵。学生通常会遇到这个符号形式的方程,其中F和u中的所有量都显示为正项,而矩阵K带有使方程有效的适当符号。当我调用sympy.linear\u eq\u到矩阵时,它通常会返回带混合符号的F或带混合符号的u。有可能强迫F和u中的项为正吗

举个简单的例子,您可以查看以下笔记本的最后两行: (FWIW)在笔记本中前面调用的变量
Lmat
中,符号也“混淆”


重申一下,解决方案是正确的,只是“教科书”中没有学生将遇到的形式学生。这也有一些潜在的实际缺点,因为学生通常会提供/输入u或F值来解决问题,翻转的符号可能会令人困惑。

当前版本的Symphy似乎尊重这些符号:

>>> linear_eq_to_matrix(-(L**3*a4+L**2*a3+L*a2+a1),(a1,a2,a3,a4))
(Matrix([[-1, -L, -L**2, -L**3]]), Matrix([[0]]))
>>> linear_eq_to_matrix(L**3*a4+L**2*a3+L*a2+a1,(a1,a2,a3,a4))
(Matrix([[1, L, L**2, L**3]]), Matrix([[0]]))
您使用的是哪个版本

>>> import sympy
>>> sympy.__version__
'1.6.dev'

当前版本的SymPy似乎尊重以下标志:

>>> linear_eq_to_matrix(-(L**3*a4+L**2*a3+L*a2+a1),(a1,a2,a3,a4))
(Matrix([[-1, -L, -L**2, -L**3]]), Matrix([[0]]))
>>> linear_eq_to_matrix(L**3*a4+L**2*a3+L*a2+a1,(a1,a2,a3,a4))
(Matrix([[1, L, L**2, L**3]]), Matrix([[0]]))
您使用的是哪个版本

>>> import sympy
>>> sympy.__version__
'1.6.dev'

也许你可以将你的方程定义为
Eq(-lhs,rhs)
,以获得所需的符号。似乎sympy首先将它们重写为一个等于零的方程,然后使用这些符号。也许你可以将你的方程定义为
Eq(-lhs,rhs)
,以获得所需的符号。似乎sympy首先将它们重写为等于零的等式,然后使用这些符号。有趣…我使用1.4(虽然,这不是出于选择,我很乐意使用较新版本)有趣…我使用1.4(虽然,这不是出于选择,我很乐意使用较新版本)