Là một bài tập nhỏ trước khi tôi bắt đầu chơi với mã số trong python Tôi đang cố tạo một thuật toán LDLT. Chỉ để "có được bàn chân ướt".Chỉ định giá trị mảng Numpy cơ bản
Tuy nhiên, tôi dường như thiếu kiến thức cơ bản về mảng mờ. Xem ví dụ sau:
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)
Ví dụ này không phải là mã đầy đủ mà tôi đang làm việc. Tuy nhiên, hãy thử và chạy nó, và thiết lập một break-break tại Matrix [col, D] = ...
Điều tôi mong đợi cho đánh giá đầu tiên là hàng 0 cột 1 (giá trị bắt đầu là -1) đặt bằng = -1 * (1/2) = -0,5.
Tuy nhiên khi chạy mã có vẻ như được đặt bằng 0. Tại sao? Phải có điều gì đó cơ bản mà tôi chưa thực sự hiểu?
Xin cảm ơn trước vì tất cả các bạn đã giúp tôi.
EDIT 1:
Python Ver .: 3.3 Tmp .: trở 0,5 (Theo báo cáo của debugger của tôi).
Yup. Cảm ơn rất nhiều - Đã lâu rồi tôi đã tình cờ gặp chuyện đó. – Daniel