5. Cài đặt chương trình tạo trên màn hình một menu có dạng:
2.1.6 Số điều kiện của ma trận:
Giả sử . là một chuẩn nào đó của vector và ma trận và A là một ma trận vuông. Nếu đặt: M = x Ax x sup 0 và m = x Ax x inf 0 thì dễ dàng chứng minh rằng M = A và nếu A không suy biến thì m = A-1 1. Khi đó, tỷ số M A . A-1
m được gọi là số điều kiện của ma trận A và được ký hiệu là cond(A).
Giả sử x là nghiệm của hệ phương trình tuyến tính Ax = b và x+x là nghiệm của hệ
xấp xỉ A x( x) b b. Khi đó b Ax M x và b A x m x . Suy ra: ( ) x M b b cond A x m b b . (2.4) Biểu thức trên cho thấy sai số tương đối của nghiệm có thể lớn bằng sai số tương đối của vế phải nhân với cond(A). Ma trận A được gọi là ma trận có số điều kiện xấu (ill-
conditioned-matrix ) nếu cond(A)>>1. Vì vậy việc giải gần đúng một hệ phương trình với
ma trận hệ số A có số điều kiện xấu rất kém ổn định. Số điều kiện có các tính chất: (1) cond(A) 1;
(2) Nếu A là ma trận trực giao (tức là A'=A-1) thì con(A)=1; (3) Với mọi c 0R thì cond(cA) = cond(A);
(4) Nếu D = diag n i d 1 thì cond(D) =max min i i d d .
Thí dụ 6. Xét hệ phương trình Ax=b. Giả sử A=diag 100 1 1 ,
0 , khi đó det(A)=10-100 nên
A là ma trận gần suy biến. Nếu giải bằng phương pháp Cramer sẽ gặp nhiều khó khăn do sai
số và biểu diễn kết quả. Tuy nhiên ta dễ dàng nhận thấy A=0,1E nên cond(A )=1 hay A là
ma trận có số điều kiện rất tốt, do đó hệ phương trình Ax=1 vẫn có thể dễ dàng giải được một cách chính xác, kết quả tìm được là xi =10, i1,100.
Hàm COND
Cú pháp: cond (A,p)
Giải thích. Hàm COND tính số điều kiện của ma trận A theo chuẩn loại p.
cond(A,p)= norm(A,p)*norm(inv(A),p), nếu p=1,2, inf hoặc 'fro';
27
Thí dụ 7. >> A=hilb(10); C = cond(A)
C =
1.6025e+013
Ta thấy ma trận Hilbert là ma trận có số điều kiện rất xấu.