[Kỳ 1] Tính hợp lý nghiệm hệ phuơng trình và khái niệm ‘condition number’ của một ma trận

Bạn sẽ tìm hiểu thế nào là một hệ phuơng trình điều kiện yếu và điều kiện mạnh, chuẩn của một ma trận, condition number của ma trận là gì và ảnh hưởng của nó tới nghiệm hệ phuơng trình ra sao? Bài viết tham khảo từ trang Mathematics for Collegebài giảng của Dheeraj Bhardwaj.

Lưu ý : nguyên tắc của Math2IT là không dịch thuật ngữ tiếng nước ngoài nhằm đảm bảo độ chính xác và giúp bạn có thể tự tìm kiếm thêm tài liệu tham khảo nếu muốn.

Ở kỳ 1 này, bạn sẽ biết được

  • Sự khác nhau giữa hệ phuơng trình điều kiện yếu (ill-conditioned systems of equations) và hệ phuơng trình điều kiện mạnh (well-conditioned ).
  • Định nghĩa và tìm chuẩn của một ma trận (norm of a matrix).

Ở kỳ tiếp theo, bạn sẽ biết được:

  • Định nghĩa và cách đánh giá condition number của một ma trận khả nghịch.
  • Mối quan hệ giữa condition number của một ma trận với các điều kiện mạnh yếu của một hệ phuơng trình tuyến tính và bạn có thể tin bao nhiêu phần vào nghiệm của các hệ này?
Đọc thêm : Chuyên mục Toán Cao Cấp của Math2IT.

Chúng ta cùng bắt đầu bài viết bằng việc xét dạng tổng quát của hệ phuơng trình như sau:

    \[AX=C\]

Hệ phuơng trình điều kiện yếu và mạnh là gì?

Định nghĩa

Một hệ phuơng trình được gọi là ill-conditioned nếu sự thay đổi nhỏ các hệ số của ma trân A hoặc sự thay đổi nhỏ ở trong vế phải C dẫn đến sự thay đổi lớn trong vector nghiệm X.

Một hệ phuơng trình được gọi là well-conditioned nếu sự thay đổi nhỏ các hệ số của ma trân A hoặc sự thay đổi nhỏ ở trong vế phải C dẫn đến sự thay đổi nhỏ trong vector nghiệm X.

Ví dụ 1 – ill-conditioned system of equations

Xét hệ phuơng trình sau đây

    \[\left[ {\begin{array}{*{20}{c}}  1&2\\  2&{3.999}  \end{array}} \right]\left[ {\begin{array}{*{20}{c}}  x\\  y  \end{array}} \right] = \left[ {\begin{array}{*{20}{c}}  4\\  {7.999}  \end{array}} \right]\]

Hệ phuơng trình này có nghiệm là

    \[\left[ {\begin{array}{*{20}{c}}  x\\  y  \end{array}} \right] = \left[ {\begin{array}{*{20}{c}}  2\\  1  \end{array}} \right]\]

Thay đổi một chút ở vế phải của hệ

    \[\left[ {\begin{array}{*{20}{c}}  1&2\\  2&{3.999}  \end{array}} \right]\left[ {\begin{array}{*{20}{c}}  x\\  y  \end{array}} \right] = \left[ {\begin{array}{*{20}{c}}  {4.001}\\  {7.998}  \end{array}} \right]\]

sẽ cho ta nghiệm mới là

    \[\left[ {\begin{array}{*{20}{c}}  x\\  y  \end{array}} \right] = \left[ {\begin{array}{*{20}{c}}  { - 3.999}\\  {4.000}  \end{array}} \right]\]

Còn nếu ta thay đổi một chút các số trong ma trận

    \[\left[ {\begin{array}{*{20}{c}}  {1.001}&{2.001}\\  {2.001}&{3.998}  \end{array}} \right]\left[ {\begin{array}{*{20}{c}}  x\\  y  \end{array}} \right] = \left[ {\begin{array}{*{20}{c}}  4\\  {7.999}  \end{array}} \right]\]

ta sẽ nhận được nghiệm

    \[\left[ {\begin{array}{*{20}{c}}  x\\  y  \end{array}} \right] = \left[ {\begin{array}{*{20}{c}}  {3.994}\\  {0.001388}  \end{array}} \right]\]

Cả hai nghiệm mới nhận được này điều khác xa nghiệm cũ dù ta chỉ thay một chút ít giá trị các hệ số. Do đó, ta nói hệ phuơng trình trong trường hợp này ill-conditioned.

Ví dụ 2 – well-conditioned system of equations

Xét hệ phuơng trình

    \[\left[ {\begin{array}{*{20}{c}}  1&2\\  2&3  \end{array}} \right]\left[ {\begin{array}{*{20}{c}}  x\\  y  \end{array}} \right] = \left[ {\begin{array}{*{20}{c}}  4\\  7  \end{array}} \right]\]

Hệ này có nghiệm

    \[\left[ {\begin{array}{*{20}{c}}  x\\  y  \end{array}} \right] = \left[ {\begin{array}{*{20}{c}}  2\\  1  \end{array}} \right]\]

Cũng tuơng tự trên, ta tiến hành thay đổi một chút ít ở vế phải của hệ

    \[\left[ {\begin{array}{*{20}{c}}  1&2\\  2&3  \end{array}} \right]\left[ {\begin{array}{*{20}{c}}  x\\  y  \end{array}} \right] = \left[ {\begin{array}{*{20}{c}}  {4.001}\\  {7.001}  \end{array}} \right]\]

khi đó nghiệm mới là

    \[\left[ {\begin{array}{*{20}{c}}  x\\  y  \end{array}} \right] = \left[ {\begin{array}{*{20}{c}}  {1.999}\\  {1.001}  \end{array}} \right]\]

Còn nếu ta thay đổi trong ma trận ở vế trái

    \[\left[ {\begin{array}{*{20}{c}}  {1.001}&{2.001}\\  {2.001}&{3.001}  \end{array}} \right]\left[ {\begin{array}{*{20}{c}}  x\\  y  \end{array}} \right] = \left[ {\begin{array}{*{20}{c}}  4\\  7  \end{array}} \right]\]

và nghiệm mới là

    \[\left[ {\begin{array}{*{20}{c}}  x\\  y  \end{array}} \right] = \left[ {\begin{array}{*{20}{c}}  {2.003}\\  {0.997}  \end{array}} \right]\]

Cả hai nghiệm mới nhận được này điều thay đổi rất ít so với nghiệm cũ khi có sự thay đổi ít ở vế phải hay ở ma trận hệ số. Ta nói hệ này well-conditioned.

Điều gì sẽ xảy ra nếu hệ phuơng trình là ill-conditioned hay well-conditioned?

Nếu hệ phuơng trình là ill-conditioned, ta không nên tin tưởng quá nhiều vào nghiệm. Sở dĩ như vậy vì bạn thử nghĩ xem, mỗi khi bạn giải một phuơng trình nào đó, hoặc bạn chuyển từ bài toán thực tế sang việc phải giải một hệ phuơng trình tuyến tính, bạn muốn thử với nhiều hệ số khác nhau để thấy sự thay đổi của nghiệm. Trong khi bạn chỉ thay đổi rất rất ít ở hệ số, vậy mà nghiệm lại sai khác một số rất lớn. Bạn có hài lòng được điều này không?

Ở kỳ tiếp theo, chúng ta sẽ đi tìm hiểu chúng ta có thể tin bao nhiêu phần vào nghiệm của một phuơng trình, cách tin là như thế nào. Mỗi ma trận khả nghịch đều có một condition number và một machine epsilon, dựa vào hai lượng này, chúng ta có thể định lượng xem bao nhiêu con số trong kết quả nghiệm là đáng tin cậy.

Để có thể tính được condition number của một ma trận nghịch đảo, ta cần phải biết trước chuẩn của ma mận đó là gì và làm cách nào để có thể xác định được nó.

Chuẩn của ma trận

Cũng giống như định thức (determinant) của ma trận, chuẩn của ma trận cũng là một đại lượng vô hướng (scalar number). Tuy nhiên, chuẩn thì luôn duơng phải được định nghĩa cho tất cả các ma trận (bất kể ma trận vuông hay ma trận chữ nhật, ma trận khả nghịch hay không).

Chuẩn của ma trận

Chuẩn của ma trận được định nghĩa tuơng ứng với chuẩn của vector được cho bởi

    \[\left\| A \right\| = \mathop {\max }\limits_{x \ne 0} \frac{{\left\| {Ax} \right\|}}{{\left\| x \right\|}}\]

Chuẩn của ma trận đo được sức ảnh hướng của sự thay đổi trong ma trận đến sự thay đổi trong vector nghiệm.

Một trong những định nghĩa phổ biến của chuẩn ma trận là tổng trị tuyệt lớn nhất theo cột (maximum absolute column sum). Chuẩn này được tính bằng cách lấy tổng tất cả các hệ số trên mỗi cột rồi so sánh giữa các giá trị với nhau, giá trị nào lớn nhất chính là chuẩn của ma trận. Đối với ma trận m dòng n cột,

    \[\left\|A\right\|_1 = \max_{1\le j\le m}\sum_{i=1}^n|a_{ij}|\]

Định nghĩa thứ hai là tổng trị tuyệt lớn nhất theo dòng (maximum absolute row sum), 

    \[\left\|A\right\|_{\infty} = \max_{1\le i\le n}\sum_{j=1}^m|a_{ij}|\]

Tính chất của chuẩn ma trận
  1. Với ma trận [A], \left\|A\right\|\ge 0.
  2. Với ma trận [A], đại lượng vô hướng k, \left\|kA\right\| = |k|\left\|A\right\|.
  3. Với hai ma trận cùng bậc [A],[B], \left\|A+B\right\| \le\left\|A\right\| +\left\|B\right\|
  4. Với hai ma trận [A],[B] có thể nhân lại với nhau dưới dạng [A][B], \left\|AB\right\| \le\left\|A\right\|\left\|B\right\|

Ví dụ 3

Với ma trận

    \[A = \left[ {\begin{array}{*{20}{c}}  {10}&{ - 7}&0\\  { - 3}&{2.099}&6\\  5&{ - 1}&5  \end{array}} \right]\]

Khi ấy,

    \begin{align*}  {\left\| A \right\|_\infty } &= \mathop {\max }\limits_{1 \le i \le 3} \sum\limits_{j = 1}^3 {|{a_{ij}}|} \\  &= \max \left( {|10| + | - 7| + |0|,| - 3| + |2.099| + |6|,|5| + | - 1| + |5|} \right)\\  &= \max \left( {17,11.099,11} \right)\\  &= 17  \end{align*}

Đọc tiếp : kỳ 2.

Đinh Anh Thi

Đinh Anh Thi

Sáng lập Math2IT. Hiện Thi đang là nghiên cứu sinh tại Pháp về chuyên ngành Toán Ứng Dụng. Anh mong muốn tổng hợp và chia sẻ kiến thức Toán thực tế, Khoa học ứng dụng và Tin học thường thức đến tất cả mọi người dưới dạng dễ tiếp cận và tự nhiên nhất.