当前位置: 首页 > 知识库问答 >
问题:

Python中的高斯-乔丹消除

倪炎彬
2023-03-14

我正在编写代码以在python中消除高斯 - 乔丹。我的指示如下:

def gauss_jordan(A):
for each row k do
   i* <- argmax_{k<i<n} |A_{ik}|
   if A_{i*k} = 0 then
     Matrix is not invertible
   end if
   Swap rows k and i*
   for each row j below k (i.e. j = k + 1,...,n) do
     f = A_{jk}/A_{kk}
     Aj = Aj - fA_{k}
   end for
end for
for each row k = n,..., 1 (i.e. in reverse) do
   A_{k} = A_{k}=A_{kk}
   for each row j above k (i.e. j = k -1,..., 1) do
     f = A_{jk}/A_{kk}  
     Aj = A_{j}-fA_{k}
   end for
end for

到目前为止,我已经:

def gauss_jordan(A):
(h, w) = (len(A), len(A[0]))
for y in range(0,h):          
    for pivot in range(y, h):   
        if A[pivot][y].value % 2 != 0: 
            break 
    else: 
        return None

这是正确的开始吗?我对下一步该去哪里感到很迷茫。输入将是一个 Numpy 数组。任何想法都非常感谢!

共有1个答案

左丘繁
2023-03-14

您应该做的第一件事是创建增强矩阵。块方面,它看起来像[A,身份(A.shape[0])],然后按照算法进行求解。您的最终答案将是矩阵的右半部分。我相信您的 for 循环是正确的,但检查不正确。您需要在 k 的列中找到最大值。因此,当 k 为 1 时,您将遍历第一列并找到该列中绝对值的最大值并返回其索引

max_v=-10
index_m=-10
for t in range(k, A.shape[0]):
    if abs(A[t, k]) > max_v:
        max_v = abs(A[t, k])
        index_m = t

请注意,k是我的最外层循环,它穿过增广A矩阵的所有行。希望这有所帮助。

 类似资料:
  • 问题解决了。请看一下我自己在这个StackOverflow问题中的答案,了解如何。 但是,这是新的(并且正确工作的)代码: 显示器与下面相同。 我试图实现Gauss-Jordan消去法的Scala版本来反转矩阵(注意:可变集合和命令式范例用于简化实现——我试图不使用它们来编写算法,但这几乎是不可能的,因为算法包含嵌套步骤)。 单位矩阵不能很好地转换为反演的结果。换句话说:单位矩阵变换为倒矩阵(这是

  • 我知道我听起来很蠢,但我真的需要理解高斯-乔丹消去c程序。我已经试图理解编码,但逐行阅读代码仍然令人困惑。尤其是for(j = 1;英语字母表中第十个字母

  • 所以我试图通过高斯-乔丹消除找到矩阵的逆矩阵(使用 Python 列表)。但我正面临这个特殊的问题。在下面的代码中,我将我的代码应用于给定的矩阵,并按预期简化为单位矩阵。 输出为 但是当我应用相同的代码时,在为我的单位矩阵(它是给定矩阵的增广矩阵的一部分)添加代码行后,它没有在应该给我的时候给我正确的逆(因为我对它应用了与对给定矩阵应用相同的操作)。 输出不是逆矩阵,而是其他东西(尽管最后一列有正

  • 现在,我想我明白了这个概念。但是当我把它们都放入代码中时,它就不起作用了…… 首先,我试图将矩阵转换为上三角矩阵,但由于某种原因,在第2列之后,它停止工作。。 我输入的数组是: [1.00][5.00][4.00][4.00][1.00] [5.00] [7.00] [7.00] [4.00] [8.00] [7.00] [4.00] [8.00] [4.00] [7.00] [10.00][12

  • 问题内容: 我已经安装了运行Jenkins的uberSVN服务器,以使用PHP-WebWare控制SVN存储库。 我一直在遇到问题,并一直在寻找解决方案。现在,我希望这是最后一个,但是我找不到任何答案: 这里是Jenkins.log 谁能告诉我这里的问题是什么? 编辑:这里-为了更好的分析-完整的日志 不知道对您有没有帮助 做到了!!! 只需在项目根目录中定义phpdox.xml 很抱歉浪费您的时

  • 我正试图通过python脚本在Google BigQuery上运行一个简单的查询,但得到以下错误,即我的服务帐户缺少权限。 我的服务帐户应用了以下角色: 所有者 我还尝试用创建自定义角色,并将其应用于服务号,但仍然会出现此错误。我做错了什么? 拒绝访问:Project my test Project:用户my service account@my test Project。国际机械师协会。gser