PHƯƠNG PHÁP số TRONG đại số TUYẾN TÍNH
Trang 21 n
2n 22
21
1n 12
11
a
a a
a
a a
a
a a
x
x
1
Trang 3Đặt vấn đề ( tiếp theo )
Nếu det(A) 0 thì hệ có nghiệm duy nhất
Phương pháp giải thuộc 2 hai nhóm:
o Trực tiếp (giải đúng): Cramer, Gauss,…
o Lặp (gần đúng)
Phương pháp Cramer
) A det(
) A
Trang 4ni n
1 ni 1
n
n 2 1
i 2 2
1 i 2 21
n 1 1
i 1 1
1 i 1 11
i
a
a b
a
a
a b
a
a
a
a b
a
a A
Thay cột thứ i trong A bởi B để có Ai
Trang 52 2
3 2
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
x
10 1) - 3(2 2)
(1 - 4) 2(-1 2
-1
1 1
3 1 2
1 1
1 1 2
2 1 2 1 2 3
2 1 1
1 1
2 )
1
1 1
1 2
1 1
2 1 2
2 1 3 1 2 1
2 1 2
1 1
3 )
3(6 1)
(3 - 2) (2 2 2 2
-1 3
3 1 1
1 3
1 1
2 2 2 1
1 3
2 2
1
1 3
2 )
Trang 6Phương pháp Cramer
20 3)
3(2 6)
(-1 - 4) 2(1 2
1
3 1 3 1 2
3 1
1 2
2 1 2 1 2
3
2 1 1
3 1
2 )
10 )
3 10
30 )
2 10
20 )
Trang 73 x
3 x
5 x
x x
2
4 x
x x
3 2
1
3 2
1
3 2
1
Trang 84 B
, 3 3
1
1 1
2
1 1
1
A
4 3
3 1
1 1
2
1 1
1 )
12 x
12 3
3 6
1 1
5
1 1
0 x
0 3
6 1
1 5
2
1 4
4 x
4 6
3 1
5 1 2
4 1 1
Trang 9Phương pháp Cramer
Nhận xét:
Nếu xem như trong quá trình tính toán không có sai số quy tròn thì phương pháp Cramer là một phương pháp giải đúng
Việc giải hệ gồm n phương trình bằng phương pháp
Cramer cần phải tính n+1 định thức cấp n, mỗi định
thức cấp n cần: n!-1 phép cộng, (n-1)n! phép nhân Khi
n lớn số lượng phép tính là rất lớn khó thực hiện được trong thực tế
Trang 102) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (phương pháp khử)
Nội dung của phương pháp: Gồm 2 quá trình:
) 2 ( 2
) 1 ( 1 (n)
) 2 ( n 2
) 1 ( n 1
) 1 ( 12 )
n (
b
b
b B
; 1
a
1
a
a 1
A
) ( ) (
Trang 112) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (tt)
Hệ phương trình đã cho tương đương với:
) n ( n n
) 2 ( 2 n
) 2 ( n 2 2
) 1 ( 1 n
) 1 ( n 1 2
) 1 ( 12 1
b x
b x a
x
b x a
x a
x
Trang 122) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (tt)
Quá trình nghịch: Lần lượt tính nghiệm xn, xn-1, … x1 theo cách:
n
i k
k
i ik
i i i
n
n n n
n n n
n n n
x a b
x
x a b
x
x a
b x
b x
2
) 1 ( 1
) 1 ( 1 1
1
) ( )
(
) 1 ( ) 1 (
) 1 ( 1 1
) (
Trang 13
2) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (tt)
Các bước thực hiện: Để minh họa, ta sử dụng phương pháp Gauss để
3
2 2
3 2
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
x
Trang 142) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (tt)
Bước 1: - Giả sử a11 ≠ 0, chia dòng 1 cho a11 (a11 là phần tử
trụ) Hệ đã cho tương đượng với:
n nn
n n
n
n n
) ( n
) ( )
(
b
b b b
x
x x x
.
a
a a
a a
a
a
a a
a
a
a a
3 2
1 1
3 2 1
3 2
1
3 33
32 31
2 23
22 21
1 1
1 13
1 12 1
11 1
) 1 ( 1 11
j 1
) 1 ( j
3
2 2
2
3 2
1 2
1
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
x
Quá trình thuận
Trang 152) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (tt)
- Khử x1 trong phương trình thứ i=2,3,4,…, n bằng cách:
Thay dòng i bởi dòng i – dòng 1 * a i1 Nghĩa là:
a(1)ij = aij - a(1)1j *ai1 với j=1,n và: b (1)
) (
) (
) (
n )
( nn
) ( n
) ( n
) ( n
) ( )
(
) ( n )
( )
(
) ( n
) ( )
(
b
b b b
x
x x x
.
a
a a
a a
a
a a
a
a a
1
1 3
1 2
1 1
3 2 1
1 1
3
1 2
1 3
1 33
1 32
1 2
1 23
1 22
1 1
1 13
1 12
5 2
7
2
1 2
5 2
3
2
3 2
1 2
1
3 2
3 2
3 2
1
x x
x x
x x
x
Trang 162) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (tt)
Bước 2: Giả sử a(1)
22 0, chia dòng 2 cho a(1)22 Hệ đã cho tương đượng với:
), ,2,1(
,/
,/ 22(1) 2(2) 2(1) 22(1)
) 1 ( 2
) 2 (
) (
) (
) (
n
) ( nn
) ( n
) ( n
) ( n
) ( )
(
) ( n
) (
) ( n
) ( )
(
b
b b b
x
x x x
.
a
a a
a a
a
a
a
a a
1
1 3
2 2
1 1
3 2 1
1 1
3
1 2
1 3
1 33
1 32
2 2
2 23
1 1
1 13
1 12
0
0
1 0
5 2
7
3
1 3
5
2
3 2
1 2
1
3 2
3 2
3 2
1
x x
x x
x x
x
Trang 172) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (tt)
) (
) (
) (
n )
( nn )
( n
) ( n )
(
) ( n )
(
) ( n )
( )
(
b
b b b
x
x x x
a
a
a
a
a
a a
2
2 3
2 2
1 1
3 2 1
2 2
3
2 3
2 33
2 2
2 23
1 1
1 13
1 12
0 0
0 0
1 0
10 -
3
1 3
5
2
3 2
1 2
1
3
3 2
3 2
1
x
x x
x x
x
Trang 182) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (tt)
Tiếp tục thực hiện như trên cho đến khi đưa được ma trận hệ số về ma trận tam giác trên Hệ đã cho tương đương với:
) (
) (
) (
n
) ( n
) ( n
) (
) ( n
) ( )
(
b
b b b
x
x x x
a
a
a
a a
3 3
2 2
1 1
3 2 1
3 3
2 2
2 23
1 1
1 13
1 12
1 0
0 0
1 0
0
1 0
3
1 3
5
2
3 2
1 2
1
3
3 2
3 2
1
x
x x
x x
x
Trang 192) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (tt)
3
1 3
5
2
3 2
1 2
1
3
3 2
3 2
1
x
x x
x x
Trang 202) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (tt)
Ví dụ 3.3: Giải hệ sau bằng phương phap Gauss
3 x
3 x
5 x
x x
2
4 x
x x
3 2
1
3 2
1
3 2
1
Giải: ???
Trang 212) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (tt)
4 B
, 2 2
0
3 1
0
1 1
1
(1) )
1 (
A
Trang 222) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (tt)
4 B
, 4 0
0
3 1
0
1 1
1
(2) )
2 (
4B
,10
0
31
0
11
1
(3) )
3 (
A
Trang 232) Giải hệ phương trình tuyến tính bằng phương pháp Gauss (tt)
33
4
3
3 2
3 2
1
x
x x
x x
x
Ta có hệ đã cho tương đương với:
Vậy nghiệm của hệ là: x1=3; x2=0 và x3 = 1
Trang 24Sơ đồ Gauss
Trong trường hợp không sử dụng máy tính để giải, để hạn chế sai sót, ta có thể lập bảng (sơ đồ Gauss) để ghi lại quá trình tính tóan
Để đơn giản, ta xét hệ chỉ gồm 3 phương trình, 3 ẩn:
33 2
32 1
31
2 3
23 2
22 1
21
1 3
13 2
12 1
11
b x
a x
a x
a
b x
a x
a x
a
b x
a x
a x
a
Lập bảng để tính gồm 5 cột
Trang 26Cách ghi vào sơ đồ Gauss
Phần I:
- Ghi các hệ số của A vào các cột ai1, ai2, ai3 và hệ số tự do
B vào cột bi
- Cột ghi tổng các phần tử bên trái cùng dòng
- Chia dòng 1 cho a11, kết quả ghi vào dòng cuối của phần I (ứng với i=4)
Trang 27Cách ghi vào sơ đồ Gauss (tiếp theo)
Phần III:
- Hệ số của phương trình thứ 3 sau khi khử x2 được ghi
vào dòng đầu tiên (ứng với i=3)
- Chia dòng 3 cho a33(2), kết quả ghi vào dòng cuối của
phần III (ứng với i=4)
Phần IV: Ghi hệ số 1 vào các ô tương ứng với vị trí của x và tính nghiệm x3, x2, x1
Chú ý: những phép biến đổi trên các hệ số của A, B như thế nào thì cũng biến đổi như vậy đối với cột tổng nên tổng a i1 +a i2 +a i3 +b i =a i Nếu có sự khác biệt lớn hơn sai số do quy tròn thì phải xem lại quá trình tính tóan
(Xem ví dụ trong slide kế)
Trang 282 2
3 2
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
Trang 293x
5x
xx
2
4x
xx
3 2
1
3 2
1
3 2
1
Ví dụ 3.5: Lập sơ đồ Gauss giải hệ:
Trang 31Khối lượng phép tính của PP Gauss
6
5 2
1 )( n ) n
6
5 2
1 )( n ) n
(
6
7 9
Trang 32Giải thuật của phương pháp Gauss
Quá trình thuận:
For (int k=1; k<=n;k++) {
m = akk;//m là phần tử trụ
If m= =0 “Chưa xét trường hợp này, dừng”
Else { //Chia dòng k cho m=akk
bk=bk/m;
for (int j=1; j<=n; j++) akj=akj/m;
for (int i=k+1; i<=n;i++){
hệsố = aik; bi=bi-heso*bk; for (int j = k; j<=n; j++) aij=aij-akj*heso; }
}
}
Trang 33Giải thuật của phương pháp Gauss
Trang 343) Phương pháp Gauss với phần tử trụ lớn nhất:
Với PP Gauss được trình bày ở trên:
Phương pháp Gauss là PP giải đúng Thực tế, vẫn xảy
ra sai số do quy tròn Hơn nữa, các tính toán trên máy tính chỉa là gần đúng Sai số sẽ lớn khi phần tử trụ có trị tuyệt đối nhỏ
Không thực hiện được nếu ở bước k, phần tử akk=0
Cải tiến phương pháp Gauss ở trên bằng cách: Ở bước
k, ta chọn phần tử làm trụ có trị tuyệt đối lớn nhất
Trang 353) Phương pháp Gauss với phần tử trụ lớn nhất (tt)
Nội dung của phương pháp:
Giống như phương pháp Gauss đã trình bày, tuy nhiên:
Ở bước k, trước khi biến đổi:
Trang 36for (i=k;i<=n; i++) if |aik|>|ark| then r = i;
if (ark== 0) {Hệ không có nghiệm duy nhất, dừng}
else { Hóan vị dòng r với dòng k m=akk;
Chia dòng k cho m Khử xk ở các pt thứ i=k+1, k+2, …, n bằng cách:
Thay dòng i bởi dòng i – aik*dòng k
} }
Trang 384 Giải hệ phương trình tuyến tính bằng phương pháp Cholesky
Giải hệ PT tuyến tính: AX = B
Nội dung của phương pháp:
Giả sử biến đổi được ma trận A thành tích của 2 ma trận vuông cấp n : A = C x D
Trong đó ma trận C và D là 2 ma trận tam giác có dạng:
c
C c
c C
0
0
0
2 1
22 21
00
10
1
2
1 12
n
n
d
d d
D
Trong đó cii 0 với mọi i=1,2,…,n
Trang 39Phương pháp Cholesky (tiếp theo)
Sau khi xác định được 2 ma trận C và D, tính nghiệm của hệ gồm 2 bước:
Bước 1: Giải hệ CY = B
y1 = b1/c11
y2 = (b2 – c21*y1)/c22
kk i
k
i
ki k
1 1
n k , 1
ki k
x
Trang 40Phương pháp Cholesky (tiếp theo)
j) (i 1 d
1) j (i .
ij ij
1 1
1 1
j
k
kj ik ij
ij
i i
d c a
c
a c
)(1
)
.(
1/
ij
1 1
11 1
1
j i
d c
a cii d
c a
d
i
k
kj ik ij
ij
j j
Trang 41Giải thuật Cholesky
Thuận: Tìm 2 ma trận C và D
Cho i = 1,2,…n;
Cho j=1,2,…,n{
Nếu (j<=i) { Nếu i=j thì dij=1 ngược lại (j<i): dij=0
Nếu j=1 thì cij=aij Ngược lại:{acc=0;
cho k=1,2,…,j-1: acc = acc + cik*dkj;
cij =aij – acc;}
} Ngược lại (nghĩa là j>i):
{ cij=0 Nếu (i=1) d1j=a1j/c11
Ngược lại {
acc=0;
Cho k=1,2,…,i-1: acc = acc + cik*dkj;
dij =(aij – acc)/cii }
} }
Trang 42Giải thuật Cholesky
Trang 43Phương pháp Cholesky (tiếp theo)
Ví dụ 3.6: Giải hệ sau bằng phương pháp Cholesky
3
2 2
3 2
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
0
3 / 5 1
0
2 / 1 2
/ 1 1 ,
3 / 10 2
/ 7 3
0 2
/ 3 1
0 0
2
D C
Giải hệ CY=B, được nghiệm y1=3/2, y2= -1/3, y3= 2
Giải hệ DX=Y, được nghiệm x1=1, x2= 3, x3= 2
Trang 441 n
2n 22
21
1n 12
11
a
a a
a
a a
a
a a
A
Trang 45Tính định thức ma trận bằng phương pháp Gauss (tiếp theo)
Nội dung của phương pháp:
Biến đổi ma trận A về ma trận tam giác có dạng:
0
a
a 1 0
a
a a 1
(n) 2n
(n) 23
(n) 1n
(n) 13
(n) 12 )
)1()det(
Trong đó: p là số lần hóan vị các dòng để tìm phần tử trụ
Trang 46Giải thuật tính định thức ma trận bằng phương
Nếu atk=0 thì det(A)=0; dừng thuật tóan
Nếu atk ≠ 0 thì làm các việc sau đây:
1 /
{
a tk jk
Trang 476 Tìm ma trận nghịch đảo bằng phương pháp gauss
Bài toán:
Cho ma trận A:
Tìm ma trận nghịch đảo A -1 của A Nghĩa là :
A.A-1 =I, Với I là ma trận đơn vị cấp n:
Lưu ý: Mọi ma trận không suy biến đều tồn tại ma trận nghịch đảo
1
2n 22
21
1n 12
11
a
a a
a
a a
a
a a A
0 0 0
0
0 1 0
0
0 0 1
I
Trang 482n 22
21
1n 12
11 1
x
x x
x
x x
x A
1
2n 22
21
1n 12
11
2 1
2 22
21
1 12
11 1
x
x x
x
x x
x
a a
a
a a
a
a a
a A
A
n nn
n n
n n
k
k nk n
k
k nk
n
k
kn k k
k n
k
k k
n
k
kn k n
k
k k n
k
k k
x a x
a x
a
x a x
a x
a
x a x
a x
a
1 1
2 1
1
1 2 2
2 1
1 2
1
1 1
2 1 1
1 1
0 1 0
0 0 1
I
x ij Cần phải tìm?
Trang 49Tìm ma trận nghịch đảo (tt)
0
1
0
0
2 2 1
1
2 2 1
1
2 2
22 1
21
1 2
12 1
n j
n
nj jn j
j j
j
nj n j
j
nj n j
j
x a x
a x
a
x a x
a x
a
x a x
a x
a
x a x
a x
nj
j j
nn n
n
n n
e
e e
x
x x
a a
a
a a
a
a a
a
1
2 1
2 22
21
1 12
11 Xét cột thứ j trong 2 ma trận A.A -1 và I Ta có hệ:
1
) (
0
j i
j
i
e ij
Hay
Trang 50j j
nn n
n
n n
e
e e
x
x x
a a
a
a a
a
a a
a
1
2 1
2 22
21
1 12
1
) (
0
j i
j i
e ij
Trang 510
0
1
1 31
3 21
2 11
1
1 3
31 33 21
32 11
31
1 2
31 23 21
22 11
21
1 1
31 13 21
12 11
11
n nn n
n n
n n
n n
n n
x a x
a x
a x
a
x a x
a x
a x
a
x a x
a x
a x
a
x a x
a x
a x
a
Để tìm được các phần tử ở cột 1 của ma trận A -1
Trang 520
1
0
2 32
3 22
2 12
1
2 3
32 33 22
32 12
31
2 2
32 23 22
22 12
21
2 1
32 13 22
12 12
11
n nn n
n n
n n
n n
n n
x a x
a x
a x
a
x a x
a x
a x
a
x a x
a x
a x
a
x a x
a x
a x
Trang 53Giải thuật tìm ma trận nghịch đảo bằng pp
Dòng i của A = Dòng i của A – heso*dong k của A
Dòng i của I = Dòng i của I – heso*dong k của I
}
}
}
}
/{
Trang 54Giải thuật tìm ma trận nghịch đảo bằng pp Gauss
Trang 557 Chuẩn của ma trận và chuẩn của vector
4.1 Định nghĩa: Chuẩn của ma trận A=(aij) là một số thực ||A||
thỏa các điều kiện:
a. ||A||≥0 (với ||A||=0 A = 0)
b. ||.A||=||.||A||, với là một số thực
.
)
|
| (
.
|
| max
.
,
2
1 2 2
j i
ij
i
ij j
a A
c
a A
b
a A
(Chuẩn Ơclit )
(Chuẩn dòng)
Trang 56Chuẩn của ma trận và chuẩn của vector
2 0
1
1 1 2
A
Tính? A , A , A
2 1
Trang 57Chuẩn của ma trận và chuẩn của vector
Chuẩn Vector: Vector là ma trận chỉ có 1 cột nên chuẩn của Vector là:
x x
x X
1 2
1
2 1
1
2 2
2 2
2 1
x X
1
X
Tính các chuẩn dòng, cột vàƠclit Của X
Trang 588 Sự không ổn định của hệ phương trình đại số tuyến tính
Giả sử nghiệm của hệ AX=B tìm được là X1
Nếu thay đổi rất ít giá trị của các hệ số hoặc của vế phải, mà nghiệm tìm được của hệ sai lệnh lớn so với X1 Ta nói hệ
AX=B không ổn định, ngược lại hệ phương trình gọi là ổn
định
Cách đơn giản để kiểm tra tính ổn định của hệ thống phương trình là: Giải hệ AX=B đồng thời cũng giải hệ AX=B1 với B1khác rất ít so bới B Nếu hai nghiệm tìm được xấp xỉ nhau, ta nói hệ ổn định, ngược lại ta nói hệ không ổn định
Cách khác: xét hệ số Cond(A)=||A||.||A-1||
Với ||A|| là một chuẩn nào đó
Cond(A) càng lớn, hệ càng không ổn định
Con(A) càng gần với 1, hệ càng ổn định
Trang 59Sự không ổn định của hệ phương trình đại số tuyến tính (tt)
9 5
7
33 9
10 6
8
23 5
6 5
7
32 7
8 7
10
4 3
2 1
4 3
2 1
4 3
2 1
4 3
2 1
x x
x x
x x
x x
x x
x x
x x
x x
Trang 609 Giải hệ phuơng trình tuyến tính bằng phương pháp lặp đơn
- Bắt đầu với X(0) nào đó, nếu dãy: X(n+1) = + X(n) (*) hội tụ về X(*) khi n thì X(*) là nghiệm của hệ
Tìm nghiệm của hệ: AX=B
Nội dung của phương pháp
-Biến đổi hệ về dạng tương đượng: X = + X
n1
2n 22
21
1n 12
11 2
Trang 61Sự hội tụ bề nghiệm và sai số
Định lý: Nếu || ||p<1 thì dãy lặp (a) hội tụ về nghiệm (|| ||p: Là một chuẩn nào đó của )
k
X X
X X
p p
k p p
k
X X
X
1
) (
Trang 62,0
915
,03
09,0
808
,024
,04
3 2
1
3 2
1
3 2
1
xx
x
xx
x
xx
3
3 1
2
3 2
1
02 , 0 01
, 0 5
05 , 0 03
, 0 3
02 , 0 06
, 0 2
x x
x
x x
x
x x
x
X
X
Trang 63, 0 01
, 0
05 , 0 0
03 , 0
02 , 0 06 , 0 0
; 5 3
Hội tụ về nghiệm của hệ đã cho
Bài tập: Với hệ đã cho trong ví dụ trên
a) Hãy tính nghiệm gần đúng của hệ sau 3 lần lặp (Bắt đầu với
X (0) =(0,0,0)
b) Hãy tìm nghiệm gần đúng của hệ với sai số không quá 0,05
Trang 6429 2
5
12 6
2
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
9 5
7
33 9
10 6
8
23 5
6 5
7
32 7
8 7
10
4 3
2 1
4 3
2 1
4 3
2 1
4 3
2 1
x x
x x
x x
x x
x x
x x
x x
7 2
7
3 3
4
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
x
c)
Trang 6513
1
32
4
4 0
1
2 1
3
3 Tìm ma trận nghịch đảo của các ma trận cho ở câu 2 bằng phương pháp Gauss