the matlab code and the output i was expecting (gauss elimination method)
我的Python代码:
import numpy as np
A = np.array([
[1,2,-1,1],
[-1,4,3,1],
[2,1,1,1]])
n = rows = len(A)
col = len(A[0])
for i in range(n):
A[i,:] = A[i,:] / A[i,i]
for j in range(n):
if i==j:
pass
else:
A[j,:] = A[j,:] - (A[i,:] * A[j,i])
print(A)
我得到输出:
[[1 0 0 1]
[0 1 0 0]
[0 0 1 0]]
1条答案
按热度按时间8gsdolmq1#
您的问题与转换有关。如果没有信息,
numpy
会将您的矩阵转换为整数,因此当您除法时,结果不是浮点数。例如2 / 6 = 0
而不是0.33333
。如果您将您的结果将是
在matlab中没有这个问题,因为你的起始矩阵已经被转换成浮点数。