Professional Documents
Culture Documents
Baocao 3
Baocao 3
Baocao 3
1
Phương pháp Gauss – Jordan tìm ma trận nghịch đảo Nguyễn Thị Thu Hà
MỤC LỤC
NỘI DUNG....................................................................................................................4
I. Bài toán:..................................................................................................................4
1. Ví dụ 1..............................................................................................................10
3. Ví dụ 2..............................................................................................................11
KẾT LUẬN..................................................................................................................13
2
Phương pháp Gauss – Jordan tìm ma trận nghịch đảo Nguyễn Thị Thu Hà
Maple là một gói phần mềm toán học thương mại phục vụ cho nhiều
mục đích. Nó phát triển lần đầu tiên vào năm 1980 bởi Nhóm Tính toán
Hình thức tại Đại học Waterloo ở Waterloo, Ontario, Canada.
Từ năm 1988, nó đã được phát triển và thương mại hóa bởi Waterloo
Maple Inc. (còn được biết đến với tên gọi Maplesoft), một công ty
Canada cũng có trụ sở tại Waterloo, Ontario. Phiên bản hiện tại là Maple
13 được phát hành vào tháng 5 năm 2009.
Người dùng có thể nhập biểu thức toán học theo các ký hiệu toán
học truyền thống. Có thể dễ dàng tạo ra những giao diện người dùng tùy
chọn. Maple hỗ trợ cho cả tính toán số và tính toán hình thức, cũng như
hiển thị. Nhiều phép tính số học được thực hiện dựa trên thư viện số học
NAG; trong Maple, các chương trình con NAG đã được mở rộng để cho
phép độ chính xác ngẫu nhiên lớn.
Maple cũng có một ngôn ngữ lập trình cấp cao đầy đủ. Cũng có giao
diện cho những ngôn ngữ khác (C, Fortran, Java, MatLab, và Visual
Basic). Cũng có một giao diện dành cho Excel.
Sau quá trình học tập và nghiên cứu môn học Lập trình tính toán, em
xin trình bày 1 số kết quả đạt được trong việc ứng dụng Maple để lập
trình hướng thủ tục giải bài toán “Tìm ma trận nghịch đảo bằng phương
pháp Gauss – Jordan”
3
Phương pháp Gauss – Jordan tìm ma trận nghịch đảo Nguyễn Thị Thu Hà
NỘI DUNG
I. Bài toán:
Cho ma trận A = [aij] vuông cấp n, không suy biến (det A # 0). Tìm
ma trận B = [bij] sao cho A.B = E ( E là ma trận đơn vị cấp n).
Ký hiệu B = A-1
Từ I ta có:
Do det A # 0 nên các hệ dạng (*) tồn tại duy nhất nghiệm. Bằng
phương pháp Gauss – Jordan giải n hệ (*) có cùng ma trận A, ta làm như
sau:
4
Phương pháp Gauss – Jordan tìm ma trận nghịch đảo Nguyễn Thị Thu Hà
Bước 1: Giả thiết a11 # 0 . Chọn a11 làm phần tử giải, mọi phần tử của
hàng giải đều chia cho a11, các phần tử của cột giải ( trừ a11) đều bằng 0.
Các phần tử khác được biến đổi theo công thức hình chữ nhật:
ai1a1 j
aij(1) = aij - ∀ij
a11
a11 a1j
ai1 aij
Vậy sau bước 1 ta thu được ma trận Ā(1) = [aij(1)] , i = 1..n, j = 1..2n
Bước 2: giả thiết a22(1) # 0 , lặp lại quá trình trên ta được ma trận
5
Phương pháp Gauss – Jordan tìm ma trận nghịch đảo Nguyễn Thị Thu Hà
else
fi;
od;
> for i from < giá trị đầu > to < giá trị cuối> do
od;
> print(e) ;
6
Phương pháp Gauss – Jordan tìm ma trận nghịch đảo Nguyễn Thị Thu Hà
Local e, i, j, k, l, m;
for i from 1 to n do
for j from 1 to n do
if i = j then
e[i, j] := 1;
else
e[i, j] := 0;
fi;
od;
od;
#Gauss – Jordan:
k := 1;
while k ≤ n do
i := n;
while i ≥ 1 do
if i # k then
7
Phương pháp Gauss – Jordan tìm ma trận nghịch đảo Nguyễn Thị Thu Hà
j := 1;
while j ≤ n do
a[i, k ]e[k , j ]
e[i, j] := e[i, j] - ;
a[k , k ]
j := j + 1;
od;
j := n;
while j ≥ 1 do
a[i, k ]a[k , j ]
a[i, j] := a[i, j] - ;
a[k , k ]
j := j – 1;
od;
fi;
i := i – 1;
od;
l :=1;
while l ≤ n do
e[k , l ]
e[k, l] := ;
a[k , k ]
l := l +1;
od;
8
Phương pháp Gauss – Jordan tìm ma trận nghịch đảo Nguyễn Thị Thu Hà
l := k + 1;
while l ≤ n do
a[k , l ]
a[k, l] := ;
a[k , k ]
l := l + 1;
od;
a[k, k] := 1;
m := k + 1;
while m ≤ n do
a[m, k] := 0;
m := m + 1;
od;
k := k + 1;
od;
end;
Lưu thủ tục: đưa thủ tục thành thư viện ở dạng file
9
Phương pháp Gauss – Jordan tìm ma trận nghịch đảo Nguyễn Thị Thu Hà
V. Một số ví dụ:
1. Ví dụ 1 ( trang 83 Giáo trình Giải tích số - Tác giả Lê Trọng Vinh)
⎡50 107 36 ⎤
A = ⎢⎢25 54 20⎥⎥
⎢⎣ 31 66 21⎥⎦
> n := 3;
> a := array ([[50, 107, 36], [25, 54, 20], [31, 66, 21]]);
2. Thử lại ví dụ 1:
> b := array ([[-186, 129, 196], [95, -66, -100], [-24, 17, 25]]);
10
Phương pháp Gauss – Jordan tìm ma trận nghịch đảo Nguyễn Thị Thu Hà
⎡1 3 − 2⎤
⎢
Cho A = ⎢ 3 4 − 5⎥⎥ . Tìm A-1
⎢⎣− 2 − 5 3 ⎥⎦
> n := 3;
4. Bài tập 3 (trang 119 Giáo trình Giải tích số - tác giả Lê Trọng Vinh)
> d := 4;
> f := array([[13, 14, 6, 4], [8, -1, 13, 9], [6, 7, 3, 2], [9, 5, 16, 11]]);
11
Phương pháp Gauss – Jordan tìm ma trận nghịch đảo Nguyễn Thị Thu Hà
12
Phương pháp Gauss – Jordan tìm ma trận nghịch đảo Nguyễn Thị Thu Hà
KẾT LUẬN
Qua bài báo cáo này em đã trình bày được cách lập trình trong
Maple để giải quyết bài toán Tìm ma trận nghịch đảo bằng phương pháp
Gauss – Jordan. Từ đó có thể ứng dụng để viết những chương trình khác.
Tuy nhiên chương trình này vẫn còn một hạn chế là chỉ tính toán
được những ma trận có đường chéo khác 0. Trong tương lai em sẽ cải tiến
để chương trình có thể tìm được ma trận nghịch đảo của những ma trận
bất kỳ.
13
Phương pháp Gauss – Jordan tìm ma trận nghịch đảo Nguyễn Thị Thu Hà
Website:
http://nhdien.wordpress.com/
http://maplesoft.com/
http://vi.wikipedia.org/
http://maplevn2008.wordpress.com/
14