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 toán rất quen thuộc trong toán học.. Do đó, các phương pháp giải gần đúng hệ ph
Trang 2
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 hoà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 Toá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 để hoà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 hoà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 quí 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
Trang 3MỞ ĐẦ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 toá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 toá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 toá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
Trang 4
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
VÀ ỨNG DỤNG CỦA MATLAB
- KẾT LUẬN
- TÀI LIỆU THAM KHẢO
Trang 5NỘ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 toá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 toán học đồng nghĩa với toán học tính toá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 quá 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 toá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
Trang 63 Giải gần đúng các bài toá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
1.2 Quan hệ giữa toán tính và tin học
Giữa toá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 toá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 toán nhanh người ta thiên về cải tiến các phương pháp giải bài toá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
Trang 71.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 toán kỹ thuật Nó thích hợp tính toá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ợ toán học và tính toán
Phát triển thuật toá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
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 toá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 toán bằng số chứ không nhằm mục đích chính là tính toán ký hiệu như MATHEMATICA và MAPLE Tuy
Trang 8nhiên, trong MATLAB cũng có thể tính toá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 toá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 ngoà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 toán toá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
Trang 9phâ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,…Ngoà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
Trang 10Chươ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 toá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
Axb, (1.1) trong đó
K
,
thì hệ (1.1) có nghiệm duy nhất
1
Rất rõ, (*) cho ta nghiệm của hệ (1.1) và nghiệm ấy là duy nhất
= 1, 2,…, n) được cho bởi công thức Cramer:
Trang 11i i
det Ax
det A
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 quá 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
một k0 cụ thể và xem ( k ) 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ố
Trang 12A 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 nguyên 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
(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
người Đức
Trang 13Lấy một thí dụ đơn giản: Xét hệ
a
15 11
bba
Trang 14Dù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
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ố
32 2 33 3 34 4 35 (1) (1) (1) (1)
aba
Trang 152 23 3 24 4 25 (2) (2)
3 34 4 35 (3) (3)
4 (3)44 (2) (2)
3 35 34 4 (1) (1) (1)
2 25 24 4 23 3
1 15 12 2 13 3 14 4
axa
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 quá trình áp dụng phương pháp Gauss ở mục 2.1 ta thấy: Để đưa
1j 11
aba
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à
Trang 162.2.3 Kiểm tra quá 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 quá trình tính của phương pháp Gauss, người ta dùng “ tổng kiểm tra”:
5 i6 ij
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:
Trang 1713 11
aba
14 11
aba
15 11
aba
16 11
ab
a
(1) 32
a
(1) 42
a
(1) 23
a
(1) 33
a
(1) 43
a
(1) 24
a
(1) 34
a
(1) 44
a
(1) 25a(1) 35
a
(1) 45
a
(1) 26
a
(1) 36
a
(1) 46
ab
III 3
4
(2) 33
a
(2) 43
a
(2) 34
a
(2) 44
a
(2) 35
a
(2) 45
a
(2) 36
a
(2) 46a(2)
36 (2) 33
ab
45
(3) 46
46 (33) 44
Trang 18Nếu khi tính toán có sai số làm tròn thì bắt đầu từ hàng thứ 5 trở đi (trong
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 quá trình
32 33 34 (1) (1) (1)
Trang 192.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 hoàn toà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 toá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
Trang 203
3 -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
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:
Trang 21disp('Ma tran nhap vao khong phai la ma tran vuong.');
Trang 232.2.6 Sơ đồ khử Gauss với phép chia cho phần tử chính
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
dòng thứ p ta được một ma trận vuông 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ử
toán được giảm đi Sơ đồ minh họa bằng ví vụ dưới đây
23
pq
am
a
12
1313
0
0
2313
1353
4353
(1) (0) (0)
ij ij i pj
12
0 0 3
2
1
Trang 24do đó 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:
11 21 31 41
a , a , a , a làm trụ thứ nhất và gọi là trụ lớn nhất thứ nhất Sau đó ta hoá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
22 32 42
a , a , a làm trụ thứ hai và gọi là trụ lớn nhất thứ hai Sau
22
a để trụ
Tiếp tục quá 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ệ
Trang 25Ví 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:
11
được kết quả ghi ở các hàng 5, 6, 7, 8 của bảng
ta nhận được kết quả ghi ở các hàng 9, 10, 11 của bảng
Trang 26-3
1 -6
-3
0 -11
-2
1 -2
1
1
0
0 -2 -3
1 -3 -6
0 -3 -11
III 3
4
1,5 -1
-2 -3
-2,5 -7
-3 -11
Trang 27Ta áp dụng quá trình thuận của sơ đồ Gauss, trong đó không có cột số hạng tự
do Kết quả ta nhận được ma trận tam giác:
12 13 14 (1) (1)
23 24 (2) 34
a Chia các hàng đầu của ma trận A và của những ma trận trung gian
A(1), A(2), A(3) cho các trụ khác không a (a11(0) 11(0) a ), a , a , a11 (1)22 (2)33 (3)44 Khi đó định thức của ma trận A cũng phải chia cho các trụ trên
Trang 28b Trừ khỏi các hàng của ma trận A và của những ma trận trung gian
nhân với một số Khi đó định thức của ma trận A không thay đổi giá trị Vậy
Trang 29I 2,8
-1,4 0,6 3,5
2,1 4,5 2,1 -6,5
-1,3 -7,7 -5,8 3,2
0,3 1,3 2,4 -7,9
3,9 -3,3 -0,7 -7,7
1,6500 -9,1250
-8,3500 -5,5214 4,8250
1,3399 2,3357 -8,2748
-1,3501 -1,5357 -12,5748
-8,9036
1,9047 -5,8913
-1,1343 -14,7949
2.2.9 Tính ma trận nghịch đảo bằng phương pháp Gauss
Mọi ma trận vuông không suy biến A (có định thức khác 0) đều có ma trận
Trang 30Khi cần giải nhiều hệ phương trình với cùng một ma trận hệ số và vế phải
Bước 2: Tiến hành quá trình khử Gaoxơ
Bước 3: Viết các kết quả nhận được theo thứ tự các hàng ngược lại để được A-1
Quá trình đó được trình bày trong bảng sau
Trang 312.2.10 Phương pháp Gauss Jordan
Nếu trong phương pháp chia cho phần tử chính ở mỗi bước ta không bỏ đi hàng thứ p (chứa phần tử chính) và những hàng đã chứa phần tử chính ở các bước trước không tham gia vào việc chọn phần tử chính trong các bước tiếp theo thì ta sẽ đưa hệ phương trình đã cho về một hệ tương đương có dạng đường chéo Phương pháp như vậy được gọi là phương pháp Gauss Jordan
Số các phép tính số học của phương pháp này là:
Trang 32-3/2
-1/2
1/3 0 2/3
2 3 1 -1/3 0 1/3
1/3
2 5/3
4/3
8 5/3
1
3 0 2
33
2 3 0
12
0 0
133232
43
12
0 0
43
6
32
2.3 Phương pháp Cholesky (Căn bậc hai)
2.3.1 Nội dung phương pháp
Nội dung của phương pháp gồm hai giai đoạn
Trang 33Giai đoạn thuận: Biểu diễn ma trận A dưới dạng tích hai ma trận chuyển vị
ii ij
Trang 34Các giá trị tij, yi, xi được tính theo các công thức (3.1) và (3.3)
Giải bài toán bằng phần mềm MATLAB
+ Ta xây dựng thuật toán như sau:
5 -1
0
6 -2 -1 xi yi
iyi
x
Trang 37Có thể dùng phương pháp căn bậc hai để tính định thức Biểu diễn A = T’.T với
2.4.1 Nội dung phương pháp
Giả sử hệ Ax = b bằng một cách nào đó (có nhiều cách khác nhau) được đưa về dạng
tùy ý (thường được chọn là cột b hoặc c vì như vậy tiết kiệm được các ô nhớ trong ma trận định thức) ta lập quá trình lặp
nếu một trong các điều kiện dưới đây được thỏa mãn:
Trang 381/
n ik
sự hội tụ của phương pháp lặp đơn càng nhanh nếu
p
(4.4) cũng cho phép sau lần lặp thứ nhất (sau khi biết được x(1)), xác định
Phương pháp thứ nhất: Nếu các phần tử thuộc đường chéo chính của ma
trận A đều khác 0 và đủ lớn để thỏa mãn một trong ba điều kiện hội tụ thì ta
Trang 39chuyển tất cả các phần tử ngoài đường chéo chính sang vế phải và chia cả hai
1
a1
a1
aba
(ij),bii 0Khi đó các điều kiện 1/, 2/, 3/ tương ứng sẽ là
Phương pháp thứ hai: Chuyển một phần nhỏ xi sang vế phải
Về lý thuyết với mỗi hệ có ma trận không suy biến luôn tồn tại các phương pháp lặp đơn hội tụ nhưng không phải luôn thuận tiện trên thực hành tính toán
Nếu phương pháp lặp đơn hội tụ thì nó có các ưu điểm sau đây:
1/ Giả sử để giải gần đúng nghiệm của hệ n phương trình với độ chính xác
với n vì vậy sẽ lợi về mặt thời gian tính so với phương pháp Gaoxơ (tỉ lệ với
n3)
2/ Sai số làm tròn nhỏ hơn nhiều so với phương pháp Gaoxơ Ngoài ra đây
là phương pháp tự sữa vì mỗi sai số riêng biệt xuất hiện trong tính toán không ảnh hưởng đến kết quả cuối cùng, mỗi xấp xỉ sai lệch được xem như một xấp
xỉ ban đầu mới Nhận xét về tính tự sửa của phương pháp lặp dùng để chính xác hóa nghiệm được tìm từ phương pháp Gaoxơ
Trang 403/ Phương pháp lặp đơn đặc biệt có hiệu quả khi ma trận A có nhiều phần
tử bằng 0
4/ Quá trình lặp đơn rất dễ thực hiện trên máy tính điện tử
Ví dụ 4.1: Dùng phương pháp lặp đơn, tìm nghiệm của hệ sau với sai số
ma trận hệ số của hệ phương trình đã cho về trị tuyệt đối lớn hơn nhiều so với những phần tử còn lại Do đó, ta chia hai vế của phương trình đầu cho 4, hai
vế của phương trình thứ hai cho 3 và hai vế của phương trình thứ ba cho 4 và nhận được hệ sau: