我想实现一个三对角矩阵向量的求解器,即Ax=b。在写循环部分时,它显示“标量变量的索引无效”。我想知道为什么以及如何修复它。这是我的密码。在
import numpy as np
def tmv_solver(a,b,c,d):
a = np.array(a)
b = np.array(b)
c = np.array(c)
d = np.array(d)
n = len(a)
x = []
b_star = []
d_star = []
b_star = b[0]
d_star = d[0]
for i in range(1,n):
b_star = np.append(b_star,b[i]-a[i+1]/b_star[i]*c[i])
d_star = np.append(d_star,d[i+1]-a[i+1]/b_star[i]*d_star[i])
if b_star[i] == 0:
return 'Error'
x[-1] = d_star[-1]/b_star[-1]
for i in range(n-1,-1):
x.append((d_star[i]-b_star[i+1]*x[i])/b_star[i])
return x
#small test
a = [1,1,1]
b = [-2,-2,-2,-2]
c = [1,1,1]
d = [0.4,0.4,0.4,0.4]
y = tmv_solver(a,b,c,d)
print y
问题出现在b_star = np.append(b_star,b[i]-a[i+1]/b_star[i]*c[i])
处,原因是“标量变量的索引无效”
任何帮助都将不胜感激!在
目前没有回答
相关问题 更多 >
编程相关推荐