Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 70 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
70
Dung lượng
296,74 KB
Nội dung
Lời cảm ơn Trước tiên, em muốn gửi lời cảm ơn sâu sắc đến cô giáo - TS. Lê Thị Hoài Thu - người tận tình hướng dẫn em suốt trình thực khóa luận tốt nghiệp. Em xin chân thành cảm ơn tất quý thầy cô Trường Đại học Quảng Bình, đặc biệt thầy cô giáo khoa Khoa học tự nhiên dạy dỗ em suốt thời gian ngồi ghế nhà trường, nhờ dạy dỗ em học nhiều điều bổ ích cho chuyên ngành sống. Cuối cùng, em muốn gửi lời cảm ơn đến gia đình, anh chị khóa trước, tập thể lớp ĐHSP Toán K53, bạn bè xung quanh tất người động viên giúp đỡ em lúc khó khăn, động viên giúp thân em ngày cố gắng học tập hoàn thành tốt khóa học mình. Em xin chân thành cảm ơn! Mục lục Lời cảm ơn MỞ ĐẦU Định thức số tính chất định thức 1.1 Định thức . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Một số tính chất định thức . . . . . . . . . . . . . . . Một số phương pháp tính định thức 2.1 Phương pháp khai triển theo dòng cột . . . . . . . . 2.2 Phương pháp biến đổi sơ cấp . . . . . . . . . . . . . . . . . 11 2.3 Phương pháp quy nạp . . . . . . . . . . . . . . . . . . . . 15 2.4 Phương pháp truy hồi . . . . . . . . . . . . . . . . . . . . 19 2.5 Phương pháp biểu diễn định thức thành tổng định thức 23 2.6 Phương pháp biểu diễn định thức thành tích định thức 28 2.7 Phương pháp sử dụng đa thức . . . . . . . . . . . . . . . . 32 2.8 Phương pháp biến đổi tất phần tử định thức . . 34 2.9 Phương pháp Rank one updates . . . . . . . . . . . . . . . 35 Một số ví dụ minh họa ứng dụng định thức 37 3.1 Giải hệ phương trình tuyến tính . . . . . . . . . . . . . . . 37 3.2 Xét tính suy biến ma trận tìm ma trận nghịch đảo 40 3.3 Tính hạng ma trận . . . . . . . . . . . . . . . . . . . . . . 45 3.4 Chứng minh độc lập tuyến tính hệ hàm . . . . 47 3.5 Chứng minh số đẳng thức . . . . . . . . . . . . . . . . 50 3.6 Định thức qua trò chơi . . . . . . . . . . . . . . . . . . 56 KẾT LUẬN 69 TÀI LIỆU THAM KHẢO 70 MỞ ĐẦU 1. Lí chọn đề tài Khái niệm định thức lần đưa thư Leibniz gửi cho người bạn năm 1693. Hàm định thức xuất năm 1720 công trình nhà toán học Anh Maclaurin. Công thức tổng quát tìm thấy nhà toán học Thụy Sĩ Cramer công trình đường cong xuất năm 1750. Người định nghĩa nghiên cứu tính chất định thức Lan Vandermonde. Năm 1771, ông chứng minh quy tắc Cramer qua tìm thấy số tính chất định thức triệt tiêu hai dòng hay hai cột nhau, định thức đổi dấu đổi chỗ hai dòng hay hai cột. Tuy nhiên ông tính định thức mang tên cho trường hợp n = năm 1774. Công thức khai triển định thức theo dòng cột nhà toán học Pháp Laplace phát năm 1772. Tên gọi định thức xuất lần báo Gauss năm 1801 dạng bậc hai. Người nghiên cứu định thức cách hệ thống nhà toán học Pháp Cauchy. Ông phát công thức định thức tích hai ma trận năm 1812. Ông người phát công thức định thức Vandermonde năm 1815. Cùng với nhà toán học trên, Jordan, Sylvester, William Rowan Hamilton, Hermann Grassmann, Ferdinaned Georg Frobenius John von Neumann tên tuổi gắn liền với phát triển lý thuyết định thức, ma trận. Định thức ma trận kiến thức Đại số tuyến tính. Nó có nhiều ứng dụng hình học, giải tích, toán kinh tế. Ngoài có ứng dụng vật lý, tin học .Với mong muốn tìm hiểu định thức ứng dụng nó, em chọn nghiên cứu đề tài khóa luận "Định thức ứng dụng giải toán". 2. Mục đích nghiên cứu Nghiên cứu trình bày cách có hệ thống, logic định nghĩa số tính chất định thức ma trận, số phương pháp tính định thức số ví dụ minh họa ứng dụng định thức. 3. Đối tượng nghiên cứu phạm vi nghiên cứu Đối tượng nghiên cứu khóa luận lý thuyết định thức ma trận. 4. Phương pháp nghiên cứu Phương pháp nghiên cứu lí luận: Đọc nghiên cứu tài liệu, giáo trình vấn đề cần nghiên cứu như: định thức, phương pháp tính định thức, ứng dụng định thức Phương pháp lấy ý kiến chuyên gia: Gồm ý kiến giảng viên hướng dẫn giảng viên khác Bộ môn Toán, Khoa Khoa học tự nhiên, Trường Đại học Quảng Bình. 5. Tầm quan trọng khoa học thực tiễn Đề tài tài liệu tham khảo cho sinh viên chuyên ngành Toán, đặc biệt bạn đam mê thi Olympic Toán học toán cao cấp. Với thân, qua việc nghiên cứu đề tài em hệ thống ôn tập lại kiến thức học định nghĩa số tính chất định thức, phương pháp tính định thức, đặc biệt có nhìn định thức, ứng dụng nó. 6. Bố cục khóa luận Ngoài lời cảm ơn, phần mở đầu, kết luận, phụ lục tài liệu tham khảo, nội dung khóa luận trình bày chương: Chương 1: Định thức số tính chất định thức Chương 2: Một số phương pháp tính định thức Chương 3: Một số ví dụ minh họa ứng dụng định thức. Chương Định thức số tính chất định thức 1.1 Định thức Định nghĩa 1.1.1. Mỗi song ánh từ tập {1, 2, . . . , n} vào gọi phép bậc n. Tập tất phép bậc n ký hiệu Sn . Định nghĩa 1.1.2. Dấu phép σ ∈ Sn số sau sgn(σ) = i=j σ(i) − σ(j) ∈ {±1}. i−j Tích chạy cặp số {i, j} ⊂ {1, 2, . . . , n}. Định nghĩa 1.1.3. Cho ma trận vuông A = (aij )n×n với phần tử trường K. Định thức A kí hiệu det A |A|, phần tử sau trường K sgn(σ)aσ(1)1 aσ(2)2 · · · aσ(n)n . det A = σ∈Sn 1.2 Một số tính chất định thức Từ ta ký hiệu Mn (K) tập tất ma trận vuông cấp n trường K. Tính chất 1.2.1. (Đa tuyến tính): Định thức ma trận hàm tuyến tính với cột nó, cố định cột khác. Tức det(α1 , . . . , aαj + bβj , . . . , αn ) = a det(α1 , . . . , αj , . . . , αn ) + b det(α1 , . . . , βj , . . . , αn ), với a, b ∈ K; α1 , . . . , αj , βj , . . . , αn ∈ Kn ; j = 1, ., n. Tính chất 1.2.2. (Thay phiên): Nếu ma trận vuông A có hai cột nhau, det A = 0. Tính chất 1.2.3. (Chuẩn hóa): Định det In = det ··· ··· 0 thức ma trận đơn vị 1: ··· ··· = 1. ··· ··· ··· Hệ 1.2.4. i) Nếu đổi chỗ hai cột ma trận định thức đổi dấu: det( ., αi , ., αj , .) = − det( ., αj , ., αi , .). ii) Nếu vectơ cột ma trận phụ thuộc tuyến tính định thức ma trận không. Nói riêng, ma trận có cột định thức 0. iii) Nếu thêm vào cột ma trận tổ hợp tuyến tính cột khác định thức không thay đổi. Tính chất 1.2.5. Định thức ma trận tam giác tích phần tử đường chéo chính. Tính chất 1.2.6. Giả sử A, B ∈ Mn (K). Khi i) det(AB) = det(A). det(B). ii) A khả nghịch det A = 0. Hơn det(A−1 ) = (det A)−1 . Tính chất 1.2.7. (Định thức ma trận chuyển vị) det(At ) = det A, ∀A ∈ Mn (K). Chương Một số phương pháp tính định thức Biểu thức định nghĩa định thức cấp n hoàn toàn không tiện lợi việc tính định thức với n ≥ 4. Để tính định thức, định thức cấp cao, ta cần sử dụng linh hoạt tính chất chúng, kết hợp với việc hạ cấp định thức nhờ vào định lí Laplace, công thức khai triển định thức theo dòng hay theo cột. Các phép biến đổi sơ cấp cho ta phương pháp tính định thức hiệu thường dùng phương pháp sau. 2.1 Phương pháp khai triển theo dòng cột Khi thấy dòng (hay cột) định thức có nhiều số nên khai triển định thức theo dòng (hay cột) đó. Cơ sở phương pháp định lý Laplace. Định lý 2.1.1. (Khai triển Laplace) Giả sử chọn k dòng (tương ứng k cột) định thức cấp n (1 ≤ k < n). Khi đó, định thức cho tổng tất tích định thức cấp k lấy từ k dòng (tương ứng k cột) chọn với phần bù đại số chúng. Hệ 2.1.2. Cho A = (aij )n×n ma trận vuông cấp n K. Khi ta có (1) Công thức khai triển theo dòng i n det A = ai1 Ai1 + ai2 Ai2 + · · · + ain Ain = aik Aik . k=1 (2) Công thức khai triển theo cột j n det A = a1j A1j + a2j A2j + · · · + anj Anj = akj Akj , k=1 Aij phần bù đại số phần tử aij . Ví dụ 2.1.3. Tính D= −2 10 −4 . Giải Ta nhận thấy cột thứ hai định thức D có nhiều số nhất, khai triển định thức theo cột thứ hai: D = (−1)1+2 (−2) 10 −4 =2(−1)2+1 .1. +2(−1)2+3 .10. (khai triển theo dòng thứ hai) −4 = −2(6.9 − 2.3) − 20(7.2 + 4.6) = −856. −5 −4 −2 −9 Ví dụ 2.1.4. Tính định thức D = 10 . Giải Xét ma trận: x x2 x3 x4 −x2 x1 −x4 x3 . X= −x3 x4 x1 −x2 −x4 −x3 x2 x1 Ta có: x x2 x3 x4 −x2 x1 −x4 x3 t XX = −x3 x4 x1 −x2 −x4 −x3 x2 x1 x1 −x2 −x3 −x4 x2 x1 x3 −x4 x4 x1 x4 −x3 −x2 −x3 . x2 x1 Hay XX t = (x21 + x22 + x23 + x24 )I4 . Khi |XX t | = |X||X t | = |X|2 = (x21 + x22 + x23 + x24 )4 . Vậy |X| = (x21 + x22 + x23 + x24 )2 . a b c d x −y −z −t −b a −d c y x t −z ,B = có dạng ma Xét A = −c d a −b z −t x y −d −c b a t z −y x trận X. Đặt p = ax + by + cz + dt; q = ay − bx + ct − dz; r = az − bt − cx + dy; s = at + bz − cy − dx. p −q −r −s q p s −r . Ta thấy A.B có dạng ma trận Ta có: AB = r −s p q s r −q p X, từ |AB| = |A||B| ta có điều phải chứng minh. Nhận xét 3.5.5. Qua hai ví dụ cuối, ta thấy để áp dụng đẳng thức |AB| = |A||B| ta cần nhận thấy vế cần chứng minh có dạng |AB|, vế 55 lại có dạng |A||B|. Tức là, gọi M = {A ∈ M at(n, K)|A có tính chất T } ta phải chứng minh: Với A, B ∈ M ⇒ A.B ∈ M hay M đóng kín với phép toán nhân ma trận. 3.6 Định thức qua trò chơi Nhiều trò chơi liên quan đến định thức thường hay đòi hỏi người chơi phải suy nghĩ tính kiên nhẫn cao. Ví dụ 3.6.1. Hai người A B chơi trò chơi với luật chơi sau: Lần lượt ghi theo dòng từ trái sang phải số tuỳ ý vào dấu ∗ định thức ∗ ∗ ∗ ∗ ∗ ∗ . ∗ ∗ ∗ A người ghi trước B người ghi sau. Nếu sau thay dấu ∗ mà giá trị định thức dương người A thắng, giá trị định thức âm người B thắng, giá trị định thức hoà. Hãy tìm chiến thuật để người A luôn thắng. Giải a11 a12 a13 Sau đánh số ta có định thức a21 a22 a23 . Chiến thuật để a31 a32 a33 người A thắng: Người A viết a11 = 1, người B viết a12 , người A viết a13 = 0, người B viết a21 , người A viết a22 = + a12 a21 , người B viết a23 , người A viết a31 = 0, người B viết a32 , cuối người A viết a33 = + a23 a32 . Khi 56 a12 a21 + a12 a21 a23 a32 + a23 a32 = (1 + a12 a21 )(1 + a23 a32 ) − a23 a32 − a12 a21 − a12 a21 a23 a32 = > 0. Như với cách chơi không cần biết người B điền vào nào, người A thắng. Ví dụ 3.6.2. Hai sinh viên A B lớp ĐHSP Toán K53 - ĐH Quảng Bình chơi trò chơi sau: Trên hình vuông kẻ ô kích thước 2015 × 2015, nhiệm vụ A chọn 2015 số nguyên tuỳ ý điền vào dòng thứ ma trận X, dòng thứ hai trở dòng thứ nhất. Nhiệm vụ B chỉnh sửa lại phần tử đường chéo cách thêm vào phần tử số nguyên dương b. Trò chơi kết thúc sau điền xong bảng để ma trận Y . B khẳng định det Y chia hết cho b2014 . Khẳng định B hay sai? Hãy chứng minh nhận định bạn. Giải Khẳng định B đúng. Giả sử a1 , a2 , . . . , a2015 2015 số nguyên mà A chọn phần tử đường chéo thêm số nguyên dương b. Khi ta ma trận Y có định thức det Y = a1 + b a2 a3 ··· a2015 a1 a2 + b a3 ··· a2015 a1 a2 a3 + b · · · a2015 ··· ··· ··· ··· a1 a2 a3 · · · a2015 + b . ··· Cộng cột vào cột đầu rút nhân tử định thức ta 57 a2 a3 ··· a2015 a2 + b a3 ··· a2015 a2 a3 + b · · · a2015 ··· ··· ··· ··· a2 a3 · · · a2015 + b det Y = (b + a1 + a2 + · · · + a2015 ) . ··· Tiếp tục từ hàng thứ hai trở đi, lấy hàng trừ hàng thứ ta det Y = (b + a1 + a2 + · · · + a2015 ) a2 a3 · · · a2015 b a3 · · · a2015 b · · · a2015 ··· ··· ··· ··· ··· ··· b = (b + a1 + a2 + · · · + a2015 )b2014 . Vậy det Y chia hết cho b2014 . Do khẳng định B đúng. Ví dụ 3.6.3. Trên hình vuông kẻ ô kích thước × 5, hai đấu thủ luân phiên điền số vào ô trống hình vuông để ma trận cỡ × 5. Biết người thứ điền số người thứ hai điền số 1. Chứng minh với cách điền số người thứ hai người thứ có cách chơi để ma trận thu có định thức không. Giải Người thứ thực cách chơi sau: Đầu tiên điền số vào ô thứ hàng một. Chia ô lại hàng thành hai hình chữ nhật × 2, hàng hàng chia thành hình chữ nhật × với cạnh có độ dài thẳng đứng, hàng hàng chia tương tự hàng hàng 3. Gọi hình chữ nhật đôminô. Sau chơi theo cách: người thứ điền vào ô đôminô người thứ điền vào ô lại. Dễ thấy người thứ thực cách chơi vậy. Sau điền hết 58 25 ô, tổng số đôminô 1, nên tổng hàng hàng (1, 1, 1, 1, 1) tổng hàng hàng 5, định thức không. Ví dụ 3.6.4. (Đề thi Olympic Toán Sinh viên toàn quốc năm 2011) Hai sinh viên A B chơi trò chơi sau: Cho bảng vuông n × n ô, n ≥ 2. Mỗi lượt, A chọn số nguyên điền vào vị trí (i, j) (tuỳ chọn không lặp lại). Sau B quyền chỉnh sửa giá trị cách giữ nguyên thêm bớt đơn vị. Trò chơi kết thúc sau điền xong bảng để nhận ma trận X. B khẳng định có cách để nhận ma trận X khả nghịch điểm bất động (tức vector v = cho Xv = v). Giải B chọn xii ≡ −1 (mod 3), xij ≡ (mod 3) với i = j. Khi det X ≡ (−1)n (mod 3) = nên X khả nghịch. Nếu ta có Xv = v det(X −I) = =⇒ det(X − I) ≡ (mod 3). Mặt khác det(X − I) ≡ det(−2I) ≡ (mâu thuẫn). Vậy nên X điểm bất động. Ví dụ 3.6.5. Trò chơi định thức Tic - Tac - Toe: Có ma trận vuông A cấp chưa điền giá trị. Có hai game thủ chơi, game thủ điền số vào ma trận, game thủ điền số vào ma trận, game thủ điền xen kẽ nhau, game thủ điền trước, ma trận A điền đầy đủ. Nếu det(A) = game thủ thắng, det(A) = game thủ thắng. Giả sử hai game thủ đưa chiến thuật chơi tối ưu nhất. Game thủ thắng? Vì sao? Giải a a a 11 12 13 Giả sử A = a21 a22 a23 a31 a32 a33 . Ta chứng minh game thủ thắng với chiến thuật chơi tối ưu, thật vậy: 59 Vì định thức đổi dấu ta thay đổi vị trí hai hàng hay hai cột, không tính tổng quát ta giả định rằng, bước game thủ đánh số vào ô a11 , game thủ đánh ô a22 : a21 a12 a13 a23 . a31 a32 a33 Đến lượt game thủ chơi xong ô a12 ; a21 ; a23 ; a32 trống. Ta giả sử ô a21 ; a23 trống, game thủ điền vào ô a23 : a21 a12 a13 . a31 a32 a33 Tiếp theo buộc game thủ phải điền vào ô a21 để tránh hàng toàn số 0: 1 a12 a13 . a31 a32 a33 Khi đó: Nếu ô a12 ; a13 ; a32 trống game thủ cần điền vào ô a12 thắng lúc xuất ô buộc game thủ phải chặn ô a32 để tránh cột toàn số ô a13 để tránh hai hàng tỉ lệ: a13 . a31 a32 a33 Nếu ô a12 đánh game thủ cần điền vào ô a33 thắng lúc xuất ô buộc game thủ phải chặn ô a13 để tránh cột toàn số game thủ điền vào ô a23 xuất hai hàng tỉ lệ: 60 1 0 . a31 0 Nếu ô a13 đánh game thủ cần điền vào ô a32 thắng lúc xuất ô buộc game thủ phải chặn ô a12 để tránh cột toàn số game thủ điền vào ô a33 xuất hai hàng tỉ lệ: 1 0 . a31 0 Nếu ô a32 đánh game thủ cần điền vào ô a13 thắng lúc xuất ô buộc game thủ phải chặn ô a33 để tránh cột toàn số ô a12 xuất hai hàng tỉ lệ: a12 a31 a33 . Xuất phát từ trò chơi này, lập trình trò chơi viết phần mềm eclipse với ngôn ngữ lập trình Java cho hai mức trò chơi: mức (ma trận cấp 3) mức (ma trận cấp 5) với chương trình sau: Mức 1: package DinhThuc; import java.applet.Applet; public class GameCaro extends JPanel implements ActionListener { JPanel pan = new JPanel(); public JFrame frame = new JFrame(); public int m = 3, n = 3, dem = 1; public JButton btn[][] = new JButton[m][n]; public GameCaro() { frame.add(pan); pan.setLayout(new GridLayout(m, n)); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { 61 btn[i][j] = new JButton(); btn[i][j].addActionListener(this); pan.add(btn[i][j]);}} for (int i = 0; i < m; i++) for (int j = 0; j < n; j++){ btn[i][j].setBackground(Color.white); btn[i][j].setFont(new Font("Arial",Font.BOLD,60));} try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { frame.setSize(400, 400); frame.setResizable(false); frame.setDefaultCloseOperation(JFrame.EXIT ON CLOSE); Tim o de set text public void actionPerformed(ActionEvent e) { for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (dem btn[i][j].setText("1"); btn[i][j].setForeground(Color.RED); if (dem == 9) { win(i, j, btn[i][j].getText()); for (int i1 = 0; i1 < m; i1++) { for (int j1 = 0; j1 < n; j1++) { btn[i1][j1].setText(""); btn[i1][j1].setBackground(Color.white); dem=0; } dem++; } else { btn[i][j].setText("0"); btn[i][j].setForeground(Color.BLACK); dem++; }}}}} // Kiem tra win public void win(int x, int y, String name) int a00 = Integer.parseInt(btn[0][0].getText()); int a01 = Integer.parseInt(btn[0][1].getText()); int a02 = Integer.parseInt(btn[0][2].getText()); int a10 = Integer.parseInt(btn[1][0].getText()); int a11 = Integer.parseInt(btn[1][1].getText()); int a12 = Integer.parseInt(btn[1][2].getText()); 62 int a20 = Integer.parseInt(btn[2][0].getText()); int a21 = Integer.parseInt(btn[2][1].getText(); int a22 = Integer.parseInt(btn[2][2].getText()); int dt = a00 * a11 * a22 + a01 * a12 * a20 + a02 * a10 * a21 - a02 * a11 * a20 - a01 * a10 * a22 - a00 * a12 * a21; if (dt == 0) JOptionPane.showMessageDialog(null, "Dinh thuc = 0.\nGame thu win!", "Game Over!", JOptionPane.INFORMATION MESSAGE); else JOptionPane.showMessageDialog(null, "Dinh thuc = " + dt + ".\nGame thu win!", "Game Over!", JOptionPane.INFORMATION MESSAGE);} public static void main(String[] args) GameCaro c = new GameCaro(); c.frame.setVisible(true);}} Mức 2: package DinhThuc; import java.applet.Applet; public class GameCaro extends JPanel implements ActionListener { JPanel pan = new JPanel(); public JFrame frame = new JFrame(); public int m = 5, n = 5, dem = 1; public JButton btn[][] = new JButton[m][n]; public GameCaro() { frame.add(pan); pan.setLayout(new GridLayout(m, n)); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { btn[i][j] = new JButton(); btn[i][j].addActionListener(this); pan.add(btn[i][j]);}} for (int i = 0; i < m; i++) for (int j = 0; j < n; j++){ btn[i][j].setBackground(Color.white); btn[i][j].setFont(new Font("Arial",Font.BOLD,60));} try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { frame.setSize(400, 400); 63 frame.setResizable(false); frame.setDefaultCloseOperation(JFrame.EXIT ON CLOSE); Tim o de set text public void actionPerformed(ActionEvent e) { for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (dem btn[i][j].setText("1"); btn[i][j].setForeground(Color.RED); if (dem == 25) { win(i, j, btn[i][j].getText()); for (int i1 = 0; i1 < m; i1++) { for (int j1 = 0; j1 < n; j1++) { btn[i1][j1].setText(""); btn[i1][j1].setBackground(Color.white); dem=0; } dem++; } else { btn[i][j].setText("0"); btn[i][j].setForeground(Color.BLACK); dem++; }}}}} // Kiem tra win public void win(int x, int y, String name) { int a[][] = new int[5][5]; a[0][0] = Integer.parseInt(btn[0][0].getText()); a[0][1] = Integer.parseInt(btn[0][1].getText()); a[0][2] = Integer.parseInt(btn[0][2].getText()); a[0][3] = Integer.parseInt(btn[0][3].getText()); a[0][4] = Integer.parseInt(btn[0][4].getText()); a[1][0] = Integer.parseInt(btn[1][0].getText()); a[1][1] = Integer.parseInt(btn[1][1].getText()); a[1][2] = Integer.parseInt(btn[1][2].getText()); a[1][3] = Integer.parseInt(btn[1][3].getText()); a[1][4] = Integer.parseInt(btn[1][4].getText()); a[2][0] = Integer.parseInt(btn[2][0].getText()); a[2][1] = Integer.parseInt(btn[2][1].getText()); 64 a[2][2] = Integer.parseInt(btn[2][2].getText()); a[2][3] = Integer.parseInt(btn[2][3].getText()); a[2][4] = Integer.parseInt(btn[2][4].getText()); a[3][0] = Integer.parseInt(btn[3][0].getText()); a[3][1] = Integer.parseInt(btn[3][1].getText()); a[3][2] = Integer.parseInt(btn[3][2].getText()); a[3][3] = Integer.parseInt(btn[3][3].getText()); a[3][4] = Integer.parseInt(btn[3][4].getText()); a[4][0] = Integer.parseInt(btn[4][0].getText()); a[4][1] = Integer.parseInt(btn[4][1].getText()); a[4][2] = Integer.parseInt(btn[4][2].getText()); a[4][3] = Integer.parseInt(btn[4][3].getText()); a[4][4] = Integer.parseInt(btn[4][4].getText()); int dt = a[2][0]*a[4][1]*a[3][2]*a[0][4]*a[1][3]-a[2][0]*a[3][1]*a[4][2]*a[0][4]*a[1][3] +a[0][0]*a[4][1]*a[1][2]*a[2][4]*a[3][3]-a[4][0]*a[2][1]*a[3][2]*a[0][4]*a[1][3] -a[2][0]*a[4][1]*a[3][2]*a[0][3]*a[1][4]+a[3][0]*a[4][1]*a[1][2]*a[0][4]*a[2][3] +a[4][0]*a[2][1]*a[0][2]*a[1][3]*a[3][4]+a[4][0]*a[1][1]*a[2][2]*a[0][3]*a[3][4] +a[0][0]*a[1][1]*a[2][2]*a[3][3]*a[4][4]-a[2][0]*a[4][1]*a[1][2]*a[0][4]*a[3][3] -a[3][0]*a[1][1]*a[4][2]*a[0][4]*a[2][3]-a[1][0]*a[0][1]*a[4][2]*a[2][3]*a[3][4] +a[1][0]*a[2][1]*a[0][2]*a[3][3]*a[4][4]+a[2][0]*a[1][1]*a[4][2]*a[0][4]*a[3][3] -a[3][0]*a[1][1]*a[0][2]*a[2][4]*a[4][3]+a[3][0]*a[1][1]*a[4][2]*a[0][3]*a[2][4] +a[3][0]*a[1][1]*a[2][2]*a[0][4]*a[4][3]-a[2][0]*a[1][1]*a[4][2]*a[0][3]*a[3][4] -a[2][0]*a[1][1]*a[3][2]*a[0][4]*a[4][3]-a[4][0]*a[0][1]*a[3][2]*a[1][4]*a[2][3] +a[2][0]*a[3][1]*a[1][2]*a[0][4]*a[4][3]+a[3][0]*a[2][1]*a[1][2]*a[0][3]*a[4][4] +a[3][0]*a[2][1]*a[0][2]*a[1][4]*a[4][3]-a[3][0]*a[2][1]*a[0][2]*a[1][3]*a[4][4] -a[3][0]*a[4][1]*a[0][2]*a[1][4]*a[2][3]+a[3][0]*a[4][1]*a[0][2]*a[1][3]*a[2][4] +a[3][0]*a[2][1]*a[4][2]*a[0][4]*a[1][3]-a[3][0]*a[2][1]*a[4][2]*a[0][3]*a[1][4] 65 -a[3][0]*a[2][1]*a[1][2]*a[0][4]*a[4][3]+a[4][0]*a[0][1]*a[3][2]*a[1][3]*a[2][4] +a[4][0]*a[0][1]*a[2][2]*a[1][4]*a[3][3]-a[4][0]*a[0][1]*a[2][2]*a[1][3]*a[3][4] -a[4][0]*a[0][1]*a[1][2]*a[2][4]*a[3][3]+a[4][0]*a[0][1]*a[1][2]*a[2][3]*a[3][4] -a[3][0]*a[4][1]*a[2][2]*a[0][4]*a[1][3]+a[3][0]*a[4][1]*a[2][2]*a[0][3]*a[1][4] -a[3][0]*a[4][1]*a[1][2]*a[0][3]*a[2][4]+a[4][0]*a[2][1]*a[3][2]*a[0][3]*a[1][4] +a[4][0]*a[2][1]*a[1][2]*a[0][4]*a[3][3]-a[4][0]*a[2][1]*a[1][2]*a[0][3]*a[3][4] -a[3][0]*a[0][1]*a[2][2]*a[1][4]*a[4][3]-a[2][0]*a[3][1]*a[1][2]*a[0][3]*a[4][4] -a[4][0]*a[2][1]*a[0][2]*a[1][4]*a[3][3]+a[3][0]*a[1][1]*a[0][2]*a[2][3]*a[4][4] +a[4][0]*a[1][1]*a[3][2]*a[0][4]*a[2][3]-a[4][0]*a[1][1]*a[3][2]*a[0][3]*a[2][4] -a[4][0]*a[1][1]*a[2][2]*a[0][4]*a[3][3]+a[4][0]*a[1][1]*a[0][2]*a[2][4]*a[3][3] +a[3][0]*a[0][1]*a[2][2]*a[1][3]*a[4][4]-a[4][0]*a[1][1]*a[0][2]*a[2][3]*a[3][4] -a[4][0]*a[3][1]*a[2][2]*a[0][3]*a[1][4]-a[4][0]*a[3][1]*a[1][2]*a[0][4]*a[2][3] +a[4][0]*a[3][1]*a[1][2]*a[0][3]*a[2][4]+a[4][0]*a[3][1]*a[0][2]*a[1][4]*a[2][3] -a[4][0]*a[3][1]*a[0][2]*a[1][3]*a[2][4]-a[0][0]*a[2][1]*a[3][2]*a[1][4]*a[4][3] +a[0][0]*a[2][1]*a[3][2]*a[1][3]*a[4][4]+a[0][0]*a[2][1]*a[1][2]*a[3][4]*a[4][3] -a[0][0]*a[2][1]*a[1][2]*a[3][3]*a[4][4]-a[0][0]*a[1][1]*a[4][2]*a[2][4]*a[3][3] +a[0][0]*a[1][1]*a[4][2]*a[2][3]*a[3][4]+a[0][0]*a[1][1]*a[3][2]*a[2][4]*a[4][3] -a[0][0]*a[1][1]*a[3][2]*a[2][3]*a[4][4]-a[0][0]*a[1][1]*a[2][2]*a[3][4]*a[4][3] +a[4][0]*a[3][1]*a[2][2]*a[0][4]*a[1][3]-a[0][0]*a[3][1]*a[2][2]*a[1][3]*a[4][4] -a[0][0]*a[3][1]*a[1][2]*a[2][4]*a[4][3]+a[0][0]*a[3][1]*a[1][2]*a[2][3]*a[4][4] +a[0][0]*a[2][1]*a[4][2]*a[1][4]*a[3][3]-a[0][0]*a[2][1]*a[4][2]*a[1][3]*a[3][4] +a[0][0]*a[4][1]*a[2][2]*a[1][3]*a[3][4]-a[0][0]*a[4][1]*a[1][2]*a[2][3]*a[3][4] -a[0][0]*a[3][1]*a[4][2]*a[1][4]*a[2][3]+a[0][0]*a[3][1]*a[4][2]*a[1][3]*a[2][4] +a[0][0]*a[3][1]*a[2][2]*a[1][4]*a[4][3]+a[1][0]*a[0][1]*a[2][2]*a[3][4]*a[4][3] -a[1][0]*a[0][1]*a[2][2]*a[3][3]*a[4][4]+a[0][0]*a[4][1]*a[3][2]*a[1][4]*a[2][3] -a[0][0]*a[4][1]*a[3][2]*a[1][3]*a[2][4]-a[0][0]*a[4][1]*a[2][2]*a[1][4]*a[3][3] +a[1][0]*a[0][1]*a[4][2]*a[2][4]*a[3][3]-a[1][0]*a[0][1]*a[3][2]*a[2][4]*a[4][3] 66 +a[1][0]*a[0][1]*a[3][2]*a[2][3]*a[4][4]-a[1][0]*a[4][1]*a[0][2]*a[2][4]*a[3][3] +a[1][0]*a[4][1]*a[0][2]*a[2][3]*a[3][4]+a[1][0]*a[3][1]*a[4][2]*a[0][4]*a[2][3] -a[1][0]*a[3][1]*a[4][2]*a[0][3]*a[2][4]-a[1][0]*a[3][1]*a[2][2]*a[0][4]*a[4][3] +a[1][0]*a[3][1]*a[2][2]*a[0][3]*a[4][4]+a[1][0]*a[3][1]*a[0][2]*a[2][4]*a[4][3] -a[1][0]*a[3][1]*a[0][2]*a[2][3]*a[4][4]-a[1][0]*a[2][1]*a[4][2]*a[0][4]*a[3][3] +a[1][0]*a[2][1]*a[4][2]*a[0][3]*a[3][4]+a[1][0]*a[2][1]*a[3][2]*a[0][4]*a[4][3] -a[1][0]*a[2][1]*a[3][2]*a[0][3]*a[4][4]-a[1][0]*a[2][1]*a[0][2]*a[3][4]*a[4][3] +a[2][0]*a[1][1]*a[0][2]*a[3][4]*a[4][3]-a[2][0]*a[1][1]*a[0][2]*a[3][3]*a[4][4] -a[2][0]*a[0][1]*a[4][2]*a[1][4]*a[3][3]+a[2][0]*a[0][1]*a[4][2]*a[1][3]*a[3][4] +a[2][0]*a[0][1]*a[3][2]*a[1][4]*a[4][3]-a[2][0]*a[0][1]*a[3][2]*a[1][3]*a[4][4] -a[2][0]*a[0][1]*a[1][2]*a[3][4]*a[4][3]+a[2][0]*a[0][1]*a[1][2]*a[3][3]*a[4][4] -a[1][0]*a[4][1]*a[3][2]*a[0][4]*a[2][3]+a[1][0]*a[4][1]*a[3][2]*a[0][3]*a[2][4] +a[1][0]*a[4][1]*a[2][2]*a[0][4]*a[3][3]-a[1][0]*a[4][1]*a[2][2]*a[0][3]*a[3][4] +a[3][0]*a[0][1]*a[4][2]*a[1][4]*a[2][3]+a[2][0]*a[4][1]*a[0][2]*a[1][4]*a[3][3] -a[2][0]*a[3][1]*a[0][2]*a[1][4]*a[4][3]-a[3][0]*a[1][1]*a[2][2]*a[0][3]*a[4][4] +a[2][0]*a[3][1]*a[4][2]*a[0][3]*a[1][4]-a[3][0]*a[0][1]*a[1][2]*a[2][3]*a[4][4] +a[2][0]*a[4][1]*a[1][2]*a[0][3]*a[3][4]-a[3][0]*a[0][1]*a[4][2]*a[1][3]*a[2][4] +a[2][0]*a[1][1]*a[3][2]*a[0][3]*a[4][4]+a[3][0]*a[0][1]*a[1][2]*a[2][4]*a[4][3] +a[2][0]*a[3][1]*a[0][2]*a[1][3]*a[4][4]-a[2][0]*a[4][1]*a[0][2]*a[1][3]*a[3][4]; if (dt == 0) JOptionPane.showMessageDialog(null, "Dinh thuc = 0.\nGame thu win!", "Game Over!", JOptionPane.INFORMATION MESSAGE); else JOptionPane.showMessageDialog(null, "Dinh thuc = " + dt + ".\nGame thu win!", "Game Over!", JOptionPane.INFORMATION MESSAGE); }public static void main(String[] args) { GameCaro c = new GameCaro(); c.frame.setVisible(true); } } Sau chạy chương trình gộp mức ta thu trò chơi sau: 67 nn 68 KẾT LUẬN Khóa luận thu số kết sau: - Trình bày định nghĩa số tính chất định thức. - Hệ thống số phương pháp tính định thức. - Đưa ví dụ minh họa ứng dụng định thức: giải hệ phương trình tuyến tính, xét tính suy biến ma trận, tìm ma trận nghịch đảo, chứng minh độc lập tuyến tính hệ hàm, chứng minh số đẳng thức, trò chơi định thức. - Lập trình thành công trò chơi định thức Tic - Tac - Toe viết phần mềm eclipse với ngôn ngữ lập trình Java cho hai mức trò chơi: mức (ma trận cấp 3) mức (ma trận cấp 5). Hướng nghiên cứu Khóa luận: - Tiếp tục nghiên cứu sâu ứng dụng định thức. - Hoàn chỉnh trò chơi định thức Tic - Tac - Toe với hai người chơi người chơi (con người), người chơi (máy tính) tiếp tục nâng cấp trò chơi với mức lớn độ khó cao hơn. Kết có Khóa luận cố gắng thân, nhiên có hạn chế định. Vì vậy, em mong nhận góp ý quý báu Quý Thầy Cô bạn để Khóa luận hoàn thiện hơn. Cuối cùng, lần em xin bày tỏ lòng biết ơn sâu sắc đến cô giáo hướng dẫn TS. Lê Thị Hoài Thu Quý Thầy Cô giảng dạy em suốt trình học tập hoàn thành khóa luận. 69 TÀI LIỆU THAM KHẢO 1. Lê Tuấn Hoa (2006), Đại số tuyến tính qua ví dụ tập, Nxb Đại học quốc gia Hà Nội. 2. Nguyễn Hữu Việt Hưng (2001), Đại số tuyến tính, Nxb Đại học quốc gia Hà Nội. 3. Nguyễn Văn Mậu (2006), Các đề thi Olympic Toán Sinh viên toàn quốc, Nxb Giáo dục. 4. Ngô Việt Trung (2001), Giáo trình đại số tuyến tính, Nxb Đại học quốc gia Hà Nội. 5. Carl. D. Meyer (2000), Matrix Analysis and Applied Linear Algebra, SIAM. 6. www.youtube.com/watch?v=T-5sTT7ctb8 7. www.youtube.com/watch?v=SLWD7hCGZvg 70 [...]... Như vậy Dn = cos nx Kết luận: Phương pháp tính định thức bằng quy nạp thường được sử dụng trong việc tính định thức cấp n mà ta đã dự đoán được dạng tổng quát của nó 18 2.4 Phương pháp truy hồi Phương pháp truy hồi là biểu diễn định thức cần tính qua định thức có cấp thấp hơn có dạng xác định và theo công thức xác định Trong phương pháp truy hồi, ta dùng cách khai triển định thức theo các dòng hoặc... đa thức f (x) = x4 − x + 1 Áp dụng định lí Vi-et ta có det A = 2 Kết luận: Phương pháp biểu diễn định thức thành tổng các định thức rất hiệu quả đối với các định thức có các phần tử dạng tổng Tuy nhiên ta phải biết cách chia dạng và nhận ra các đặc điểm của mỗi dạng Khi đó việc áp dụng cách này là đơn giản và dễ dàng 2.6 Phương pháp biểu diễn định thức thành tích các định thức Giả sử ta cần tính định. .. Kết luận: Phương pháp sử dụng đa thức để tính định thức là một phương pháp độc đáo và hiệu quả Khi trong định thức các phần tử có dạng của các hàm đa thức thì việc sử dụng đa thức là hay nhất so với các phương pháp khác do nó rút ngắn được thời gian và các bước thực hiện 33 2.8 Phương pháp biến đổi tất cả các phần tử của định thức Phương pháp này được áp dụng khi thay đổi tất cả các phần tử của định thức. .. thức bằng truy hồi thường được sử dụng trong việc tính định thức cấp n mà ta có thể biến đổi về định thức có cấp thấp hơn có dạng xác định 22 2.5 Phương pháp biểu diễn định thức thành tổng các định thức Nhiều định thức cấp n được tính dễ dàng bằng cách tách định thức (theo các dòng hoặc theo các cột) thành tổng các định thức cùng cấp Các định thức mới này thường bằng 0 hoặc được tính dễ dàng Để biết... cột của định thức, sau n lần tách ta có det A là tổng của 2n định thức cấp n Cột thứ i của các định thức này chính là cột loại (1) hoặc loại (2) của cột thứ i của định thức ban đầu Ta chia 2n định thức thành ba dạng: • Dạng 1: Bao gồm các định thức có từ hai cột loại (2) trở lên Vì các cột loại (2) tỉ lệ với nhau nên tất cả các định thức này có giá trị bằng 0 23 • Dạng 2: Bao gồm các định thức có đúng... | là một định thức Vandermonde nên dễ dàng tính được n |A| = |At | = n (y − xi ) i=1 (xj − xi ) Để tính |B| ta khai triển định 1≤i . học, giải tích, toán kinh tế. Ngoài ra nó còn có ứng dụng trong vật lý, tin học Với mong muốn tìm hiểu về định thức và ứng dụng của nó, em đã chọn và nghiên cứu đề tài khóa luận " ;Định thức và. dung khóa luận được trình bày trong 3 chương: Chương 1: Định thức và một số tính chất của định thức Chương 2: Một số phương pháp tính định thức Chương 3: Một số ví dụ minh họa về ứng dụng của định. chất của định thức, các phương pháp tính định thức, đặc biệt có được cái nhìn về định thức, về những ứng dụng của nó. 6. Bố cục khóa luận Ngoài lời cảm ơn, phần mở đầu, kết luận, phụ lục và tài