Phương pháp Arnoldi là một giải thuật lặp trong đại số tuyến tính số trị nhằm xây dựng cơ sở trực chuẩn cho không gian con Krylov và rút gọn ma trận vuông kích thước lớn về dạng ma trận Hessenberg bậc trên. Thuật toán này cho phép tính xấp xỉ hiệu quả một số giá trị riêng và vector riêng chọn lọc của các ma trận lớn, thưa và không đối xứng mà không đòi hỏi biến đổi toàn bộ ma trận gốc. Trong tính toán khoa học hiện đại, phương pháp Arnoldi đóng vai trò là nền tảng toán học cốt lõi cho các bộ giải hệ phương trình tuyến tính lớn và các phần mềm phân tích phổ ma trận.
Bản chất toán học và không gian con Krylov
Trong nhiều bài toán mô phỏng vật lý, động học chất lưu và phân tích dao động kết cấu, các ma trận xuất hiện thường có kích thước rất lớn với hàng triệu bậc tự do nhưng lại có cấu trúc thưa, nghĩa là đại đa số phần tử bằng 0. Việc áp dụng các thuật toán giải đầy đủ trên ma trận dày như giải thuật lặp QR hoặc thuật toán Jacobi đòi hỏi chi phí tính toán tỷ lệ với luỹ thừa bậc ba của kích thước ma trận và làm mất cấu trúc thưa, dẫn đến tràn bộ nhớ máy tính. Để khắc phục trở ngại này, các phương pháp chiếu lên không gian con Krylov trở thành công cụ chủ đạo.
Xét ma trận vuông thực có kích thước và một vector xuất phát khác không đã được chuẩn hoá sao cho chuẩn Euclid bằng 1. Đối với trường hợp ma trận phức, các phép chuyển vị đại số được thay thế tương ứng bằng liên hợp Hermite. Không gian con Krylov thứ sinh bởi ma trận và vector , ký hiệu là , được định nghĩa là không gian sinh bởi hệ vector gồm các luỹ thừa liên tiếp của tác động lên :
Trong công thức trên, là toán tử ma trận, là vector khởi tạo và là số bước lặp với điều kiện . Khi số bước tăng lên, hệ vector cơ sở luỹ thừa tự nhiên này sẽ nhanh chóng có xu hướng hội tụ về hướng của vector riêng tương ứng với giá trị riêng có độ lớn tuyệt đối trội nhất. Do đó, các vector này gần như phụ thuộc tuyến tính trong biểu diễn số học thực tế, khiến cơ sở tự nhiên bị suy biến nghiêm trọng. Phương pháp Arnoldi khắc phục sự suy biến này trong tính toán lý thuyết bằng cách áp dụng quy trình trực giao hoá Gram-Schmidt cải tiến để liên tục xây dựng một hệ cơ sở trực chuẩn cho không gian con.
Hệ thức ma trận Arnoldi
Tại mỗi bước lặp thứ , thuật toán tính tích ma trận vector , sau đó tiến hành trực giao hoá vector với tất cả các vector cơ sở đã xây dựng trước đó từ đến . Sau bước lặp thành công, thuật toán sinh ra một tập hợp gồm vector trực chuẩn ghép lại thành các cột của ma trận kích thước , cùng với một ma trận Hessenberg bậc trên kích thước .
Mối quan hệ toán học cơ bản giữa các đại lượng này được thể hiện thông qua hệ thức thu gọn Arnoldi:
Trong đó, là ma trận ban đầu kích thước , là ma trận chứa vector cột trực chuẩn, là ma trận Hessenberg bậc trên chứa các hệ số chiếu hình học, là phần tử dưới đường chéo phụ thứ , là vector trực chuẩn tiếp theo trực giao với toàn bộ không gian con hiện tại và là vector đơn vị chuẩn thứ trong không gian số chiều nhỏ. Nếu biểu diễn bằng ma trận mở rộng và ma trận Hessenberg mở rộng kích thước , hệ thức trên có dạng thu gọn:
Vì các cột của ma trận đôi một trực giao và có chuẩn bằng 1, ta có tính chất trực giao , với là ma trận đơn vị cấp . Nhân cả hai vế của hệ thức Arnoldi từ phía bên trái với ma trận chuyển vị , ta thu được:
Đẳng thức này khẳng định ma trận Hessenberg chính là hình chiếu trực giao Rayleigh-Ritz của toán tử ma trận kích thước lớn lên không gian con Krylov .
Quy trình thực hiện thuật toán Arnoldi
Thuật toán Arnoldi tiêu chuẩn sử dụng quy trình Gram-Schmidt cải tiến để đảm bảo độ ổn định số học. Quy trình được thực hiện tuần tự qua các bước sau:
- Khởi tạo: Chọn một vector xuất phát tuỳ ý, tính chuẩn Euclid của vector này và chuẩn hoá để được vector cơ sở đầu tiên .
- Vòng lặp chính: Với mỗi chỉ số bước lặp chạy từ 1 đến , thực hiện các thao tác:
- Tính vector trung gian thông qua tích ma trận vector: .
- Với mỗi chỉ số chạy từ 1 đến , tính hệ số hình chiếu và cập nhật khử thành phần trực giao: .
- Tính chuẩn của vector dư còn lại: .
- Nếu phần tử triệt tiêu hoặc nhỏ hơn ngưỡng sai số máy tính, không gian con Krylov trở thành không gian bất biến và thuật toán dừng sớm.
- Nếu phần tử khác không, xác định vector trực chuẩn tiếp theo: .
- Đầu ra: Thu được ma trận cơ sở trực chuẩn và ma trận Hessenberg bậc trên .
Xấp xỉ trị riêng và vector riêng qua cặp Ritz
Mục đích nguyên bản của Walter Edwin Arnoldi khi công bố phương pháp vào năm 1951 là giải quyết bài toán trị riêng cho ma trận không đối xứng. Với ma trận ban đầu có kích thước rất lớn, việc tìm trực tiếp các giá trị riêng thoả mãn phương trình đặc trưng là bất khả thi. Thay vào đó, phương pháp Arnoldi giải bài toán trị riêng trên ma trận chiếu Hessenberg có kích thước nhỏ hơn rất nhiều:
Trong phương trình này, giá trị vô hướng là giá trị riêng của ma trận Hessenberg , được gọi là giá trị Ritz của ma trận đối với không gian con . Vector là vector riêng tương ứng của ma trận nhỏ . Khi đó, vector xấp xỉ trong không gian ban đầu được phục hồi theo công thức:
Vector được gọi là vector Ritz tương ứng với giá trị Ritz . Giả sử vector riêng của ma trận được chuẩn hoá thoả mãn , khi đó vector Ritz cũng có chuẩn Euclid bằng 1. Độ chính xác của cặp xấp xỉ Ritz đối với bài toán trị riêng ban đầu được định lượng thông qua chuẩn của vector phần dư:
Công thức sai số tinh tế này chỉ ra một đặc tính quan trọng: chất lượng xấp xỉ của cặp Ritz có thể được đánh giá tức thời từ phần tử dưới đường chéo phụ và thành phần cuối cùng của vector riêng nhỏ , mà hoàn toàn không cần thực hiện thêm phép nhân ma trận vector kích thước lớn nào với .
So sánh phương pháp Arnoldi và thuật toán Lanczos
Phương pháp Arnoldi và thuật toán Lanczos do Cornelius Lanczos đề xuất năm 1950 là hai nhánh phát triển chặt chẽ của các giải thuật không gian con Krylov. Sự khác biệt căn bản xuất phát từ tính chất đối xứng của toán tử ma trận.
| Tiêu chí so sánh | Phương pháp Arnoldi | Thuật toán Lanczos |
|---|---|---|
| Loại ma trận áp dụng | Ma trận vuông tổng quát, không đối xứng hoặc phức | Ma trận đối xứng thực hoặc ma trận tự liên hợp Hermite |
| Cấu trúc ma trận thu gọn | Ma trận Hessenberg bậc trên đầy đủ phía trên đường chéo | Ma trận ba đường chéo đối xứng thực |
| Hệ thức hồi quy trực giao | Hồi quy đầy đủ với tất cả các vector cơ sở quá khứ | Hồi quy ngắn ba số hạng giữa các bước liên tiếp |
| Yêu cầu lưu trữ bộ nhớ | Tăng tuyến tính theo số bước lặp do phải lưu toàn bộ vector | Cố định, chỉ cần lưu ba vector lặp gần nhất |
| Độ phức tạp tính toán mỗi bước | Tăng dần theo số bước lặp tỷ lệ thuận với số chiều không gian con | Hằng số ở mỗi bước lặp đối với phép trực giao hoá |
Như được trình bày trong bảng so sánh, khi ma trận đối xứng thực, ma trận chiếu cũng đối xứng. Do có dạng Hessenberg bậc trên, toàn bộ các phần tử nằm ngoài đường chéo chính và hai đường chéo phụ kề nó đều triệt tiêu. Khi đó, ma trận Hessenberg suy biến thành ma trận ba đường chéo đối xứng, và thuật toán Arnoldi tự động thoái biến thành thuật toán Lanczos với công thức hồi quy ba số hạng tiết kiệm chi phí.
Ứng dụng trong thuật toán giải hệ phương trình GMRES
Ngoài bài toán tìm giá trị riêng, ứng dụng nổi bật và phổ biến nhất của quá trình trực chuẩn hoá Arnoldi là thuật toán GMRES do Yousef Saad và Martin H. Schultz công bố năm 1986. Thuật toán này dùng để giải hệ phương trình đại số tuyến tính kích thước lớn dạng:
Với vector nghiệm ban đầu , thuật toán xác định vector phần dư ban đầu và đặt vector trực chuẩn đầu tiên là . Nghiệm xấp xỉ thứ được tìm kiếm trong không gian affine sao cho chuẩn Euclid của phần dư mới đạt giá trị cực tiểu:
Bằng cách biểu diễn nghiệm hiệu chỉnh dưới dạng , bài toán tối ưu hoá kích thước ban đầu được biến đổi tương đương thành bài toán bình phương tối thiểu số chiều nhỏ với ma trận Hessenberg mở rộng:
Bài toán bình phương tối thiểu này có kích thước chỉ là và được giải quyết nhanh chóng bằng phép biến đổi quay Givens liên tiếp trên ma trận Hessenberg mà không cần giải hệ phương trình gốc.
Hạn chế số học và kỹ thuật khởi động lại
Mặc dù sở hữu nhiều ưu thế lý thuyết, phương pháp Arnoldi gặp phải hai hạn chế kỹ thuật đáng kể trong thực hành tính toán số:
- Gia tăng bộ nhớ và chi phí trực giao: Tại bước lặp thứ , thuật toán bắt buộc phải lưu trữ toàn bộ vector cơ sở có kích thước trong bộ nhớ RAM, đồng thời thực hiện phép chiếu trực giao với toàn bộ các vector này. Khi số bước tăng cao, chi phí lưu trữ và số phép tính dấu phẩy động tăng nhanh, làm giảm hiệu năng của hệ thống tính toán.
- Mất tính trực giao do sai số làm tròn: Trong môi trường số học máy tính với độ chính xác hữu hạn, quá trình Gram-Schmidt cải tiến dần dần làm mất tính trực giao giữa các vector cột của ma trận . Hiện tượng này dẫn đến việc xuất hiện các giá trị riêng giả mạo hoặc làm chậm tốc độ hội tụ của thuật toán. Để giải quyết, người ta thường áp dụng kỹ thuật trực giao hoá lặp lại hai lần hoặc kỹ thuật trực giao hoá chọn lọc.
Để khắc phục sự bùng nổ bộ nhớ khi số bước lặp lớn, Dan C. Sorensen đã đề xuất phương pháp Arnoldi khởi động lại ngầm định vào năm 1992. Thay vì khởi động lại một cách tường minh làm mất thông tin phổ đã tích luỹ, phương pháp này áp dụng các phép dịch chuyển phổ đa thức thông qua thuật toán QR ngầm định trên ma trận Hessenberg . Kỹ thuật này nén không gian con từ số chiều lớn về số chiều nhỏ hơn trong khi vẫn giữ nguyên các vector riêng mong muốn và duy trì hệ thức Arnoldi chuẩn xác. Đây chính là thuật toán lõi của gói phần mềm ARPACK, làm nền tảng cho các hàm tính trị riêng thưa trong nhiều môi trường tính toán khoa học hiện đại.