Phép khử Gauss - Jordan

Bác nào giải thích hộ e sao ở vòng for thứ 3 nó lại ko chạy vơi ạ!
Kết quả trả về thì là ma trận đường chéo nhưng lại giữ nguyên đường chéo cũ :((

def gaus_jordan(A):
  N = len(A)
  for i in range(N):
    for k in range(N):
      if k != i:
        for j in range(N):
          A[k][j] = A[k][j] - A[i][j]*A[k][i]/A[i][i]
  return A

import numpy as np
A = np.array([[1,3,5,7], [6,8,4,3], [9,1,3,2], [7,3,5,6]], dtype='float')
print(gaus_jordan(A))
import time
time.sleep(100)
//...

Thì i=k nó có chạy vòng for thứ 3 đâu mà. nên A[i][i] không bao giờ thay đổi

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?