ỨNG DỤNG MAPLE TRONG MỘT SỐ VẤN ĐỀ CỦA ĐẠI SỐ TUYẾN TÍNH

24 916 2
ỨNG DỤNG MAPLE TRONG MỘT SỐ VẤN ĐỀ CỦA ĐẠI SỐ TUYẾN TÍNH

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đại Học Quốc Gia TP.HCM Trường Đại Học Công Nghệ Thông Tin BÀI THU HOẠCH MÔN LẬP TRÌNH SYMBOLIC CHO TRÍ TUỆ NHÂN TẠO ĐỀ TÀI: ỨNG DỤNG MAPLE TRONG MỘT SỐ VẤN ĐỀ CỦA ĐẠI SỐ TUYẾN TÍNH GVHD : PGS.TS Đỗ Văn Nhơn HVTH : Trịnh Ngọc Thư Mã số : CH1102017 Lớp : Cao học khóa 6 HÀ NỘI – 2013 Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo MỤC LỤC LỜI MỞ ĐẦU 3 PHẦN A: GIỚI THIỆU 4 1. GIỚI THIỆU VỀ MAPLE 4 2. GIỚI THIỆU VỀ LẬP TRÌNH TRONG MAPATH 4 3. CÁC TÍNH NĂNG CƠ BẢN CỦA MAPATH 5 PHẦN B: ỨNG DỤNG CỦA MAPLE TRONG MỘT SỐ VẤN ĐỀ CỦA ĐẠI SỐ TUYẾN TÍNH 6 1. CÁC PHÉP TOÁN ĐẠI SỐ TRÊN MA TRẬN VÀ VECTƠ 6 1.1 Một số lệnh tạo ma trận cấp mxn: 6 1.2 Tạo vectơ 7 1.3. Các phép tính trên ma trận và vectơ 7 1.4 Tìm vết của ma trận (tổng các phần tử thuộc đường chéo chính) 11 1.5 Tạo ma trận con từ một ma trận cho trước 11 1.6 Tạo một vectơ từ một ma trận: 12 1.7 Trích một dòng, cột của ma trận: 12 1.8 Hoán vị dòng, cột của một ma trận: 13 1.9 Tìm ma trận chuyển vị: 13 1.10 Tìm ma trận liên hợp: 14 1.11 Tìm ma trận đặc trưng: 14 1.12 Tìm đa thức đặc trưng của một ma trận: 15 1.13 Biến đổi ma trận về dạng bậc thang 15 1.14 Phép khử Gauss-Jordan 15 1.16 Tìm vectơ riêng của ma trận A 16 1.17 Tìm giá trị riêng của ma trận A 16 1.18 Tìm hạng của ma trận A 17 1.19 Tính định thức của ma trận A 17 1.20 Tìm ma trận nghịch đảo của ma trận A 18 1.21 Biến đổi ma trận về dạng tam giác 18 2. GIẢI PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 19 2.1. Lập hệ phương trình tuyến tính từ các hệ số của ma trận: 19 2.2 Giải hệ phương trình đại số tuyến tính 20 TÀI LIỆU THAM KHẢO 22 [1]. CORLESS R. M., ESSENTIAL MAPLE 7, AN INTRODUCTION FOR SCIENTIFIC PROGRAMMERS, SPRINGER, 2002. [2]. PHẠM HUY ĐIỂN, TÍNH TOÁN, LẬP TRÌNH VÀ GIẢNG DẠY TOÁN HỌC TRÊN MAPLE, NXB KH VÀ KT, 2002. [3]. PUTZ J., MAPLE ANIMATION, CHARMAN & HALL/CRC, 2003. [4]. NGUYỄN CHÁNH TÚ, ỨNG DỤNG MAPLE TRONG ĐỔI MỚI PHƯƠNG PHÁP HỌC TẬP VÀ GIẢNG DẠY TOÁN HỌC, KỶ YẾU HỘI THẢO KH, ĐHSP HUẾ, 4/2004. [5]. WATERLOO MAPLE , MAPLE 9, LEARNING GUIDE, 2004. [6]. WATERLOO MAPLE , MAPLE 7, PROGRAMMING GUIDE, 2004. [7]. ZHONGGANG ZENG, SCIENTIFIC COMPUTING WITH MAPLE PROGRAMMING, 2001. [8]. HTTP://MAPLEVN2008.WORDPRESS.COM 22 HVTH: Trịnh Ngọc Thư – CH1102017 Trang 1 Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo LỜI CẢM ƠN Em xin cảm ơn thầy PGS.TS Đỗ Văn Nhơn đã chỉ bảo và giảng dạy môn học cho chúng em trong suốt thời gian qua. Em xin gửi lời cảm ơn chân thành đến tất cả các Thầy Cô trường Đại học Công nghệ thông tin đã giảng dạy tận tình các kiến thức cần thiết và bổ ích, tạo cơ sở cho việc làm luận văn và công việc của em sau này. Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình, nhưng chắc rằng bài viết khó tránh khỏi thiếu sót. Em rất mong nhận được sự góp ý và bảo tận tình của thầy và các bạn để bài viết của em có thể hoàn thiện hơn. Em xin chân thành cảm ơn./. Hà Nội, tháng 1 năm 2013 Học viên thực hiện Trịnh Ngọc Thư HVTH: Trịnh Ngọc Thư – CH1102017 Trang 2 Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo LỜI MỞ ĐẦU Chúng ta đang sống trong thế kỷ thứ 21 thế kỷ của sự bùng nổ về công nghệ mà đỉnh cao là công nghệ thông tin. Công nghệ thông tin đã và đang ứng dụng nhiều vào phương pháp học tập, nghiên cứu. Kèm theo đó nó đang đổi mới nghệ thuật giảng dạy vốn mang sắc màu truyền thống, nay đã được điểm thêm những nét mới đầy hấp dẫn và hiệu quả. Có một thực tế là học sinh và cả sinh viên đang ngày càng nhàm chán hơn với cách dạy và học truyền thống giờ đây người học nhìn thấy được những minh họa sinh động rõ ràng và dễ hiểu. Đồng thời không phải lặp đi lặp lại một cách thật nhàm chán các tính toán hay các phép biến đổi nặng nề mà không hiểu được bản chất thật sự. Hiện nay ở Việt Nam chúng ta đã có những phần mềm nổi tiếng hỗ trợ giáo viên, học sinh, sinh viên trong giảng dạy và học tập, như Maple. Để hiểu hơn về vấn đề này em xin chọn đề tài : “ Ứng dụng Maple trong một số vấn đề của đại số tuyến tính”. HVTH: Trịnh Ngọc Thư – CH1102017 Trang 3 Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo PHẦN A: GIỚI THIỆU 1. GIỚI THIỆU VỀ MAPLE Maple là một hệ thống tính toán trên các biểu thức đại số và minh họa toán rất mạnh mẽ được phát triển bởi các nhà nghiên cứu của Đại học Waterloo (Canada) từ năm 1980 và được thương mại hoá bởi công ty Warterloo Maple Inc.(http://www.maplesoft.com), phiên bản Maple đầu tiên ra đời năm 1980, đến nay đã phát triển đến phiên bản 13 (2009) và ngày càng hoàn thiện hơn. Maple có cách cài đặt đơn giản, chạy được trên tất cả các hệ điều hành, cấu trúc linh hoạt dễ sử dụng, đặc biệt có trình trợ giúp Help nên tạo điều kiện cho người dùng dể sử dụng. Từ phiên bản 7 Maple đã cung cấp các công cụ trực quan, các gói lệnh tự học đối với toán phổ thông và đại học. Với ưu điểm đó thì Maple trở thành sự lựa chọn sử dụng của nhiều nước trên thế giới. Một số tính năng cơ bản của Maple như sau: - Là một hệ thống tính toán trên các biểu thức đại số; - Có thể thực hiện hầu hết các phép toán cơ bản trong chương trình toán học phổ thông và đại học; - Cung cấp các công cụ minh họa hình học thuận tiện như: Vẽ đồ thị tĩnh hoặc động của các đường, các mặt được cho bởi các hàm tùy ý trong nhiều hệ trục tọa độ khác nhau; - Ngôn ngữ lập trình đơn giản và mạnh mẽ có khả năng tương tác với các ngôn ngữ khác như Latex, Word, HTML, - Một công cụ biên soạn giáo án và bài giảng điện tử, thích hợp với các lớp học tương tác trực tiếp; 2. GIỚI THIỆU VỀ LẬP TRÌNH TRONG MAPATH Một chương trình tính toán thường có ba phần: Dữ liệu vào Phương pháp Kết quả Cấu trúc của một chương trình trong mapath thường có dạng: HVTH: Trịnh Ngọc Thư – CH1102017 Trang 4 Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo Tên_chương_trình:=proc(các đối số) Local các biến; thuật toán xử lý; end; 3. CÁC TÍNH NĂNG CƠ BẢN CỦA MAPATH Là một hệ thống các toán trên các biểu thức đại số; Có thể thực hiện được hầu hết các phép toán cở bản trong chương trình toán đại học và sau đại học; Cung cấp các công cụ minh họa hình học thuận tiện gồm: vẽ đồ thị tĩnh và động của các đường và mặt được cho bởi các hàm tùy ý trong nhiều hệ tọa độ khác nhau; Một ngôn ngữ lập trình đơn giản và mạnh mẽ có khả năng tương tác với ngôn ngữ lập trình khác; Cho phép trích xuất ra các định dạng khác nhau như LaTex, Word, HTML, … Một công cụ biên soạn giáo án và bài giảng điện tử, thích hợp với các lớp học tương tác trực tiếp Một trợ giáo hữu ích cho học sinh vào sinh viên trong việc tự học. Chương trình Maple cho phép ta tính định thức ma trận, giải hệ phương trình tuyến tính. Ngoài ra, Maple còn cho phép ta tìm ra giá trị riêng, vectơ riêng, đa thức đặc trưng, tìm dạng chính tắc của ma trận và tính rất nhiều ma trận đặc biệt như Hilbert, Toeplitz v/v… Các lệnh của đại số tuyến tính được cài sẵn trong gói công cụ linalg do đó trước khi sử dụng ta phải nạp gói công cụ này vào trong bộ nhớ bằng lệnh: >with(linalg): Trong phạm vi phụ lục này sẽ giới thiệu đôi nét về ứng dụng của chương trình Maple trong một số phép toán đại số trên ma trận và vectơ, cũng như việc giải một hệ phương trình tuyến tính đơn giản. Để biết thêm các ứng dụng khác của chương trình Maple, sinh viên có thể tham khảo ở các tài liệu khác. HVTH: Trịnh Ngọc Thư – CH1102017 Trang 5 Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo PHẦN B: ỨNG DỤNG CỦA MAPLE TRONG MỘT SỐ VẤN ĐỀ CỦA ĐẠI SỐ TUYẾN TÍNH 1. CÁC PHÉP TOÁN ĐẠI SỐ TRÊN MA TRẬN VÀ VECTƠ 1.1 Một số lệnh tạo ma trận cấp mxn: Cú pháp: >matrix(m, n, L); Trong đó: + L: Bảng liệt kê các phần tử của ma trận theo thứ tự từ trái sang phải và từ trên xuống dưới. + 11 12 1 21 22 2 1 2 [[ , , , ],[ , , , ], ,[ , , , ]] n n m m mn L a a a a a a a a a= + Trong trường hợp L được xác định bởi các phần tử cụ thể thì ta có thể bỏ qua các chỉ số m, n. Ví dụ: Tạo ma trận 3 dòng, 4 cột sau (m = 3, n = 4) >matrix(3,4,[[2,1,3,5],[1,8,3,9],[2,5,0,1]]); Ngoài ra, tạo ma trận cấp mxn với các phần tử của ma trận là các giá trị hàm của f xác định trên các chỉ số hàng và cột của ma trận, ta thực hiện như sau: Ví dụ: Tạo ma trận (1,1) (1,2) (2,1) (2,2) f f C f f   =     >C:=matrix(2,2,f); Để tạo ma trận bằng lệnh tạo mảng, thì ta sử dụng cú pháp: array(1 m,1 n,L) với L là các phần tử của ma trận. Ví dụ: >A:=array(1 3,1 2,[1,2],[2,6],[4,23]]); HVTH: Trịnh Ngọc Thư – CH1102017 Trang 6 Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo 1 2 : 2 6 4 23 A     =       1.2 Tạo vectơ Cú pháp: • vector(n, K): Tạo vectơ với các phần tử được xác định trong K. • Vector [O](n,init): Tạo một vectơ với các phần tử ban đầu được xác định trong init. Trong đó: n: là số phần tử của vectơ O: Tùy chọn row hoặc column (mặc định là column) Ví dụ: >vector(3,[2,3,36]); [2,3,36] >s:={(1)=1,(2)=5}; Vector(2,s); 1 5       >Vector[column]([2,3]); 2 3       >Vector[row](3,[1,2,4]) [ ] 1 2 4 1.3. Các phép tính trên ma trận và vectơ 1.3.1 So sánh hai ma trận: Để so sánh hai ma trận A và B có cùng số hàng và số cột ta dùng lệnh sau: equal(A, B) Ví dụ: >A:=matrix([[1,2],[3,4]]); >B:=matrix(2,2,[1,2],[3,4]]); HVTH: Trịnh Ngọc Thư – CH1102017 Trang 7 Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo equal(A,B); Ta được kết quả 1 2 : 3 4 1 2 : 3 4 A B true   =       =     1.3.2 Tổng hai ma trận: Dùng lệnh đánh giá evalm để tính tổng của hai ma trận Cú pháp: evalm(expr) Trong đó expr là biểu thức tổng, hiệu, tích của các ma trận. Ví dụ: Tính tổng các ma trận sau: >restart: >with(linalg): C:=matrix([[2,3],[4,7]]); E:=matrix([[1,a],[9,1]]); F:=matrix([[b,0],[1,0]]); Warning: the protected names norm and trace have been redefined and unprotected 2 3 : 4 7 C   =     1 : 9 1 a E   =     0 : 1 0 b F   =     >evalm(C+E); 3 3 13 8 a+       >evalm(C+2*E-F); 4 3 2 21 9 b a− +       HVTH: Trịnh Ngọc Thư – CH1102017 Trang 8 [...]... Vậy nghiệm của hệ là: x = 39/8; y = -101/8; z = 7 HVTH: Trịnh Ngọc Thư – CH1102017 Trang 20 Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo KẾT LUẬN Bài thu hoạch của em đã tìm hiểu được một số ứng dụng của Maple trong một số vấn đề của đại số tuyến tính Từ những kết quả này, em nhận thấy rằng nếu khai thác tốt tính năng của maple sẽ đem lại một công cụ rất hiệu quả trong dạy học, trong nghiên... thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo 2.2 Giải hệ phương trình đại số tuyến tính Phương trình đại số tuyến tính có dạng Ax = u có nhiều phương pháp giải khác nhau thông qua các phép biến đổi Cú pháp lệnh trực tiếp giải hệ phương trình đại số tuyến tính là linsolve(A, u) Trong đó: + A: ma trận xác định vế trái của hệ phương trình; + u: Vectơ xác định vế phải Ví dụ >with(linalg); >A:=matrix(3,3,[3,1,0,3,1,1,1,3,5]);... trí tuệ nhân tạo 1 -3 3   B := 0 4 -6    0 0 4    >r; 3 >d; 16 2 GIẢI PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 2.1 Lập hệ phương trình tuyến tính từ các hệ số của ma trận: Cú pháp with(linalg); geneqns(A,vars); geneqns(A,vars,b); Trong đó A: là ma trận Vars: Tên các biến của hệ phương trình b: Vectơ phải của hệ Ví dụ: >with(linalg); >A:=matrix(3,3,[3,1,0,3,1,1,1,3,5]); b:=array([2,9,2]); 3 1 0 ... chỉ số dòng, cột +Rlist, Clist: Danh sách chỉ số dòng, cột Ví dụ: Tạo ma trận con P từ ma trận A >with(linalg); A:matrix(2,3,[8,2,5,2,0,3]);  8 2 5 A :=    2 0 3 >P:=submatrix(A,1 2,2 3);  2 5 P :=    0 3 >P:=submatrix(A,[1,2],[1]); 8  P :=    2 1.6 Tạo một vectơ từ một ma trận: Cú pháp: subvector(A, r, c) Tạo vectơ từ các phần tử của A với chỉ số dòng trong r và chỉ số cột trong c Trong. .. Corless R M., Essential Maple 7, An Introduction for Scientific Programmers, Springer, 2002 [2] Phạm Huy Điển, Tính toán, lập trình và giảng dạy toán học trên Maple, NXB KH và KT, 2002 [3] Putz J., Maple Animation, Charman & Hall/CRC, 2003 [4] Nguyễn Chánh Tú, Ứng dụng Maple trong đổi mới phương pháp học tập và giảng dạy toán học, Kỷ yếu Hội thảo KH, ĐHSP Huế, 4/2004 [5] Waterloo Maple , Maple 9, Learning... Trang 10 Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo Chú ý: Đối với số phức tích vô hướng của u và v bằng tổng các tích của u[i] nhân với liên hiệp phức của v[i]: u.v = ∑ ui (conjugate(vi )) Nếu trong lệnh có thêm tham số orthogonal thì tích được tính như tổng của u[i] và v[i]: uv = ∑ ui vi i Tuy nhiên, đối với số thực thì hai định nghĩa trên trùng nhau Ví dụ: >u:=vector([2+I,3-2*I]); u:=... trong r và chỉ số cột trong c Trong đó: + A là ma trận + r, c là bảng, vùng hoặc số nguyên chỉ số dòng, cột Ví dụ: >subvector(A,1,1 3); [8, 2, 5] 1.7 Trích một dòng, cột của ma trận: Cú pháp:  row(A, i): Trích dòng thứ i của ma trận A  row(A, i k): Trích từ dòng i đến dòng k của ma trận A  col(A, i): Trích từ cột thứ i của ma trận A HVTH: Trịnh Ngọc Thư – CH1102017 Trang 12 Bài thu hoạch môn Lập trình... đến cột thứ k của ma trận A Trong đó: - A là ma trận - i, k là các chỉ số nguyên Ví dụ: >A:=matrix(3,3,[2,2,5,9,8,5,2,7,2]); 2 2 5 A :=  9 8 5     2 7 2   >u:=row(A,3); u:=[2, 7, 2] >v:=row(A,1 3); v:=[2, 2, 5],[9,8,5],[2,7,2] 1.8 Hoán vị dòng, cột của một ma trận: Cú pháp: swaprow(A, r1, r2): Hoán vị 02 dòng r1 và r2 của ma trận A swapcol(A, c1, c2): Hoán vị 02 cột c1 và c2 của ma trận A... công cụ rất hiệu quả trong dạy học, trong nghiên cứu khoa học và trong nhiều lĩnh vực khác nữa Maple là nguồn mở cho phép người dùng tạo ra các lệnh riêng của mình bằng các mô đun lệnh có sẵn và ráp nối bằng các lệnh đơn giản Em xin cảm ơn thầy đã cho em một môn học thật là bổ ích, để em có thêm kiến thức trong bước đường nghiên cứu khoa học của mình HVTH: Trịnh Ngọc Thư – CH1102017 Trang 21 Bài thu hoạch... evalm(B&*A); Ta được kết quả: A: = [3, 4] B:=[1,2] 11 Hoặc khi dùng lệnh multiply >multiply(A,B); 11 Chú ý: Khi nhân và tính tổng cùng một lúc bằng lệnh lượng giá, thì máy sẽ thực hiện theo thứ tự nhân trước rồi cộng trừ sau 1.3.4 Tính tích trong của ma trận và vectơ Cú pháp: innerprod(u,A1,A2,…,An,v) Trong đó: + u, v là các vectơ + A1, A2, …,An là các ma trận Ví dụ: >u:=vector(2,[1,2]); u:=[1, 2] HVTH: Trịnh . TRÌNH TRONG MAPATH 4 3. CÁC TÍNH NĂNG CƠ BẢN CỦA MAPATH 5 PHẦN B: ỨNG DỤNG CỦA MAPLE TRONG MỘT SỐ VẤN ĐỀ CỦA ĐẠI SỐ TUYẾN TÍNH 6 1. CÁC PHÉP TOÁN ĐẠI SỐ TRÊN MA TRẬN VÀ VECTƠ 6 1.1 Một số lệnh. viên, học sinh, sinh viên trong giảng dạy và học tập, như Maple. Để hiểu hơn về vấn đề này em xin chọn đề tài : “ Ứng dụng Maple trong một số vấn đề của đại số tuyến tính . HVTH: Trịnh Ngọc Thư. Đại Học Quốc Gia TP.HCM Trường Đại Học Công Nghệ Thông Tin BÀI THU HOẠCH MÔN LẬP TRÌNH SYMBOLIC CHO TRÍ TUỆ NHÂN TẠO ĐỀ TÀI: ỨNG DỤNG MAPLE TRONG MỘT SỐ VẤN ĐỀ CỦA ĐẠI SỐ TUYẾN TÍNH GVHD

Ngày đăng: 10/04/2015, 08:27

Từ khóa liên quan

Mục lục

  • LỜI MỞ ĐẦU

  • PHẦN A: GIỚI THIỆU

    • 1. GIỚI THIỆU VỀ MAPLE

    • 2. GIỚI THIỆU VỀ LẬP TRÌNH TRONG MAPATH

    • 3. CÁC TÍNH NĂNG CƠ BẢN CỦA MAPATH

    • PHẦN B: ỨNG DỤNG CỦA MAPLE TRONG MỘT SỐ VẤN ĐỀ CỦA ĐẠI SỐ TUYẾN TÍNH

      • 1. CÁC PHÉP TOÁN ĐẠI SỐ TRÊN MA TRẬN VÀ VECTƠ

        • 1.1 Một số lệnh tạo ma trận cấp mxn:

        • 1.2 Tạo vectơ

        • 1.3. Các phép tính trên ma trận và vectơ

        • 1.4 Tìm vết của ma trận (tổng các phần tử thuộc đường chéo chính)

        • 1.5 Tạo ma trận con từ một ma trận cho trước

        • 1.6 Tạo một vectơ từ một ma trận:

        • 1.7 Trích một dòng, cột của ma trận:

        • 1.8 Hoán vị dòng, cột của một ma trận:

        • 1.9 Tìm ma trận chuyển vị:

        • 1.10 Tìm ma trận liên hợp:

        • 1.11 Tìm ma trận đặc trưng:

        • 1.12 Tìm đa thức đặc trưng của một ma trận:

        • 1.13 Biến đổi ma trận về dạng bậc thang

        • 1.14 Phép khử Gauss-Jordan

        • 1.16 Tìm vectơ riêng của ma trận A

        • 1.17 Tìm giá trị riêng của ma trận A

Tài liệu cùng người dùng

Tài liệu liên quan