Giáo trình sử dụng phần mềm hỗ trợ dạy học Toán

• Tìm nghiệm gần đúng theo phương pháp Niutơn Cho hàm số y = f(x) khả vi và có nghiệm nằm trong khoảng (a; b). Gọi {xi}i N ∈ * là dãy các nghiệm gần đúng của phương trình f(x) = 0. Khi đó, ta có: Công thức Niutơn: Câu lệnh:[> with(Student[Calculus1]): NewtonsMethodTutor(f, a) NewtonsMethodTutor(f, var=a) Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, a - (tuỳ chọn) điểm, var - (tuỳ chọn) biến số. Ví dụ.Tìm nghiệm gần đúng của phương trình x5 + x2-1=0 trong khoảng (-2; 2)

pdf142 trang | Chia sẻ: nguyenlam99 | Ngày: 15/01/2019 | Lượt xem: 19 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Giáo trình sử dụng phần mềm hỗ trợ dạy học Toán, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
3 Tinh dao ham bac hai cua ham so := z 2 x Diem uon cua do thi ham so la { }, = x 0 = y 23 Tim giao diem voi truc tung { }, = x 0 = y 23 Tim giao diem voi truc hoanh , ,{ }, = x -2 = y 0 { }, = x 1 = y 0 { }, = x 1 = y 0 Do thi ham so co dang sau 92 www.MATHVN.com www.mathvn.com • Ví dụ 2: Khảo sát hàm phân thức: y= − + x 2 3 x 4 − 2 x 2 [> restart; Y:=(x^2-3*x+4)/(2*x-2);Y:=simplify(Y): print(`Tap xac dinh cua ham so la:`); dk:=solve(denom(Y)=0,x): if(type(denom(Y),realcons)=true)or(coeff(denom(Y),x^2)0 and type(dk[1],realcons) =falsse) then D=R;fi; if coeff(denom(Y),x^2)=0 and coeff(denom(Y),x)0 then D={xdk};fi; a:=limit(Y/x,x=infinity):b:=limit(Y-a*x,x=infinity):ms:=solve(denom(Y)=0,x): if ainfinity or a -infinity then print(`tiem can dung:`,x=ms); print(` tiem can xien y=`,x*a+b); fi; print(`Tinh dao ham bac nhat cua ham so`); dy/dx=factor(simplify(diff(Y,x))); print(`giai phuong trinh f' = 0:`); solve(diff(Y,x)=0,{x}); print(` Ham so se dong bien tren khoang`); solve(diff(Y,x)>0); print(` Ham so nghich bien tren khoang`); solve(diff(Y,x)<0); print(` Tim cac gia tri cuc tri dia phuong`); Ymin_max:=extrema(Y,{},x); print(` Tim giao diem voi truc tung`); student[intercept](y=Y,x=0,{x,y}); print(`Tim giao diem voi truc hoanh`); student[intercept](y=Y,y=0,{x,y}); print(` Do thi ham so co dang sau`); plot({Y,x*a+b},x=-4..4,-6..4,color=red); ↵ Kết quả thực hiện chương trình: 93 www.MATHVN.com www.mathvn.com := Y − + x 2 3 x 4 − 2 x 2 Tap xac dinh cua ham so la: = D { } ≠ x 1 ,tiem can dung: = x 1 , tiem can xien y= − x2 1 Tinh dao ham bac nhat cua ham so = dydx − − x2 2 x 1 2 ( ) − x 1 2 giai phuong trinh f' = 0: ,{ } = x + 1 2 { } = x − 1 2 Ham so se dong bien tren khoan ,( )RealRange ,−∞ ( )Open − 1 2 (RealRange ,( )Open ) + 1 2 ∞ Ham so ngich bien tren khoang ,( )RealRange ,( )Open − 1 2 ( )Open 1 ( )RealRange ,( )Open 1 ( )Open + 1 2 Tim cac gia tri cuc tri dia phuong := Ymin_max { },− ( ) + 4 2 24 − ( )− + 4 2 2 4 Tinh dao ham bac hai cua ham so := z 2 ( ) − x 1 3 Tim giao diem voi truc tung { }, = y -2 = x 0 Tim giao diem voi truc hoanh , = y 0 = x RootOf { }( ), − + _Z2 3 _Z 4 = label _L1 Do thi ham so co dang sau Như vậy, để khảo sát các hàm số khác trong chương trình phổ thông, bạn đọc chỉ cần thay đổi chút ít, và như vậy ta đã có một công cụ mạnh để kiểm tra và minh hoạ cho các bài toán khảo sát hàm số. 94 www.MATHVN.com www.mathvn.com • Ví dụ 3: Tìm quỹ tích các điểm M(xo,yo) mà từ đó kẻ được 2 tiếp tuyến vuông góc với parabol y = 1 3 2 3 1 2 +−− xx (phỏng theo đề thi tuyển sinh vào ĐHTN - Năm học 1999 - 2000, khối A, B). Ta sử dụng chương trình con: [> restart; y:=(-x^2/3-2*x/3+1): y2:=k*(x-xo)+yo:'y'=y2: f:=y-y2:f: delta:=collect(simplify(discrim(f,x)),k): solve(delta,{k}): k1:=coeff(delta,k^2): k2:=coeff(delta,k,0): y3:=solve(k1*k2=-1,{yo}): print(`Ket luan ta co phuong trinh quy tich la`); print(y3); Thực hiện chương trình, ta có kết quả: Ket luan ta co phuong trinh quy tich la { } = yo 2512 • Ví dụ 4: Cho tam thức bậc hai p(x) = (m+1)*x^2 + 3 *(m+10)*x -12. Tìm những giá trị của tham số m sao cho p(x) có 2 nghiệm x1,x2 thoả mãn: 1< x1 < 3 < x2. Ta sử các câu lệnh sau sau: [> restart; p(x):=(m+1)*x^2+3*(m+10)*x-12; ↵ := ( )p x + − ( ) + m 1 x2 3 ( ) + m 10 x 12 [> i:=1;j:=3; ↵ := i 1 := j 3 [> a:=coeff(p(x),x^2); ↵ := a + m 1 [>(j):=subs(x=j,p(x));dk1:=a*p(j)0; ↵ := ( )p 3 + 18 m 87 := dk1 < ( ) + m 1 ( ) + 18 m 87 0 := ( )p 1 + 4 m 19 := dk2 < 0 ( ) + m 1 ( ) + 4 m 19 95 www.MATHVN.com www.mathvn.com [> solve({dk1,dk2},{m});↵ { }, < -296 m < m -19 4 • Ví dụ 5: Chương trình khảo sát hàm số = y + a x b + c x d [> restart: with(plots): with(student): kshbntbn:=proc(a,b,c,d) local Y,dhbn,xm,ytc; Y:=(a*x+b)/(c*x+d); dhbn:=simplify(diff(Y,x)); print(`Khao sat ham so`); print(Y); print(`1.Tap xac dinh`); print(D={x-d/c}); print(`Chieu bien thien`); print(`Dao ham bac nhat`); print(dhbn); if numer(dhbn)>0 then print(`Ham so luon dong bien tren D`); fi; if numer(dhbn)<0 then print(`Ham so luon nghich bien tren D`); fi; print(`Ham so khong co cuc tri`); xm:=-d/c: ytc:=limit(Y,x=+infinity); print(Limit(Y,x=xm)=infinity); print(`Ham so co tiem can dung la: x=`,xm); print(Limit(Y,x=-infinity)=limit(Y,x=-infinity)); print(Limit(Y,x=+infinity)=limit(Y,x=+infinity)); print(`Suy ra ham so co tiem can ngang la y=`,ytc); print(`Do thi cua ham so`); print(`Do thi ham so cat truc hoanh tai`); print(intercept(y=Y,y=0,{x,y})); print(`Do thi ham so cat truc tung tai`); print(intercept(y=Y,x=0,{x,y})); print(`Diem doi xung cua do thi ham so la:`); print(intercept(y=ytc,x=xm,{x,y})); plot({Y,ytc},x=-5+xm..5+xm,y=-5+ytc..5+ytc); end: 96 www.MATHVN.com www.mathvn.com Để sử dụng chương trình, ta chỉ việc gọi tên chương trình con với các tham số thực cụ thể, ví dụ: [> kshbntbn(1,2,3,4); • Ví dụ 6: Bài toán xác định phương trình của đường cong luôn tiếp xúc với một đường cong cho trước: [>restart: a:=1: b:=-2: c:=m: d:=(1-m^2)/4: y:=a*x^3+b*x^2+c*x+d; print(`Do dang cua phuong trinh (Hm) cho, ta chon duong cong co dinh co phuong trinh la:`); y1:=a*x^3+b1*x^2+c1*x+d1; print(` khi do phuong trinh hoanh do giao diem la:`); A:=y-y1: print(A,`= 0 (1)`); B:=collect(A,x): print(``,B=0); p1:=coeff(B,x,2): p2:=coeff(B,x,1): p3:=coeff(B,x,0): C:=p2*p2-4*p1*p3: print(``,delta=0,`voi moi m`,``,C=0,`voi moi m`); C:=p2*p2-4*p1*p3: D1:=collect(C,m): print(``,D1=0,`voi moi m.Dieu nay xay ra khi va chi khi`); p11:=coeff(D1,m,2): p12:=coeff(D1,m,1): p13:=coeff(D1,m,0): print(p11=0, p12=0, `va`,p13=0); print(``,solve({p11,p12,p13},{b1,c1,d1}));↵ • Ví dụ 7: Bài toán tìm đường thẳng luôn tiếp xúc với một đường cong cho trước: [> restart:a:=0:b:=(m+1):c:=m:a1:=1:b1:=m: print(`Tim phuong trinh cua duong thang luon tiep xuc voi ho duong cong`); y:=(a*x^2+b*x+c)/(a1*x+b1): print(`(Hm):`,y);y1:=k*x+n: print(`Mot duong thang bat ky co he so goc la k co phuong trinh la:`); print(`(d) :`,y1); print(`Ta co phuong trinh hoanh do giao diem cua ho duong cong (Hm) va duong thang (d) la:`); A:=numer(y)-denom(y)*y1: A=0; B:=expand(A): C:=collect(B,x): 97 www.MATHVN.com www.mathvn.com print(``,C=0,` (1)`); p1:=coeff(C,x,2): p2:=coeff(C,x,1): p3:=coeff(C,x,0): D1:=p2^2-4*p1*p3: D2:=collect(D1,m): print(`De duong thang la tiep tuyen cua ho duong cong (Hm) thi (1) phai co nghiem kep voi moi m `); print(``, delta=0,` `,D1=0,` voi moi m`); print(``, D2=0,` voi moi m.`,` Dieu nay xay ra voi moi m khi va chi khi `); p11:=coeff(D2,m,2): p12:=coeff(D2,m,1): p13:=coeff(D2,m,0): print(p11=0, p12=0 ,` va `, p13=0); p11:=coeff(D2,m,2): p12:=coeff(D2,m,1): p13:=coeff(D2,m,0): print(``,solve({p11,p12,p13},{k,n})); print(`Vay ta co phuong trinh cua duong thang can tim la:`); ↵ • Ví dụ 8: Bài toán tìm điểm cố định của một đường cong: [> restart: y1:=(m^2*x^2+(2*m+m^2)*x-1+m)/(m*x-1); print(`Tim diem co dinh cua ho duong cong `); print(`(Hm): y=`,y1); print(`Ta viet phuong cua ham so lai duoi dang`); print(y1-y = 0); mau:=denom(y1):tu:=numer(y1):A:=tu-y*mau:B:=collect(A,m): print(``,B = 0); print(`Muon dang thuc dung voi m thi:`); p1:=coeff(B,m,2):p2:=coeff(B,m,1):p3:=coeff(B,m,0): print(p1 = 0,p2 = 0,` va `,p3 = 0); print(` `,solve({p1,p2,p3},{x,y})); print(`Diem co dinh cua ho duong cong la: `,solve({p1,p2,p3},{x,y}));↵ 4.4. Các câu lệnh của Maple hỗ trợ giải các bài toán giải tích. -Tính giới hạn của hàm số f(x) khi x tiến tới a: limit(f,x=a); giá trị dương vô cùng, âm vô cùng được viết là infinity, - infinity. Ví dụ: [> limit((2*x^3+6*x-1)/(2*x^2+3),x=2); ↵ 27 11 98 www.MATHVN.com www.mathvn.com [> Limit(sqrt(2*x^3+x+2)/(2*x+1),x=1); ↵ lim → x 1 + + 2 x3 x 2 + 2 x 1 [> limit((2*x^2+3*x-5)/(x^2+3),x=infinity); ↵ 2 -Tính đạo hàm của hàm số f(x) theo biến x: diff(f(x),x); Diff(f(x),x); Ví dụ [> diff((2*x^3+6*x-1)/(2*x^2+3),x); ↵ − + 6 x 2 6 + 2 x2 3 4 ( ) + − 2 x3 6 x 1 x ( ) + 2 x2 3 2 [> Diff(sqrt(2*x^3+x+2)/(2*x+1),x); ↵ ∂ ∂ x + + 2 x3 x 2 + 2 x 1 -Tính đạo hàm bậc n của hàm số f(x) theo biến x: diff(f(x),x$n); Ví dụ [> diff((2*x^3+6*x-1)/(2*x^2+3),x$2); ↵ − + − 12 x + 2 x2 3 8 ( ) + 6 x2 6 x ( ) + 2 x2 3 2 32 ( ) + − 2 x3 6 x 1 x2 ( ) + 2 x2 3 3 4 ( ) + − 2 x3 6 x 1 ( ) + 2 x2 3 2 [> Diff(sqrt(2*x^3+x+2)/(2*x+1),x$3); ↵ ∂ ∂3 x3 + + 2 x3 x 2 + 2 x 1 -Tìm nguyên hàm của hàm số f(x) theo biến x: int(f(x),x); Int(f(x),x); Ví dụ: [> int(sin(x)^2+cos(x)^4,x); ↵ − + + 18 ( )cos x ( )sin x 7 8 x 1 4 ( )cos x 3 ( )sin x [> Int((2*x^2+3*x-5)/(x^2+3),x); ↵ -Tính tích phân xác định của hàm số f(x) trên đoạn [a,b]: int(f(x),x=a..b); Int(f(x),x=a..b); Ví dụ: [> int((2*x^2+3*x-5)/(x^2+3),x=-1..1); ↵ − + 119 3 π 4 [> int(sin(x)^2+cos(x)^4,x=-Pi..Pi); ↵ 7 4 π [> Int(sqrt(2*x^3+x+2)/(2*x+1),x=-2..2); ↵ 99 www.MATHVN.com www.mathvn.com d ⌠ ⌡ ⎮⎮⎮⎮ -2 2 + + 2 x3 x 2 + 2 x 1 x -Tìm giá trị lớn nhất, nhỏ nhất của hàm số trên miền D: minimize(f,x=a..b); maximize(f,x=a..b). Ví dụ: [> maximize(sin(x)^2+cos(x)^4,x=-Pi..Pi); ↵ 1 [> minimize((2*x^3+6*x-1)/(2*x^2+3),x=2..5); ↵ 27 11 -Để xác định nguyên hàm của một hàm số, ta có thể sử dụng đoạn lệnh sau: [> with(Maplets): with(Maplets[Elements]): integrationMaplet3:= Maplet( Window('title'="TINH NGUYEN HAM", [["NGUYEN HAM: ", TextField['TF1']()],["BIEN XAC DINH TRONG NGUYEN HAM: ", TextField['TF2'](3)], MathMLViewer['TB1'](), ["Do thi ham va nguyen ham cua no"], Plotter['PL1'](), [Button("NGUYEN HAM", Evaluate(TB1 = 'MathML[Export](int(TF1, TF2))')),Button("DO THI", Evaluate('PL1'='plot([TF1, eval(int(TF1,TF2)) ], x=-2..2)')), Button("OK", Shutdown(['TF1', 'TF2']))]] ) ): [> Maplets[Display]( integrationMaplet3 ); Khi đó trên màn hình xuất hiện cửa sổ, ta nhập dạng biểu thức của hàm số cần tìm nguyên hàm và tên biến, ta sẽ nhận được biểu thức của nguyên hàm. Nếu nhấn nút “Đồ thị” ta sẽ thu được dạng đồ thị của f(x) và nguyên hàm F(x) của nó: 100 www.MATHVN.com www.mathvn.com -Để xác định tích phân xác định của hàm số f(x) trên đoạn [a,b], ta có thể sử dụng đoạn lệnh sau: [> restart: with(Maplets):with(Maplets[Elements]):with(student): TICH_PHAN:= Maplet( Window('title'="TINH TICH PHAN",[["NHAP HAM SO CAN TINH TICH PHAN: ", TextField['TF1']()],["NHAP CAN DUOI: ", TextField['TF2'](4)],["NHAP CAN TREN: ", TextField['TF3'](3)], MathMLViewer['TB1'](),["DO THI CUA HAM DA NHAP "], Plotter['PL1'](ld),[Button("TICH PHAN", Evaluate(TB1 ='MathML[Export](int(TF1, x=TF2..TF3))')), Button("DO THI", Evaluate('PL1'='middlebox(TF1,x=-5..5,colour = red)')), Button("OK", Shutdown(['TF1', 'TF2','TF3']))]] ) ): [> Maplets[Display](TICH_PHAN ); Khi đó trên màm hình xuất hiện cửa sổ để nhập dạng biểu thức của hàm số cần tìm tích phân xác định và cận lấy tích phân, ta sẽ nhận được kết quả. Nếu nhấn nút “Đồ thị” ta sẽ thu được dạng đồ thị của f(x) 101 www.MATHVN.com www.mathvn.com 4.5. Nhóm các lệnh của Maple hỗ trợ dạy học đại số tuyến tính 4.5.1. Một số câu lệnh thường dùng Để khai thác thế mạnh của Maple trong lĩnh vực đại số tuyến tính, ta khởi động chương trình bằng lệnh restart và nạp gói công cụ chuyên ngành linalg -Lệnh khai báo ma trận: matrix() hoặc array() ,ví dụ: [> matrix([[5,4],[6,3]]); ↵ ⎡ ⎣⎢⎢ ⎤ ⎦⎥⎥ 5 4 6 3 [> B:=array([[4,1,3],[2, 2,5]]); ↵ := B ⎡⎣⎢⎢ ⎤ ⎦⎥⎥ 4 1 3 2 2 5 -Lệnh tính tổng của hai ma trận: evalm() hoặc add() , ví dụ [> A:=array([[1,2,3],[4,5,6],[7,8,9]]); ↵ := A ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 1 2 3 4 5 6 7 8 9 [> B:=matrix(3,3,[9,8,7,6,5,4,3,2,1]); ↵ := B ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 9 8 7 6 5 4 3 2 1 [> evalm(A+B); ↵ ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 10 10 10 10 10 10 10 10 10 -Lệnh nhân ma trận: multiply(), ví dụ với hai ma trận A, B như đã khai báo ở trên, ta có: [> multiply(A,B); ↵ ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 30 24 18 84 69 54 138 114 90 -Lệnh tìm tích trong của ma trận và véctơ: innerprod(), ví dụ: [> restart: with(linalg): u := vector(3, [1,2,3]); ↵ := u [ ], ,1 2 3 [> A := matrix(3,3, [1,2,3,4,5,6,7,8,9]); ↵ 102 www.MATHVN.com www.mathvn.com := A ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 1 2 3 4 5 6 7 8 9 [> innerprod(u, A); ↵ [ ], ,30 36 42 [> w := vector(3, [9,8,7]); ↵ := w [ ], ,9 8 7 [> innerprod(u,w); ↵ 46 -Lệnh tính tích vô hướng của hai véc tơ: dotprod(), ví dụ: [> u := vector([1,2,3,4,5]); ↵ := u [ ], , , ,1 2 3 4 5 [> v := vector([6,7,8,9,10] ); ↵ := v [ ], , , ,6 7 8 9 10 [> dotprod(u, v); ↵ 130 -Lệnh tạo ma trận con: submatrix(), ví dụ: [> A := array([[1,2,3],[4,x,6]] ); ↵ := A ⎡⎣⎢⎢ ⎤ ⎦⎥⎥ 1 2 3 4 x 6 [> submatrix(A, 1..2, 2..3); ↵ ⎡ ⎣⎢⎢ ⎤ ⎦⎥⎥ 2 3 x 6 [> submatrix(A, [2,1], [2,1]); ↵ ⎡ ⎣⎢⎢ ⎤ ⎦⎥⎥ x 4 2 1 -Lệnh nhân một dòng của ma trận với một biểu thức mulrow(), mulcol(), ví dụ: [> A := matrix( [[1,2],[3,4]] ); ↵ := A ⎡⎣⎢⎢ ⎤ ⎦⎥⎥ 1 2 3 4 [> mulrow(A, 2, 2); ↵ ⎡ ⎣⎢⎢ ⎤ ⎦⎥⎥ 1 2 6 8 [> mulcol(A, 2, x); ↵ 103 www.MATHVN.com www.mathvn.com ⎡ ⎣⎢⎢ ⎤ ⎦⎥⎥ 1 2 x 3 4 x -Lệnh tìm ma trận chuyển vị: transpose(), ví dụ: [> A := array( [[5,10,15],[20,25,30]] ); ↵ := A ⎡⎣⎢⎢ ⎤ ⎦⎥⎥ 5 10 15 20 25 30 [> transpose(A); ↵ ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 5 20 10 25 15 30 -Lệnh tìm bất biến của ma trận permanent(), ví dụ: [> A := matrix( [[1,2,3],[4,5,6],[7,8,9]] ); ↵ := A ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 1 2 3 4 5 6 7 8 9 [> permanent(A); ↵ 450 [> B := matrix( [[a,b,c],[d,e,f],[g,h,i]] ); ↵ := B ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ a b c d e f g h i [> permanent(B); ↵ + + + + + a e i a f h d b i d c h g b f g c e -Lệnh tính giá trị riêng và véc tơ riêng của ma trận eigenvectors (), ví dụ: [> A := matrix(3,3, [1,-3,3,3,-5,3,6,-6,4]); ↵ := A ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 1 -3 3 3 -5 3 6 -6 4 [> e := eigenvalues(A); ↵ := e , ,4 -2 -2 [> v := [eigenvectors(A)]; := v [ ,[ ], ,4 1 { }[ ], ,1 1 2 [ ], ,-2 2 { },[ ], ,1 1 0 [ ], ,-1 0 1 ] Kết quả của lệnh eigenvectors được xắp xếp như sau: số đầu tiên trong mỗi móc vuông của dòng là giá trị riêng, số thứ hai là bội đại số của giá trị riêng, và cuối cùng là tập 104 www.MATHVN.com www.mathvn.com các véctơ cơ sở của không gian riêng ứng với giá trị riêng đó. Mỗi móc vuông ứng với một giá trị riêng của ma trận, cụ thể: [> v[1][1]; ↵ 4 [> v[1][3]; ↵ { }[ ], ,1 1 2 [> v[2][1]; ↵ -2 [> v[2][2]; 2 -Lệnh tìm ma trận đặc trưng charmat(), ví dụ: [> A := matrix(3,3,[1,2,3,1,2,3,1,5,6]); ↵ := A ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 1 2 3 1 2 3 1 5 6 [> charmat(A, lambda); ↵ ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ − λ 1 -2 -3 -1 − λ 2 -3 -1 -5 − λ 6 -Lệnh tìm đa thức đặc trưng của ma trận: charpoly(), ví dụ: [> A:= matrix(3,3,[1,2,3,1,2,3,1,5,6]); ↵ := A ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 1 2 3 1 2 3 1 5 6 [> charpoly(A,x); ↵ − x3 9 x2 -Lệnh tính hạng của ma trận rank(), ví dụ: [> A := matrix(3,3, [x,1,0,0,0,1,x*y,y,1]); ↵ := A ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ x 1 0 0 0 1 x y y 1 [> rank(A); ↵ 2 105 www.MATHVN.com www.mathvn.com -Lệnh tính định thức det (), ví dụ: [> A := hilbert(3); ↵ := A ⎡ ⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 1 1 2 1 3 1 2 1 3 1 4 1 3 1 4 1 5 [> det(A); ↵ 1 2160 -Lệnh giải phương trình đại số tuyến tính Ax=u: linsolve (), ví dụ: [> A := matrix( [[1,2],[1,3]] ): b := vector( [1,-2]): linsolve(A, b); ↵ [ ],7 -3 [> B := matrix( [[1,1],[-2,1]] ): linsolve(A, B); ↵ ⎡ ⎣⎢⎢ ⎤ ⎦⎥⎥ 7 1 -3 0 [> A := matrix( [[5,7],[0,0]] ): b := vector( [3,0] ): linsolve(A, b, 'r'); ↵ ⎡ ⎣⎢⎢ ⎤ ⎦⎥⎥, − 3 5 7 5 _t1 _t1 4.5.2. Sử dụng Maple hỗ trợ kiểm tra kết quả tính toán • 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à AP ( )λ thỏa mãn: n n n 1 A 1 n 1P n( ) ( 1) p ... p − −λ = − λ + λ + + λ + p là đa thức đặc trưng của A. Khi đó, AP (A) = 0 “. Vậy mọi đa thức Q(λ ) chia hết cho nP ( )λ thì ta cũng có Q(A) = 0. Đặc biệt: . nQ ( ) S( ).P ( ) R ( ) Q (A ) R (A )λ = λ λ + λ ⇒ = Chương trình được thiết kế nhằm thực hiện tuần tự các nội dung: - Tính đa thức đặc trưng của A. 106 www.MATHVN.com www.mathvn.com - Tìm dư khi chia xn cho đa thức đặc trưng của A (khi đó đa thức dư sẽ có bậc nhỏ hơn cấp của ma trận một đơn vị). - Tính An theo đa thức dư. Mã chương trình [> restart; with(LinearAlgebra): Luythua:=proc(A, n) local p, r, f, x; p:=CharacteristicPolynomial(A, x); r:=rem(x^n, p, x); f := unapply(r, x); f(A); end: ↵ Minh hoạ việc sử dụng chương trình (thực hiện chương trình với các tham số): [> with(LinearAlgebra): ↵ [> A:=|>;# Khai báo ma trận A↵ 3 5 1 2 2A : 1 3 1 2 2 ⎡ ⎤+ −⎢ ⎥⎢ ⎥= ⎢ ⎥−⎢ ⎥⎣ ⎦ [> Luythua(A, 2002); # Thực hiện thủ tục tính luỹ thừa với số mũ là 2002↵ 1 5 3 2 2 3 1 3 2 2 3⎡ ⎤−⎢ ⎥⎢ ⎥⎢ ⎥− +⎢ ⎥⎣ ⎦ Ta có thể mở rộng cho bất kì một đa thức bậc n với ẩn là ma trận A, bằng cách thay r:=rem(x^n, p, x) bằng r:=rem( f(x) , p, x). • Kiểm tra tính lũy linh của một ma trận vuông Xét vấn đề kiểm tra một ma trận vuông bất kì có phải là một ma trận lũy linh hay không? Nếu ma trận đó là ma trận lũy linh thì chỉ ra bậc của ma trận lũy linh đó (Xét đến ma trận lũy linh bậc 100000000). Thuật toán: - Tìm tất cả các giá trị riêng của ma trận. - Nếu tất cả các giá trị riêng của ma trận đều bằng 0 thì ma trận là lũy linh, ngược lại ma trận là không lũy linh. - Nếu ma trận là lũy linh thì ta tìm bậc lũy linh: + Tính lũy thừa ma trận (số lũy thừa lặp từ 2 đến 100000000). 107 www.MATHVN.com www.mathvn.com + Lập ma trận không cấp bằng với ma trận đã cho. + Nếu tồn tại chỉ số i sao cho lũy thừa bậc i thì ma trận đã cho bằng ma trận không. Lấy chỉ số i đó ta được bậc lũy linh của ma trận đã cho. Mã chương trình: [> restart;with(linalg): with(LinearAlgebra): LLkhong:=proc(A) local i, M, p, k, L, u, J, Q, P; p:=CharacteristicPolynomial(A, x); k:=solve(p=0,{x}); L:={k}; u:=nops(L); M:=Matrix(1..rowdim(A), 1..coldim(A), shape=zero); if equal(M, A)=true then print(‘ Trường hợp tầm thường ‘); 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; 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:=||>;# Khai báo ma trận#↵ := A ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 0 -2 1 -1 0 0 -2 0 0 [> 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 [> J:=JordanForm(A): Q := JordanForm(A, output='Q'): ↵ [> Q^(-1) . A . Q; ↵ ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 0 1 0 0 0 1 0 0 0 Để chỉ ra dạng chéo của ma trận ban đầu ta dựa vào dạng gần với ma trận chéo trên để tính được hạng (ma trận có hạng bằng 2), định thức của ma trận ban đầu (một ma trận lũy linh luôn có tất cả các giá trị riêng bằng không, do đó có định thức bằng không). • Kiểm tra tính giao hoán trong phép nhân các ma trận Mã chương trình: 108 www.MATHVN.com www.mathvn.com [> 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); if equal(C, D)=true then print('true') else print('false'); fi; fi; end: ↵ Minh hoạ việc sử dụng chương trình [> A:=matrix(3,3,[2,0,0,0,3,0,0,0,3]); ↵ := A ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 2 0 0 0 3 0 0 0 3 [>B:=matrix(3,3,[0,0,0,0,0,0,0,1,0]); ↵ := B ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 0 0 0 0 0 0 0 1 0 [> GiaohoanK(A,B); ↵ true • 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 '); 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]); ↵ := A ⎡ ⎣ ⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥ 1 0 0 0 1 -2 3 -2 0 1 1 -1 -1 -2 0 1 109 www.MATHVN.com www.mathvn.com [> CheohoaK(A); ↵ true Dạng chéo của ma trận là ⎡ ⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 1 0 0 0 0 3 0 0 0 0 − + 32 1 2 13 0 0 0 0 − − 32 1 2 13 • Kiểm tra và khẳng định tính đúng đắn của các mệnh đề. Xét mệnh đề sau: “ Hai ma trận vuông đồng dạng thì có cùng vết “. Liệu điều đó có đúng không và mệnh đề đảo có đúng không? Ta sử dụng các câu lệnh sau của Maple: [> A := matrix(3,3,[0,1,2,-1,-1,-1,2,0,1]); ↵ := A ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 0 1 2 -1 -1 -1 2 0 1 [> B := diag(eigenvalues(A)); ↵ [ > CheohoaK(A); ↵ true := B ⎡ ⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ -1 0 0 0 + 12 1 2 13 0 0 0 − 12 1 2 13 [> issimilar(A, B); ↵ true [> trace(A); ↵ 0 [> trace(B); ↵ 0 [> C := matrix(3,3,[0,2,3,0-1,0,2,3,-1,0]); ↵ := C ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 0 2 3 -1 0 2 3 -1 0 [> trace(A); ↵ 0 [> trace(C); ↵ 0 [> issimilar(A, C); ↵ false 110 www.MATHVN.com www.mathvn.com Như vậy ở trên ta thấy hai ma trận cùng vết (A và C) nhưng không đồng dạng, suy ra mệnh đề đảo không đúng. • Tính định thức của ma trận n i,j 1 min(i, j) = . Trước hết ta dùng các hàm của Maple tạo một ma trận với cấp xác định thỏa mãn điều kiện bài toán sau đó tính định thức của ma trận đó. Dựa trên kết quả để suy luận sau đó tổng quát hóa cho ma trận có cấp n bất kì. Mã chương trình: [> with(linalg): [> n:=5: A:=array(1..n,1..n): for i to n do for j to n do if i < j then A[i, j]:= i; else A[i, j]:= j; fi; od; od; print(A); ↵ Kết quả thực hiện thủ tục: ⎡ ⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 1 1 1 1 1 1 2 2 2 2 1 2 3 3 3 1 2 3 4 4 1 2 3 4 5 [> det(A); ↵ 1 Ta thấy kết quả của định thức bằng 1. Ta xét thêm ma trận cấp cao hơn (cấp 10) bằng cách thay n:=10 vào đầu các câu lệnh trên. Kết quả ta được một ma trận cũng có định thức bằng 1. Đến đây nảy sinh vấn đề: Vậy liệu đối với một ma trận có dạng như vậy với cấp bất kỳ thì kết quả trên còn đúng không ? Nếu điều đó đúng thì chắc chắn ma trận A sẽ phân tích được thành hai hay nhiều ma trận có định thức đều bằng 1. Để tìm hiểu, ta thực hiện lệnh sau: [> A1 := LUdecomp(A, L='A2',U='u'): ↵ [> evalm(A1); ↵ 111 www.MATHVN.com www.mathvn.com ⎡⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 [> evalm(A2); ↵ ⎡ ⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 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. • Tìm ma trận nghịch đảo Xét ma trận A có dạng như sau: 2 n 1 n 2 n 3 1 0 0 ... 0 a 1 0 ... 0 A a a 1 ... 0 . . . ... . a a a ... 1− − − ⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥= ⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦ Trước hết, ta tìm ma trận nghịch đảo của ma trận B có dạng như trên nhưng có bậc hoàn toàn xác định (chẳng hạn với bậc 5), sau đó tìm ma trận nghịch đảo của ma trận B, từ dạng của ma trận B-1 ta có thể dự đoán được dạng nghịch đảo của ma trận A Mã chương trình: [> restart; :with(linalg): ↵ [>B:=matrix(5,5,[1,0,0,0,0,a,1,0,0,0,a^2,a,1,0,0,a^3,a^2,a,1,0,a^4,a^3,a^2,a,1]); ↵ := B ⎡ ⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 1 0 0 0 0 a 1 0 0 0 a2 a 1 0 0 a3 a2 a 1 0 a4 a3 a2 a 1 [> inverse(B); ↵ 112 www.MATHVN.com www.mathvn.com ⎡⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 1 0 0 0 0 −a 1 0 0 0 0 −a 1 0 0 0 0 −a 1 0 0 0 0 −a 1 Từ đây dự đoán ma trận nghịch đảo của A sẽ có dạng như sau: 1 1 0 0 ... 0 0 a 1 0 ... 0 0 0 a 1 ... 0 0 A . . . ... . . 0 0 0 ... 1 0 0 0 0 ... a 1 − ⎡ ⎤⎢ ⎥−⎢ ⎥⎢ ⎥−= ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥−⎢ ⎥⎣ ⎦ • Kiểm tra tính khác không của định thức bằng cách dùng phép chia có dư cho các phần tử trong ma trận để đưa ma trận đó về dạng đơn giản. Mã chương trình: [> with(linalg): [> Matrixmod:=proc(A, p) local u, v, i, j, B; u:=rowdim(A);v:=coldim(A); B:=array(1..u, 1..v); for i to u do for j to v do B[i,j]:=A[i, j] mod p;od;od; print(B); end: ↵ Minh hoạ việc sử dụng chương trình [>A:=matrix(6,6,[7,82,62,54,24,90,86,13,24,26,6,8,0,2,5,8,0,12,2,4,6,9,64,24,12,4,6,8,1, 8,2,4,24,26,8,67]); ↵ := A ⎡ ⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 7 82 62 54 24 90 86 13 24 26 6 8 0 2 5 8 0 12 2 4 6 9 64 24 12 4 6 8 1 8 2 4 24 26 8 67 [> Matrixmod(A, 2); ↵ 113 www.MATHVN.com www.mathvn.com ⎡⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 Rõ ràng ma trận kết quả là ma trận đơn vị nên có định thức khác không do đó ma trận đã cho sẽ có định thức khác không. • Tìm hạng của ma trận vuông cấp n mà các phần tử trên đường chéo chính bằng 0, còn các phần tử còn lại bằng 1 hoặc -1. Trước hết ta tạo ra một ma trận để thỏa mãn giả thiết của đề bài (vì trong thư viện của Maple chưa có sẵn) có các phần tử trên đường chéo chính bằng 0, các phần tử còn lại lấy các giá trị 1 hoặc -1 một cách tùy ý. Mã chương trình: - Tạo ma trận: [> Matrixransign:=proc(m,n) local i, j, a, c, A; A:=matrix(m, n, []); for i to m do for j to n do a:=rand(-99..99): c:=a(); if ij then A[i, j]:=sign(c); else A[i, j]:=0; fi; od; od; print(A); print(‘ Hạng của A là ‘,rank(A)); end: ↵ -Sau khi đã xây dựng xong chương trình tạo ma trận, tiến hành tính hạng của các ma trận ngẫu nhiên với cấp của ma trận được thay đổi. Ta bắt đầu từ cấp 5: [> Matrixransign(5,5); ⎡ ⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 0 1 1 1 -1 -1 0 -1 1 -1 1 -1 0 1 -1 -1 -1 1 0 -1 -1 1 1 -1 0 Kết quả hạng của A : 5 Ta tiếp tục thử cho các ma trận ngẫu nhiên khác, sau một số ma trận có hạng không đổi, ta gặp ma trận sau đây có hạng là 4. [> Matrixransign(5,5); ↵ 114 www.MATHVN.com www.mathvn.com ⎡⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 0 1 -1 1 1 1 0 1 -1 -1 1 1 0 -1 -1 -1 1 1 0 -1 1 -1 -1 -1 0 Kết quả hạng của A: 4 Tiếp tục với ma trận cấp 7 : [>Matrixransign(7,7); ↵ ⎡ ⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 0 1 1 -1 -1 1 -1 -1 0 1 1 1 1 -1 1 1 0 1 -1 1 -1 -1 -1 -1 0 1 1 1 -1 -1 1 -1 0 1 -1 1 -1 -1 1 -1 0 -1 1 -1 -1 -1 1 -1 0 Kết quả hạng của A: 7 Tiếp tục thử ta được kết quả dưới đây: [> Matrixransign(7,7); ↵ ⎡ ⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 0 -1 -1 1 1 1 -1 -1 0 1 -1 -1 -1 -1 1 1 0 1 -1 1 -1 -1 -1 -1 0 1 1 -1 -1 1 1 1 0 1 -1 -1 1 1 1 1 0 -1 1 -1 1 1 -1 -1 0 Kết quả hạng A: 6 Như vậy, hạng của ma trận chỉ có thể là 7 (bằng cấp của ma trận) hoặc 6. Từ đó ta đi đến dự đoán sau "Hạng của ma trận trên hoặc là n hoặc là n-1 ". Mở rộng bài toán: Thay giả thiết các phần tử bằng -1 bằng một phần tử tùy ý ta vẫn được kết quả tương tự: " Trên đường chéo ma trận cấp n là các số 0, còn các phần tử khác hoặc là 1 hoặc là c (c∈Z), ta có hạng của ma trận này hoặc là n-1, hoặc là n ". • 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 không. 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ụ: - Tính tổng các trị tuyệt đối của các phần tử nằm ngoài đường chéo. 115 www.MATHVN.com www.mathvn.com - 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) local i, j, M, N, K; if rowdim(A) coldim(A) then print(‘ Nhap ma tran vuong ‘); else M:=0; K:=0; N:=abs(A[1, 1]); for i to rowdim(A) do if N > abs(A[i, i]) then N:=abs(A[i, i]); fi; K:=K + abs(A[i, i]); for j to rowdim(A) do M:= M +abs(A[i, j]); od; od; print(‘ Phần tử trên đường chéo chính có trị tuyệt đối bé nhất là ‘, N); print(‘ Tổng trị tuyệt đối của các phần tử ngoài đường chéo chính là ‘, M-K); print(‘ Định thức của ma trận A là ‘, det(A)); fi; end: ↵ Minh hoạ việc sử dụng chương trình [> A:=matrix(2,2,[-4,-1,0,2]); ↵ := A ⎡⎣⎢⎢ ⎤ ⎦⎥⎥ -4 -1 0 2 [> Chuan(A); ↵ Phần tử trên đường chéo chính có trị tuyệt đối bé nhất là , 2. Tổng trị tuyệt đối của các phần tử ngoài đường chéo chính là , 1. Định thức của ma trận A là , -8. Ta thấy ma trận trên khả nghịch, có ij i j a ≠ ∑ =1, iimin( a )=2. 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]); ↵ := A ⎡ ⎣ ⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥ 6 -1 0 1 0 7 1 -1 0 -1 -9 0 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. 116 www.MATHVN.com www.mathvn.com 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. 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ì định thức của ma trận đó khác không.Ta tiếp tục lập các ma trận thỏa mãn nhận xét trên và xem định thức của nó có khác không không ? [> A:=matrix(4,4,[-16,-1,0,1,0,12,1,-1,0,-1,-19,0,-2,1,3,17]): Chuan(A); ↵ Phần tử trên đường chéo chính có trị tuyệt đối bé nhất là , 12. Tổng trị tuyệt đối của các phần tử ngoài đường chéo chính là , 11. Định thức của ma trận A là, 61584. Tương tự ta thấy rằng các ma trận thỏa mãn nhận xét đều có định thức khác không. Từ đó ta cơ sở để đi đến một dự đoán là: " Một ma trận vuông cấp n A=( ija ) thỏa mãn iimin( a ) > ij i j a ≠ ∑ thì ma trận đó khả nghịch ".Đây là cách phát biểu khác của định lí Hađamard . • Đưa biểu thức toạ độ của dạng toàn phương về dạng chính tắc Thiết lập chu trình với Maple [> 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 for i to n do if has(S,x[i]^2) then K:=K+diff(S,x[i])^2/4/coeff(S,x[i]^2); S:=expand(Q-K); end if; 117 www.MATHVN.com www.mathvn.com end do; end do; if S0 then if type(S,`+`) then op(1,S) else S; fi; indets(%); l := [coeff(coeff(%%,%[1]),%[2]),%[1],%[2]]; K:=K+(diff(S,l[2])+diff(S,l[3]))^2/(4*l[1])- (diff(S,l[2])-diff(S,l[3]))^2/(4*l[1]); S:=expand(f-K); end if; end do; K:=map(simplify,K); RETURN(K); end: ↵ Các ví dụ minh hoạ sử dụng chương trình Ví dụ 1: [> Q:=x1^2 + 4*x2^2+ x3^2+ 4*x1*x2 + 2*x1*x3 + 2*x2*x3; ↵ := Q + + + + + x12 4 x22 x32 4 x1 x2 2 x1 x3 2 x2 x3 [> sqsum(Q); ↵ − + ( ) + + x1 2 x2 x3 2 ( ) + x3 x2 2 2 ( )− + x3 x2 2 2 Ví dụ 2: [> Q:=x*y+y*z+x*z; ↵ := Q + + x y y z x z [> sqsum(Q); ↵ − − ( ) + + x 2 z y 2 4 ( )− + x y 2 4 z 2 Ví dụ 3: [> Q:=sum(sum(x[i]*x[j],j=1..i-1),i=1..8); ↵ Q x6 x2 x2 x1 x3 x1 x4 x1 x4 x2 x4 x3 x5 x1 x5 x2 x5 x3 x5 x4 + + + + + + + + + := x6 x1 x6 x3 x6 x4 x6 x5 x7 x1 x7 x2 x7 x3 x7 x4 x7 x5 x7 x6 + + + + + + + + + + x3 x2 x8 x1 x8 x2 x8 x3 x8 x4 x8 x5 x8 x6 x8 x7 + + + + + + + + [> sqsum(Q); ↵ 118 www.MATHVN.com www.mathvn.com 1 4 ( ) + + + + + + + x6 2 x1 2 x4 2 x5 2 x7 2 x3 2 x8 x2 2 1 4 ( )− + x6 x2 2 − 1 4 ( ) + + + + + x1 x4 x5 x7 x8 2 x3 2 1 12 ( ) + + + + x4 x5 x7 x8 3 x1 2 − − 1 24 ( ) + + + x4 x7 x8 4 x5 2 1 40 ( ) + + x4 x8 5 x7 2 1 60 ( ) + x8 6 x4 2 7 12 x8 2 − − − − 4.6. Khai thác các thư viện của Maple trong dạy học toán • Tính giới hạn của hàm số khi đối số dần đến một điểm nào đó. Câu lệnh: [>Student[Precalculus][LimitTutor]; # lệnh mở gói công cụ LimitTutor(f, pt); Trong đó: f - (tuỳ chọn) biểu thức đại số (hàm số) chứa một biến, pt - (tuỳ chọn) hằng số hay biểu thức có dạng name=constant, trong đó name là tên của biến số của f. Mặc định là 0. Ví dụ. Tính giới hạn của hàm số x2 + 2x + 3 khi x → 0: [> with(Student[Precalculus]): LimitTutor(x^2 + 2*x + 3); Kết quả thực hiện: Trên màn hình xuất hiện cửa sổ mô tả dạng đồ thị và bảng giá trị của hàm số tại một số điểm bên phải, bên trái điểm 0. Ta có thể thay đổi giá trị xủa x0 bằng cách thay đổi giá trị tại ô “x=” hoặc t đ C T V www.MATHVN.comhay đổi biểu thức của hàm số f(x) tại hộp thoại “f(x)=” Chú ý. Nếu dùng lệnh LimitTutor() thì chương trình sẽ đưa ra một hàm số mặc ịnh. Xem chi tiết cách sử dụng trong mục Help của mỗi chương trình. • Vẽ đồ thị của đường thẳng âu lệnh: [>Student[Precalculus][LineTutor];LineTutor(f); rong đó: f - (tuỳ chọn) biểu thức đại số bậc nhất đối với biến x và y. í dụ: [> with(Student[Precalculus]):LineTutor(); 119www.mathvn.com Khi thực hiện lệnh, trên màn hình xuất hiện bảng, ta chọn 1 trong 4 dạng: - Point, slope: Vẽ đường thẳng đi qua một điểm P(x,y) với hệ số góc m; - Two Points: Vẽ đường thẳng đi qua 2 điểm P1(x1,y1), P2(x2,y2); - Slope,intercept: Vẽ đường thẳng dạng y=ax+b; - General form: Vẽ đường thẳng ax+by=0 Ví dụ đường thẳng đi qua điểm P(2, 0) và có hệ số góc bằng m = 1 như sau: • Tìm nghiệm gần đúng và minh hoạ bằng đồ thị các nghiệm của một đa thức. Câu lệnh: [>Student[Precalculus][PolynomialTutor];PolynomialTutor(p); Trong đó: p - (tuỳ chọn) đa thức một biến. Ví dụ: [> with(Student[Precalculus]):PolynomialTutor(2*x^2+2*x-1); • Xác định hệ số góc của đường cong Câu lệnh:[> Student[Precalculus][FunctionSlopeTutor]; FunctionSlopeTutor(f, pt) Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, 120 www.MATHVN.com www.mathvn.com pt - (tuỳ chọn) hằng số hay biểu thức dạng name=constant, trong đó name là tên của biến số trong biểu thức f. Mặc định là 0. Ví dụ: [> with(Student[Precalculus]): FunctionSlopeTutor(x^3+3*x^2+x-3); Kết quả như hộp thoại sau: Ta có thể thay đổi giá trị của x và biểu thức f(x) để được các kết quả cần có • Vẽ đồ thị hàm phân thức Câu lệnh:[> Student[Precalculus][RationalFunctionTutor]; RationalFunctionTutor(f) Trong đó: f - (tuỳ chọn) hàm phân thức một biến số. Ví dụ.[> with(Student[Precalculus]): RationalFunctionTutor(); • Vẽ đồ thị và các yếu tố liên quan đến đường côníc. Câu lệnh:[ >Student[Precalculus][ConicsTutor] ; 121 www.MATHVN.com www.mathvn.com ConicsTutor(f) Trong đó: f - (tuỳ chọn) một trong các dạng sau đây: biểu thức đại số bậc hai đối với biến x và y, không có hạng tử xy; phương trình dạng r = g(t), trong đó g(t) là phương trình của một côníc với biến t; biểu thức g(t), trong đó g(t) là phương trình của một côníc với biến t . Ví dụ.[> with(Student[Precalculus]): ConicsTutor(x^2/16 + y^2/9 = 1); Kết quả thực hiện như sau: • Vẽ đồ thị hàm số hợp của hai hàm số cho trước. Câu lệnh:[> Student[Precalculus][CompositionTutor]; CompositionTutor(f, g) Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, g - (tuỳ chọn) biểu thức đại số chứa một biến. Ví dụ: [> with(Student[Precalculus]): CompositionTutor(); CompositionTutor(x^3+2, 1/x^2); Kết quả trên màn hình bao gồm đồ thị các hàm số f(x), g(x) và hàm hợp f(g(x)) được biểu diễn bởi các mầu khác nhau. Ta có thể tuỳ chọn thể hiện đồ thị của hàm f(g(x)) hoặc g(f(x)) 122 www.MATHVN.com www.mathvn.com • Minh hoạ miền nghiệm của hệ bất phương trình tuyến tính Câu lệnh:[> LinearInequalitiesTutor(s) Trong đó: s - (tuỳ chọn) là bất phương trình tuyến tính với biến x và y hoặc hệ bất phương trình (được cho bởi tối đa là 6 bất phương trình). Ví dụ.[> with(Student[Precalculus]): LinearInequalitiesTutor(); Ta có thể thay đổi dạng của các bất phưng trình bằng cách thay số trực tiếp tại các hộp thoại vá nhấn nút Display. 123 www.MATHVN.com www.mathvn.com • Vẽ đồ thị của một số hàm số sơ cấp dạng af(bx + c) + d Câu lệnh:[> StandardFunctionsTutor(f); Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến. Ví dụ.[>with(Student[Precalculus]): StandardFunctionsTutor(); Kết quả, trên màn hình xuất hiện hộp thoại, ta có thể thay đổi các tham số để khảo sát các dạng cần thiết. • Thay đổi màu mặc định cho đồ thị của các Section Câu lệnh:[> SetColors(color1, color2, ..., color10) Trong đó: color1, color2, ..., color10 - (tuỳ chọn) các màu. Ví dụ.[> with(Student): SetColors(); SetColors('blue', 'red'); • Tính đạo hàm của hàm số theo từng bước Câu lệnh:[> Student[Calculus1][DiffTutor]; DiffTutor(f, var); Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, var - (tuỳ chọn) biến số. Ví dụ. Tính đạo hàm của hàm số y = xsin(x). [> with(Student[Calculus1]): DiffTutor(x*sin(x), x); 124 www.MATHVN.com www.mathvn.com Kết quả trên màn hình cho ta thấy kết quả từng bước của quá trình tính đạo hàm. • Tìm nguyên hàm và tính tích phân xác định Câu lệnh : [> IntTutor(f, var); Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến,var - (tuỳ chọn) biến số. Ví dụ. Tính tích phân 1 2 0 1 1 dx x +∫ . [> with(Student[Calculus1]): IntTutor(1/(x^2+1), x); • Tính giới hạn của hàm số - Tính giới hạn của hàm số theo từng bước. 125 www.MATHVN.com www.mathvn.com Câu lệnh:[> LimitTutor(f, a, dir); LimitTutor(f, var=a, dir); Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, a - (tuỳ chọn) điểm, dir - (tuỳ chọn) hướng lấy giới hạn, var - (tuỳ chọn) biến số. Ví dụ. Tính giới hạn sau ( ) 0x lim x.cosx.lnx → [> with(Student[Calculus1]): LimitTutor(x*cos(x)*ln(x)); • Xấp xỉ tích phân - Biểu diễn đồ thị của một số phương pháp xấp xỉ tích phân. Qua đó, ta sẽ thấy đối với mỗi hàm số đã cho thì dùng phương pháp nào thì sai số là ít nhất. Câu lệnh:[> Student[Calculus1][ApproximateIntTutor]; ApproximateIntTutor(f, a..b) ApproximateIntTutor(f, var=a..b) Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, a..b - (tuỳ chọn) miền lấy tích phân, var - (tuỳ chọn) biến số. Ví dụ.[> with(Student[Calculus1]):ApproximateIntTutor(cos(x), 0..Pi/2); ApproximateIntTutor(cos(x), x=0..Pi/2); 126 www.MATHVN.com www.mathvn.com Chú ý. Để so sánh sự chính xác so với cách tính tích phân với phương pháp khác nhau ta nhấn vào nút compare. • Tính độ dài của một cung Câu lệnh:[> with(Student[Calculus1]):ArcLengthTutor(f, a..b); hoặ [>with(Student[Calculus1]):ArcLengthTutor(f, var=a..b); Trong đó Ví dụ. Tí [> with(S • Đ Câu lệnh Trong đó Ví dụ.[> D www.MATHVN.comc : f - (tuỳ chọn) biểu thức đại số chứa một biến, a..b - (tuỳ chọn) miền tính độ dài; var - (tuỳ chọn) biến số. nh độ dài của đường cong y = 2 - x3 trên đoạn [0; 2]. tudent[Calculus1]): ArcLengthTutor(2-x^3, x=0..2); ồ thị của một biểu thức đại số và đạo hàm của nó :[> with(Student[Calculus1]):DerivativeTutor(f, a..b); DerivativeTutor(f, var=a..b) : f - (tuỳ chọn) biểu thức đại số chứa một biến, a..b - (tuỳ chọn) miền vẽ đồ thị. with(Student[Calculus1]): erivativeTutor(x*cos(x), -2*Pi..2*Pi); 127www.mathvn.com • Tính giá trị trung bình của một hàm số Gi trị trung bình của hàm số y = f(x) trên đoạn [a; b] M được xác định bởi biểu thức: 1 ( ) b a M f x dx b a = − ∫ Câu lệnh:[> with(Student[Calculus1]):FunctionAverageTutor(f, a..b); FunctionAverageTutor(f, var=a..b); Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, a..b - (tuỳ chọn) miền lấy giá trị trung bình, var - (tuỳ chọn) biến số. Ví dụ. Tính giá trị trung bình của hàm số y = 2 - x3 trên đoạn [-2; 2]. [> with(Student[Calculus1]): FunctionAverageTutor(2-x^3, -2..2); Kết quả thực hiện cho ta thấy giá trị M và dạng đồ thị của hàm số f(x) www.MATHVN.comá128www.mathvn.com • Đồ thị của hàm số và hàm ngược của nó qua đường thẳng y = x Câu lệnh:[> with(Student[Calculus1]):InverseTutor(f, a..b); InverseTutor(f, var=a..b) Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, a..b - (tuỳ chọn) mền vẽ đồ thị, var - (tuỳ chọn) biến số. Ví dụ: [> with(Student[Calculus1]): InverseTutor(sin(x),-2*Pi..2*Pi); InverseTutor(1-exp(x), 1..2); C T V www.MATHVN.com • Mô tả tiếp tuyến - cát tuyến của hàm số tại một điểm âu lệnh:[> with(Student[Calculus1]):TangentSecantTutor(f, a); TangentSecantTutor(f, var=a) rong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, a - (tuỳ chọn) điểm, var - (tuỳ chọn) biến số. í dụ.[> with(Student[Calculus1]): TangentSecantTutor(x^2, x=4); 129www.mathvn.com • Phương trình tiếp tuyến tại một điểm Câu lệnh:[> with(Student[Calculus1]):TangentTutor(f, a); TangentTutor(f, var=a); Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, a - (tuỳ chọn) điểm, var - (tuỳ chọn) biến số. Ví dụ.[>with(Student[Calculus1]): TangentTutor(1-exp(x), 2); • Đa thức xấp xỉ Taylor Câu lệnh:[> with(Student[Calculus1]): TaylorApproximationTutor(f, a); TaylorApproximationTutor(f, var=a) Trong đó: f- (tuỳ chọn) biểu thức đại số chứa một biến, a - (tuỳ chọn) điểm, var - (tuỳ chọn) biến số. Ví dụ.[> with(Student[Calculus1]): TaylorApproximationTutor(sin(x), x=0); www.MATHVN.com130www.mathvn.com • Thể tích của khối tròn xoay Câu lệnh:[> with(Student[Calculus1]): VolumeOfRevolutionTutor(f, var=a..b) Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, a..b - (tuỳ chọn) miền tính thể tích, var - (tuỳ chọn) biến số. Ví dụ. Tính thể tích của khối tròn xoay tạo bởi đường cong y = 1 + sinx trên đoạn [0; π ] khi quay quanh trục hoành. [> with(St ent[Calculus1]): Volume • Tín Câu lệnh:[ Trong đó: Ví dụ. Tín quay quan [> with(St www.MATHVN.comud OfRevolutionTutor(1+sin(x), 0..Pi); h diện tích các mặt tròn xoay > with(Student[Calculus1]):SurfaceOfRevolutionTutor(f, var=a..b); f - (tuỳ chọn) biểu thức đại số chứa một biến, a..b - (tuỳ chọn) miền tính tích, var - (tuỳ chọn) biến số. h diện tích của mặt tròn xoay tạo bởi đường cong y = x2 trên đoạn [0; 2] khi h trục tung. udent[Calculus1]): SurfaceOfRevolutionTutor(x^2, x = 0.. 2); 131www.mathvn.com • Tìm nghiệm gần đúng theo phương pháp Niutơn Cho hàm số y = f(x) khả vi và có nghiệm nằm trong khoảng (a; b). Gọi { } *i i Nx ∈ là dãy các nghiệm gần đúng của phương trình f(x) = 0. Khi đó, ta có: Công thức Niutơn: ( ) ( )1 ' n n n n f x x x f x+ = − Câu lệnh:[> with(Student[Calculus1]): NewtonsMethodTutor(f, a) NewtonsMethodTutor(f, var=a) Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, a - (tuỳ chọn) điểm, var - (tuỳ chọn) biến số. Ví dụ.Tìm nghiệm gần đúng của phương trình x5 + x2-1=0 trong khoảng (-2; 2). Ta đặt f(x) = x5 + x2 - 1. Khi đó, dễ thấy f(0).f(1) = - 1 < 0 ⇒ f(x) = 0 có nghiệm trong khoảng (0; 1): [> with(Student[Calculus1]): NewtonsMethodTutor(x^5 + x^ 2 - 1, x = 0..2); • Minh hoạ kết quả của định lí Lagrăng Câu lệnh:[> > with(Student[Calculus1]): MeanValueTheoremTutor(f, var=a..b) Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, a..b - (tuỳ chọn) miền vẽ đồ thị, var - (tuỳ chọn) biến số. Ví dụ.[> with(Student[Calculus1]): 132 www.MATHVN.com www.mathvn.com MeanValueTheoremTutor(x*sin(x), -2*Pi..2*Pi ); • Khảo sát đường cong âu lệnh:[> with(Student[Calculus1]): CurveAnalysisTutor(f, a..b); www.MATHVN.comC CurveAnalysisTutor(f, var=a..b); Trong đó: f - (tuỳ chọn) biểu thức đại số chứa một biến, a..b - (tuỳ chọn) miền vẽ đồ thị, var - (tuỳ chọn) biến số. Ví dụ. Xác định các điểm cực đại, cực tiểu; miền tăng, giảm; khoảng lồi, lõm của hàm số y = xsinx trên đoạn [ ]2 ;2π π− . [> with(Student[Calculus1]): CurveAnalysisTutor(x*sin(x)); • Tính giá trị riêng của ma trận Câu lệnh:[> with(Student[LinearAlgebra]): EigenvaluesTutor(M) 133www.mathvn.com Trong đó: M - ma trận vuông. Ví dụ. Tính các giá trị riêng của ma trận vuông sau: 1 2 0 2 3 2 0 2 1 ⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦ [> with(Student[LinearAlgebra]): M := ||>; := M ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 1 2 0 2 3 2 0 2 1 [> EigenvaluesTutor( M ); Tiếp tục ta được kết quả sau: • Tính véctơ riêng của ma trận Câu lệnh:[ > with(Student[LinearAlgebra]): EigenvectorsTutor(M) Trong đó: M - ma trận vuông. Ví dụ. [> with(Student[LinearAlgebra]): M := ||>; 134 www.MATHVN.com www.mathvn.com := M ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 1 2 0 2 3 2 0 2 1 [> EigenvectorsTutor( M ); Tiếp tục ta có: + Với t = 1⇒ véctơ riêng là (-1; 0; 1). + Với t = 5 ⇒ véctơ riêng là (1; 2; 1). • Đưa ma trận về dạng Gauxơ Câu lệnh:[ > with(Student[LinearAlgebra]): GaussianEliminationTutor(M) GaussianEliminationTutor(M, v) Trong đó: M - Ma trận, v - Véctơ. Chú ý. Trong Section này số chiều của ma trận không được lớn hơn 5x5. Ví dụ. [> with(Student[LinearAlgebra]): [> M := |||>; := M ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 1 2 0 3 2 3 2 5 0 2 1 5 [> v := ; := v ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 5 4 2 [> GaussianEliminationTutor(M); GaussianEliminationTutor(M, v); 135 www.MATHVN.com www.mathvn.com Chúng ta có thể ma trận... • Đưa ma t Câu lệnh:[ > wit Gaus Gaus Trong đó: M - M Chú ý. Trong Se Ví dụ: [> with(S M := < www.MATHVN.comtìm được không gian các véctơ cột, không gian các véctơ dòng, hạng của rận về dạng Gauxơ - Jordan h(Student[LinearAlgebra]): sJordanEliminationTutor(M) sJordanEliminationTutor(M, v) a trận, v - Véctơ. ction này số chiều của ma trận không được lớn hơn 5x5. tudent[LinearAlgebra]): |||>; 136www.mathvn.com := M ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 1 2 0 3 2 3 2 5 0 2 1 5 [> v := ; := v ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 5 4 2 [> GaussJordanEliminationTutor( M ); GaussJordanEliminationTutor( M, v ); • Tính ma trận nghịch đảo 137 www.MATHVN.com www.mathvn.com Câu lệnh:[ > with(Student[LinearAlgebra]): InverseTutor(M); Trong đó: M - Ma trận vuông. Ví dụ. Tính ma trận nghịch đảo của ma trận : 1 2 0 2 3 2 0 2 1 ⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦ [> with(Student[LinearAlgebra]): M := ||>; := M ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 1 2 0 2 3 2 0 2 1 [> M^(-1); ⎡ ⎣ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥ 1 5 2 5 -4 5 2 5 -1 5 2 5 -4 5 2 5 1 5 [> InverseTutor( M ); 138 www.MATHVN.com www.mathvn.com Chúng ta có thể thực hiện từng bước và thử tính toán trên từng dòng, từng cột. Để đưa ra kết quả cuối cùng ta nhấn nút Hint. • Giải hệ phương trình tuyến tính Câu lệnh:[ > with(Student[LinearAlgebra]): LinearSolveTutor(M) LinearSolveTutor(M, v) Trong đó: M - Ma trận, v - Véctơ. Ví dụ:[> with(Student[LinearAlgebra]): M := |||>; := M ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 1 2 0 3 2 3 2 5 0 2 1 5 [> v := ; := v ⎡ ⎣ ⎢⎢⎢⎢⎢ ⎤ ⎦ ⎥⎥⎥⎥⎥ 5 4 2 [> LinearSolveTutor( M ); LinearSolveTutor( M, v ); 139 www.MATHVN.com www.mathvn.com Sử dụng nút Hint để đưa ra kết quả cuối cùng của bài toán. Trong tất cả các Section được trình bày ở trên đều có mục Help nhằm hướng dẫn cách sử dụng và khai thác có hiệu quả các chương trình này. Các ví dụ tương tự còn rất nhiều, do khuân khổ trong phạm vi một mục nhỏ không thể đưa ra hết được, chúng tôi coi như bài tập để bạn đọc tiếp tục tìm hiểu, khám phá. 140 www.MATHVN.com www.mathvn.com Nguồn tài liệu giáo trình đã trích dẫn, tham khảo [1]. Phạm Huy Điển, Đinh Thế Lục Tạ Duy Phượng -Hướng dẫn thực hành tính toán trên chương trình Maple V. NXB Giáo dục 1998. [2]. Phạm Huy Điển (chủ biên)-Tính toán, lập trình và giảng dạy toán học trên Maple. NXB KH&KT 2002. [3] . Nguyễn Bá Kim -Phương pháp dạy học môn toán. NXB ĐHSP – 2002. [4]. Mai Công Mãn -Sử dụng Maple trong giảng dạy môn hình học phẳng – Luận văn Thạc sỹ toán học 2000. [5]. Đào Thái Lai –Ứng dụng CNTT và vấn đề đổi mới PPDH môn Toán Tạp chí Nghiên cứu Giáo dục , số 9/2002. [6] . Nguyễn Văn Quý, Nguyễn Tiến Dũng, Nguyễn Việt Hà -Giải toán trên máy vi tính - NXB Đà Nằng,1998. [7]. Lê Công Triêm, Nguyễn Quang lạc – Một số quan điểm về cơ sở lý luận dạy học của việc sử dụng MTĐT .Tạp chí NCGD – 1992 [8] . Sue Johnston Wilder, David Pimm The free NCET (1995) leaflet, Mathematics ang IT - apupil's entitlement [9] .Sue Johnston Wilder, David Pimm The free NCET (1995) leaflet, Mathematics ang IT - apupil's entitlement [10]. Investigating transformation usng Geometer’s sketchpad through coopeerative learning – SM-106 SEAMEO. [11]. Tran Vui Investigating Geometry with the Geometer’s Sketchpad – A Conjecturing Approach. SEAMEO RECSAM, Penang, Malaysia. [12]. Asst.Prof.Krongthong Khairiee Teaching and Learning Mathematies Using The Geometer’s Sketchpad SEAMEO RECSAM, Penang Malaysia, 2002. [13]. Technology for Teaching Priscilia Norton, Debra Sprague – George Mason University – 2001 [14. Leone Burton and barbara Jaworski -Technology in mathematies Teaching and Learning – A bridge between teaching ang learning. Chartwell Bratt, England, 1995. 141 www.MATHVN.com www.mathvn.com

Các file đính kèm theo tài liệu này:

  • pdfgiao_trinh_su_dung_phan_mem_ho_tro_day_hoc_toan_trinh_thanh_hai_142_trang_6246.pdf
Tài liệu liên quan