【问题标题】:sympy issue solving a linear system解决线性系统的同情问题
【发布时间】:2017-09-22 05:23:07
【问题描述】:

我正在使用在 Jupyter QtConsole 上运行的 Python v.3.6。我正在尝试使用 Sympy 在数据集上做一些线性代数,用于将预测与调查分数联系起来的个人项目。

本质上,我建立了一个增广矩阵,其中包含 N = 14 个线性方程和 M = 5 个未知数,并试图求解该系统。我的问题是,当我在我的增广矩阵上使用 solve_linear_system 命令时,我的代码没有得到任何输出:

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 的事情是否存在根本性的问题,或者它是方法吗? 谢谢你。

【问题讨论】:

    标签: python matrix linear-algebra sympy


    【解决方案1】:

    原因是参考中没有针对增强系统的解决方案。
    (可能约束太多了,你可以尝试通过消除一些多余的方程来放松它)

    如果你盯着你的矩阵一会儿,你会发现有不兼容的方程,例如,第 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)。也可能有多余的。

    【讨论】:

    • 感谢您的及时回复,但我尝试了 7 个方程(最后一个值不等于 2 的方程),仍然没有输出,仅此而已,担心会丢失一些信息。但如果这是唯一的解决方案,我可以考虑进一步研究吗?
    • 如果你盯着你的矩阵看一会儿,你会发现有不兼容的方程,例如,第 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)。也可能有多余的。
    • 说得对。然而,考虑到我也尝试了所有方程,不包括等于 2 的方程,它是否仍然能够找到解决方案?
    • Er nvm 我意识到不同的方程有相似的答案,所以实际上即使使用 3s,也可能没有解。也许我需要尝试不同的策略。
    猜你喜欢
    • 1970-01-01
    • 2021-02-16
    • 2018-03-23
    • 2017-12-28
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多