高斯消除法:我的答案是错误的

时间:2018-12-10 12:44:43

标签: python

大家晚上好

我正在进行高斯消除法,而没有进行部分透视,并且我有以下代码:

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]。我该怎么做才能使其更准确?像往常一样,任何建议将不胜感激。谢谢!

0 个答案:

没有答案