Python 高斯消去(值错误)

Python 高斯消去(值错误),python,numpy,valueerror,Python,Numpy,Valueerror,各位晚上好, 我正在尝试用python实现高斯消去算法。尽管我相信实现是正确的(在倍频程上测试),但我似乎得到了一个值错误,如果不稍微改变我所采取的方法的逻辑,我似乎无法绕过这个错误。请在下面查找代码和相关错误消息 import numpy as np def gauss(A,b): n = len(A) A = np.array([A,b]) for i in range(n-1): p=i while (p<=n-1) and (A[p,i]==0):

各位晚上好,

我正在尝试用python实现高斯消去算法。尽管我相信实现是正确的(在倍频程上测试),但我似乎得到了一个值错误,如果不稍微改变我所采取的方法的逻辑,我似乎无法绕过这个错误。请在下面查找代码和相关错误消息

import numpy as np

def gauss(A,b):
n = len(A)
A = np.array([A,b])

for i in range(n-1):
    p=i
    while (p<=n-1) and (A[p,i]==0):
        p=p+1
    if p == n:
        print('No unique solution.')
        x = []
        return x
    if p != i:
        T = A[i,:]
        A[i,:] = A[p,:]
        A[p,:] = T
    for j in range(i+1,n):
        m=A[j,i]/A[i,i]
        for k in range(i,n+1):
            A[j,k]=A[j,k]-m*A[i,k]

if A[n-1,n-1] == 0:
    print("No unique solution")
    x=[]
    return x
x = [0]*n
x[n-1] = A[n-1,n]/A[n-1,n-1]

for i in range(n-2,-1,-1):
    tot = 0

    for j in range(i+1,n):
        tot = tot + A[i,j]*x[j]
    x[i] = (A[i,n] - tot)/A[i,i]

for i in range(n):
    print("x("+str(i+1)+") :",x[i])
将numpy导入为np
def高斯(A,b):
n=len(A)
A=np.数组([A,b])
对于范围(n-1)内的i:
p=i

而(p
A=np.array([A,b])
-这并不是你认为的意思。哦,我明白了。谢谢。
gauss(A,b)
Traceback (most recent call last):

File "<ipython-input-49-3f9a1b401722>", line 1, in <module>
gauss(A,b)

File "C:/Users/foo bar/Documents/Programming Projects/Python/Data 
Analysis/gauss.py", line 16, in gauss
while (p<=n-1) and (A[p,i]==0):

ValueError: The truth value of an array with more than one element is 
ambiguous. Use a.any() or a.all()