tÍnh gẦn ĐÚng nghiỆm cỦa mỘt hỆ phƯƠng trÌnh ĐẠi …

42
TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG TP.HCM KHOA TOÁN -THỐNG KÊ ĐỒ ÁN TOÁN 1 TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH Sinh viên thực hiện: SV1: Mai Thanh Bình SV2: Huỳnh Võ Huy Tâm SV3: Lê Xuân Kỳ TP. Hồ Chí Minh, tháng 11 năm 2013

Upload: others

Post on 16-Oct-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG TP.HCM

KHOA TOÁN -THỐNG KÊ

ĐỒ ÁN TOÁN 1

TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH

ĐẠI SỐ TUYẾN TÍNH

Sinh viên thực hiện:

SV1: Mai Thanh Bình

SV2: Huỳnh Võ Huy Tâm

SV3: Lê Xuân Kỳ

TP. Hồ Chí Minh, tháng 11 năm 2013

Page 2: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

2

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

...............................................................................................................................................

Page 3: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

3

Lời cảm ơn

Trong quá trình thực hiện bài báo cáo đồ án này, nhóm chúng em đã nhận được nhiều sự

giúp đỡ từ các thầy cô trong khoa Toán-Thống kê, trường Đại học Tôn Đức Thắng. Các

thầy cô đã cung cấp cho chúng em những kiến thức, những kinh nghiệm quý báu trong suốt

quá trình học tập, cùng với sự giúp đỡ không ngừng của gia đình và bạn bè. Nhờ đó mà

nhóm chúng em đã hoàn thành được bài báo cáo đồ án như mong muốn. Nay xin cho phép

chúng em được gửi lời cảm ơn đến các thầy cô. Đặc biệt nhóm chúng em xin gửi lời cảm

ơn sâu sắc tới thầy Huỳnh Văn Kha người đã hướng dẫn và chỉ bảo tận tình cho chúng

em, đã tạo mọi điều kiện thuận lợi và là nguồn động lực quan trọng để nhóm chúng em có

thể hoàn thành tốt bài báo cáo đồ án này. Nhóm cũng xin gửi lởi cảm ơn chân thành tới gia

đình và bạn bè đã động viên, khuyến khích nhóm trong những lúc khó khăn nhất. Một lần

nữa nhóm chúng em xin chân thành cảm ơn. Chúc tất cả mọi người sức khỏe và thành đạt.

TP.HCM ngày 20, tháng 11, năm 2013

Page 4: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

4

Lời nói đầu Đối với một hệ phương trình ta luôn có cách tính chính xác nghiệm của nó. Người ta xây

dựng cách tính nghiệm chính xác thông qua công thức Cramer, công thức Cramer đối với

các hệ phương trình có số ẩn thấp thì không phức tạp nhưng việc sử dụng công thức

Cramer không phải đơn giản đối với các hệ phương trình có số ẩn lớn. Do đó người ta xây

dựng cách tính các giá trị xấp xỉ của các hệ phương trình với độ chính xác từ thấp đến cao,

từ không thể đến có thể xác định được độ chính xác của tập nghiệm. Phương pháp tính giá

trị xấp xỉ có thể chấp nhận được nếu độ sai lệ giữa giá trị xấp xỉ và nghiệm chính xác của

phương trình bé hơn cho trước nào đó. Từ đó nhóm chúng em quyết định chọn để tài

“tính gần đúng nghiệm của một phương trình đại số tuyến tính” để đi sâu vào tìm hiểu

phương thức tính giá trị xấp xỉ của phương trình đại số tuyến tính.

Cách tính xấp xỉ phương trình đại số tuyến tính có rất nhiều, ở đây chúng em chỉ liệt kê

một số phương pháp thông dụng, có độ chính xác cao và có thể áp dụng ngay vào thực tế.

TP.HCM ngày 20, tháng 11, năm 2013

Page 5: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

5

Mục Lục

Trang

1. PHẦN MỞ ĐẦU .......................................................................................................... 7

2. PHƯƠNG PHÁP KHỬ GAUSS .................................................................................. 8

2.1 Thuật toán .............................................................................................................. 8

2.2 Code chương trình .................................................................................................. 9

2.3 Chạy thử và nhận xét ........................................................................................... 12

3. PHÂN RÃ LU ............................................................................................................. 13

3.1 Thuật toán ............................................................................................................ 13

3.2 Code chương trình ................................................................................................ 15

3.3 Chạy thử và nhận xét ........................................................................................... 17

4. BA ĐƯỜNG CHÉO CHÍNH (THUẬT TOÁN THOMAS) ...................................... 18

4.1 Thuật toán ............................................................................................................ 18

4.2 Code chương trình ................................................................................................ 20

4.3 Chạy thử và nhận xét ........................................................................................... 21

5. CÁC PHƯƠNG PHÁP LẶP ĐƠN ............................................................................. 23

5.1 Kiến thức chuẩn bị ............................................................................................... 23

5.2 Phương pháp Jacobi ............................................................................................. 25

5.2.1 Thuật toán ...................................................................................................... 25

5.2.2 Sự hội tụ của phương pháp và sai số của nghiệm xấp xỉ .............................. 27

5.2.3 Code chương trình ......................................................................................... 27

5.2.4 Chạy thử và nhận xét ..................................................................................... 31

5.3 Phương pháp Gauss-Seidel .................................................................................. 32

Page 6: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

6

5.3.1 Thuật toán ...................................................................................................... 32

5.3.2 Sự hội tụ của phương pháp Seidel và đánh giá sai số của nghiệm xấp xỉ .... 32

5.3.3 Code chương trình ......................................................................................... 33

5.3.4 Chạy thử và nhận xét ..................................................................................... 35

6. Ứng dụng .................................................................................................................... 36

KẾT LUẬN ....................................................................................................................... 41

Tài Liệu Tham khảo .......................................................................................................... 42

Page 7: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

7

TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH

ĐẠI SỐ TUYẾN TÍNH

1. PHẦN MỞ ĐẦU

Nhiều vấn đề của khoa học, kỹ thuật, kinh tế, môi trường… qui về việc giải hệ phương

trình đại số tuyến tính:

11 1 12 2 1 1

21 1 22 2 2 2

1 1 2 2

n n

n n

n n nn n n

a x a x a x b

a x a x a x b

a x a x a x b

(1.1)

Đặt ij n nA a

là ma trận hệ số,

nb là ma trận cột các hệ số tự do cho trước, nx

là vectơ phải tìm, thì hệ (1.1) được viết ở dạng:

Ax b (1.2)

Về phương diện lý thuyết, hệ (1.2) có thể giải được trọn vẹn nhờ lý thuyết ma trận và

định thức. Tuy nhiên, với trường hợp ma trận không suy biến, nếu giải bằng phương pháp

Cramer thì số phép tính là rất lớn, cỡ !,n 2n phép tính nhân chia. Nhằm khắc phục hạn chế

đó, trong chương này chúng ta xét một số phương pháp giải thực tế hệ phương trình (1.2)

với đặc điểm chung là khối lượng tính toán giảm nhẹ.

Trong số các phương pháp đó chúng ta chia làm hai nhóm phương pháp lớn là nhóm

phương pháp trực tiếp và nhóm phương pháp gián tiếp.

Đặc điểm chung của nhóm phương pháp trực tiếp là sau một số hữu hạn phép tính sẽ

có kết quả, vì vậy nhóm phương pháp này thường được áp dụng với một số bài toán có

kích thước nhỏ, với các số liệu ban đầu là đúng. Tuy nhiên do phải thực hiện một số phép

tính tương đối lớn nên có nguy cơ tích lũy sai số, nhất là đối với trường hợp các số liệu ban

đầu không thật chính xác. Còn với nhóm phương pháp gián tiếp (phương pháp lặp) thường

được áp dụng cho lớp các bài toán có kích thước lớn, số liệu ban đầu là có sai số.

Với mục đích giải các bài toán thực tế, đặc điểm chung là là bài toán đã cho với ma trận

vuông cấp n n và phương trình luôn tồn tại 1 nghiệm duy nhất. Các trường hợp khác ta

không áp dụng với các phương pháp giải sau:

Page 8: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

8

2. PHƯƠNG PHÁP KHỬ GAUSS

2.1 Thuật toán

Tư tưởng của phương pháp khử Gauss là đưa hệ phương trình (1.2) về dạng tam giác

trên, lúc đó nghiệm được tìm nhờ phương pháp thế ngược. Quá trình đưa hệ (1.2) về một

hệ tương đương dạng tam giác được gọi là quá trình khử, được thực hiện bởi lược đồ sau

đây:

a) Tìm lần lượt từng giá trị lớn nhất của từng hàng trong ma trận A, sau đó ta lấy lần

lượt từng giá trị 11 21 1, ,..., na a a chia cho giá trị lớn nhất của từng hàng vừa tìm được và

có được giá trị lớn nhất trong đó.

b) Hoán vị lên trên dòng 1 nếu giá trị của phép chia giữa 11 21 1, ,..., na a a và giá trị lớn

nhất tương ứng của từng hàng là lớn nhất.

c) Sau đó lần lượt nhân phương trình đó với 11 21 11 31 11 1– a a , , , na a a a và theo thứ

tự, cộng vào phương trình thứ hai, thứ ba, … thứ .n Bằng cách đó ta khử được 1x ra

khỏi các phương trình của hệ từ phương trình thứ hai trở đi. Bước tiếp theo là ta khử

2x ra khỏi các phương trình từ thứ ba trở đi… Sau một số hữu hạn bước, ta đưa được

hệ (1.2) về dạng tam giác sau đây:

11 1 12 2 1 1

22 2 2 2

n n

n n

nn n n

c x c x c x d

c x c x d

c x d

Khi đó nghiệm * * * *

1 2, ,... n

nx x x x tìm được nhờ phép thế ngược.

Ví dụ: Giải hệ phương trình:

1 2 3

1 2 3

1 2 3

8 3 2 20

4 11 33

6 3 12 36

x x x

x x x

x x x

Giải:

Page 9: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

9

Ta đưa hệ phương trình về ma trận

8 3 2 20

4 11 1 33

6 3 12 36

Ta thấy 8 4

8 11 và

8 6

8 12 nên không đổi vị trí hàng thứ nhất.

1

2 2 12

8 3 2 208 3 2 20

254 11 1 33 0 2 23

26 3 12 36

6 3 12 36

h h h

Ta thấy 25 / 2 21/ 4

25 / 2 21/ 2 do đó không cần thay đổi vị trí hàng 2 và hàng 3.

3 3 1

2133 3 2

504

8 3 2 20 8 3 2 20

25 250 2 23 0 2 23

2 2

21 21 567 5670 21 0 0

4 2 50 50

h h hh h h

Như vậy hệ đã cho tương đương với hệ:

1 2 3

2 3

3

8 3 2 20

252 23

2

567 567

50 50

x x x

x x

x

Vậy hệ có nghiệm * (3,2,1).x

2.2 Code chương trình:

subroutine gauss(a,f,x,n)

implicit none

integer n

double precision a(n,n), f(n), x(n)

double precision s(n)

double precision c, pivot, store

Page 10: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

10

integer i, j, k, l

!!!!! rút gon theo hàng

do k=1, n-1

!!!! tim gia tri lon nhat trong hang

do i=k,n

s(i) = 0.0

do j=k,n

s(i) = max(s(i),abs(a(i,j)))

end do

end do

pivot = abs(a(k,k)/s(k))

l = k

do j=k+1,n

if(abs(a(j,k)/s(j)) > pivot) then

pivot = abs(a(j,k)/s(j))

l = j

end if

end do

!!!!!!!!!!

if(pivot == 0.0) then

write(*,*) ' khong the giai hpt theo cach nay '

return

end if

!!!! hoan doi theo dong

if (l /= k) then

do j=k,n

store = a(k,j)

a(k,j) = a(l,j)

Page 11: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

11

a(l,j) = store

end do

store = f(k)

f(k) = f(l)

f(l) = store

end if

do i=k+1,n

c=a(i,k)/a(k,k)

a(i,k) = 0.0

f(i)=f(i)- c*f(k)

do j=k+1,n

a(i,j) = a(i,j)-c*a(k,j)

end do

end do

end do

! giai nguoc

x(n) = f(n)/a(n,n)

do i=n-1,1,-1

c=0.0

do j=i+1,n

c= c + a(i,j)*x(j)

end do

x(i) = (f(i)- c)/a(i,i)

end do

write (*,*)'nghiem phuong trinh theo Gauss la'

write (*,201) (x(i),i=1,n)

201 format (6f12.5)! làm tròn chu so thu 5

end subroutine gauss

Page 12: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

12

Chú thích: Trong chương trình trên có khai báo một số công thức thuật toán sau,

các công thức đó được hiểu:

a(n,n): cấp phát một ma trận vuông .n na

f(n): cấp phát ma trận hệ số tự do .nf

x(n): ma trận kết quả cần tìm .nx

Các chú thích này được áp dụng cho các các thuật toán khác trong đề tài này.

2.3 Chạy thử và nhận xét

Chạy thử:

Hệ phương trình cấp 3

Hệ phương trình cấp 5

Nhận xét:

Phương pháp giải Gauss đưa cho ta các ưu điểm: thuật toán dễ hiểu, cách thức đơn

giản.

Song thuật toán Gauss cũng có vài nhược điểm của riêng mình: số lượng vòng lập

lớn, độ phức tạp của bài toán cao, thời gian chạy chương trình kéo dài, đối với các ma trận

lớn kết quả tìm được không còn chính xác, nguyên nhân là do sai số chặt cụt có trong máy

tính.

Page 13: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

13

3. PHÂN RÃ LU

3.1 Thuật toán

Ý tưởng chính của sự phân rã LU là để ghi lại các bước sử dụng trong khử Gauss trên

một ma trận khác mà những phép biến đổi về sau không còn sử dụng nữa.

Ma trận được dùng để ghi lại các phép biến đổi được gọi là ma trận ,L ma trận biến đổi

tam giác trên được gọi là ma trận U và dĩ nhiên phép biến đổi LU luôn luôn phải đảm bảo

.A LU

Để ma trận L trở thành ma trận tam giác dưới và LU A thì ta thêm chỉ số 1iiL trong

ma trận .L

Ta xét ví dụ sau:

2 2 1 3 2 2

1 2 3 1 2 3 1 2 3

2 5 12 (2) 1 6 (2) 1 6

0 2 10 0 2 10 (0) ( 2) 2

h h h hA

1 0 0 1 2 3

L 2 1 0 ; 0 1 6

0 2 1 0 0 2

U

Để kiểm nghiệm lại ta kiểm tra 1 lần nữa:

1 0 0 1 2 3 1 2 3

2 1 0 0 1 6 2 5 12

0 2 1 0 0 2 0 2 10

LU A

Khi đã đưa ma trận A về dạng tích LU thì phương trình Ax b ta có thể giải theo

phương pháp sau:

Ly bAx b LUx b

Ux y

Dùng biến đổi giải ngược đối với ma trận tam giác dưới và ma trận tam giác trên ta sẽ

được kết quả.

Ví dụ: Ta xét lại bài toán giải Gauss ở ví dụ trên:

Page 14: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

14

1 2 3

1 2 3

1 2 3

8 3 2 20

4 11 33

6 3 12 36

x x x

x x x

x x x

211

3 3 22 2 1502

33 3 1

4

8 3 2 8 3 28 3 2

1 25 1 254 11 1 2 2

2 2 2 26 3 12

3 21 21 3 21 567

4 4 2 4 50 50

h h hh h h

h h hA

1 0 0 8 3 2

1 251 0 ; 0 2

2 2

3 21 5671 0 0

4 50 50

L U

Ta tiến hành giải:

1

2

3

1 0 020

11 0 33

236

3 211

4 50

y

Ly b y

y

11

1 2 2

31 2 3

2020

133 23

2567

3 2136 50

4 50

yy

y y y

yy y y

1

2

3

8 3 220

250 2 23

2567

5670 0 50

50

x

Ux y x

x

Page 15: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

15

1 2 31

2 3 2

3

3

8 3 2 203

252 23 2

21

567 567

50 50

x x xx

x x x

x

x

Vậy hệ có nghiệm * (3,2,1).x

3.2 Code chương trình:

subroutine PhanRaL_U(a,f,x,n)

implicit none

integer n

double precision a(n,n)

double precision L(n,n), U(n,n), f(n), x(n)

double precision coeff

integer i, j, k

real c

L=0.0

U=0.0

! gán l cho ma tran tam giac duoi,

!U cho ma tran tam giac tren

do k=1, n-1

do i=k+1,n

coeff=a(i,k)/a(k,k)

L(i,k) = coeff

do j=k+1,n

a(i,j) = a(i,j)-coeff*a(k,j)

end do

Page 16: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

16

end do

end do

! truyen gia tr duong cheo chinh bang 1 cho L

do i=1,n

L(i,i) = 1.0

end do

! ma tran U chinh la ma tran A.

do j=1,n

do i=1,j

U(i,j) = a(i,j)

end do

end do

! gauss doi vi LY=B

c=0.0

do i=1,n

x(i) = (f(i)- c)

c=0.0

do j=1,i

c= c + L(i+1,j)*x(j)

end do

end do

! gauss doi voi UX=Y

f(n) = x(n)/U(n,n)

do i=n-1,1,-1

c=0.0

do j=i+1,n

c= c + U(i,j)*f(j)

Page 17: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

17

end do

f(i) = (x(i)- c)/U(i,i)

end do

write (*,*)'nghiem phuong trinh theo phan ra LU la'

write (*,201) (f(i),i=1,n)

201 format (6f12.5)! làm tròn chu so thu 5

end subroutine

3.3 Chạy thử và nhận xét

Chạy thử:

Hệ phương trình cấp 3

Hệ phương trình cấp 5

Nhận xét:

Đối với thuật toán sử dụng bằng phương pháp phân rã LU hạn chế được khuyết

điểm về thời gian chạy của phương pháp Gauss, thời gian rút ngắn xuống còn một nữa, do

số vòng lặp giảm một nữa đối với thuật toán này.

Thuật toán vẫn mắc phải các lỗi như Gauss về độ chính xác của bài toán đối với ma

trận có hệ số lớn, số vòng lặp tuy có giảm bớt nhưng vẫn còn ở con số cao, ngoài ra do sử

dụng thêm 1 ma trận để lưu các bước khai triển Gauss nên thuật toán còn lãng phí thêm 1

lượng ô nhớ bằng với ma trận đã cho.

Page 18: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

18

4. BA ĐƯỜNG CHÉO CHÍNH (THUẬT TOÁN THOMAS)

4.1 Thuật toán

Nói chung, một phương trình ma trận bất kì, có thể được giải quyết bằng phương pháp

Gauss hay phương pháp phân rã LU . Tuy nhiên, ngoại trừ các loại đặc biệt của ma trận hệ

số, phương pháp khử Gauss đòi hỏi rất nhiều dung lượng lưu trữ máy tính và thời gian máy

tính. Một hình thức đặc biệt có hiệu quả như khử Gauss có thể được sử dụng để giải quyết

một phương trình ma trận mà có hệ số ba đường chéo, hình thức đó ta sử dụng thuật toán

Thomas.

Ma trận ba đường chéo là ma trận mà các hệ số nằm ngoài 3 đường chéo chính bằng 0.

Để hiểu như thế nào là là ma trận ba đường chéo ta xét ví dụ tổng quát phía dưới:

Ví dụ:

1 1

2 2 2

3 3

1n

n n

b c

a b c

a b

c

a b

Để giải quyết bài toán đại số tuyến tính như trên thay vì ta phải cung cấp 1 ma trận

vuông cấp n n đối với thuật toán Gauss hay là 2 ma trận đối với thuật toán phân rã .LU

Để tránh thực hiện các vòng lặp với hệ số 0, và lượng ô nhớ lưu trữ lớn ta xét thuật toán

tổng quát sau:

1 11 1

2 22 2 2

3 3 2 3

1n

n n n n

x fb c

x fa b c

a b x f

c

a b x f

Page 19: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

19

11 1 1 2

22 1 2 2 3 3

3 2 3 3 3

1

1

n n

n n n n n

fb x c x

fa x b x c x

a x b x f

c x

a x b x y

Nhận xét: ma trận trên ta biến đổi đưa về dạng ma trận tam giác trên bằng cách khử

lần lượt các hệ số ia ra khỏi ma trận như phép khủ Gauss nhưng chỉ thực hiện trên các hệ

số khác 0, thông qua phương pháp hàng 1 1 , 2,3,..., .i ii i a b i i n

Trên thực tế, trong khi tính toán ta chỉ cần tính các giá trị thay đổi trên đường chéo

1 2, ,..., b .nb b và đường chéo 1 2 1, ,.., .nc c c

11 1 1 2

22 2 2 3

3 3 3

1n n

n n n

yb x x

yb x x

b x y

x

b x y

Ta thực hiện giải ngược với ma trận vừa tìm được để tìm ra kết quả.

Ví dụ:

1

2

3

4

5

6

7

8

4 1 0

1 4 1 0

1 4 1 0

1 4 1 0

1 4 1 0

1 4 1 0

1 4 1 0

1 4 16

x

x

x

x

x

x

x

x

Page 20: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

20

1

2

3

4

5

6

7

8

4 1

151 1

4

0561 1

15 0

209 01 156 0

78001 1

2090

29111 1 0

7801610864

1 12911

405451

10864

x

x

x

x

x

x

x

x

Nghiệm của phương trình tìm được là:

1

2

3

4

5

6

7

8

0.000395

0.001578

0.005919

0.022099

0.082476

0.307806

1.148748

4.287187

x

x

x

x

x

x

x

x

4.2 Code chương trình:

subroutine Thomas(a,f,x,n)

integer::n,i

double precision a(n,3), f(n), x(n)

double precision coeff

do i=2,n

Page 21: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

21

coeff=a(i,1)/a(i-1,2)

a(i,2)=a(i,2)-coeff*a(i-1,3)

f(i)=f(i)-coeff*f(i-1)

end do

!!

x(n) = f(n)/a(n,2)

do i=n-1,1,-1

x(i) = (f(i)- a(i,3)*x(i+1))/a(i,2)

end do

!!

write(*,*)"Nghiem cua phuong trinh giai theo

thomas la: "

write(*,201) (x(i), i = 1,n)

201 format(6f12.5)

end subroutine

4.3 Chạy thử và nhận xét

Chạy thử:

Page 22: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

22

Nhận xét: Đối với các ma trận ba đường chéo chính thì thuật toán trên giúp cho bài

toán được giải quyết nhanh hơn, không tốn kém bộ nhớ như thuật toán Gauss hay thuật

toán phân rã .LU Do phương pháp biến đổi giống Gauss nên bài toán cũng mắc phải những

khuyết điểm như 2 thuật toán trên.

Page 23: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

23

5. CÁC PHƯƠNG PHÁP LẶP ĐƠN

5.1 Kiến thức chuẩn bị

Phương pháp khử Gauss, phân rã LU đã xét ở trên, mặc dù có số phép tính ít hơn

quy tắc Cramer rất nhiều, song cũng không hiệu quả trong trường hợp hệ cỡ lớn hoặc

ma trận hệ số có nhiều số 0. Do đó trong mục này, chúng ta tiến hành nghiên cứu nhóm

phương pháp hiệu quả hơn để giải gần đúng nghiệm của hệ phương trình đại số tuyến

tính với độ chính xác tùy ý.Tất cả các phương pháp giải gần đúng hệ đại số tuyến tính

sẽ trình bày đều có chung một đặc điểm là xây dựng dãy lặp vectơ hội tụ tới nghiệm

đúng.

Trước hết chúng ta có các khái niệm sau:

Giới hạn của dãy vectơ

Cho n dãy số 1 2, , ,k k k

nx x x với k và k

ix là số hạng thứ k của dãy số

thứ .i

Với mỗi k , đặt 1 2, ,k k k k n

nv v v v ta có dãy vectơ 1 2 3

, ,v v v

Khi k nếu mỗi thành phần thứ i của kv có giới hạn là ia thì 1 2, ,..., nv a a a

được gọi là giới hạn của dãy kv , và ta cũng nói k

v hội tụ tới v .

Ví dụ: Xét ba dãy2

1 1; ;

2 1

k

k k k

thì ta được một dãy vectơ hội tụ đến

10; ;0 .

2v

Định nghĩa: Với 1 2, ,... n

nv x x x , gọi 1 2max , nx x x là chuẩn vô hạn của

vectơ v , và ký hiệu

1 2max , , nv x x x

Chuẩn vô hạn thỏa mãn ba tích chất sau:

(i) 0v với dấu "=" xảy ra khi và chỉ khi 0v .

(ii) cv c v đối với vô hướng c bất kỳ.

Page 24: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

24

(iii) w wv v (bất đẳng thức Tam giác).

Nhờ khái niệm chuẩn vô hạn, ta có định lý về tiêu chuẩn hội tụ.

Định lý: kv hội tụ tới v nếu và chỉ nếu *

0k

v v khi k

Trong việc xác lập sự hội tụ của một dãy vectơ tới nghiệm đúng và đánh giá sai số

của nghiệm xấp xỉ so với nghiệm đúng ta cũng cần đến khái niệm chuẩn của ma trận.

Định nghĩa: Chuẩn vô hạn của ma trận thực ij n nB b

, ký hiệu B

, là số thực

1 2

1 1 1

max , ,n n n

j j nj

j j j

B b b b

Ví dụ:

0 0.03 0.02

0.02 0 0.04

0.04 0.01 0

Có max 0.05;0.06;0.05 0.06B

Nội dung phương pháp lặp đơn.

Cho hệ Ax b cỡ .n n Có nhiều cách để đưa hệ này về dạng x Bx g tương

đương.

Ví dụ, tách A = S - T, trong đó S khả nghịch, thì:

.Ax b Sx Tx b

Đặt1 1,B S T g S b , ta có hệ x Bx g .

Xây dựng dãy vectơ kv như sau:

Cho trước cho 0v rồi tính 1

v theo công thức

1, 0,1,2,...

k kv Bv g k

(2.1)

(2.1) là công thức tính lặp, 1k là số lần lặp.

Phương pháp tính kv thế này là phương pháp lặp đơn.

Nếu kv hội tụ thì ta nói phương pháp lặp đơn hội tụ.

Page 25: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

25

Giả sử *kv v . Lấy giới hạn ở hai vế của

1.

k kv Bv g

Ta có:

* *,v Bv g

*v là nghiệm của x Bx g , tức cũng là nghiệm của Ax b .

Với 0 cho trước, nếu k đủ lớn ta luôn có:

*kv v

Khi đó ta nói kv là nghiệm xấp xỉ của nghiệm đúng với độ chính xác .

Trong thực hành, ta bắt buộc phải dừng tính toán ở bước thứ k nào đó và xem kv

là nghiệm gần đúng.

5.2 Phương pháp Jacobi

5.2.1 Thuật toán

Nếu trong hệ Ax b ma trận A có tất cả các phần tử trên đường chéo khác 0, tách

,A S T với

11 12 1

22 21 2

1 2

0

0,

0

n

n

nn n n

a a a

a a aS T

a a a

thì .Ax b Sx Tx b

Đặt 1g S b , và

1 .B S T x Bx g

Phương pháp lặp đơn tiến hành theo công thức 1k k

v Bv g được gọi là phương

pháp Jacobi.

Phương pháp Jacobi sẽ hội tụ, nếu ij n nA a

là ma trận đường chéo trội, tức là

1 2 1 11,2,..., n; .ii i i ii ii ina a a a a ai

Ví dụ 3.1: Xét hệ phương trình

Page 26: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

26

1 2 3 1 2 3

1 2 3 2 1 3

1 2 3 3 1 2

10 2 10 0.2 0.1 10

10 2 12 0.1 0.2 1.2

10 8 0.1 0.1 0.8

x x x x x x

x x x x x x

x x x x x x

Hệ trên tương đương x Bx g với:

0 0.2 0.1 1

0.1 0 0.2 , 1.2

0.1 0.1 0 0.8

B g

Với 1 1 1 1

1 2 3, ,k k k k

v x x x , với 1 2 3, , x

k k k kv x x xây dựng công thức tính lặp

1k kv Bv g

, tức là:

1

1 2 3

1

2 1 3

1

3 1 2

0.2 0.1 10

0.1 0.2 1.2

0.1 0.1 0.8

k k k

k k k

k k k

x x x

x x x

x x x

Xấp xỉ với 00,0,0x ta thu được kết quả, thể hiện ở bảng sau:

K 𝑥1 𝑥2 𝑥3

1

2

3

4

5

6

7

1

0.68

0.754

0.733

0.7383

0.73688

0.737250

1.2

0.94

1.016

0.997

1.0021

1.00077

1.000112

0.8

0.58

0.638

0.623

0.6273

0.62596

0.626235

Page 27: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

27

Có thể thấy nghiệm đúng của hệ này là * 707 956 598

, ,955 955 955

x

do đó nghiệm 7x

tương đối chính xác.

5.2.2 Sự hội tụ của phương pháp và sai số của nghiệm xấp xỉ

Phương pháp lặp đơn áp dụng cho x Bx g với ij .n n

B b

Định lý: Nếu 1B , thì với mọi 0 nv cho trước dãy k

v xác định bởi sai số sau:

* 1 01

1

kkv v B v v

B

Nhận xét:

1) Với điều kiện của định lý, và với 0v và 0 chọn trước, số lần lặp k để nghiệm

xấp xỉ đạt độ chính xác (tức là *kv v

) xác định từ bất phương trình:

1 01

1

kB v v

B

2) Sai số trong quá trình tính toán không ảnh hưởng đến kết quả cuối cùng (Phương

phương pháp lặp đơn có khả năng tự sửa sai, phép lặp đơn thực hiện cho tới khi

*kv v

cho trước).

Ví dụ 2: Quay lại ví dụ 1. 0.3 1B , nên phương pháp lặp đơn hội tụ.

Đánh giá sai số của 7v so với nghiệm đúng *

v :

1 01,1.2,0.8v v

77 * 1 01

1v v B v v

B

740.3

  1.2  3.7 101 0.3

5.2.3 Code chương trình:

subroutine jacobi(a,f,x,n)

Page 28: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

28

!implicit none

integer n

double precision a(n,n)

double precision f(n), x(n),x0(n), tam(n)

integer i,j,Kmax,k

real::eps

Kmax=10000

eps=0.00001

i = 0

x=0 ! gan x(i) =0

tam = x

! bien doi a ve bx + g

do i = 1, n

f(i) = f(i)/a(i,i)

do j = 1, n

if(i/=j) then

if(a(i,i) /= 0 .and. abs(a(i,i)) >=

abs(a(i,j))) then

a(i,j) = a(i,j)/a(i,i)

else

write(*,*) "ma tran da cho khong hoi

tu"

Page 29: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

29

return

end if

end if

end do

a(i,i) = 0

end do

i=1

!!!!!!!!!!!!!!!!!!!!! giai tim x(n)

do while (.true.)

x0=x

do j=1,n

c=0.0

do k=1,n

c=a(j,k)*x(k)+c

end do

tam(j)= -c+f(j)

end do

x = tam

! write(*,*) (x(k), k=1,n)

if(chuanmax(x-x0,n)<eps) then

write (*,*)" nghiem cua phuong trinh

theo Jacobi"

Page 30: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

30

write (*,201)(x(k),k=1,n)

write(*,*)"so lan lap", i

return !!!!! thoat khoi vong lap,

chuong trinh khi tim ra nghiem

end if

i = i+1

end do

201 format (6f12.5)! làm tròn chu so thu 5

end subroutine

Chú thích: Trong chương trình trên có sử dụng hàm chuanmax(), hàm này được

định nghĩa như sau:

function chuanmax(x,n)

integer n

double precision x(n)

real :: s, chuanmax

integer :: i

s = x(1)

do i = 1, n

if (s < abs(x(i))) then

s = abs(x(i))

end if

Page 31: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

31

end do

chuanmax = s

end function chuanmax

5.2.4 Chạy thử và nhận xét

Chạy thử:

Hệ phương trình cấp 3

Hệ phương trình cấp 5

Nhận xét:

Ưu điểm: đối với bài toán giải bằng phương pháp jacobi ta tiết kiệm được bộ

nhớ máy tính, đảm bảo được thời gian thực hiện chương trình, số lần lặp cũng như thời

gian chạy giảm đáng kể so với các phương pháp trên, ngoài ra nghiệm cần tìm có độ

chính xác cao hơn đối với các ma trận có hệ số lớn, nguyên nhân là do thực hiện kiểm

tra độ chính xác sau mỗi lần lặp.

Page 32: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

32

Nhược điểm của bài toán này là không phải tất cả các phương trình có nghiệm

đều hội tụ (chỉ áp dụng cho ma trận đường chéo trội), nếu hệ số hội tụ quá lớn thì ma

trận sẽ lâu hội tụ về ma trận kết quả.

5.3 Phương pháp Gauss-Seidel

5.3.1 Thuật toán

Quay lại Ví dụ trên trong phương pháp lặp đơn 1 1 1 1

1 2 3, , ,k k k k

v v v v tính qua

1 2 3, ,k k k k

v v v v nhờ:

1

1 2 3

1

2 1 3

1

3 1 2

0.2 0.1 1

0.1 0.2 1.2

0.1 0.1 0.8

k k k

k k k

k k k

x x x

x x x

x x x

Cải tiến: Khi tính 1

2

kx

sử dụng ngay

1

1

kx

vừa tính được

1 1

2 1 30.1 0.2 1.2k k k

x x x

Khi tính 1

3

kx

sử dụng ngay

1 1

1 2,k k

x x

vừa tính được

1 1 1

3 1 20.1 0.1 0.8k k k

x x x

Cụ thể:

1 1 1 1

1 2 3, , ,k k k k

v v v v qua 1 2 3, ,

k k k kv v v v theo các công thức:

1

1 2 3

1 1

2 1 3

1 1 1

3 1 2

0.2 0.1 1

0.1 0.2 1.2

0.1 0.1 0.8

k k k

k k k

k k k

x x x

x x x

x x x

Với 00,0,0 ,v ta tính được 1 1 1

1 2 3, ,x x x với:

1

1

1

2

1

3

0.2 0 0.1 0 1 1

0.1 1 0.2 0 1.2 1.1

0.1 1 0.1 1.1 0.8 0.59

x

x

x

11,1.1,0.59v

5.3.2 Sự hội tụ của phương pháp Seidel và đánh giá sai số của nghiệm xấp xỉ

Page 33: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

33

Phương pháp Seidel áp dụng cho phương trình x Bx g với ij .n n

B b

Định lý: Nếu 1,B thì với mọi 0 nv phương pháp Gauss Seidel đều hội tụ tới

nghiệm duy nhất v của x Bx g x. Hơn nữa có đánh giá sai số:

* 1 01

1

kv v v v

B

Trong đó:

max i

i ni

với 1 2 1 1, .i i i ii i ii ina b b b b b

5.3.3 Code chương trình:

subroutine Gauss_Seidel(a,f,x,n)!!!! lap cai tien

!implicit none

integer n

double precision a(n,n)

double precision f(n), x(n),x0(n)

integer i,j,k

real::eps

i = 0

eps=0.00001

x=0 ! gan x(i) =0

! bien doi a ve bx + g

do i = 1, n

f(i) = f(i)/a(i,i)

do j = 1, n

if(i/=j) then

if(a(i,i) /= 0 .and. abs(a(i,i)) >= abs(a(i,j)))

Page 34: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

34

then

a(i,j) = a(i,j)/a(i,i)

else

write(*,*) "ma tran da cho khong hoi tu"

return

end if

end if

end do

a(i,i) = 0

end do

i=1

!!!!!!!!!!!!!!!!!!!!! giai tim x(n)

do while (.true.)

x0=x

do j=1,n

c=0.0

do k=1,n

c=a(j,k)*x(k)+c

end do

x(j)=-c+f(j)

end do

if(chuanmax(x-x0,n)<eps) then

write (*,*)" nghiem cua phuong trinh theo

Gauss Seidel"

write (*,201)(x(k),k=1,n)

write(*,*)"so lan lap", i

return !!!!! thoat khoi vong lap, chuong trinh

khi tim ra nghiem

end if

Page 35: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

35

i = i+1

end do

201 format (6f12.5)! làm tròn chu so thu 5

end subroutine

Chú thích: Hàm chuanmax() ở đây được định nghĩa như trên thuật toán Jacobi.

5.3.4 Chạy thử và nhận xét

Chạy thử:

Hệ phương trình cấp 3

Hệ phương trình cấp 5

Nhận xét: Đối với phương pháp Gauss-Seidel hay còn được gọi là phương pháp

lặp cải tiến với các ưu điểm sau: sử dụng ít bộ nhớ máy, thời gian, tốc độ hội tụ về

nghiệm nhanh hơn phương pháp jacobi. Và cũng mắc phải những nhược điểm như

phương pháp jacobi về độ hội tụ của bài toán đã cho.

Page 36: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

36

6. Ứng dụng

Bài toán giải hệ phương trình tuyến tính có rất nhiều ứng dụng trong thực tế bao gồm

cả ứng dụng trong kinh doanh cũng như ứng dụng trong kĩ thuật. Một trong những ứng

dụng thường được nhắc đến là:

6.1 Điều Khiển Lưu Lượng Giao Thông

Vào giờ cao điểm, vấn đề kẹt xe thường bắt gặp tại các đoạn đường giao nhau như trong

hình. Cả thành phố muốn cải thiện tín hiệu giao thông tại các góc đường để cải thiện lưu

lượng giao thông. Tất cả các con đường đều là một chiều và hướng đi của các con đường

được chỉ bởi các mũi tên.

Dữ liệu thu thập được: Các kĩ sư thiết kế giao thông đã thu thập được các thông tin sau:

1. Góc A:

Có 700 xe mỗi giờ đổ xuống Spruce Street đến giao điểm A.

Có 300 xe mỗi giờ đổ xuống 9th Street đến giao điểm A.

2. Góc B:

Có 200 xe mỗi giờ rời khỏi giao điểm B trên Spruce Street.

Page 37: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

37

Có 900 xe mỗi giờ rời khỏi giao điểm B tên 10th Street.

3. Góc C:

Có 400 xe mỗi giờ tiến vào Pine Street đến giao điểm C.

Có 300 xe mỗi giờ đổ xuống 10th Street đến giao điểm C.

4. Góc D:

Có 200 xe mỗi giờ rời khỏi giao điểm D trên Pine Street.

Có 400 xe mỗi giờ rời khỏi giao điểm D trên 9th Street đến giao điểm

A.

Giới thiệu các ký hiệu:

Gọi x1 là số xe rời khỏi góc A trên Spruce Street tiến đến góc B.

Gọi x2 là số xe tiến đến góc B trên 10th Street từ góc C.

Gọi x3 là số xe rời khỏi góc C trên Pine Street tiến đến góc D.

Gọi x4 là số xe tiến đến góc D trên 9th Street từ góc A.

Giải pháp: Ta giả thuyết như sau:

Page 38: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

38

a) Để tăng tốc lưu lượng giao thông của mỗi xe tiến đến một giao điểm

cũng đồng thời rời khỏi, do đó tại mỗi góc số lượng xe tiến đền cũng

phải bằng với số lượng xe rời khỏi.

b) Tất cả các con đường là một chiều.

c) Tất cả các biến 1 2 3, ,x x x và 4x đều chắc chắn là số nguyên vì nó biểu

thị cho số lượng xe.

Phương Trình: sử dụng giả thuyết a) cho mỗi góc chúng ta có được phương trình sau:

Tại góc A Tại góc B Tại góc C Tại góc D

1 4 700 300x x 1 2 900 200x x 2 3 400 300x x 3 4 400 200x x

Bốn phương trình trên tạo thành một hệ phương trình đại số tuyến tính có thể giải

được bằng phương pháp Gauss:

1 4

1 2

2 3

3 4

1000

1100

700

600

x x

x x

x x

x x

6.2 Ứng dụng trong kĩ thuật điều khiển điện, điện tử

Một trong những ứng dụng quan trọng nhất của đại số tuyến tính khi nhắc đến điện,

điện tử là để phân tích mạch điện tử. Mục đích là để tính toán điện chạy trong mỗi

nhánh của mạch điện hoặc tính toán điện áp tại mỗi nút của mạch điện.

Tính toán đúng điện áp tại mỗi nhánh cũng như tại mỗi nút của dòng điện giúp cho

Page 39: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

39

giảm thiểu tai nạng về điện.

6.3 Ứng dụng trong kĩ thuật xây dựng

Đại số tuyến tính được sử dụng khá nhiều trong kết cấu kỹ thuật, đây là một lý do

rất đơn giản. Phân tích của một cấu trúc cân bằng liên quan đến viết ra nhiều phương

trình nhiều ẩn số. Ví dụ như hình bên dưới:

Các dầm được nối với nhau bằng chân mịn màng, và sự hỗ trợ được gắn chặt để họ

không thể di chuyển. Một phân tích đơn giản, bằng cách sử dụng phương pháp của các

khớp xương, giả định rằng các lực lượng bên ngoài sẽ chỉ hoạt động ở các khớp, và

rằng các tia sáng là hoàn toàn cứng nhắc. Điều này cho phép chỉ có lực lượng theo chiều

dọc trong các dầm. Với những giả định, các giàn là ổn định khi và chỉ khi các thành

phần dọc và ngang của các lực bằng 0.

6.4 Ứng dụng trong kĩ thuật cơ khí

Lý tưởng hóa hệ thống lò xo khối lượng có nhiều ứng dụng trong kỹ thuật và đại số

tuyến tính thành công có thể được áp dụng để giải quyết những vấn đề liên quan đến hệ

thống như vậy.

Hệ thống lò xo khối lượng đóng một vai trò quan trọng trong hệ thống kỹ thuật cơ

khí và khác. Một hệ thống như vậy được thể hiện trong hình:

Page 40: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

40

Hệ phương trình đại số tuyến tính giúp cho tính toán chính xác của các hệ vật.

6.5 Ứng dụng để phân phối nhiệt độ

Xem xét các mặt cắt ngang của một tấm kim loại hình chữ nhật dài. Như bạn có thể

tưởng tượng, những ranh giới của tấm có thể có ba nhiệt độ khác nhau, biểu đồ dưới

đây thể hiện cho tình trạng này:

Các con số đại diện cho nhiệt độ (theo độ C) của ranh giới. Kỹ sư quan tâm muốn

biết sự phân bố nhiệt độ bên trong tấm trong một thời gian nhất định để họ có thể xác

định ứng suất nhiệt mà tấm phải chịu. Giả sử nhiệt độ ranh giới được tổ chức liên tục

trong khoảng thời gian cụ thể, nhiệt độ bên trong các tấm sẽ đạt trạng thái cân bằng

nhất định sau một thời gian đã trôi qua. Việc tìm kiếm này phân bố nhiệt độ cân bằng

tại các điểm khác nhau trên các tấm là mong muốn, nhưng vô cùng khó khăn. Tuy

nhiên, người ta có thể xem xét một vài điểm trên tấm và khoảng nhiệt độ của các điểm.

Page 41: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

41

KẾT LUẬN

Với những phương pháp tính giá trị xấp xỉ được liệt kê ở trên chúng em có đưa ra

nhận xét sau:

Phương pháp Gauss thực hiện chính xác các phương trình có số ẩn thấp song với

những phương trình có số ẩn lớn phương pháp này không còn chính xác nữa, phương

pháp phân rã LU cũng như phương pháp Gauss nhưng số lần lập giảm xuống đáng kể,

giảm thời gian chạy của chương trình xuống gần một nữa thời gian đối với phương pháp

Gauss. Đối với các phương pháp lặp thì ưu điểm là thời gian chạy và tiết kiệm bộ nhớ

của chương trình đối với các hệ phương trình lớn. Nhưng những có sổ ẩn thấp thì ta

không nên sử dụng phương pháp này vì thời gian chạy khá lâu.

Phương pháp ba đường chéo chính chỉ áp dụng cho trường hợp đặc biệt.

Với phương pháp xấp xỉ chúng em đã đưa ra được ưu, nhược điểm của từng phương

pháp, sử dụng phương pháp nào đối với từng trường hợp cụ thể để tránh lãng phí bộ

nhớ máy cũng như thời gian chạy của từng chương trình. So sánh được thời gian chạy

từng chương trình đối với từng thuật toán.

Bên cạnh đó chúng em chưa có đủ thời gian để xây dựng đầy đủ hơn các phương

pháp tính giá trị xấp xỉ khác, từ lúc thuật toán đưa ra cho tới khi chương trình thực hiện

khá lâu dẫn đến thiếu những thuật toán quang trọng như Gauss Jordan...

Với đề tài là “tính gần đúng nghiệm của một phương trình đại số tuyến tính” chúng

em còn mong muốn đề tài phát triển hơn nữa giúp ích cho tính toán lưu lượng lưu thông

trên các đoạn đường trong nội thành hay đơn giản hơn là tính gần đúng giá trị xấp xỉ

của ma trận nghịch đảo....

Page 42: TÍNH GẦN ĐÚNG NGHIỆM CỦA MỘT HỆ PHƯƠNG TRÌNH ĐẠI …

Đồ án 1

42

Tài Liệu Tham khảo

1. David Kincaid and Ward Cheney, Numerical Analysis Mathematics of Scientific

Computing,The University of Texas at Austin, 1991.

2. William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian

P.Flannery, Numerical Recipes in Fortran 77: The Art of Scientific Computing

(Vol. 1 of Fortran Numerical Recipes), Cambridge University, 1986.

3. Bishan Li Regina, Saskatchewan, Generalizations of Diagonal Dominance in

Matrix theory, Bishan Li, October 1997.

4. Đặng Văn Liệt, Gải tích số, NXB ĐH Quốc Gia TP Hồ Chí Minh, 2004.

5. Lê Minh Lưu, Giải Tích Số (bài giảng tóm tắc), ĐH Đà Lạt, 2009.

6. Phạm Văn Huấn, Ngôn ngữ lập trình fortran và ứng dụng trong khí tượng

thủy văn, NXB Nông nghiệp, 2005.

7. Phan Văn Tân, Ngôn Ngữ Lập Trình Fortran 90, NXB Đại học Quốc gia Hà

Nội, 2007

8. Các trang web trong và ngoài nước khác....