2024-10-01 22:41:57 发布
网友
不知道这是不是问对的地方,但这里去了。
有人知道下面的代码是如何求解x Lx=y,其中L和y分别是给定的矩阵和向量的吗?
Lx=y
如果你知道的话,你能不能把它分解一下,把每一步都和你用纸和笔解决问题的方法进行比较?
def forward(L, y): x = [] for i in range(len(y)): x.append(y[i]) for j in range(i): x[i]=x[i]-(L[i, j]*x[j]) x[i] = x[i]/L[i, i] return x
我假设您将矩阵表示为一个行列表(这是一个列表),如果不是,则在矩阵上使用zip函数,将y表示为一个元组。我也假设矩阵是平方的,因为有另一种形式的三角形矩阵并没有真正意义。
这个过程非常相似,就好像它是上三角形,除了你从顶部开始。
基本上,你所做的是,取点积,用正确的值(你已经找到的值)替换矩阵中的每个非零项,然后把它们加起来。当你从另一端减去,除以第n行第n项的系数,你就是在求解。
(现在输入一个示例实现)。(假设有一个类或函数采用点积,如果没有,实现起来应该不难)。(Python2.7)
def solve(m, y): v = [0 for i in xrange(len(m))] for i in xrange(len(m)): v[i] = (y[i] - v.dotProduct(m[i]))/float(m[i][i]) return v
我假设您将矩阵表示为一个行列表(这是一个列表),如果不是,则在矩阵上使用zip函数,将y表示为一个元组。我也假设矩阵是平方的,因为有另一种形式的三角形矩阵并没有真正意义。
这个过程非常相似,就好像它是上三角形,除了你从顶部开始。
基本上,你所做的是,取点积,用正确的值(你已经找到的值)替换矩阵中的每个非零项,然后把它们加起来。当你从另一端减去,除以第n行第n项的系数,你就是在求解。
(现在输入一个示例实现)。(假设有一个类或函数采用点积,如果没有,实现起来应该不难)。(Python2.7)
相关问题 更多 >
编程相关推荐