Tải bản đầy đủ (.pdf) (92 trang)

Phương pháp tính giải hệ phương trình đại số tuyến tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.07 MB, 92 trang )

Khóa Luận Tốt Nghiệp

SVTH: Tô Thị Ánh Tình



Khoa Toán

Trang 1


Khóa Luận Tốt Nghiệp



Khoa Toán

Sau một thời gian học tập và nghiên cứu dưới sự hướng dẫn
và chỉ bảo tận tình của thầy giáo ThS. Trần Nhân Tâm Quyền,
đến nay khóa luận tốt nghiệp của tơi đã được hồn thành.
Đầu tiên tôi xin bày tỏ sự biết ơn chân thành đến Ban Giám
Hiệu trường Đại Học Sư Phạm - Đại Học Đà Nẵng, Ban chủ
nhiệm khoa Toán, đã tạo cơ hội cho tơi được học tập và làm
khóa luận tốt nghiệp này. Tôi xin gửi lời cảm ơn sâu sắc đến tất
cả các thầy cô giáo trong nhà trường, đặc biệt là các thầy cơ
giáo trong khoa Tốn đã tận tình chỉ dạy, truyền đạt cho tơi
những kiến thức bổ ích và quí báu trong suốt bốn năm vừa qua.
Xin cảm ơn sự giúp đỡ, chia sẽ của tất cả các bạn trong thời
gian bốn năm học tại trường cũng như trong thời gian để hồn
thành khóa luận của mình.
Cuối cùng tôi xin chân thành cảm ơn thầy Trần Nhân Tâm


Quyền - người đã trực tiếp hướng dẫn tôi, luôn quan tâm, động
viên chỉ dẫn tận tình để tơi hồn thành khóa luận này.
Tuy đã có nhiều cố gắng xong khóa luận vẫn khơng
tránh khỏi những thiếu sót về nội dung lẫn hình thức trình bày,
tơi rất mong nhận được sự đóng góp của q thầy cơ và bạn
đọc.
Tơi xin chân thành cảm ơn !
Đà Nẵng, tháng 5 năm 2012
Sinh viên thực hiện
Tơ Thị Ánh Tình

SVTH: Tơ Thị Ánh Tình

Trang 2


Khóa Luận Tốt Nghiệp



Khoa Toán

MỞ ĐẦU
1. Lý do chọn đề tài
Như chúng ta đã biết việc tìm nghiệm của hệ phương trình đại số tuyến
tính là một dạng tốn rất quen thuộc trong toán học. Chúng ta đã được học rất
nhiều cách để giải những hệ phương trình này. Tuy nhiên, việc giải chỉ dễ
dàng thực hiện trên những hệ phương trình đơn giản với số bước thực hiện
ngắn. Cịn đối với những hệ phương trình phức tạp, cần phải thực hiện rất
nhiều bước mới tìm được nghiệm thì việc tìm nghiệm rất khó khăn, địi hỏi

rất nhiều thời gian và cơng sức, thậm chí có khi ta khơng thể thực hiện được.
Do đó, các phương pháp giải gần đúng hệ phương trình đại số tuyến tính đã
được xây dựng, nhiều phương pháp đã trở thành kinh điển và phổ biến. Vì
thế, việc tìm hiểu về các phương pháp giải gần đúng giúp ích cho ta rất nhiều
trong việc giải các bài toán phức tạp và các bài toán mang tính thực tế.
Như chúng ta đã biết, hiện nay có rất nhiều phần mềm ứng dụng dùng để
giải toán như MATCAD, MAPLE…Những phần mềm này cùng với máy vi
tính đã giúp con người giải quyết rất nhanh và thực hiện được rất nhiều bài
tốn mà có khi con người phải mất cả ngày và thậm chí cả năm mới giải được.
Cùng với những phần mềm như vậy, MATLAB cũng là một phần mềm có rất
nhiều ứng dụng trong tốn học và trong kĩ thuật. Tuy nhiên, nó chưa được
phát triển rộng rải và chưa được đưa vào học như MATCAD. Do đó, tơi chọn
đề tài này với mục đích, thứ nhất là để kiểm chứng lại nghiệm mà các phương
pháp giải đưa ra có đúng khơng và một phần là giới thiệu đến người đọc biết
được ứng dụng của phần mềm MATLAB.
2. Mục đích
Nắm được các phương pháp giải để tìm nghiệm của hệ phương trình đại số
tuyến tính, tìm ma trận nghịch đảo và tính được định thức.

SVTH: Tơ Thị Ánh Tình

Trang 3


Khóa Ḷn Tớt Nghiệp



Khoa Toán


Viết được chương trình trên phần mềm Matlab để tìm nghiệm, tìm ma trận
nghịch đảo và tính định thức.
3. Phạm vi nghiên cứu
Đề tài xoay quanh các phương pháp giải hệ phương trình đại số tuyến tính,
đặc biệt là phương pháp tính gần đúng nghiệm của hệ phương trình đại số
tuyến tính. Đề tài gồm các phần sau:
- NỘI DUNG:
o Chương 1: GIỚI THIỆU ĐỀ TÀI.
o Chương 2: GIẢI HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH
VÀ ỨNG DỤNG CỦA MATLAB.
- KẾT LUẬN.
- TÀI LIỆU THAM KHẢO.

SVTH: Tô Thị Ánh Tình

Trang 4




Khóa Luận Tốt Nghiệp

Khoa Toán

NỘI DUNG
Chương 1: GIỚI THIỆU ĐỀ TÀI
1.1 Giới thiệu về phương pháp tính
Phương pháp tính là môn học nghiên cứu về cách giải gần đúng, chủ yếu
là giải các phương trình, các bài tốn xấp xỉ hàm số và các bài toán tối ưu.
Thoạt đầu, toán học phát sinh do nhu cầu giải các bài toán thực tế: Tính

diện tích đất đai, quỹ đạo sao chổi, đường đi của các tàu buôn trên biển v v…
Như vậy có thể nói lúc đầu tốn học đồng nghĩa với tốn học tính tốn. Cùng
với sự phát triển nội tại của toán học và các nghành khoa học khác, toán học
chia thành toán lý thuyết và toán ứng dụng. Tuy nhiên, những nhà toán học vĩ
đại như Newton, Lagrange, Euler, Gauss, Chebysev v v…đều có các cơng
trình nền móng trong phương pháp tính.
Từ những năm 1950 trở lại đây, nhất là từ những năm 1980, phương pháp
tính đặc biệt phát triển cùng với sự phát triển của tin học.
Ngày nay, cùng với sự xuất hiện của siêu máy tính (Super Computer) khả
năng song song hóa các q trình tính toán được mở rộng. Nhiều thuật toán
song song đã được đề xuất và áp dụng giải các bài toán thực tế.
Như trên đã nói, ba nhiệm vụ chính của phương pháp tính là:
1. Xấp xỉ hàm số: Thay một hàm có dạng phức tạp, hoặc một hàm cho
dưới dạng bảng bằng những hàm số đơn giản hơn. Trong lý thuyết xấp xỉ
hàm, người ta thường nghiên cứu các bài toán nội suy, bài toán xấp xỉ đều và
xấp xỉ trung bình phương.
2. Giải gần đúng các phương trình: Phương trình đại số và siêu việt, hệ
phương trình đại số tuyến tính, hệ phương trình phi tuyến, bài tốn tìm vectơ
riêng, giá trị riêng của một ma trận, giải phương trình vi phân thường, phương
trình đạo hàm riêng, phương trình trình tích phân.

SVTH: Tơ Thị Ánh Tình

Trang 5


Khóa Luận Tốt Nghiệp




Khoa Toán

3. Giải gần đúng các bài tốn tối ưu: quy hoạch tuyến tính, quy hoạch lồi,
quy hoạch toàn phương, quy hoạch nguyên, điều khiển tối ưu, trị chơi vi phân
v v…
Trong bài luận văn này tơi đi vào nghiên cứu nhiệm vụ thứ hai của phương
pháp tính đó là giải gần đúng phương trình đại số tuyến tính.
Nếu tốn lý thuyết chỉ quan tâm đến việc chứng minh tồn tại nghiệm, khảo
sát dáng điệu nghiệm và một số tính chất định tính của nghiệm thì tốn tính đề
xuất thuật tốn giải trên máy. Phương pháp tính đặc biệt quan tâm đến các
vấn đề: thời gian máy hồn thành cơng viêc tính tốn, bộ nhớ cần sử dụng để
giải bài toán, tốc độ hội tụ và sự ổn định của thuật tốn.
1.2 Quan hệ giữa tốn tính và tin học
Giữa tốn tính và tin học có mối liên hệ mật thiết và sự tác động qua lại.
Do việc tăng tốc độ tính tốn của máy gặp nhiều khó khăn về kỹ thuật, hơn
nữa lại địi hỏi chi phí lớn, nên để tính tốn nhanh người ta thiên về cải tiến
các phương pháp giải bài tốn. Từ đó xuất hiện phép biến đổi nhanh Fourier,
các thuật toán song song v v…Cùng với sự ra đời của các siêu máy tính: Máy
tính song song, máy tính vectơ v v…xuất hiện nhiều phương pháp song song.
Hiện nay ta được chứng kiến xu thế song song hóa đang diễn ra trong tất cả
các lĩnh vực của giải tích. Để tiết kiệm bộ nhớ trong máy tính, người ta đã đề
xuất những phương pháp hữu hiệu xử lý hệ lớn, thưa: như kỹ thuật nén ma
trận, kỹ thuật tiền xử lý ma trận v v…
Để thấy được mối quan hệ giữa toán học và tin học, trong bài luận văn này
tơi trình bày một ứng dụng của tin học vào toán học. Đó là dùng phần mềm
Matlab để giải phương trình đại số tuyến tính.

SVTH: Tơ Thị Ánh Tình

Trang 6



Khóa Luận Tốt Nghiệp



Khoa Toán

1.3 Giới thiệu về MATLAB
MATLAB – phần mềm nổi tiếng của công ty MathWorks, là một ngơn
ngữ hiệu năng cao cho tính tốn kỹ thuật. Nó thích hợp tính tốn, hiển thị và
lập trình trong một môi trường dễ sử dụng. Các ứng dụng tiêu biểu của
MATLAB gồm:
 Hỗ trợ tốn học và tính tốn.
 Phát triển thuật tốn.
 Mơ hình, mơ phỏng.
 Phân tích, khảo sát và hiển thị số liệu.
 Đồ họa khoa học và kỹ thuật.
 Phát triển ứng dụng với các giao diện đồ họa.
Tên của phần mềm MATLAB bắt nguồn từ thuật ngữ “Matrix
Laboratory”. Đầu tiên nó được viết bằng FORTRAN để cung cấp truy nhập
dễ dàng tới phần mềm ma trận được phát triển bởi các dự án LINPACK và
EISPACK. Sau đó nó được viết bằng ngơn ngữ C trên cơ sở các thư viện nêu
trên và phát triển thêm nhiều lĩnh vực của tính tốn khoa học và các ứng dụng
kỹ thuật.
Ngoài MATLAB cơ bản với các khả năng rất phong phú sẽ được đề cập
sau, phần mềm MATLAB cịn được trang bị thêm các ToolBox – các gói
chương trình (thư viện) cho các lĩnh vực ứng dụng rất đa dạng như xử lý tín
hiệu, nhận dạng hệ thống, xử lý ảnh, mạng nơ ron, tài chính, tối ưu hóa,
phương trình đạo hàm riêng… Đây là các tập hợp mã nguồn viết bằng chính

MATLAB dựa theo các giải thuật mới, hữu hiệu mà người dùng có thể chỉnh
sửa hoặc bổ sung thêm các hàm mới.
MATLAB được thiết kế để giải các bài tốn bằng số chứ khơng nhằm
mục đích chính là tính tốn ký hiệu như MATHEMATICA và MAPLE. Tuy
SVTH: Tô Thị Ánh Tình

Trang 7


Khóa Ḷn Tớt Nghiệp



Khoa Toán

nhiên, trong MATLAB cũng có thể tính tốn ký hiệu được nhờ các hàm trong
Symbolic Math ToolBox.
1.3.1 Một số đặc trưng chính của MATLAB:
- MATLAB là ngơn ngữ thơng dịch. Vì thế nó có thể làm việc ở hai
chế độ: tương tác và lập trình. Trong chế độ tương tác MATLAB thực hiện
từng lệnh được gõ trong cửa sổ lệnh sau dấu nhắc lệnh và kết quả tính tốn
được hiện ngay trong cửa sổ này, cịn đồ thị được hiện trong một cửa sổ khác.
Trong chế độ lập trình một tập lệnh được soạn thảo và ghi thành một tệp đuôi
.m (m-file). Các hàm cũng được tổ chức thành các m-file. Một chương trình
có thể gồm nhiều m-file. Để chạy chương trình chỉ cần gõ tên m-file chính
trong cửa sổ lệnh rồi Enter.
- Các hàm trong MATLAB cơ bản (không kể các thư viện chuyên dụng
được gọi là các ToolBox) được chia làm hai loại: hàm trong và hàm ngoài.
Các hàm trong là các hàm được cài đặt sẵn (built-ins) tức là tồn tại dưới dạng
mã nhị phân nên ta không thể xem được mã nguồn của chúng, thí dụ các hàm

sin, sqrt, log, clc, ... Đây là các hàm hay được sử dụng hoặc các hàm địi hỏi
nhiều thời gian xử lý. Các hàm ngồi là các hàm tồn tại dưới dạng mã nguồn
mà người dùng có thể tham khảo hoặc chỉnh sửa, bổ sung khi cần thiết, thí dụ
log10, ode23,…
- Phần tử dữ liệu chính của MATLAB là các ma trận (mảng) mà kích
thước của chúng không cần khai báo trước như trong các ngơn ngữ lập trình
khác. Tuy nhiên, để tăng tốc độ xử lý cần báo trước cho MATLAB biết kích
thước tối đa của mảng để phân bổ bộ nhớ bằng một lệnh gán.
1.3.2 Các khả năng chính của MATLAB cơ bản:
- Thực hiện các tính tốn tốn học bao gồm: ma trận và đại số tuyến
tính, đa thức và nội suy, phân tích số liệu và thống kê, tìm cực trị của hàm
một biến hoặc nhiều biến, tìm nghiệm của phương trình, tính gần đúng tích
SVTH: Tơ Thị Ánh Tình

Trang 8


Khóa Ḷn Tớt Nghiệp



Khoa Toán

phân, giải phương trình vi phân.
- Đồ họa hai chiều và ba chiều: MATLAB cung cấp rất nhiều các hàm
đồ họa, nhờ đó ta có thể nhanh chóng vẽ được đồ thị của hàm bất kì một biến
hoặc hai biến, vẽ được các kiểu mặt, các contour, trường vận tốc,…Ngồi ra
MATLAB cịn vẽ rất tốt các đối tượng ba chiều phức tạp như hình trụ, hình
cầu, hình xuyến,…và cung cấp khả năng xử lý ảnh và hoạt hình.


SVTH: Tơ Thị Ánh Tình

Trang 9




Khóa Ḷn Tớt Nghiệp

Khoa Toán

Chương 2: GIẢI HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH VÀ
ỨNG DỤNG MATLAB
Chương này trình bày cách giải các phương trình đại số tuyến tính, tìm ma
trận nghịch đảo và tính định thức. Các thuật tốn được trình bày thơng qua
các bài tập và một số bài giải mẫu.
2.1 Các khái niệm và các ký hiệu cơ bản
Xét hệ đại số tuyến tính

Ax  b ,

(1.1)

trong đó

 a11 K
A  (a ij )   M O
a L
 n1


a1n 
M ,
a nn 

là ma trận các hệ số.

b  (b1, b2 ,K , bn )T , x  (x1, x 2 ,..., x n )T

(1.2)

là các vectơ cột vế phải và ẩn.
Nếu A không suy biến tức là:

a11 a12
a
a
detA= 21 22
K K
a n1 a n 2

K
K
K
K

a1n
a 2n
 0,
K
a nn


thì hệ (1.1) có nghiệm duy nhất.
Thật vậy, vì det A  0 nên tồn tại ma trận ngược A1 . Nhân bên trái hai vế
của (1.1) với A1 ta được:
1

A1 Ax = A1 b  x  A b .

(*)

Rất rõ, (*) cho ta nghiệm của hệ (1.1) và nghiệm ấy là duy nhất.
Về mặt lý thuyết, trong trường hợp đó, việc tìm nghiệm khơng khó vì x i (i
= 1, 2,…, n) được cho bởi công thức Cramer:

SVTH: Tô Thị Ánh Tình

Trang 10




Khóa Ḷn Tớt Nghiệp

xi 

Khoa Toán

det Ai
,
det A


(1.3)

trong đó Ai nhận được từ A bằng cách thay cột thứ i bởi b.
Như vậy, muốn giải hệ phương trình (1.1) bằng phương pháp Cramer,
ta phải tính n + 1 định thức cấp n. Người ta chứng minh được rằng, muốn tính
một định thức cấp n cần n! – 1 phép cộng và (n – 1)n! phép nhân. Điều đó
chứng tỏ rằng khi n tăng, khối lượng tính bằng phương pháp Kramer tăng rất
nhanh, đến mức không thể thực hiện được trong thực tế. Vì vậy, người ta phải
xây dựng những phương pháp giải hệ (1.1) sao cho khi n lớn, khối lượng tính
khơng q lớn, có thể thực hiện được.
Các phương pháp giải được sử dụng để tìm nghiệm của hệ (1.1) được chia
thành 2 nhóm: nhóm các phương pháp giải đúng và nhóm các phương pháp
giải gần đúng.
Phương pháp giải đúng là phương pháp cho ta nghiệm đúng của hệ (1.1)
sau một số hữu hạn những phép tính sơ cấp (với giả thiết khơng có sai số làm
trịn) như phương pháp Gauss, phương pháp Cholesky.
Phương pháp giải gần đúng là những phương pháp chỉ cho phép tìm được
nghiệm của hệ với một sai số nhất định (sai số phương pháp) chưa kể đến sai
số làm tròn. Chẳng hạn phương pháp lặp đơn, phương pháp Seidel
vv…Nghiệm đúng x của hệ phương trình (1.1) là giới hạn của một dãy vơ hạn
x(k) những nghiệm gần đúng. Trong thực hành, ta bắt buộc phải dừng lại tại
một k0 cụ thể và xem x ( k ) là nghiệm gần đúng của hệ (1.1). Do đó ta chỉ nhận
0

được nghiệm gần đúng với một sai số có thể ước lượng được. Mỗi phương
pháp loại này không phải luôn hội tụ khi áp dụng cho các hệ số cụ thể của hệ
(1.1) vì vậy khi áp dụng phải xét điều kiện hội tụ của phương pháp.
Việc chọn phương pháp thích hợp để giải hệ (1.1) nói chung phụ thuộc vào
đặc điểm của ma trận hệ số A. Chú ý rằng nếu các phần tử của ma trận hệ số


SVTH: Tô Thị Ánh Tình

Trang 11


Khóa Luận Tốt Nghiệp



Khoa Toán

A của hệ (1.1) đều khác 0 thì ta phải dùng n2 ơ nhớ để chứa các phần tử đó.
Đây chính là một hạn chế cần phải tính đến khi giải hệ (1.1) với n lớn trên
máy tính. Chính vì vậy:
Nếu ma trận hệ số A “đầy” nghĩa là số những phần tử bằng 0 ít và cấp của
ma trận không quá lớn người ta thường dùng phương pháp giải đúng.
Nếu ma trận hệ số A “thưa” nghĩa là số những phần tử khác 0 ít và thường
phân bố ở lân cận đường chéo chính và cấp của ma trận lớn, người ta thường
dùng phương pháp giải gần đúng. Những ma trận như vậy thường gặp khi giải
gần đúng phương trình đạo hàm riêng.
Cần lưu ý rằng việc lựa chọn vừa nêu chỉ có ý nghĩa “nói chung” khơng
phải là một ngun tắc cứng nhắc, khơng phải khơng có những trường hợp
ngoại lệ.
2.2 Phương pháp Gauss
Phương pháp Gauss(1) là một phương pháp được dùng phổ biến để giải hệ
(1.1) khi ma trận hệ số A không có đặc điểm gì (trừ điều kiện khơng suy
biến). Đặc biệt, người ta thường dùng phương pháp này khi ma trận hệ số A
“đầy”.
Tư tưởng chính của phương pháp là khử ẩn liên tiếp.

2.2.1 Nội dung phương pháp
Phương pháp Gauss dùng cách khử dần các ẩn để đưa hệ đã cho về một hệ
có dạng tam giác trên rồi giải hệ tam giác này từ dưới lên trên, khơng phải
tính một định thức nào.

Gauss(1): Carl Friedrich GAUSS sinh 1777 – mất 1855. Là một nhà tốn học
người Đức.

SVTH: Tơ Thị Ánh Tình

Trang 12


Khóa Ḷn Tớt Nghiệp



Khoa Toán

Lấy một thí dụ đơn giản: Xét hệ

2x1  x 2  1

4x1  6x 2  3
Khử x1 khỏi phương trình thứ hai ta được:

2x1  x 2  1

4x 2  1
Hệ này có dạng tam giác. Giải nó từ dưới lên ta được:


x 2  0,25
(1  x 2 )
x1 
 0,375.
2
Ta thấy rằng cách giải bài toán cũng khá đơn giản. Nhưng nếu hệ có nhiều
phương trình nhiều ẩn thì vấn đề trở nên phức tạp hơn nhiều.
Để đơn giản ta trình bày phương pháp cho việc giải một hệ 4 phương trình.
Việc mở rộng cho n tùy ý là hồn tồn tương tự. Xét hệ

a11x1  a12 x 2  a13x3  a14 x 4  b1
a x  a x  a x  a x  b
 21 1 22 2 23 3 24 4
2

a 31x1  a 32 x 2  a 33x 3  a 34 x 4  b3

a 41x1  a 42 x 2  a 43x 3  a 44 x 4  b4

(2.1)

Khử x1:
Để dể hiểu ta đặt a11(0)  a11 , a ij  a ij(0) , i  1,4, j  1,4 .
Giả sử a11(0)  0 ( a11(0) gọi là trụ thứ nhất, nếu a11(0) = 0 thì có thể đổi vị trí ẩn số
và thứ tự phương trình để có a11(0)  0 ). Chia phương trình thứ 1 của (2.1) cho

a11(0) ta được:

x1  b12 x2  b13x3  b14x4  b15 ,

trong đó b1j 

(2.2)

a1j
b
với j  2,4 cịn b15  1 .
a11
a11

SVTH: Tơ Thị Ánh Tình

Trang 13


Khóa Ḷn Tớt Nghiệp



Khoa Toán

Dùng phương trình (2.2) khử x1 trong ba phương trình cịn lại của hệ (2.1).
Muốn thế, đem phương trình thứ hai của hệ (2.1) trừ đi phương trình (2.2) sau
khi nhân tương ứng với hệ số a21, đem phương trình thứ ba của hệ (2.1) trừ đi
phương trình (2.2) sau khi nhân tương ứng với hệ số a31, đem phương trình
thứ tư của hệ (2.1) trừ đi phương trình (2.2) sau khi nhân tương ứng với hệ số
a41. Chẳng hạn với phương trình thứ hai sau khi trừ đi (2.2) nhân với a21 ta
được:

(a 22  a 21b12 )x2  (a 23  a 21b13 )x3  (a 24  a 21b14 )x4  b2  a 21b15 .

Để đơn giản ta đưa vào ký hiệu:

a ij(1)  a ij  a i1b1j với i = 2, 3, 4; j = 2, 3, 4, 5

(2.3)

ta được 3 phương trình tương ứng sau bước khử ẩn x1 là:
(1)
(1)
(1)
a (1)
22 x 2  a 23 x 3  a 24 x 4  a 25
 (1)
(1)
(1)
(1)
a 32 x 2  a 33 x 3  a 34 x 4  a 35
a (1) x  a (1) x  a (1) x  a (1)
45
 42 2 43 3 44 4

(2.4)

Khử x2:
Tiếp tục chia phương trình thứ 1 của (2.4) cho a (1)
. ( a (1)
, (1) là phần tử trụ
22  0 a 22
22
thứ hai) để khử ẩn x2 ta được hệ:


a 33(2) x3  a 34(2) x 4  a 35(2)
,
 (2)
(2)
(2)
a
x

a
x

a
 43 3 44 4
45
trong đó

a ij(2)  a ij(1)  a i(1)2 b(1)
2j ,

với

a (1)
2j
b  (1)
, (i = 3, 4; j = 3, 4, 5).
a 22

(2.5)


(1)
2j

Tiếp tục quá trình trên ta được:
(3)
a (3)
44 x 4  a 45 .

(2.6)

(3)
Cuối cùng nếu a (3)
44  0 ( a 44 gọi là trụ thứ tư), ta chia phương trình (2.6) cho

a (3)
44 , phương trình (2.6) có dạng:

SVTH: Tơ Thị Ánh Tình

Trang 14




Khóa Luận Tốt Nghiệp

Khoa Toán

(3)
.

x 4  a (3)
45 : a 44

Kết quả ta được một hệ phương trình tương đương có dạng tam giác:

x1  b12 x 2  b13x 3  b14 x 4  b15 

(1)
(1)
x 2  b(1)

23 x 3  b 24 x 4  b 25

(2)
(2)
x 3  b34 x 4  b35

(3)
(3)

x 4  a 45 : a 44


(2.7)

Từ đó ta được giá trị các ẩn:

a (3)

45

x 4  a (3)
44

(2)
(2)
x 3  b35  b34 x 4
x  b(1)  b(1) x  b(1) x
25
24 4
23 3
 2
x1  b15  b12 x 2  b13x 3  b14 x 4

(2.8)

Tóm lại quá trình giải hệ (2.1) được chia làm 2 giai đoạn:
Giai đoạn thuận: Khử ẩn liên tiếp để đưa (2.1) đến (2.7).
Giai đoạn ngược: Xác định ẩn liên tiếp theo (2.8).
Chú ý rằng điều kiện để áp dụng phương pháp Gauss là các phần tử trụ
phải khác 0.
2.2.2 Sơ đồ tính
Phân tích q trình áp dụng phương pháp Gauss ở mục 2.1 ta thấy: Để đưa
hệ (2.1) về hệ tam giác (2.8), chỉ cần tính các hệ số b1j 

b15 

a1j
với j  2, 4 ,
a11


b1 (1)
, a ij với i = 2, 3, 4; j = 2, 3, 4, 5, a ij(2)  a ij(1)  a i(1)2 b(1)
2j
a11

a (1)
2j
với b  (1)
, (i = 3, 4; j = 3, 4, 5), a 3(3)j , a (3)
4 j (j  4, 5) . Kết quả tính, trong
a 22
(1)
2j

trường hợp khơng dùng máy tính điện tử, thường được ghi thành bảng, gọi là
sơ đồ Gauss, trong đó cột

SVTH: Tơ Thị Ánh Tình



dùng để kiểm tra q trình tính.

Trang 15




Khóa Ḷn Tớt Nghiệp


Khoa Toán

2.2.3 Kiểm tra q trình tính
Khi khơng dùng máy tính điện tử, để có thể kiểm tra từng bước q trình
tính của phương pháp Gauss, người ta dùng “ tổng kiểm tra”:
5

a i6   a ij , i  2, 4 ,

(a)

j1

( nó chính là tổng những phần tử thuộc hàng i của ma trận hệ số A và số hạng
vế phải tương ứng) như một vế phải mới của hệ (2.1) và xét hệ phương trình:
4

a
j1

ij

x j  a i6 , i  1, 4 .

(b)

Rõ ràng là x j  x j  1 , j  1, 4 .

(c)


Thật vậy, thay (c) vào (b) ta nhận được:
4

a
j1

4

4

4

4

j1

j1

j1

j1

ij x j   a ij (x j  1)   a ij x j   a ij  a i5   a ij  a i6 , i  1, 4 .

Vì đối với mỗi phần tử của cột



ta đều thực hiện những phép tính giống


như đối với những phần tử của những cột ở bên trái cột
cùng một hàng với phần tử của cột





và nằm trong

, nên nếu khơng có sai số tính tốn thì

 phải bằng tổng những phần tử tương ứng của
 . Hiện tượng này được dùng để kiểm tra quá trình

những phần tử của cột
những cột bên trái cột

thuận. Quá trình ngược được kiểm tra bằng hệ thức (c).
Phương pháp này cho phép tiết kiệm việc viết các kết quả trung gian. Sơ
đồ được trình bày trong bảng dưới đây:

SVTH: Tô Thị Ánh Tình

Trang 16




Khóa Luận Tốt Nghiệp


Khoa Toán

Sơ đồ Gauss
ai1

ai2

ai3

ai4

ai5 = bi

1 a11

a12

a13

a14

a15

i

I



= ai6


5

a
j1

1j

 a16

2 a21

a22

a23

a24

a25

a

2j

a 26

3 a31

a32


a33

a34

a35

a

3j

a 36

4 a41

a42

a43

a44

a45

a

4j

a 46

1


b12 

a12
a11

b13 

a13
a11

b14 

a14
a11

b15 

a15
a11

a16
 b16
a11

II 2

a (1)
22

a (1)

23

a (1)
24

a (1)
25

a (1)
26

đoạn

3

a 32(1)

a 33(1)

a 34(1)

a 35(1)

a 36(1)

thuận

4

a (1)

42

a (1)
43

a (1)
44

a (1)
45

a (1)
46

1

b(1)
23

b(1)
24

b(1)
25

a (1)
26
 b(1)
26
(1)

a 22

III 3

a 33(2)

a 34(2)

a 35(2)

a 36(2)

4

a (2)
43

a (2)
44

a (2)
45

a (2)
46

b34(2)

b35(2)


a 36(2)
 b36(2)
(2)
a 33

a (3)
44

a (3)
45

a (3)
46

1

b(3)
45

a (3)
46
 b(3)
46
(33)
a 44

1

x4


x4  x4  1

x3

x3  x3  1

x2

x2  x2  1

Giai

IV 4

Giai

V

đoạn

1

ngược

1
1

SVTH: Tô Thị Ánh Tình

Trang 17





Khóa Luận Tốt Nghiệp

Khoa Toán

x1

x1  x1  1

Nếu khi tính tốn có sai số làm trịn thì bắt đầu từ hàng thứ 5 trở đi (trong
sơ đồ (Gauss) phần tử ở cột



và tổng những phần tử cùng hàng và ở bên

trái nó được phép lệch nhau trong phạm vi giới hạn của sai số làm tròn đã
phạm phải. Một sự chênh lệch lớn chứng tỏ đã có nhầm lẫn trong q trình
tính tốn.
Nhận xét:
1. Sơ đồ Gauss nêu trên hồn tồn có thể mở rộng cho hệ thống n
phương trình n ẩn số.
2. Nếu ma trận hệ số A của hệ xuất phát đối xứng, nghĩa là aij = aji thì
(2)
(2)
a ij(1)  a (1)
ji ,a ij  a ji nghĩa là những ma trận trung gian:


a (1)
a (1)
 a (1)
22
23
24 
(2)
(2)
 (1) (1) (1)  (2)  a 33 a 34 
(1)
A   a 32 a 33 a 34  , A   (2) (2)  ,
 a 43 a 44 
 a (1) a (1) a (1) 
43
44 
 42
cũng đối xứng. Do đặc điểm này, trong sơ đồ Gauss, ta chỉ cần tính a ij(1) và

a ij(2) với j > i, vì vậy khối lượng tính tốn sẽ giảm đi một nữa.
2.2.4 Khối lượng tính
Xét hệ n phương trình n ẩn số. Căn cứ vào những cơng thức tính của
phương pháp Gauss, ta đếm được số các phép tính cộng, trừ, nhân, chia cần
phải thực hiện gồm (khơng kể các phép tính đối với các phần tử của cột kiểm
tra):

n(n  1)(2n  5)
phép nhân,
6


n(n  1)
phép chia,
2

SVTH: Tô Thị Ánh Tình

Trang 18




Khóa Luận Tốt Nghiệp

Khoa Toán

n(n  1)(2n  5)
phép cộng hoặc trừ.
6
Vậy số phép tính phải thực hiện là:

sn 

4n 3  9n 2  7n
phép tính.
6

2.2.5 Sai số của phương pháp Gauss
Nếu các phép tính cộng, trừ, nhân, chia làm đúng hồn tồn và khơng
phải làm trịn thì phương pháp Gauss cho ta nghiệm đúng của hệ (2.1). Vì
vậy, phương pháp Gauss là một phương pháp giải đúng. Tuy nhiên, trong tính

tốn, khơng tránh khỏi sai số làm trịn, cho nên trong thực tế, dùng phương
pháp Gauss ta cũng chỉ nhận được nghiệm gần đúng.

x1  x 2  x3  1

Ví dụ 2.1: Giải hệ 2x1  3x 2  x 3  2
x  2x  x  3
2
3
 1
Quá trình giải được trình bày trong bảng dưới đây (theo cách của sơ đồ
Gauss ở mục 2).
Sơ đồ Gauss
ai1 ai2 ai3

ai4 = bi

4

a
j1

1

1

1

1


4

giai đoạn

2

3

1

2

8

thuận

1

2

1

3

7

1

1


1

1

4

1

-1

0

0

1

0

2

3

1

-1

0

0


1

2

3

1

2

3

1

SVTH: Tô Thị Ánh Tình

ij

Cột





cột kiểm tra

khử x1

khử x 2


Trang 19




Khóa Luận Tốt Nghiệp

giai đoạn

1

ngược

1
1

Khoa Toán

2

3

2

3

-3

-2


xi

xi

xi  xi  1

Kết quả

x = (-3, 2,
2)
+ Giải bài toán trên bằng phần mềm MATLAB:
Cách 1: Giải bằng cách thông thường
>> [x1,x2,x3]=solve('x1+x2+x3-1','2*x1+3*x2+x3-2','x1+2*x2+x3-3')
x1 = -3
x2 =2
x3 =2
Hoặc
>> A=[1 1 1; 2 3 1; 1 2 1]
A=
1 1 1
2 3 1
1 2 1
>> B=[1; 2; 3]
B=
1
2
3
>> x=inv(A)*B
x=
-3

2
2
Cách 2: Giải bằng phương pháp Gauss
+ Ta xây dựng thuật toán của phương pháp Gauss trên matlab như sau:
function x=gauss(A,B)
[m,n]=size(A);
ng=zeros(n,1);
if m~=n

SVTH: Tô Thị Ánh Tình

Trang 20


Khóa Luận Tốt Nghiệp



Khoa Toán

disp('Ma tran nhap vao khong phai la ma tran
vuong.');
else
for i=1:m
if A(i,i)==0
for k=i+1:m
if A(k,i)~=0
mx=k;
A=swaprows(A,i,mx);
break;

end
end
end
c=A(i,i);
A(i,:)=A(i,:)/c;
B(i)=B(i)/c;
for k=i+1:m
B(k)=B(k)-A(k,i)*B(i);
A(k,:)=A(k,:)-A(k,i)*A(i,:);
end
end
ng(n)=B(n);
for k=n-1:-1:1
ng(k)=B(k);
for h=k+1:n
ng(k)=ng(k)-A(k,h)*ng(h);
end
end;
end
x={A, B, ng};
end
+ Chương trình chạy trên Matlab như sau:
>> A=[1 1 1;2 3 1;1 2 1]
A=
1

1

1


2

3

1

1

2

1

>> b=[1;2;3]

SVTH: Tô Thị Ánh Tình

Trang 21


Khóa Luận Tốt Nghiệp



Khoa Toán

b=
1
2
3
>> x=gauss(A,b)

x=
[3x3 double] [3x1 double] [3x1 double]
>> x{1}
ans =
1

1

1

0

1 -1

0

0

1

>> x{2}
ans =
1
0
2
>> x{3}
ans =
-3
2
2

>>.

SVTH: Tô Thị Ánh Tình

Trang 22




Khóa Luận Tốt Nghiệp

Khoa Toán

2.2.6 Sơ đồ khử Gauss với phép chia cho phần tử chính
Tư tưởng của phương pháp này là chọn trong các hệ số a ij hệ số có giá trị
tuyệt đối lớn nhất được gọi là phần tử chính. Chẳng hạn đó là phần tử a pq.
Dịng thứ p được gọi là dịng chính.
Tiếp theo thực hiện việc khử ẩn với dịng chính sao cho cột thứ q sau khi
khử trừ apq còn lại các phần tử khác đều bằng 0. Ta lấy hàng p của ma trận hệ
số nhân với mi rồi cộng với hàng i ( i  p ) được ma trận mới. Bỏ cột thứ q và
dòng thứ p ta được một ma trận vng mới với n - 1 dịng và n - 1 cột. Tiếp
tục quá trình với ma trận cấp (n - 1) vừa thu được…Việc chia cho phần tử
chính làm cho giá trị của mi = -aiq/apq bé nhất về trị tuyệt đối vì vậy sai số tính
tốn được giảm đi. Sơ đồ minh họa bằng ví vụ dưới đây.

 1 1 1
1
Ví dụ 2.2: Giải hệ Ax  b với A   2 3 1 , b   2  .
 1 2 1
 3



 

mi

a i1

a i 2 a i3 a i 4

4

a
j1





1
3

2
3

Giai
đoạn
thuận




1
2

SVTH: Tô Thị Ánh Tình

1

1

1

1

4

ij

a pq - phần tử

chính
2

3

1

2

8


1

2

1

3

7

1
3

0

2
3

1
3

4
3



1
3


0

1
3

5
3

5
3



1
2

0

0

3
2

1

mi  

a iq
a pq


a ij(1)  a ij(0)  mi .a (0)
pj

Trang 23




Khóa Luận Tốt Nghiệp

Giai

xi

-3

2

2

xi  xi  1

-2

3

3

Khoa Toán


đoạn
ngược

Số phép tính số học của sơ đồ Gauss chia cho phần tử chính là:

n
N  (n 2  6n  1) .
3
2.2.7 Phương pháp Gauss có tìm trụ lớn nhất
Q trình Gauss trình bày ở mục (2.1) sẽ khơng thực hiện được nếu một
(1)
(3)
trong các trụ a11(0) , a (1)
22 , a 33 , a 44 bằng không, dù hệ phương trình có nghiệm duy

nhất. Ngồi ra, nếu định thức của hệ phương trình khác khơng, nhưng nếu
một vài phần tử trụ về trị tuyệt đối rất nhỏ so với những phần tử cịn lại trong
cùng hàng thì khi chia các phần tử ấy cho phần tử trụ, sai số làm trịn sẽ lớn,
do đó có thể làm giảm nhiều độ chính xác của nghiệm tìm được.
Để khắc phục những hạn chế vừa nêu, người ta thường dùng phương pháp
Gauss có tìm trụ lớn nhất. Nội dung phương pháp như sau:
Khi khử x1 trong sơ đồ Gauss, người ta chọn số lớn nhất về trị tuyệt đối
(0)
(0)
trong các số a11(0) , a (0)
21 , a 31 , a 41 làm trụ thứ nhất và gọi là trụ lớn nhất thứ nhất.

Sau đó ta hốn vị hàng chứa trụ lớn nhất thứ nhất với hàng thứ nhất để trụ lớn
nhất thứ nhất nằm đúng ở hàng 1 cột 1của sơ đồ Gauss (nghĩa là ở hàng 1 cột
1 của ma trận hệ số A) và quá trình khử x1 được tiến hành như ở mục 2.1.

Khi khử x2 trong sơ đồ Gauss, người ta chọn số lớn nhất về trị tuyệt đối
(1)
(1)
trong các hệ số a (1)
22 , a 32 , a 42 làm trụ thứ hai và gọi là trụ lớn nhất thứ hai. Sau

đó ta hốn vị hàng chứa trụ lớn nhất thứ hai với hàng chứa phần tử a (1)
22 để trụ
lớn nhất thứ hai nằm đúng ở hàng 1 cột 1của ma trận trung gian A(1). Và quá
trình khử x2 được tiến hành như ở mục 2.1.
Tiếp tục q trình như trên cho các ngiệm cịn lại của hệ. Giai đoạn
ngược cũng giải như ở mục (2.1). Cuối cùng ta tìm được các nghiệm của hệ.
SVTH: Tơ Thị Ánh Tình

Trang 24




Khóa Ḷn Tớt Nghiệp

Khoa Toán

Ví dụ 2.3: Dùng phương pháp Gauss có tìm trụ lớn nhất để giải hệ
phương trình sau:

2x1  6x 2  2x 3  8x 4  16
x  4x  2x  2x  5
 1
2

3
4
.

x

x

2x

4x

9
2
3
4
 1
x1  x 2  x 3  x 4  2
Giải:
a. Quá trình thuận:
Viết các hệ số a ij(0) , i  1, 4, j  1, 5 của hệ phương trình trên vào 4 hàng
đầu và 5 cột đầu của bảng sau. Cột



là tổng của 5 cột bên trái nó.

Vì a11(0)  2 là số lớn nhất về trị tuyệt đối trong các số 2, 1, 1, 1 nên trụ
lớn nhất là 2, nó đã ở đúng hàng 1, cột 1 của bảng. Tiến hành khử x1, ta nhận
được kết quả ghi ở các hàng 5, 6, 7, 8 của bảng.

(1)
So sánh các số 1, -2, -2 về trị tuyệt đối, ta thấy rằng có thể chọn a 32
= -2
(1)
hoặc a (1)
= -2 làm trụ lớn nhất thứ hai. Chẳng hạn, ta chọn a 32
làm trụ lớn nhất
42

thứ hai, khi đó ta phải hốn vị hàng 7 với hàng 6 của bảng. Tiến hành khử x2,
ta nhận được kết quả ghi ở các hàng 9, 10, 11 của bảng.
(2)
Vì a 33
 1, 5 là số lớn nhất về trị tuyệt đối trong các số 1,5 và -1 nên trụ

lớn nhất thứ 3 là 1,5, nó đã ở đúng hàng 10, cột 3 của bảng. Tiến hành khử x3,
ta nhận được kết quả ghi ở các hàng 12, 13, 14 của bảng.
b. Quá trình ngược:

a (3)
45
x 4  (3)
 2, x 4  a (3)
46  3  x 4  1
a 44

5  4
x 3  b35(2)  b34(2) x 4       2  1
3  3
 4

x 3  b36(2)  b34(2) x 4  2     3  2  x 3  1
 3

SVTH: Tô Thị Ánh Tình

Trang 25


×