Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的消去矩阵(高斯)_Python_List_Function_Matrix - Fatal编程技术网

python中的消去矩阵(高斯)

python中的消去矩阵(高斯),python,list,function,matrix,Python,List,Function,Matrix,我试图在不使用numpy的情况下编写一个gauss-jordan消元代码,我已经差不多完成了,我知道第一部分肯定可以工作,但是最后一行之前的两行不行,我不知道为什么。我需要的输出是: [[12,0,0,1,13,-9],[0,2.66667,0,-2,-29,20],[0,0,-0.09375,1,15.6667,-10.6667]] 这是我的密码: def gauss_jordan(): a = [[12, 7, 3, 1, 0, 0], [4, 5, 6, 0, 1, 0], [

我试图在不使用numpy的情况下编写一个gauss-jordan消元代码,我已经差不多完成了,我知道第一部分肯定可以工作,但是最后一行之前的两行不行,我不知道为什么。我需要的输出是:

[[12,0,0,1,13,-9],[0,2.66667,0,-2,-29,20],[0,0,-0.09375,1,15.6667,-10.6667]]
这是我的密码:

def gauss_jordan():

    a = [[12, 7, 3, 1, 0, 0], [4, 5, 6, 0, 1, 0], [7, 8, 9, 0, 0, 1]]

    for i in range(len(a)):
        if a[i][i] == 0.0:
            sys.exit('Divide by zero detected!')  
        for j in range(len(a)):
            if i != j:
                ratio = a[j][i]/a[i][i]
                for k in range(len(a[0])):
                    a[j][k] = a[j][k] - ratio * a[i][k]

    #These next 2 lines need fixing  
    for i in range(len(a)):
        a[i] = (a[i][len(a)]/a[i][i])        

    return a
编辑:这是我更新的代码,它给出了生成器错误:

'''

def gauss_jordan():


''

最后两行应该是:

for i in range(len(a)): 
    a[i] = [v/a[i][i] for v in a[i]] 
一般建议:为变量(如行、列等)使用有意义的名称很有帮助

UPD:由于平台有一些粗略之处,请尝试以下方法:

for row in range(len(a)): 
    ratio = a[row][row]
    for col in range(len(a[0]):
        a[row][col] /= ratio

这不起作用,它将此作为输出:[,]@agg199这意味着在这部分之前出现了一些问题。检查
a
在片段之前的内容片段之前的a的内容是好的,它是:[[12.0,0.0,0.0,12.000000000000215,156.00000000000293,-108.000000203],[0.0,2.66666666667,0.0,-5.33333333344,-77.33333333479,53.333333333334345],[0.0,0.0,-0.09374999999822,-0.09375000000000022,-1.4687499999996,1.0]@agg199我可以毫无问题地运行它。你用括号替换方括号了吗?没有,我只是复制粘贴了你写的东西到我的函数中
for row in range(len(a)): 
    ratio = a[row][row]
    for col in range(len(a[0]):
        a[row][col] /= ratio