python-094Đọc toàn bộ đề miễn phí
Trực chuẩn hóa Gram-Schmidt cải tiến (Modified Gram-Schmidt) và phân rã QR
Viết hàm qr_gram_schmidt(A: np.ndarray) -> tuple[np.ndarray, np.ndarray]:
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: orthogonality, vector projection.
Nội dung đề bài
Mục tiêu kiến thức
- Hiểu quá trình trực giao hóa và trực chuẩn hóa các vector cột.
- Phân biệt Classical Gram-Schmidt (CGS) dễ mất tính trực giao do sai số làm tròn số thực và Modified Gram-Schmidt (MGS) có tính ổn định số học cao.
- Phân rã ma trận A = Q · R trong đó Q là ma trận trực chuẩn (QT Q = IN) và R là ma trận tam giác trên.
Mô tả bài toán
Viết hàm qr_gram_schmidt(A: np.ndarray) -> tuple[np.ndarray, np.ndarray]:
A: Ma trận thực kích thước (M, N) với M ≥ N.- Kiểm tra tính hợp lệ:
- Nếu M < N hoặc len(A) == 0, raise
ValueError("Ma tran phai co so hang lon hon hoac bang so cot"). - Khởi tạo:
- Ma trận Q kích thước (M, N) khởi tạo từ bản sao của A.
- Ma trận R kích thước (N, N) khởi tạo toàn số 0.
- Thuật toán Modified Gram-Schmidt (MGS):
- Với mỗi cột i = 0, 1, …, N-1:
- Tính độ dài chuẩn cột: R[i, i] = |Q[:, i]|2 = √(∑r=0M-1 Q[r, i]2).
- Nếu R[i, i] < 10-12, cột phụ thuộc tuyến tính, gán Q[:, i] = 0.
- Ngược lại: chuẩn hóa Q[:, i] = Q[:, i]R[i, i].
- Với từng cột còn lại j = i + 1, …, N-1:
- Chiếu: R[i, j] = Q[:, i]T · Q[:, j].
- Trừ hình chiếu trực tiếp (ngay lập tức cập nhật Q[:, j]):
Q[:, j] = Q[:, j] - R[i, j] · Q[:, i].
- Trả về
(Q, R).
Input
- Tham số:
A: np.ndarray.
Output
- Trả về:
tuple[np.ndarray, np.ndarray].
Ràng buộc
- Thời gian chạy tối đa: 1000ms.
- Giới hạn bộ nhớ: 256MB.
- Dữ liệu đầu vào tuân thủ đúng kiểu dữ liệu và miền giá trị được mô tả.
Ví dụ 1
Input
qr_gram_schmidt(A=[[1.0, 1.0], [1.0, 0.0], [0.0, 1.0]])Output
TrueGiải thích
Hàm được gọi với các tham số mẫu trên và trả về kết quả chính xác theo yêu cầu.
Ví dụ 2
Input
qr_gram_schmidt(A=[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]], raises='ValueError')Output
TrueGiải thích
Hàm được gọi với bộ tham số thứ hai và trả về kết quả tương ứng theo thiết kế.
3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
