3.1 PHƯƠNG PHÁP GAUSS Trước khi trình bày phương pháp Gauss, chúng ta xét một số trường hợp đơn giản khi ma trận hệ số A của hệ phương trình 3.1 có dạng đặt biệt... 3.2 PHƯƠNG PHÁP NHÂN
Trang 1rất thường gặp trong các bài toán khoa học kĩ thuật Ta chỉ xét hệ
gồm n phương trình với n ẩn Do vậy ma trận hệ số A là ma trận vuông cấp n, và vectơ nghiệm x cũng như vectơ tự do b là các vectơ cột n chiều thuộc Rn Ta luôn giả thiết rằng det A 6= 0, và do đó bao giờ hệ cũng có nghiệm duy nhất x = A−1b Tuy nhiên việc tìm ma
trận nghịch đảo A−1 đôi khi còn khó khăn gấp nhiều lần so với việcgiải trực tiếp hệ phương trình xuất phát Dưới đây chúng ta sẽ xétmột số phương pháp thường dùng để giải hệ phương trình (3.1)
3.1 PHƯƠNG PHÁP GAUSS
Trước khi trình bày phương pháp Gauss, chúng ta xét một số
trường hợp đơn giản khi ma trận hệ số A của hệ phương trình (3.1)
có dạng đặt biệt
Trang 2Trường hợp đơn giản nhất là trường hợp hệ phương trình có matrận hệ số có dạng đường chéo:
Khi ấy hệ tương đương với n phương trình bậc nhất aiixi= bi, ∀i = 1, n
Vì det A = a11a22· · · ann 6= 0 nên aii6= 0, ∀i Và do đó nghiệm của hệ
có thể được viết dưới dạng:
Với giả thiết det A 6= 0, ta có aii6= 0, ∀i = 1, n, và nghiệm của hệ được
cho bởi công thức:
Trang 33.1 Phương pháp Gauss 37
Tương tự det A 6= 0 ⇒ aii6= 0, ∀i = 1, n, và nghiệm của hệ có dạng:
Trang 4• Nhân một hàng cho một số khác không.
• Hoán chuyển hai hàng cho nhau
• Cộng một hàng cho một hàng khác đã nhân với một số kháckhông
Xét hệ thống phương trình sau:
Trang 53.1 Phương pháp Gauss 39
Trong các số a(1)22, , a(1)n2 phải có một số khác không, vì nếu ngược
lại thì det A = 0, trái với giả thiết Giả sử a(1)22 6= 0 Còn nếu chỉ có
a(1)p2 6= 0 và a(1)22 = 0 thì ta thực hiện phép hoán chuyển hai phương
trình thứ 2 và thứ p Tiếp tục biến đổi cho n − 2 phương trình cuối Và cứ tiếp tục cho đến phương trình thứ n, ta được hệ phương trình
Ta thực hiện các phép biến đổi sau: (h2 = h2 − 2h1), (h3 =
h3− h1), (h4= h4− h1), khi đó ma trận trở thành
Trang 6giữa hàng thứ hai và thứ ba và thu được
Trang 73.1 Phương pháp Gauss 41
cùng cột của phần tử trội bằng không Qua n bước như vậy ta sẽ tìm
được nghiệm dễ dàng 1 Ta minh hoạ phương pháp này bằng ví dụsau
Ví dụ 3.2. Xét hệ phương trình trong ví dụ trước có ma trận hệ số mở rộng
Trang 8Đầu tiên ta sẽ chọn phần tử chính là phần tửa(0)43 = 4và thực hiệncác phép biến đổi(4h3− h4), (4h2− 3h4), (2h1− h4)ta thu được
Trang 93.1 Phương pháp Gauss 43
Từ đây chúng ta cũng suy ra đượcx = [−7, 3, 2, 2]T
Thuật toán giải hệ phương trình bằng phương pháp phần tử trộiđược thể hiện trong Chương trình 3.4 Đối số của chương trình gồm:
N là số phương trình và số ẩn,a là ma trận hệ số cấp N × (N + 1), cột thứ N + 1 là vectơ tự do Kết quả trả về của chương trình là vectơ
Trang 10for i=1:N, x(b(i))=a(i,N+1); end;
Các phương pháp có sử dụng các phép biến đổi sơ cấp cơ bản có
ưu điểm là đơn giản, dễ lập trình Tuy nhiên nếu phần tử được chọnđể biến đổi gần với không thì phương pháp Gauss có thể cho kếtquả không chính xác Hơn nữa, nếu các phép toán cộng, trừ, nhân,chia được làm đúng hoàn toàn, thì các phương pháp trên cho chúng
ta nghiệm đúng của hệ phương trình Tuy nhiên, khi thực hiện trêncác công cụ tính toán, ta vẫn gặp phải sai số làm tròn Cho nên cácphương pháp Gauss vẫn được xem như là các phương pháp gần đúng
3.2 PHƯƠNG PHÁP NHÂN TỬ LU
Nội dung của phương pháp nhân tử LU là phân tích ma trận hệ
số A thành tích của hai ma trận L và U , trong đó L là ma trận tam giác dưới và U là ma trận tam giác trên Khi đó việc giải hệ phương trình (3.1) sẽ đưa về việc giải hai hệ phương trình Ly = b và U x = y
mà ma trận hệ số là các ma trận tam giác và nghiệm thu được từ cáccông thức (3.2) và (3.3) Ta có định lí sau đây
Định lí 3.1 Nếu A là ma trận không suy biến, thì bao giờ cũng tồn
tại một ma trận P không suy biến sao cho ma trận P A phân tích được thành tích của ma trận tam giác dưới L và ma trận tam giác trên U , nghĩa là P A = LU
Có rất nhiều phương pháp phân tích A = LU , tuy nhiên ta thường xét trường hợp ma trận L có đường chéo chính bằng 1 và gọi là phương pháp Doolittle Khi đó L và U có dạng:
Trang 113.2 Phương pháp nhân tử LU 45
Các phần tử của hai ma trận L và U được xác định theo công thức
Trang 12Ta có phân tích của ma trận hệ số A = LU theo phương phápDoolittle như sau:
−34
số cấp N × N Kết quả trả về của chương trình là ma trận tam giác
dướil và ma trận tam giác trênu
Chương trình 3.5 - c3LUfactor : Phương pháp nhân tử LU function [l,u] = c3LUfactor(N,a)
if nargin<2, error('Hàm có tối thiểu 2 đối số'); end; l=zeros(N); u=zeros(N);
for i=1:N, l(i,i)=1; end;
for j=1:N, u(1,j)=a(1,j); end;
if u(1,1)==0, error('Không thể phân tích được.');end; for i=2:N, l(i,1)=a(i,1)/u(1,1); end;
for i=2:N-1
Trang 133.2 Phương pháp nhân tử LU 47
Phương pháp phân rã LU áp dụng rất hiệu quả trong trường hợp
ma trận hệ số có dạng ba đường chéo:
Trang 14Khi ấy từ công thức (3.4) ta có
ui,i= ai,i− li,i−1ui−1,i; ∀i = 2, 3, , n
ui,i+1= ai,i+1; li+1,i=ai+1,i
ui,i ; ∀i = 2, 3, , n − 1
Để thể hiện thuật toán Doolittle trong trường hợp ma trận hệ số
có dạng ba đường chéo, thay vì đưa vào ma trận A, ta đưa vào ba
vectơ:a chứa các phần tử trên đường chéo chính của A,b là đườngchéo nằm trên đường chéo chính và c là đường chéo nằm dướiđường chéo chính, vectơ tự do làd Chương trình trên MatLab đượcthể hiện trong chương trình 3.6 Kết quả trả về là vectơ nghiệmx
Chương trình 3.6 - c3tridiag : Ma trận ba đường chéo function [x]=c3tridiag(N,a,b,c,d)
if nargin<5, error('Ham co toi thieu 5 doi so.'); end; u(1)=a(1);v(1)=b(1);l(1)=c(1)/u(1);y(1)=d(1);
Trang 153.3 Phương pháp Choleski 49
3.3 PHƯƠNG PHÁP CHOLESKI
Đây là trường hợp đặt biệt của phương pháp nhân tử LU, và được
dùng cho trường hợp ma trận hệ số A đối xứng và xác định dương.
Ma trận vuông A được gọi là đối xứng nếu AT = A Có thể nói rằng
ma trận A là đối xứng nếu các phần tử của nó đối xứng với nhau qua đường chéo chính, nghĩa là aij = aji, ∀i, j = 1, n Còn ma trận A là xác định dương nếu ∀x ∈ Rn, x 6= 0 : xTAx > 0 Để kiểm tra tính xácđịnh dương của một ma trận, ta thường dùng định lí sau đây
Định lí3.2 Một ma trận là xác định dương khi và chỉ khi tất cả các
định thức con chính của nó đều dương.
Trong đó định thức con chính cấp k, 1 6 k 6 n của ma trận là định thức con thu được từ k hàng và k cột đầu tiên của ma trận đó.
Ví dụ 3.5. Xét ma trận A =
= 1 > 0và ∆3=
= 2 > 0 Do đó
Alà xác định dương
Ta có định lí Choleski:
Định lí3.3 Ma trận A là đối xứng và xác định dương khi và chỉ khi
tồn tại một ma trận B tam giác dưới, khả đảo sao cho A = BBT Khi đó ma trận tam giác dưới B có thể tìm được theo công thức
Trang 16Ví dụ 3.6. Xét hệ phương trình
và do đóA = BBT vớiB =
Hệ phương trìnhxuất phát sẽ tương đương với hai hệ
√2
√2
Thuật toán phân rã Choleski được thể hiện trong Chương trình3.7 Đối số của chương trình gồm: N là cấp của ma trận, a là matrận hệ số đối xứng và xác định dương Kết quả trả về của chươngtrình là ma trận tam giác dướib
Chương trình 3.7 - c3choleski : Phương pháp Choleski function [b] = c3choleski(N,a)
if nargin<2, error('Hàm có tối thiểu 2 đối số'); end; for i=1:N
Trang 173.3 Phương pháp Choleski 51
Trang 18Ví dụ 3.7. Xét hệ phương trình
√3
√3
và ta có nghiệm của hệ phương trình làx1= 0, x2= 1, x3= 1
3.4 CHUẨN VECTƠ VÀ CHUẨN MA TRẬN
Xét không gian tuyến tính thực Rn Chuẩn của vectơ x ∈ Rn là
một số thực, ký hiệu là kxk, thoả các điều kiện sau đây:
(i) ∀x ∈ Rn, kxk > 0, kxk = 0 ⇔ x = 0
(ii) ∀x ∈ Rn, ∀λ ∈ R, kλxk = |λ| kxk
(iii) ∀x, y ∈ Rn, kx + yk 6 kxk + kyk Điều kiện này thường được gọi làbất đẳng thức tam giác
Trong Rn có thể có rất nhiều chuẩn, tuy nhiên chúng ta chỉ xét
chủ yếu hai chuẩn thường dùng sau đây: ∀x = [x1, x2, , xn]T ∈Rn
kxk1= |x1| + |x2| + · · · + |xn| =
n
X
Trang 193.4 Chuẩn vectơ và chuẩn ma trận 53
Từ công thức (3.8) ta dễ dàng suy ra được rằng: kAxk 6 kAkkxk
Định lí3.4 Chuẩn ma trận theo công thức (3.8) tương ứng với chuẩn
vectơ được xác định như sau:
kx(m)− xk → 0 khi m → +∞ (hội tụ theo chuẩn).
Trang 20Khi đó ta ký hiệu lim
m→∞x(m) = x và chuẩn có thể lấy một chuẩnbất kỳ trong các công thức (3.6) hoặc (3.7) Ta cũng có thể nói dãy
vectơ {x(m)}hội tụ về x theo chuẩn đã cho Ta có định lí sau đây:
Định lí 3.5 Để dãy các vectơ {x(m)}hội tụ tới vectơ x khi m → +∞ theo chuẩn thì điều kiện cần và đủ là dãy {x(m)k }hội tụ về xk, ∀k = 1, n (hội tụ theo toạ độ).
Bây giờ xét hệ phương trình Ax = b(det A 6= 0) có nghiệm x = A−1b
Cho b một số gia ∆b, khi đó nghiệm x tương ứng sẽ có số gia là ∆x, và A∆x = ∆b ⇔ ∆x = A−1∆b Ta có
−1kk∆bk kbk
Số
được gọi là số điều kiện của ma trận A Ta có thể chứng tỏ được rằng
1 6 k(A) 6 +∞
Số điều kiện của ma trận đặc trưng cho tính ổn định của hệ thống
phương trình đại số tuyến tính Giá trị của k(A) càng gần với 1 thì
hệ càng ổn định Số điều kiện càng lớn thì hệ càng mất ổn định
Ví dụ 3.9. Xét hệ phương trình Ax = b với A =
Bây giờ xét hệ
A˜ x = ˜ bvới˜b =
3
Ta nhận thấyk∞(A) = 1207.01 1 Do đób ≈ ˜ b, nhưngxvà ˜x
khác nhau rất xa
Trang 213.5 Phương pháp lặp 55
3.5 PHƯƠNG PHÁP LẶP
Kĩ thuật lặp dùng để giải hệ phương trình đại số tuyến tính (3.1)cũng tương tự như phương pháp lặp đã xét trong chương 2 Muốn thế,
chúng ta chuyển hệ (3.1) về dạng tương đương x = T x + c với T là một
ma trận vuông cấp n và c là một vectơ đã biết Xuất phát từ vectơ ban đầu x(0), ta xây dựng một dãy các vectơ {x(m)}∞
m=0theo công thứclặp
với m = 1, 2, 3, Ta có định lí sau đây:
Định lí 3.6 Nếu kT k < 1 thì dãy lặp các vectơ xác định theo công
thức (3.12) sẽ hội tụ về nghiệm x của hệ với mọi vectơ lặp ban đầu
x(0) Khi đó ta có các công thức đánh giá sai số như sau:
Bây giờ chúng ta sẽ xét một dạng ma trận hệ số của hệ phương
trình Ax = b mà có thể chuyển dễ dàng về dạng x = T x + c.
Định nghĩa 3.3 Ma trận A được gọi là ma trận đường chéo trội
nghiêm ngặt nếu nó thoả mãn điều kiện sau đây:
Trang 22phân tích ma trận A theo dạng
Từ hệ (3.16) ta có Dx = (L + U )x + b Do tồn tại D−1 nên
x = D−1(L + U )x + D−1b Ký hiệu Tj= D−1(L + U ) và cj= D−1b Khiđó công thức lặp theo (3.12) sẽ có dạng
x(m)= Tjx(m−1)+ cj, m = 1, 2, 3, (3.17)Phương pháp lặp dựa trên công thức lặp (3.17) được gọi làphương pháp Jacobi Dạng tường minh của công thức (3.17) như sau:
Trang 233.5 Phương pháp lặp 57
aij
aii
... data-page="21">
3. 5 Phương pháp lặp 55
3. 5 PHƯƠNG PHÁP LẶP
Kĩ thuật lặp dùng để giải hệ phương trình đại số tuyến tính (3. 1)cũng tương tự phương pháp lặp xét chương. .. thể Chương trình3 .7 Đối số chương trình gồm: N cấp ma trận, a matrận hệ số đối xứng xác định dương Kết trả chươngtrình ma trận tam giác dướib
Chương trình 3. 7 - c3choleski... data-page="25">
3. 5 Phương pháp lặp 59
Phương pháp lặp Jacobi thể Chương trình 3. 8.Đối số chương trình gồm: N cấp ma trận, a ma trậnhệ số cấpN×(N+1),x0