2017-09-22 72 views
1

我使用Jupyter QtConsole上运行的Python v.3.6。我试图用Sympy在一个数据集上做一些线性代数,用于将预测与调查分数联系起来的个人项目。本质上,我设置了一个增广矩阵,其中N = 14个线性方程组和M = 5个未知数,并且试图解决这个系统。我的问题是,当我使用solve_linear_system命令我增广矩阵,我没有得到任何输出我的代码:sympy问题解决线性系统

import sympy 
from sympy import * 
from sympy import Matrix, solve_linear_system 
from sympy.abc import x, y, z, u, v 
system = Matrix(((1,1,-1,0,0,1),(1,1,-1,0,0,2),(0,0,-1,0,-1,3), 
(0,0,-1,0,-1,2),(0,0,0,1,0,1),(1,0,1,1,-1,2),(0,0,-1,0,-1,2),(1,0,1,0,0,1), 
(1,1,1,0,1,3),(1,1,1,0,0,2),(-1,1,0,0,-1,3),(1,-1,-1,-1,0,2),(-1,1,1,1,-1,3), 
(0,-1,0,0,0,2))) 
solve_linear_system(system, x, y, z, u, v) 
>> 

有人能解释可能是什么问题,如何补救?我尝试了其他矩阵,它似乎与他们一起工作,那么我在问什么是Sympy todo还是它的方法有什么根本错误? 谢谢。

回答

1

原因是在增强型系统中没有解决方案的参考。
(可能太多的限制,你可以尝试通过消除一些多余的方程来放松吧)

如果你盯着你的矩阵一小会儿,你会发现,有不兼容的公式,例如,行2(0,0,-1,0,-1,3),(0,0,-1,0,-1,2)或行0和1:(1,1,-1, 0,0,1),(1,1,-1,0,0,2)。也可能有多余的。

+0

感谢您的及时回复,但我尝试了7个方程(最后一个值不等于2的方程),仍然没有输出,不仅如此,还担心信息丢失。但如果这是唯一的解决方案,我可以考虑更多地研究它? – Jonesn11

+0

如果你盯着你的矩阵一会儿,你会发现有不相容的方程,例如第2行和第3行:'(0,0,-1,0,-1,3),(0,0 ,-1,0,-1,2)'或行0和1:'(1,1,-1,0,0,1),(1,1,-1,0,0,2)' 。也可能有多余的。 –

+0

这是合理的。然而,鉴于我尝试了所有等式不包含等于2的等式,它是否仍然能够找到解决方案? – Jonesn11