在我开始使用python中的数字代码之前,作为一个小练习,我正在尝试创建一个LDLT算法。只是为了“把脚弄湿”。在
不过,我似乎对纽比阵法缺乏基本的了解。请参见以下示例:def ldlt(Matrix):
import numpy
(NRow, NCol) = Matrix.shape
for col in range(NCol):
Tmp = 1/Matrix[col,col]
for D in range(col+1, NCol):
Matrix[col,D] = Matrix[D,col]*Tmp
if __name__ == '__main__':
import numpy
A = numpy.array([[2,-1,0],[-1,2,-1],[0,-1,2]])
ldlt(A)
这个例子不是我正在处理的完整代码。但是,尝试运行它,并在矩阵[col,D]=。。。在
对于第一个计算,我希望第0行第1列(起始值为-1)设置为=-1*(1/2)=-0.5。在
但是,当运行代码时,它似乎被设置为0。为什么?
一定有一些根本的东西我还没真正理解?在
先谢谢你们帮我的忙。在
编辑1:
Python版本:3.3
Tmp.:变成0.5(正如我的调试器报告的那样)。在