1. Trang chủ
  2. » Tất cả

Ứng dụng maple trong một số vấn đề của đại số tuyến tính

22 3 0

Đ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

Bài thu hoạch môn Lập trình Symbolic Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo MỤC LỤC 2LỜI CẢM ƠN 3LỜI MỞ ĐẦU 4PHẦN A GIỚI THIỆU 41 GIỚI THIỆU VỀ MAPLE 42 GIỚI THIỆU VỀ LẬP TRÌNH TRONG[.]

Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo MỤC LỤC LỜI CẢM ƠN LỜI MỞ ĐẦU PHẦN A: GIỚI THIỆU .4 GIỚI THIỆU VỀ MAPLE .4 GIỚI THIỆU VỀ LẬP TRÌNH TRONG MAPATH .4 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 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 ma trận vectơ 1.4 Tìm vết ma trận (tổng phần tử thuộc đường chéo chính) 11 1.5 Tạo ma trận từ ma trận cho trước 11 1.6 Tạo vectơ từ ma trận: .12 1.7 Trích dịng, cột ma trận: 12 1.8 Hốn vị dịng, cộ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 ma trận: 15 1.13 Biến đổi ma trận dạng bậc thang 15 1.14 Phép khử Gauss-Jordan .15 1.16 Tìm vectơ riêng ma trận A 16 1.17 Tìm giá trị riêng ma trận A 16 1.18 Tìm hạng ma trận A .17 1.19 Tính định thức ma trận A .17 1.20 Tìm ma trận nghịch đảo ma trận A 18 1.21 Biến đổi ma trận dạng tam giác .18 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ừ hệ số ma trận: 19 2.2 Giải hệ phương trình đại số tuyến tính 20 KẾT LUẬN 21 TÀI LIỆU THAM KHẢO 22 Trang Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo LỜI CẢM ƠN Em xin cảm ơn thầy PGS.TS Đỗ Văn Nhơn bảo giảng dạy môn học cho chúng em suốt thời gian qua Em xin gửi lời cảm ơn chân thành đến tất Thầy Cô trường Đại học Công nghệ thơng tin giảng dạy tận tình kiến thức cần thiết bổ ích, tạo sở cho việc làm luận văn công việc em sau Tuy nhiên, thời gian hạn hẹp, nỗ lực mình, viết khó tránh khỏi thiếu sót Em mong nhận góp ý bảo tận tình thầy bạn để viết em hoàn thiện Em xin chân thành cảm ơn./ Hà Nội, tháng năm 2013 Học viên thực Trịnh Ngọc Thư Trang Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo LỜI MỞ ĐẦU Chúng ta sống kỷ thứ 21 kỷ bùng nổ công nghệ mà đỉnh cao công nghệ thông tin Công nghệ thông tin ứng dụng nhiều vào phương pháp học tập, nghiên cứu Kèm theo đổi nghệ thuật giảng dạy vốn mang sắc màu truyền thống, điểm thêm nét đầy hấp dẫn hiệu Có thực tế học sinh sinh viên ngày nhàm chán với cách dạy học truyền thống người học nhìn thấy minh họa sinh động rõ ràng dễ hiểu Đồng thời lặp lặp lại cách thật nhàm chán tính tốn hay phép biến đổi nặng nề mà không hiểu chất thật Hiện Việt Nam có phần mềm tiếng hỗ trợ giáo viên, học sinh, sinh viên giảng dạy học tập, Maple Để hiểu vấn đề em xin chọn đề tài : “ Ứng dụng Maple số vấn đề đại số tuyến tính” Trang Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo PHẦN A: GIỚI THIỆU GIỚI THIỆU VỀ MAPLE Maple hệ thống tính tốn biểu thức đại số minh họa toán mạnh mẽ phát triển nhà nghiên cứu Đại học Waterloo (Canada) từ năm 1980 thương mại hố cơng ty Warterloo Maple Inc.(http://www.maplesoft.com), phiên Maple đời năm 1980, đến phát triển đến phiên 13 (2009) ngày hồn thiện Maple có cách cài đặt đơn giản, chạy tất 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 Maple cung cấp công cụ trực quan, gói lệnh tự học tốn phổ thơng đại học Với ưu điểm Maple trở thành lựa chọn sử dụng nhiều nước giới Một số tính Maple sau: - Là hệ thống tính tốn biểu thức đại số; - Có thể thực hầu hết phép tốn chương trình tốn học phổ thơng đại học; - Cung cấp cơng cụ minh họa hình học thuận tiện như: Vẽ đồ thị tĩnh động đường, mặt cho hàm tùy ý nhiều hệ trục tọa độ khác nhau; - Ngôn ngữ lập trình đơn giản mạnh mẽ có khả tương tác với ngôn ngữ khác Latex, Word, HTML, - Một công cụ biên soạn giáo án giảng điện tử, thích hợp với lớp học tương tác trực tiếp; GIỚI THIỆU VỀ LẬP TRÌNH TRONG MAPATH Một chương trình tính tốn thường có ba phần: Dữ liệu vào Phương pháp Kết Cấu trúc chương trình mapath thường có dạng: Trang Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo Tên_chương_trình:=proc(các đối số) Local biến; thuật tốn xử lý; end; CÁC TÍNH NĂNG CƠ BẢN CỦA MAPATH Là hệ thống toán biểu thức đại số; Có thể thực hầu hết phép tốn cở chương trình tốn đại học sau đại học; Cung cấp công cụ minh họa hình học thuận tiện gồm: vẽ đồ thị tĩnh động đường mặt cho hàm tùy ý nhiều hệ tọa độ khác nhau; Một ngơn ngữ lập trình đơn giản mạnh mẽ có khả tương tác với ngơn ngữ lập trình khác; Cho phép trích xuất định dạng khác LaTex, Word, HTML, … Một công cụ biên soạn giáo án giảng điện tử, thích hợp với 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 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 Ngồi ra, Maple cịn cho phép ta tìm giá trị riêng, vectơ riêng, đa thức đặc trưng, tìm dạng tắc ma trận tính nhiều ma trận đặc biệt Hilbert, Toeplitz v/v… Các lệnh đại số tuyến tính cài sẵn gói cơng cụ linalg trước sử dụng ta phải nạp gói cơng cụ vào nhớ lệnh: >with(linalg): Trong phạm vi phụ lục giới thiệu đôi nét ứng dụng chương trình Maple số phép tốn đại số ma trận vectơ, việc giải hệ phương trình tuyến tính đơn giản Để biết thêm ứng dụng khác chương trình Maple, sinh viên tham khảo tài liệu khác Trang Bài thu hoạch mơn Lập trình Symbolic 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 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ê phần tử ma trận theo thứ tự từ trái sang phải từ xuống + L [[a11 , a12 , , a1n ],[a21 , a22 , , a2n ], ,[am1 , am , , amn ]] + Trong trường hợp L xác định phần tử cụ thể ta bỏ qua số m, n Ví dụ: Tạo ma trận dòng, 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 phần tử ma trận giá trị hàm f xác định số hàng cột ma trận, ta thực sau:  f (1,1)  f (2,1) Ví dụ: Tạo ma trận C  f (1, 2)  f (2, 2)  >C:=matrix(2,2,f); Để tạo ma trận lệnh tạo mảng, ta sử dụng cú pháp: array(1 m,1 n,L) với L phần tử ma trận Ví dụ: >A:=array(1 3,1 2,[1,2],[2,6],[4,23]]); Trang Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo 1  A :   23 1.2 Tạo vectơ Cú pháp:  vector(n, K): Tạo vectơ với phần tử xác định K  Vector [O](n,init): Tạo vectơ với phần tử ban đầu xác định init Trong đó: n: số phần tử vectơ O: Tùy chọn row column (mặc định 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 4 1.3 Các phép tính ma trận vectơ 1.3.1 So sánh hai ma trận: Để so sánh hai ma trận A B có số hàng 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]]); Trang Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo equal(A,B); Ta kết 1 A : 3 1 B : 3 2  2  true 1.3.2 Tổng hai ma trận: Dùng lệnh đánh giá evalm để tính tổng hai ma trận Cú pháp: evalm(expr) Trong expr biểu thức tổng, hiệu, tích ma trận Ví dụ: Tính tổng 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  3 C :   7  a E :   1  b 0 F :   0 >evalm(C+E);  3  a  13   >evalm(C+2*E-F);   b  2a   21   Trang Bài thu hoạch môn Lập trình Symbolic trí tuệ nhân tạo 1.3.3 Tích hai ma trận: Có thể dùng hai hàm sau: Multiply(A,B,…): Nhân ma trận A, B, … với evalm(A&*B&*C…): Nhân ma trận A, B, C với lệnh đánh giá evalm Khi đó, máy thực phép nhân từ trái sang phải Ví dụ: Nhân hai ma trận sau đây:  1 A :[3, 4] B :   2 Ta thực sau: >A:=array([3,4]); >B:=array([1,2]); evalm(B&*A); Ta kết quả: A: = [3, 4] B:=[1,2] 11 Hoặc dùng lệnh multiply >multiply(A,B); 11 Chú ý: Khi nhân tính tổng lúc lệnh lượng giá, máy thực theo thứ tự nhân trước cộng trừ sau 1.3.4 Tính tích ma trận vectơ Cú pháp: innerprod(u,A1,A2,…,An,v) Trong đó: + u, v vectơ + A1, A2, …,An ma trận Ví dụ: >u:=vector(2,[1,2]); u:=[1, 2] Trang Bài thu hoạch môn Lập trình Symbolic trí tuệ nhân tạo >w:=vector([1,3]);  1 w :   3 >v:=vector(3,[1,2,3]); v:=[1, 2, 3] >A:=matrix(2,3,[1,1,1],[2,0,1]]);  1 1 A :   1 >innerprod(u,A,v); 16 >innerprod(A,v); [6,5] >innerprod(u,w); 1.3.5 Tích có hướng hai vectơ Cú pháp: crossprod(u, v) Trong đó: + u, v vectơ cần nhân có hướng + Mỗi vectơ có ba thành phần Ví dụ: >u: = vector([1, 2, 0]); u:=[1, 2,0] >v:=vector([2,1,4]); v:=[2, 1, 4] >crossprod(u, v); [8, -4, -3] 1.3.6 Tích vơ hướng hai vectơ Cú pháp: dotprod(u, v) dotprod(u, v, orthogonal) Trang 10 Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo Chú ý: Đối với số phức tích vơ hướng u v tổng tích u[i] nhân với liên hiệp phức v[i]: u.v  ui (conjugate(vi )) Nếu lệnh có thêm tham số orthogonal tích tính tổng u[i] v[i]: uv  ui vi i Tuy nhiên, số thực hai định nghĩa trùng Ví dụ: >u:=vector([2+I,3-2*I]); u:= [ 2+I, – 2I] >v:=vector([1-I,2-I]); v:=[1-I, 2- I] >dotprod(u,v); 9+2I >dotprod(u,v,orthogonal); - 8I 1.4 Tìm vết ma trận (tổng phần tử thuộc đường chéo chính) Cú pháp: trace (T) với T ma trận Ví dụ: TÌm vết ma trận sau: >A:=matrix(2,2,[1,2,4,a]);  2 A :   a >trace(A); 1+ a 1.5 Tạo ma trận từ ma trận cho trước Cú pháp: submatrix(A, Rrange, Crange) submatrix(A,RList,CList) Trang 11 Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo Trong đó: + A ma trận cho trước +Rrange, Crange: Khoảng số dòng, cột +Rlist, Clist: Danh sách số dịng, cột Ví dụ: Tạo ma trận P từ ma trận A >with(linalg); A:matrix(2,3,[8,2,5,2,0,3]);  5 A :   3 >P:=submatrix(A,1 2,2 3);  5 P :   3 >P:=submatrix(A,[1,2],[1]);  8 P :   2 1.6 Tạo vectơ từ ma trận: Cú pháp: subvector(A, r, c) Tạo vectơ từ phần tử A với số dòng r số cột c Trong đó: + A ma trận + r, c bảng, vùng số ngun số dịng, cột Ví dụ: >subvector(A,1,1 3); [8, 2, 5] 1.7 Trích dịng, cột ma trận: Cú pháp:  row(A, i): Trích dịng thứ i ma trận A  row(A, i k): Trích từ dòng i đến dòng k ma trận A  col(A, i): Trích từ cột thứ i ma trận A Trang 12 Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo  col(A, i k): Trích từ cột thứ i đến cột thứ k ma trận A Trong đó: - A ma trận - i, k số nguyên Ví dụ: >A:=matrix(3,3,[2,2,5,9,8,5,2,7,2]);  2 5 A :    >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 Hốn vị dịng, cột ma trận: Cú pháp: swaprow(A, r1, r2): Hoán vị 02 dòng r1 r2 ma trận A swapcol(A, c1, c2): Hoán vị 02 cột c1 c2 ma trận A Ví dụ: >A:=matrix(3,3,[2,2,5,9,8,5,2,7,2]);  2 5 A :    >B:=swaprow(A, 2, 3);  2 B :   2  1.9 Tìm ma trận chuyển vị: Cú pháp: transpose (A) Trang 13 Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo Ví dụ: >A:=matrix(3,3,[2,2,5,9,8,5,2,7,2]);  2 5 A :    >B:=transpose(A);  2 B :   5  1.10 Tìm ma trận liên hợp: Cú pháp: adjoint(A) Ví dụ: Tìm ma trận liên hợp ma trận A >A:=matrix(2,2,[5,1,2,3]);  1 A :   3 >adjoint(A);   1     1.11 Tìm ma trận đặc trưng: Cú pháp: charmat(C, x) Tìm ma trận đặc trưng ma trận C trình bày kết theo biến x Ví dụ: >C:=matrix(3,3,[2,2,3,2,3,4,5,0,9]);  2 3 C :    >charmat(C,lambda); 3      2  4         Trang 14 Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo 1.12 Tìm đa thức đặc trưng ma trận: Cú pháp: charpoly(C, x) Tìm đa thức đặc trưng ma trận C trình bày kết theo biến x Ví dụ: Tìm đa thức đặc trưng ma trận C >charpoly(C, lambda);   14  32  13 1.13 Biến đổi ma trận dạng bậc thang Cú pháp: with(linalg); rref(A); Ví dụ: >with(linalg); >A:=matrix(3,4,[2,1,3,2,3,5,2,1,1,2,3,5]);  2 A     >rref(A);  1 0  0   0   20       17   1.14 Phép khử Gauss-Jordan Cú pháp: with(linalg); gaussjord(A, r); Trong đó: - A ma trận cần biến đổi Trang 15 Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo - r cho biết hạng ma trận Ví dụ: >with(linalg); >A:=matrix(3,4,[2,1,3,2,3,5,2,1,1,2,3,5]);  2 A :    >gaussjord(A, r);  1 0  0   0   20       17   >r; 1.16 Tìm vectơ riêng ma trận A Cú pháp: >with(linalg); ẻigenvectors(A); Ví dụ: >A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);   3 A :      >v:=[eigenvectors(A)]; v:= [ [ 4, 1, { [ 1, 1, ] } ], [ -2, 2, { [ 1, 1, ], [ 0, 1, ] } ] ] 1.17 Tìm giá trị riêng ma trận A Cú pháp with(linalg); Trang 16 Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo eigenvalues(A); Ví dụ: >A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);   3 A :      >e:=eigenvalues(A); e:=4,-2, 1.18 Tìm hạng ma trận A Cú pháp: With(linalg); rank(A); Ví dụ: >A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);   3 A :      >rank(A); 1.19 Tính định thức ma trận A Cú pháp With(linalg); det(A); Ví dụ: >A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);   3 A :      >det(A); Trang 17 Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo 16 1.20 Tìm ma trận nghịch đảo ma trận A Cú pháp with(linalg); Inverse(A); Ví dụ: >A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);   3 A :      >inverse(A);     B :=      -1 8 -3 -7 -3 8         1.21 Biến đổi ma trận dạng tam giác Cú pháp with(linalg); gausselim(A,r,d); Trong đó: A ma trận vuông r, d tham số cho biết hạng định thức A (có khơng) Ví dụ: >with(linalg); >A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);   3 A :      >B:=gausselim(A,’r’,’d’); Trang 18 Bài thu hoạch môn Lập trình Symbolic trí tuệ nhân tạo  -3 3   B :=  -6    0 4 >r; >d; 16 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ừ hệ số ma trận: Cú pháp with(linalg); geneqns(A,vars); geneqns(A,vars,b); Trong A: ma trận Vars: Tên biến hệ phương trình b: Vectơ phải hệ Ví dụ: >with(linalg); >A:=matrix(3,3,[3,1,0,3,1,1,1,3,5]); b:=array([2,9,2]);  0 A : 1    b:= [2, 9, 2] >geneqns(A,[x,y,z],b); { x y 2, x y z 9, x y z 2} Trang 19 Bài thu hoạch mơn Lập trình Symbolic 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 thơng qua 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 linsolve(A, u) Trong đó: + A: ma trận xác định vế trái 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]); b:=array([2,9,2]);  0 A : 1    b:= [2, 9, 2] >geneqns(A,[x,y,z],b); { x y 2, x y z 9, x y z 2} >linsolve(A,b);  39 , -101 ,     8  Vậy nghiệm hệ là: x = 39/8; y = -101/8; z = Trang 20 ... 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 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 đó: +... tài : “ Ứng dụng Maple số vấn đề đại số tuyến tính? ?? Trang Bài thu hoạch mơn Lập trình Symbolic trí tuệ nhân tạo PHẦN A: GIỚI THIỆU GIỚI THIỆU VỀ MAPLE Maple hệ thống tính tốn biểu thức đại số minh... 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 thông qua 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 linsolve(A,

Ngày đăng: 26/02/2023, 21:39

Xem thêm:

TỪ KHÓA LIÊN QUAN

w