【发布时间】:2023-04-04 17:04:02
【问题描述】:
我尝试使用 Python 实现反向替换,从 Lx = b 解决 x 但出现错误。
而且我不知道如何进行迭代以了解问题所在。
我是不是误解了一个概念?
import numpy as np
def backSub(L: np.ndarray, b: np.ndarray)-> np.ndarray:
length = len(L)
x = np.zeros(length)
for k in range(length - 1, -1, -1):
x[k] = (b[k] - np.dot(L[k, k + 1:], x[k + 1:])) / L[k, k]
return x
M = np.array([[2, 0,0],
[1, 3, 0],
[2, 3, 4]])
s = np.array([[2, 2, 0]])
print(backSub(M, s))
当我运行我的程序时,我得到了这个:
输出
x[k] = (b[k] - np.dot(L[k, k + 1:], x[k + 1:])) / L[k, k]
IndexError: index 2 is out of bounds for axis 0 with size 1
预期输出
只是一个向量 x 来自 **L x = b **
【问题讨论】:
标签: python arrays python-3.x numpy matrix