Tải bản đầy đủ (.doc) (5 trang)

Giải hệ phương trình đại số tuyến tính bằng Excel potx

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 (214.1 KB, 5 trang )

Giải hệ phương trình đại số tuyến tính bằng Excel
Ngoài khả năng xử lý bảng tính, Excel còn có nhiều khả năng khác mà có thể bạn chưa khám
phá hết. Bài viết này giới thiệu cách dùng Excel để giải hệ phương trình đại số tuyến tính
(HPTTT) - dạng bài toán thường gặp trong thực tế, khá phức tạp vì có nhiều ẩn. Để giải
HPTTT, ở đây dùng hai phương pháp: ma trận và Gauss Seidel.

Phương pháp ma trận
Sử dụng phương pháp ma trận để giải HPTTT là đơn giản nhất khi sử dụng Excel. HPTTT có
dạng:
Ax=b
trong đó A là ma trận hệ số, x là vectơ biến số và b là vectơ kết quả.
HPTTT được biến đổi thành:
x=A-1b
Xét hệ ba phương trình ba ẩn sau:
-8x1 + x2 + 2x3 = 0
5x1 + 7x2 - 3x3 = 10 (*)
2x1 + x2 - 2x3 = -2
Hệ ba phương trình này có thể viết dưới dạng ma trận sau:
-8 1 2 x1 0
5 7 3 x2 = 10
2 1 2 x3 -2
Ta dễ dàng tìm được nghiệm của HPTTT bằng cách dùng hàm MINVERSE (tính ma trận
nghịch đảo) và MMULT (tính tích ma trận) trong Excel. Sau đây là các bước giải HPTTT:
• Bước 1: nhập ma trận A vào các ô A6:C8
A6 -8 B6 1 C6 2
A7 5 B7 7 C7 -3
A8 2 B8 1 C8 -2
• Bước 2: nhập vectơ kết quả vào các ô E6:E8
E6 0 E7 10 E8 -2
• Bước 3: chọn các ô A11:C13, gõ công thức: =MINVERSE(A6:C8) và nhấn Ctrl+Shift+Enter
để chèn công thức này vào cả vùng được lựa chọn ta thu được ma trận nghịch đảo của ma


trận A.
• Bước 4: chọn các ô E11:E13, gõ công thức: =MMULT(A11:C13,E6:E8) và nhấn
Ctrl+Shift+Enter để chèn công thức này vào cả vùng được lựa chọn ta thu được nghiệm của
hệ ba phương trình trên trong các cột E11:E13 (xem hình 1)
Nghiệm của hệ phương trình là:
x1=1 x2=2 x3=3

Phương Pháp lặp Gauss-Seidel
Hình 1
Bản chất của phép lặp Gauss là
nghiệm ở bước lặp i được dùng để
tính cho bước lặp i+1 còn bản chất
của phép lặp Gauss-Seidel là kết quả
tính toán ẩn xk được đưa ngay vào
tính toán ẩn xk+1 trong cùng một
bước lặp i, đây là một bước cải tiến
đáng kể phương pháp Gauss. Ta xem
xét việc sử dụng Excel để giải HPTTT
theo phương pháp Gauss-Seidel.
Biến đổi hệ phương trình trên ta có:
Sau đây là các bước giải HPTTT bằng phương pháp lặp Gauss-Seidel trong Excel:
• Bước 1: chọn Tools - Options - Calculation tab và thay đổi Calculation từ Automatic thành
Manual, bỏ chọn Recalculate Before Save, chọn Iterations và đặt Maximum Iteration bằng 1,
Maximum change bằng 0,001(xem hình 2).
• Bước 2: trong ô B3 nhập True, trong các ô A8:A10 nhập giá trị 0 (giá trị khởi tạo ban đầu).
• Bước 3: trong ô B8 nhập công thức =(C9+2*C10)/8; trong ô B9 nhập công thức =(10-
5*C8+3*C10)/7; trong ô B10 nhập công thức =(2+2*C8+C9)/2
• Bước 4: trong ô C8 nhập công thức =IF(B3=TRUE,A8,B8); trong ô C9 nhập công thức
=IF(B3=TRUE,A9,B9); trong ô C10 nhập công thức =IF(B3=TRUE, A10,B10)
Ta thấy các công thức trong cột B tính theo các giá trị trong cột C, các giá trị này lại nhận kết

quả tính toán từ cột B, như vậy từ công thức thứ hai trong cột B trở đi có thể sử dụng các giá
trị mới tính ở các công thức trên.
• Bước 5: định dạng các ô B8:C10 là Number với ba số thập phân sau dấu phẩy
Hình 2
• Bước 6: khi ô B3 ở trạng thái True
nhấn F9 để tính với giá trị khởi tạo ban
đầu, sau đó thay đổi trạng thái ô B3
thành False và nhấn F9 để lặp lại quá
trình tính toán với các giá trị trong cột
C, tiếp tục nhấn F9 cho đến khi các
giá trị hội tụ ta nhận được nghiệm của
hệ ba phương trình trên trong các ô
C8:C10 (xem hình 3).
Trong trường hợp quá nhiều bước lặp nghĩa là phải nhấn nhiều lần F9 (trong ví dụ trên phải
lặp 10 bước) thì ta có thể tăng số bước lặp trong một lần nhấn F9 bằng cách chọn Tool s-
Options và đặt Maximum Iteration lớn hơn 1.

Nhận Xét
Phương pháp nghịch đảo ma trận đơn giản nhưng chỉ phù hợp với hệ phương trình có số ẩn
không quá lớn (dưới 60 ẩn) với số ẩn lớn hơn nên dùng phương pháp Gauss-Seidel. Ngoài
ra còn nhiều phương pháp khác nhưng trong phạm vi bài này không đề cập đến, mong nhận
được sự đóng góp ý kiến của các bạn.
1. Hàm tính ma trận nghịch đảo
Ma trận nghịch đảo
A là ma trận vuông cấp n x n
Nếu A không suy biến (định thức của A khác 0) thì A có ma trận nghịch đảo A-1.
Ma trận nghịch đảo được sử dụng để giải một số bài toán.
Trong Excel, ma trận nghịch đảo được tính bằng hàm mảng MINVERSE.
Ví dụ có ma trận A 3 x 3, dữ liệu được chứa trong vùng A1 :C3.
A-1 là ma trận nghịch đảo của A, cũng 3 x 3, sẽ được chứa trong vùng E1 :G3 (chọn

vùng E1 :G3, gõ công thức =MINVERSE(A1 :C3), bấm tổ hợp phím Ctrl-Shift-Enter).
[
Vấn đề là hàm MINVERSE trong Excel chỉ tính được cho ma trận có n < 60 !
Có một số bài toán như mô hình Input-Output quốc gia có cả trăm ngành thì
MINVERSE chịu thua (một thầy giáo nói là MINVERSE chỉ tính được tới n = 54 !).
Thầy giáo trên đã xử lý bài toán Input-Output với n ≈ 100 bằng phần mềm Matlap
(tôi không rõ lắm, nghe nói bên ĐHBK xài).
Bài toán cũng có thể giải bằng phương pháp Gauss. Nhưng có dịp thì đề cập sau.
Hình 3
Mục tiêu ở đây là dùng hàm MINVERSE với phạm vi vùng rộng hơn. Tôi tạo một hàm
người dùng tương tự MINVERSE của Excel để dùng cho trường hợp n lớn (mà nếu
dùng MINVERSE có sẵn của Excel thì không ra kết quả!).
Cách sử dụng thì giống y như MINVERSE chỉ khác cái tên hàm (tôi đặt tên
NINVERSE).
Gửi lên mọi người xài thử xem sao.
/>%C3%ADnh-ma-tr%E1%BA%ADn-ngh%E1%BB%8Bch-%C4%91%E1%BA%A3o

×