Python 高斯消去(值错误)
各位晚上好, 我正在尝试用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):
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
而(pA=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()