大家晚上好
a=[[1, 2, -1], [-2, 4, 1], [2, 2, 3]]
b=[-4,6, 1]
n=3
def SPP():
for i in range(1,n):
s=[0]*3
p=[0]*3
for j in range(1,n):
s[i]+=max(s[i], abs(a[i][j]))
p[i]=i
for k in range(1,n-1):
rm=0
for i in range(k,n):
r=abs(a[p[i]][k]/s[p[i]])
if r>rm:
rm=r
j=1
else:
pass
temp=p[k]
p[k]=p[j]
p[j]=temp
for i in range(k+1,n):
a[p[i]][j]=a[p[i]][k]/a[p[k]][k]
for j in range(k+1,n):
a[p[i]][j]=a[p[i]][j]-a[p[i]][k]*a[p[k]][j]
for k in range (1,n-1):
for i in range(k+1,n):
b[p[i]]=b[p[i]]-a[p[i]][k]*b[p[k]]
for i in range(n,0,-1):
s=b[p[i]]
x=s/a[p[i]]
for j in range(i+1,n):
s=s-a[p[i]][j]*x[j]
我在Python中研究高斯消去比例的部分旋转问题,对于上面的大部分代码,我都遵循了类中给出的格式,但我唯一不完全确定的是如何用零除?方向不是很清楚,所以我试着把一个空的列表,但我仍然得到以下错误。你知道吗
ZeroDivisionError回溯(最近一次调用) 在() ---->;1 SPP()
在SPP()中
---> 14 r=abs(a[p[i]][k]/s[p[i]])
15 if r>rm:
16 rm=r
ZeroDivisionError:被零除
任何建议都将不胜感激。谢谢您!你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐