KHAI THÁC PHẦN MỀM MAPLE
TRONG DẠY HỌC ĐẠI SỐ TUYẾN TÍNH
ThS. Trịnh Thanh Hải
ĐHSP Thái Nguyên
1. Dẫn nhập
Trong phạm vi bài viết này, chúng tôi không có tham vọng trình bày
các khả năng ứng dụng của phần mềm Maple mà chỉ giới thiệu một ví dụ nhỏ
về việc sử dụng Maple trong dạy học đại số tuyến tính.
2. Tính lũy thừa của ma trận vuông
Thuật toán: (Ứng dụng định lí Hamiltơn - Cayley):“Giả sử A là ma
trận vuông và PA (λ) thỏa mãn:
PA (λ) = (−1)n λn + p1λn−1 + ... + pn−1λ + pn
là
đa thức đặc trưng của A. Khi đó, PA (A) = 0 “. Vậy mọi đa thức Q( λ ) chia
hết
cho
Pn(λ)
thì
ta
cũng
có
3
+1
A := 2
1
2
5
2
3
− 1
2
−
[> Luythua(A, 2002); # Thực hiện thủ tục tính luỹ thừa với số mũ là 2002
1
− 3
2
3
−
2
5 3
else if u=1 and L[1]={x=0} then
for i from 2 to 100000000 do if equal(M, A^i)=true then
print(‘ Ma trận đã cho là ma trận lũy linh có bậc là ‘, i); break; fi; od;
2
else print(‘ Ma trận đã cho không phải là ma trận lũy linh ‘); fi; fi; end:
Minh hoạ việc sử dụng chương trình
[> with(LinearAlgebra): A:= LLkhong(A);# Thực hiện chương trình con#
Ma trận đã cho là ma trận lũy linh có bậc là, 3
4.Kiểm tra tính giao hoán trong phép nhân các ma trận
Mã chương trình:
[> with(linalg):
[>GiaohoanK:=proc(A,B)
local C, D, n1, n2, m1, m2; n1:=rowdim(A); m1:=coldim(B);
m2:=rowdim(B); n2:=coldim(A);
if n1- n2 0 or m1- m2 0 or n1-m1 0 then print(‘ Nhap lai cac ma tran ‘)
else C:=multiply(A, B); D:=multiply(B, A);
0
B := 0
0
[> GiaohoanK(A,B);
true
5. Kiểm tra tính chéo hóa được của một ma trận vuông bất kỳ và
đưa ma trận đó về dạng ma trận chéo (nếu ma trận đó chéo hóa được).
Mã chương trình:
[> CheohoaK:=proc(A)
local B;
B := diag(eigenvalues(A)); if issimilar(A, B)= true then print(' true ');
3
print(‘ Dạng chéo của ma trận là ‘); print(B); else print(' false '); fi; end:
Minh hoạ việc sử dụng chương trình
[> with(linalg,matrix,issimilar,eigenvalues,diag):
[> A := matrix(4,4,[1,0,0,0,1,-2,3,-2,0,1,1,-1,-1,-2,0,1]);
1 0 0
1 -2 3
A :=
0 1 1
0
0
0
3 1
− +
2 2
0
0
0
13
0
−
0
3 1
−
2 2
1
1
[> det(A);
1
2
2
2
2
1
2
3
3
3
1
2
3
4
4
1
2
3
4
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
[> evalm(A2);
Với lệnh trên ta thấy rõ ràng là ma trận A là tích của hai ma trận A1 và
A2, trong đó các ma trận A1 (ma trận tam giác trên) và A2 (ma trận tam giác
dưới) đều là các ma trận có định thức bằng 1. Bằng việc thay đổi các bậc của
A, ta thấy rằng kết quả trên vẫn đúng. Do vậy, ta nhân hai ma trận A1, A2 cấp
n và thu được kết quả là ma trận A. Như vậy, bài toán đã giải quyết xong.
7. Xét tính khả ngịch của một ma trận
Ta thấy ma trận đơn vị có các phần tử trên đường chéo chính bằng 1,
còn các phần tử khác bằng 0. Rõ ràng đây là một ma trận khả nghịch. Vấn đề
đặt ra là liệu có mối quan hệ nào giữa các phần tử trên đường chéo chính với
các phần tử còn lại trong một ma trận vuông sao cho ma trận đó là khả nghịch
không? .
Ta xây dựng chương trình bao gồm các nhiệm vụ:
5
- Tính tổng các trị tuyệt đối của các phần tử nằm ngoài đường chéo.
- Tính giá trị nhỏ nhất về trị tuyệt đối của các phần tử trên đường chéo.
- Xét tính khả nghịch của ma trận đó.
Mã chương trình:
[> with(linalg):
[> Chuan:=proc(A)
Có sự vượt trội về trị tuyệt đối của các phần tử nằm trên đường chéo
chính. Ta tiếp tục thử với các ma trận khác:
[> A:=matrix(4,4,[6,-1,0,1,0,7,1,-1,0,-1,-9,0,0,0,0,7]);
6
0
A :=
0
0
-1 0 1
7 1 -1
-1 -9 0
0 0 7
[> Chuan(A);
Phần tử trên đường chéo chính có trị tuyệt đối bé nhất là , 6.
Tổng trị tuyệt đối của các phần tử ngoài đường chéo chính là , 5.
Định thức của ma trận A là , -2604.
6
Kết quả trên cho thấy nếu các phần tử trên đường chéo chính có sự
vượt trội về trị tuyệt đối so với các phần tử nằm ngoài đường chéo chính thì
∑a
i≠ j
ij
thì ma trận đó khả nghịch ".Đây là cách
phát biểu khác của định lí Hađamard .
8. Đưa biểu thức toạ độ của dạng toàn phương về dạng chính tắc
(Theo phương pháp Lagrange)
Mã chương trình:
[> restart;with(linalg):
sqsum:=proc(f::quadratic)
local i,l,n,x,J,S,K,F,kk;
if ldegree(f)2 then error "f is not quadratic form" end if;
S:=f;K:=0; indets(f): x:=convert(%,list): n:=nops(x):
while S0 do
while has(S,{seq(x[i]^2,i=1..n)}) do
( x +2 z +y ) 2 ( −x + y ) 2
−
−z2
4
4
9. Kết luận
Maple là phần mềm có một môi trường tính toán khá phong phú, hỗ trợ
hầu hết các lĩnh vực của toán học như: Giải tích số, đồ thị, đại số hình thức...
do đó ta dễ dàng tính được các giá trị gần đúng, rút gọn biểu thức, giải
phương trình, bất phương trình, hệ phương trình, tính giới hạn, đạo hàm, tích
phân của hàm số, vẽ đồ thị, tính diện tích, thể tích, biến đổi ma trận, khai triển
các chuỗi, tính toán thống kê, xử lý số liệu, số phức, phương trình vi phân,
phương trình đạo hàm riêng... và lập trình giải các bài toán với cấu trúc
chương trình đơn giản. Ngoài ra, với phần mềm này ta dễ dàng biên soạn các
sách giáo khoa điện tử với chức năng Hyperlink tạo các siêu văn bản rất đơn
giản mà không cần đến sự hỗ trợ của bất kỳ một phần mềm nào khác (chẳng
hạn PageText, Word, FrontPage...).
Với các chức năng trên, Maple là công cụ đắc lực hỗ trợ cho những
người làm toán.
Tài liệu tham khảo
1. Hướng dẫn thực hành tính toán trên chương trình Maple V.
Phạm Huy Điển, Đinh Thế Lục, Tạ Duy Phượng.
NXB Giáo dục 1998.
2. Tính toán, lập trình và giảng dạy toán học trên Maple
Phạm Huy Điển chủ biên.
NXB KH&KT 2002 .
8