Tải bản đầy đủ (.doc) (24 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (412.59 KB, 24 trang )

Đạ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.(), 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
Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo
1.3.3 Tích của hai ma trận:
Có thể dùng một trong hai hàm sau:

Multiply(A,B,…): Nhân các ma trận A, B, … với nhau.
evalm(A&*B&*C…): Nhân các ma trận A, B, C với nhau bằng lệnh đánh giá evalm.
Khi đó, máy sẽ thực hiện phép nhân này từ trái sang phải.
Ví dụ: Nhân hai ma trận sau đây:
: [3, 4]A =

1
:
2
B
 
=
 
 
Ta thực hiện như sau:
>A:=array([3,4]);
>B:=array([1,2]);
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,A
1

,A
2
,…,A
n
,v)
Trong đó:
+ u, v là các vectơ
+ A
1
, A
2
, …,A
n
là các ma trận.
Ví dụ:
>u:=vector(2,[1,2]);
u:=[1, 2]
HVTH: Trịnh Ngọc Thư – CH1102017 Trang 9
Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo
>w:=vector([1,3]);
1
:
3
w
 
=
 
 
>v:=vector(3,[1,2,3]);
v:=[1, 2, 3]

>A:=matrix(2,3,[1,1,1],[2,0,1]]);
1 1 1
:
2 0 1
A
 
=
 
 
>innerprod(u,A,v);
16
>innerprod(A,v);
[6,5]
>innerprod(u,w);
7
1.3.5 Tích có hướng của hai vectơ
Cú pháp: crossprod(u, v)
Trong đó:
+ u, v là các 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) hoặc dotprod(u, v, orthogonal)
HVTH: Trịnh Ngọc Thư – CH1102017 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]:
. (conjugate( ))
i i
u v u v=

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]:
i i
i
uv u v=

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:= [ 2+I, 3 – 2I]
>v:=vector([1-I,2-I]);
v:=[1-I, 2- I]
>dotprod(u,v);
9+2I
>dotprod(u,v,orthogonal);
7 - 8I
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)
Cú pháp: trace (T) với T là ma trận
Ví dụ:
TÌm vết của ma trận sau:
>A:=matrix(2,2,[1,2,4,a]);
1 2
:
4

A
a
 
=
 
 
>trace(A);
1+ a
1.5 Tạo ma trận con từ một ma trận cho trước
Cú pháp:
submatrix(A, Rrange, Crange)
submatrix(A,RList,CList)
HVTH: Trịnh Ngọc Thư – CH1102017 Trang 11
Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo
Trong đó:
+ A là ma trận cho trước
+Rrange, Crange: Khoảng 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
:
2 0 3
A
 
=
 
 
>P:=submatrix(A,1 2,2 3);

2 5
:
0 3
P
 
=
 
 
>P:=submatrix(A,[1,2],[1]);
8
:
2
P
 
=
 
 
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 đó:
+ 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 Symbolic và trí tuệ nhân tạo
 col(A, i k): Trích từ cột thứ i đế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
: 9 8 5
2 7 2
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 Hoán vị dòng, cột của một ma trận:
Cú pháp:
swaprow(A, r
1
, r
2
): Hoán vị 02 dòng r

1
và r
2
của ma trận A.
swapcol(A, c
1
, c
2
): Hoán vị 02 cột c
1
và c
2
của ma trận A
Ví dụ:
>A:=matrix(3,3,[2,2,5,9,8,5,2,7,2]);
2 2 5
: 9 8 5
2 7 2
A
 
 
=
 
 
 
>B:=swaprow(A, 2, 3);
2 7 2
: 9 8 5
2 2 5
B

 
 
=
 
 
 
1.9 Tìm ma trận chuyển vị:
Cú pháp: transpose (A)
HVTH: Trịnh Ngọc Thư – CH1102017 Trang 13
Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo
Ví dụ:
>A:=matrix(3,3,[2,2,5,9,8,5,2,7,2]);
2 2 5
: 9 8 5
2 7 2
A
 
 
=
 
 
 
>B:=transpose(A);
2 9 2
: 2 8 7
5 5 2
B
 
 
=

 
 
 
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 của ma trận A.
>A:=matrix(2,2,[5,1,2,3]);
5 1
:
2 3
A
 
=
 
 
>adjoint(A);
3 1
2 5

 
 

 
1.11 Tìm ma trận đặc trưng:
Cú pháp: charmat(C, x) Tìm ma trận đặc trưng của ma trận C trình bày kết quả theo
biến x.
Ví dụ:
>C:=matrix(3,3,[2,2,3,2,3,4,5,0,9]);
2 2 3
: 2 3 4

5 0 9
C
 
 
=
 
 
 
>charmat(C,lambda);
2 2 3
2 3 4
5 0 9
λ
λ
λ
− − −
 
 
− − −
 
 
− −
 
HVTH: Trịnh Ngọc Thư – CH1102017 Trang 14
Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo
1.12 Tìm đa thức đặc trưng của một ma trận:
Cú pháp: charpoly(C, x) Tìm đa thức đặc trưng của ma trận C trình bày kết quả theo biến
x.
Ví dụ:
Tìm đa thức đặc trưng của ma trận C

>charpoly(C, lambda);
3 2
14 32 13
λ λ λ
− + −
1.13 Biến đổi ma trận về 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 1 3 2
3 5 2 1
1 2 3 5
A
 
 
=
 
 
 
>rref(A);
20
1 0 0
9
7
0 1 0
9
17

0 0 1
9

 
 
 
 
 
 
 
 
 
1.14 Phép khử Gauss-Jordan
Cú pháp:
with(linalg);
gaussjord(A, r);
Trong đó:
- A là ma trận cần biến đổi
- r cho biết hạng của ma trận
HVTH: Trịnh Ngọc Thư – CH1102017 Trang 15
Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo
Ví dụ:
>with(linalg);
>A:=matrix(3,4,[2,1,3,2,3,5,2,1,1,2,3,5]);
2 1 3 2
: 3 5 2 1
1 2 3 5
A
 
 

=
 
 
 
>gaussjord(A, r);
20
1 0 0
9
7
0 1 0
9
17
0 0 1
9

 
 
 
 
 
 
 
 
 
>r;
3
1.16 Tìm vectơ riêng của 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]);
1 3 3
: 3 5 3
6 6 4
A

 
 
= −
 
 

 
>v:=[eigenvectors(A)];
v:=

[ ],[ ], ,4 1 { }[ ], ,1 1 2 [ ], ,-2 2 { },[ ], ,1 1 0 [ ], ,0 1 1
1.17 Tìm giá trị riêng của ma trận A
Cú pháp
with(linalg);
eigenvalues(A);
Ví dụ:
HVTH: Trịnh Ngọc Thư – CH1102017 Trang 16
Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo
>A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);
1 3 3
: 3 5 3
6 6 4
A


 
 
= −
 
 

 
>e:=eigenvalues(A);
e:=4,-2, 2
1.18 Tìm hạng của 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]);
1 3 3
: 3 5 3
6 6 4
A

 
 
= −
 
 

 
>rank(A);
3

1.19 Tính định thức của 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]);
1 3 3
: 3 5 3
6 6 4
A

 
 
= −
 
 

 
>det(A);
16
HVTH: Trịnh Ngọc Thư – CH1102017 Trang 17
Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo
1.20 Tìm ma trận nghịch đảo của 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]);
1 3 3
: 3 5 3

6 6 4
A

 
 
= −
 
 

 
>inverse(A);
:= B































-1
8
-3
8
3
8
3
8
-7
8
3
8
3
4
-3
4
1
4

1.21 Biến đổi ma trận về dạng tam giác
Cú pháp
with(linalg);
gausselim(A,r,d);
Trong đó:
A là ma trận vuông
r, d là các tham số cho biết hạng và định thức của A (có hoặc không)
Ví dụ:
>with(linalg);
>A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);
1 3 3
: 3 5 3
6 6 4
A

 
 
= −
 
 

 
>B:=gausselim(A,’r’,’d’);
HVTH: Trịnh Ngọc Thư – CH1102017 Trang 18
Bài thu hoạch môn Lập trình Symbolic và trí tuệ nhân tạo
:= B















1 -3 3
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
: 3 1 1
1 3 5
A
 
 
=
 
 
 
b:= [2, 9, 2]
>geneqns(A,[x,y,z],b);
{ }, , = + 3 x y 2 = + + 3 x y z 9 = + + x 3 y 5 z 2
HVTH: Trịnh Ngọc Thư – CH1102017 Trang 19
Bài 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]);
b:=array([2,9,2]);
3 1 0
: 3 1 1
1 3 5

A
 
 
=
 
 
 
b:= [2, 9, 2]
>geneqns(A,[x,y,z],b);
{ }, , = + 3 x y 2 = + + 3 x y z 9 = + + x 3 y 5 z 2
>linsolve(A,b);








, ,
39
8
-101
8
7
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 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 môn Lập trình Symbolic và trí tuệ nhân tạo
TÀI LIỆU THAM KHẢO
[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].
HVTH: Trịnh Ngọc Thư – CH1102017 Trang 22

×