大家晚上好
我正在进行高斯消除法,而没有进行部分透视,并且我有以下代码:
a=[[1,2,-1], [2,1,1], [1,2,1]]
b=[4, -2, 2]
n=3
def NPP():
for k in range(0,n-1):
for i in range(k+1, n):
a[i][k]=a[i][k]/a[k][k]
for j in range(k+1,n):
a[i][j]=a[i][j]-a[i][k]*a[k][j]
for k in range(0,n):
for i in range(k+1,n):
b[i] = b[i]-a[i][k]*b[k]
for i in range(n-1,-1,-1):
s=b[i]
x[i]=s/a[i][i]
for j in range(i+1,n):
s=s-a[i][j]*x[i]
print(a,b)
print(x)
此代码在技术上可以正常运行,但是我得到的答案不正确。我应该得到的答案是[-5/3, 7/3, -1]
,但我却得到了[-4,-3.333333333, -1]
。我该怎么做才能使其更准确?像往常一样,任何建议将不胜感激。谢谢!