Các bước tìm ma trận nghịch đảo bằng phương pháp Gauss Jordan

Phương pháp Gauss – Jordan tìm ma trận nghịch đảoNguyễn Thị Thu HàTRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘIKHOA TOÁN TIN ỨNG DỤNG---------***---------BÁO CÁO BÀI TẬPLẬP TRÌNH TÍNH TOÁNĐề tài : Phương pháp Gauss – Jordan tìm ma trận nghịch đảoGiáo viên hướng dẫn : PGS – TS Nguyễn Hữu ĐiểnSinh viên thực hiện : Nguyễn Thị Thu HàLớp : Toán tin 2 – K51Hà Nội, tháng 11 năm 20091Phương pháp Gauss – Jordan tìm ma trận nghịch đảoNguyễn Thị Thu HàMỤC LỤCLỜI NÓI ĐẦU ...............................................................................................................3NỘI DUNG....................................................................................................................4I. Bài toán:..................................................................................................................4II. Phương pháp Gauss – Jordan: ...............................................................................4III. Các lệnh sử dụng trong chương trình:..................................................................61. Chương trình sử dụng mảng 2 chiều để lưu trữ các ma trận..............................62. Các lệnh điều khiển của maple: .........................................................................63. Lệnh in ra kết quả: .............................................................................................6IV. Chương trình:.......................................................................................................7V. Một số ví dụ: .......................................................................................................101. Ví dụ 1..............................................................................................................102. Thử lại ví dụ 1:.................................................................................................103. Ví dụ 2..............................................................................................................114. Bài tập 3 ...........................................................................................................11KẾT LUẬN..................................................................................................................13TÀI LIỆU THAM KHẢO ...........................................................................................142Phương pháp Gauss – Jordan tìm ma trận nghịch đảoNguyễn Thị Thu HàLỜI NÓI ĐẦUMaple là một gói phần mềm toán học thương mại phục vụ cho nhiềumục đích. Nó phát triển lần đầu tiên vào năm 1980 bởi Nhóm Tính toánHì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 WaterlooMaple Inc. (còn được biết đến với tên gọi Maplesoft), một công tyCanada cũng có trụ sở tại Waterloo, Ontario. Phiên bản hiện tại là Maple13 đượ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ánhọc truyền thống. Có thể dễ dàng tạo ra những giao diện người dùng tùychọ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ọcNAG; trong Maple, các chương trình con NAG đã được mở rộng để chophé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ó giaodiện cho những ngôn ngữ khác (C, Fortran, Java, MatLab, và VisualBasic). 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, emxin trình bày 1 số kết quả đạt được trong việc ứng dụng Maple để lậptrình hướng thủ tục giải bài toán “Tìm ma trận nghịch đảo bằng phươngpháp Gauss – Jordan”3Phương pháp Gauss – Jordan tìm ma trận nghịch đảoNguyễn Thị Thu HàNỘI DUNGI. Bài toán:Cho ma trận A = [aij] vuông cấp n, không suy biến (det A # 0). Tìmma trận B = [bij] sao cho A.B = E ( E là ma trận đơn vị cấp n).Ma trận B tìm được gọi là ma trận nghịch đảo của ma trận A.Ký hiệu B = A-1II. Phương pháp Gauss – Jordan:Gọi A = [aij]n , B = A-1 = [Xij]n là ma trận nghịch đảo cần tìm.Từ I ta có:⎡ a11 ...... a1i ....... a1 n ⎤⎢.......... .......... ........ ⎥⎢⎥⎢ a i1 ....... a ii ........ a in ⎥⎢⎥............................⎢⎥⎢⎣ a n1 ...... a ni ....... a nn ⎥⎦⎡ x11 ..... x1 i ..... x1 n ⎤⎢ .......... .......... ..... ⎥⎥⎢⎢ x i 1 ..... x ii ...... x in ⎥⎥⎢⎢ .......... .......... ..... ⎥⎢⎣ x n 1 .... x ni ..... x nn ⎥⎦⎡ 1 ..... 0 ..... 0 ⎤⎢ .......... ...... ⎥⎢⎥⎢ 0 ..... 1 ..... 0 ⎥⎢⎥⎢ .......... ....... ⎥⎢⎣ 0 ..... 0 ...... 1 ⎥⎦Đặt Xi = (x1i, x2i, …., xii, …., xni)t i = 1..nEi = (0, 0....,1(i),....0)t , i = 1..n (hàng thứ i là số 1 còn các hàngkhácđều bằng 0 ) thì hệ phương trình trên được viết trong dạng hệphương trình ma trận:AXj = Ej , j = 1..n(*)Mỗi hệ gồm n ẩn là vectơ Xj , j = 1..nDo det A # 0 nên các hệ dạng (*) tồn tại duy nhất nghiệm. Bằngphương pháp Gauss – Jordan giải n hệ (*) có cùng ma trận A, ta làm nhưsau:Lập ma trận mở rộng Ā gồm ma trận A và ma trận đơn vị E được đặtkề liền bên phải : Ā = [A | E ] và thực hiện theo các bước:4Phương pháp Gauss – Jordan tìm ma trận nghịch đảoNguyễ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ủahà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:aij(1) = aij -ai1a1 ja11∀ijkể cả các phần tử của ma trận E:a11a1jai1aijVậy sau bước 1 ta thu được ma trận Ā(1) = [aij(1)] , i = 1..n, j = 1..2nBước 2: giả thiết a22(1) # 0 , lặp lại quá trình trên ta được ma trậnĀ(2) = [aij(2)] , i = 1..n, j = 1..2nVà cứ như thế cho đến bước n ta được ma trậnĀ(n) = [aij(n)] , i = 1..n, j = 1..2nThì ma trận, từ cột thứ n +1 đến 2n là ma trận A-1 cần tìm.5Phương pháp Gauss – Jordan tìm ma trận nghịch đảoNguyễn Thị Thu HàIII. Các lệnh sử dụng trong chương trình:1. Chương trình sử dụng mảng 2 chiều để lưu trữ các ma trậna := array (1..n, 1..n)2. Các lệnh điều khiển của maple:_ Câu lệnh if – then – else> if < điều kiện > then< thực hiện câu lệnh điều kiện đúng >else< thực hiện câu lệnh điều kiện sai >fi;_ Câu lệnh while – do> while < điều kiện > do< thực hiện các lệnh >od;_ Câu lệnh for – do> for i from < giá trị đầu > to < giá trị cuối> do< dãy câu lệnh >od;3. Lệnh in ra kết quả:> print(e) ;6Phương pháp Gauss – Jordan tìm ma trận nghịch đảoIV. Chương trình:> GaussJordan :=proc(n :: integer, a)Local e, i, j, k, l, m;e :=array (1..n, 1..n);#Tu nhap ma tran don vi E:for i from 1 to n dofor j from 1 to n doif i = j thene[i, j] := 1;elsee[i, j] := 0;fi;od;od;#Gauss – Jordan:k := 1;while k ≤ n doi := n;while i ≥ 1 doif i # k then7Nguyễn Thị Thu HàPhương pháp Gauss – Jordan tìm ma trận nghịch đảoNguyễn Thị Thu Hàj := 1;while j ≤ n doe[i, j] := e[i, j] -a[i, k ]e[k , j ];a[k , k ]j := j + 1;od;j := n;while j ≥ 1 doa[i, j] := a[i, j] j := j – 1;od;fi;i := i – 1;od;l :=1;while l ≤ n doe[k, l] :=e[k , l ];a[k , k ]l := l +1;od;8a[i, k ]a[k , j ];a[k , k ]Phương pháp Gauss – Jordan tìm ma trận nghịch đảol := k + 1;while l ≤ n doa[k, l] :=a[k , l ];a[k , k ]l := l + 1;od;a[k, k] := 1;m := k + 1;while m ≤ n doa[m, k] := 0;m := m + 1;od;k := k + 1;od;print(`Ma tran nghich dao can tim: `,e);end;Lưu thủ tục: đưa thủ tục thành thư viện ở dạng file> save GaussJordan, `c:\\GaussJordan.m`;Sử dụng thủ tục: nạp thư viện có sẵn> read `c:\\GaussJordan.m`;9Nguyễn Thị Thu HàPhương pháp Gauss – Jordan tìm ma trận nghịch đảoNguyễ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)Tìm ma trận A-1 nếu:⎡50 107 36 ⎤A = ⎢⎢25 54 20⎥⎥⎢⎣ 31 66 21⎥⎦> n := 3;> a := array ([[50, 107, 36], [25, 54, 20], [31, 66, 21]]);> GaussJordan (n, a);2. Thử lại ví dụ 1:> b := array ([[-186, 129, 196], [95, -66, -100], [-24, 17, 25]]);> GaussJordan (n, b);10Phương pháp Gauss – Jordan tìm ma trận nghịch đảoNguyễn Thị Thu Hà3. Ví dụ 2 (trang 85 Giáo trình Giải tích số - tác giả Lê Trọng Vinh)3 − 2⎤⎡1⎢Cho A = ⎢ 3 4 − 5⎥⎥ . Tìm A-1⎢⎣− 2 − 5 3 ⎥⎦> n := 3;> c := array([[1, 3, -2], [3, 4, -5], [-2, -5, 3]]);> GaussJordan (n, c);4. Bài tập 3 (trang 119 Giáo trình Giải tích số - tác giả Lê Trọng Vinh)Tìm ma trận nghịch đảo của ma trận sau:⎡13 14 6 4 ⎤⎢ 8 − 1 13 9 ⎥⎥A= ⎢⎢6 7 3 2⎥⎢⎥⎣ 9 5 16 11⎦> d := 4;> f := array([[13, 14, 6, 4], [8, -1, 13, 9], [6, 7, 3, 2], [9, 5, 16, 11]]);> GaussJordan (d, f);11Phương pháp Gauss – Jordan tìm ma trận nghịch đảoTất cả các ví dụ trên đều đúng so với đáp số!!12Nguyễn Thị Thu HàPhương pháp Gauss – Jordan tìm ma trận nghịch đảoNguyễn Thị Thu HàKẾT LUẬNQua bài báo cáo này em đã trình bày được cách lập trình trongMaple để giải quyết bài toán Tìm ma trận nghịch đảo bằng phương phápGauss – 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ậnbất kỳ.Em xin chân thành cảm ơn PGS – TS Nguyễn Hữu Điển đã hướngdẫn em hoàn thành bài tập này.Hà Nội, tháng 11 năm 2009Sinh viên thực hiện : Nguyễn Thị Thu HàLớp : Toán tin 2 – K51 – ĐH BK HN13Phương pháp Gauss – Jordan tìm ma trận nghịch đảoNguyễn Thị Thu HàTÀI LIỆU THAM KHẢONguyễn Hữu Điển - Hướng dẫn và sử dụng Maple VLê Trọng Vinh – Giáo trình giải tích số - NXB KH và KTWebsite:http://nhdien.wordpress.com/http://maplesoft.com/http://vi.wikipedia.org/http://maplevn2008.wordpress.com/14

Posted by nhdien on 28/05/2010

Tìm ma trân nghịch đảo bằng tay tính toán chỉ được số chiều rất nhỏ, còn bằng Maple thì quá đơn giản và dễ.

Bài của em Nguyễn Thị Thu Hà nói được 1 phần giải đáp

View this document on Scribd

Ma trận nghịch đảo là gì? Cách tìm ma trận nghịch đạo bằng cách giải hệ phương trình nhanh nhất

1. Ma trận nghịch đảo là gì

Ma trận nghịch đảo là thuật ngữ trong đại số tuyến tính. Cùng tìm hiểu định nghĩa ma trận nghịch đảo là gì và cách tính như thế nào qua bài viết sau nhé.

Ma trận không có dấu phân số nên bạn cần sử dụng ma trận nghịch đảo để đơn giản hóa phép toán phức tạp này. Có hai cách tính ma trận nghịch đảo là tính tay và dùng máy tính giúp cho kết quả chính xác hơn. Cùng khám phá định nghĩama trận nghịch đảo là gìvà cách tính chi tiết trong bài viết sau nhé.

2. Cách tính ma trận nghịch đảo

Trước khi tìm hiểu cách tính ma trận nghịch đảo, ta cần nắm đượcma trận nghịch đảo là gì. Điều này giúp bạn hiểu rõ bản chất và áp dụng chính xác vào các bài toán giải tích phức tạp. Cụ thể định nghĩa ma trận nghịch đảo như sau:

Ma trận nghịch đảo 2x2

Cách tính ma trận nghịch đảo 2x2 theo phương pháp sử dụng ma trận phụ hợp (phép khử Gauss-Jordan) thực hiện như sau:

Phương pháp này có 4 bước tính.

Ma trận nghịch đảo 3x3

Phương pháp tìm ma trận nghịch đảo bằng cách tạo ma trận bổ sung:

Bước 1:Kiểm tra định thức của ma trận, ký hiệu là det(M).

Bước 2:Chuyển vị ma trận gốc tức là đổi vị trí của phần tử thứ (i,j) và chỗ của phần tử (j,i) với nhau.

Bước 3:Tìm định thức của từng ma trận con 2x2 liên kết với ma trận chuyển vị 3x3 mới.

Bước 4:Tạo ma trận các phần phụ đại số, ký hiệu là Adj(M).

Bước 5:Thực hiện phép chia của toàn bộ các phần tử của ma trận bổ sung với định thức của ma trận là det(M).

Phương pháp tìm ma trận nghịch đảo bằng cách giảm hàng tuyến tính

Bước 1:Thực hiện thêm ma trận đơn vị vào trong ma trận gốc

Bước 2:Tiến hành phép giảm hàng tuyến tính và thực hiện đến khi ma trận đơn vị được hình thành

Bước 3:Viết lại ma trận nghịch đảo cho chuẩn xác

Ma trận nghịch đảo 4x4

Đối với ma trận 4x4 thì cách tính được áp dụng phổ biến hơn cả là phương pháp dùng các phép biến đổi sơ cấp. Cụ thể như sau:

3. Phương pháp Tìm ma trận nghịch đảo bằng cách giải hệ phương trình

Giả sử ma trậnAkhả nghịch (khôngsuy biến) khi đố tồn tại ma trận nghịch đảoA−1, ngoài các phép biến đổi sơ cấp hay tìm ma trận nghịch đảo theo công thức của ma trận phụ hợp ta có thể sử dụng phương pháp giải hệ phương trình:

Xét hệ phương trình tuyến tính

Ta biết rằng nghiệm của hệ phương trình này xác định bởi

Vì vậy nếu tìm được nghiệm của hệ phương trình dạng

Câu 1.Tìm ma trận nghịch đảo của ma trận

Xét hệ

Câu 2.Tìm ma trận nghịch đảo của ma trận

Xét hệ

Câu 3:Tìm ma trận nghịch đảo của ma trận

Xét hệ phương trình tuyến tính

Giải hệ này bằng biến đổi ma trận hệ số mở rộng: