Trong lĩnh vực phân tích số, tính ổn định số là một tính chất rất mong muốn của các thuật toán toán học. Định nghĩa chính xác về tính ổn định phụ thuộc vào bối cảnh, đặc biệt là trong đại số tuyến tính số và các thuật toán để giải phương trình vi phân thường và riêng phần thông qua phép tính gần đúng rời rạc.
“Tính ổn định đảm bảo rằng những thay đổi nhỏ đối với dữ liệu đầu vào không gây ra biến động lớn trong kết quả cuối cùng.”
Trong đại số tuyến tính số, người ta chủ yếu quan tâm đến sự bất ổn phát sinh gần các vấn đề gần như kỳ dị, chẳng hạn như các giá trị riêng rất nhỏ hoặc gần như trùng nhau. Trong các thuật toán số để giải phương trình vi phân, mối quan tâm là lỗi làm tròn hoặc biến động nhỏ trong dữ liệu ban đầu có thể dẫn đến độ lệch lớn giữa đáp án cuối cùng và nghiệm chính xác. Một số thuật toán số có thể làm phẳng những biến động và lỗi nhỏ trong dữ liệu đầu vào, trong khi những thuật toán khác có thể khuếch đại những lỗi này. Các phép tính có thể chứng minh là không khuếch đại lỗi xấp xỉ được gọi là ổn định về mặt số.
Một nhiệm vụ phổ biến trong phân tích số là chọn các thuật toán mạnh mẽ, nghĩa là kết quả không thay đổi đáng kể khi dữ liệu đầu vào thay đổi một chút. Hiện tượng ngược lại là sự bất ổn của thuật toán. Thông thường, một thuật toán bao gồm một phương pháp xấp xỉ và trong một số trường hợp, có thể chứng minh rằng thuật toán sẽ đưa ra giải pháp chính xác khi sử dụng số thực thay vì số dấu phẩy động. Tuy nhiên, trong trường hợp này, không có gì đảm bảo rằng nó sẽ hội tụ đến giải pháp đúng, vì lỗi làm tròn hoặc cắt bớt trong số dấu phẩy động có thể bị khuếch đại, khiến độ lệch so với giải pháp đúng tăng theo cấp số nhân.
Trong đại số tuyến tính số, khái niệm ổn định có thể được diễn đạt theo nhiều cách khác nhau. Các định nghĩa thường dùng về độ ổn định tiến, lùi và hỗn hợp thường xuất hiện trong lĩnh vực này. Chúng ta hãy xem xét một bài toán được giải quyết bằng thuật toán số, trong đó hàm f ánh xạ dữ liệu x thành giải pháp y. Kết quả y* của thuật toán thường sẽ khác với giải pháp "thực" y. Nguyên nhân chính gây ra lỗi này là lỗi làm tròn và lỗi cắt cụt.
“Lỗi tiến của một thuật toán là sự khác biệt giữa kết quả của nó và giải pháp; lỗi lùi là Δx nhỏ nhất sao cho f(x + Δx) = y*.”
Sai số tiến là sự khác biệt giữa y* và y; sai số lùi là Δx nhỏ nhất sao cho f(x + Δx) = y*. Có một mối quan hệ số điều kiện giữa lỗi tiến và lỗi lùi: kích thước của lỗi tiến nhiều nhất là tích của số điều kiện và lỗi lùi. Trong nhiều trường hợp, việc xem xét các lỗi tương đối là điều tự nhiên hơn. Khi lỗi ngược nhỏ đối với mọi đầu vào x, chúng ta gọi thuật toán là ổn định ngược. Tất nhiên, "nhỏ" là một thuật ngữ tương đối và định nghĩa của nó sẽ phụ thuộc vào bối cảnh cụ thể.
Người ta thường đưa ra định nghĩa chung hơn về độ ổn định số, gọi là độ ổn định lai, kết hợp lỗi tiến và lỗi lùi. Một thuật toán được coi là ổn định nếu nó giải quyết gần đúng một bài toán lân cận, nghĩa là tồn tại một Δx nhỏ sao cho f(x + Δx) - y* cũng nhỏ. Do đó, một thuật toán ổn định ngược luôn ổn định. Về tính ổn định hướng tới tương lai, một thuật toán được coi là ổn định hướng tới tương lai nếu lỗi hướng tới của nó chia cho số điều kiện của bài toán là tương đối nhỏ.
Khi giải phương trình vi phân, tính ổn định được định nghĩa theo cách khác. Trong các phương trình vi phân thường số, có nhiều khái niệm khác nhau về tính ổn định số, chẳng hạn như tính ổn định A. Những khái niệm này thường liên quan đến một số khái niệm về tính ổn định trong hệ thống động lực, đặc biệt là tính ổn định Lyapunov. Khi giải các phương trình cứng, điều rất quan trọng là phải sử dụng phương pháp ổn định.
"Đôi khi, tính ổn định đạt được bằng cách đưa vào phép khuếch tán số, đảm bảo rằng các lỗi làm tròn trong tính toán không tích tụ đến mức nguy hiểm."
Một thuật toán để giải các phương trình đạo hàm riêng của kiểu tiến hóa tuyến tính được coi là ổn định nếu tổng thay đổi trong giải pháp số vẫn bị giới hạn khi bước tiến tới 0. Định lý tương đương Lax phát biểu rằng nếu một thuật toán nhất quán và ổn định thì nó sẽ hội tụ. Tuy nhiên, đối với các phương trình vi phân riêng phần phi tuyến tính, định nghĩa về tính ổn định phức tạp hơn nhiều vì nhiều tính chất trong các phương trình phi tuyến tính không tồn tại trong các phương trình tuyến tính tương ứng của chúng.
Tính căn bậc hai của 2 (xấp xỉ 1,41421) là một bài toán được xác định rõ ràng. Nhiều thuật toán giải quyết vấn đề này bằng cách bắt đầu với giá trị xấp xỉ ban đầu x0, chẳng hạn như x0 = 1,4, sau đó liên tục tính toán các dự đoán được cải thiện x1, x2, v.v. Một phương pháp điển hình có thể được sử dụng là phương pháp Babylon nổi tiếng, có công thức xk+1 = (xk + 2/xk) / 2.
Phương pháp còn lại được gọi là "Phương pháp X" và công thức của nó là xk+1 = (xk^2 − 2)² + xk. Một vài lần lặp lại của từng phương pháp được ghi lại bên dưới bảng và chúng ta thấy rằng phương pháp Babylon hội tụ nhanh bất kể phỏng đoán ban đầu là gì, trong khi phương pháp X hội tụ rất chậm tại x0 = 1,4 và phân kỳ một cách kỳ lạ tại x0 = 1,42. Do đó, phương pháp Babylon được coi là ổn định về mặt số, trong khi phương pháp X là không ổn định về mặt số.
Tính ổn định của số cũng bị ảnh hưởng bởi số chữ số có nghĩa mà máy giữ lại. Một cỗ máy chỉ giữ lại bốn chữ số có nghĩa sẽ là ví dụ điển hình về hậu quả có thể xảy ra do mất đi ý nghĩa. Ví dụ, hãy xem xét các hàm tương đương f(x) và g(x). Khi tính toán f(500) và g(500), mặc dù hai hàm này bằng nhau, chúng vẫn tạo ra những kết quả hoàn toàn khác nhau, cho thấy những sai số nhỏ có thể dẫn đến những biến động lớn.
Tóm lại, tính ổn định số rất quan trọng trong phân tích số vì nó ảnh hưởng đến độ chính xác và hiệu quả khi chúng ta giải quyết vấn đề. Tuy nhiên, trong suy nghĩ của bạn, loại thuật toán hoặc phương pháp nào có thể duy trì ổn định trong điều kiện không ổn định?