Trong bài viết này tôi xin giới thiệu phần mềm maple 14, nó hỗ trợ hầu hết các khía cạnh của Toán học như Phương pháp tính, Đại số, Giải tích, Quy hoạch tuyến tính, Phương trình vi phân,
Trang 1Trong bài viết này tôi xin giới thiệu phần mềm maple 14, nó hỗ trợ hầu hết các khía cạnh của Toán học như Phương pháp tính, Đại số, Giải tích, Quy hoạch tuyến tính, Phương trình vi phân, Phương trình đạo hàm riêng, Xác suất thống kê,…Do đó, các công việc như tìm giới hạn, tính tích phân, đạo hàm, giải phương trình, hệ phương trình, bất phương trình, hệ bất phương trình, vẽ đồ thị hàm số,…đều được giải quyết rất thuận tiện Các kết quả xử lý các lệnh do người sử dụng yêu cầu được Maple đưa ra dưới dạng rất chính xác như dưới dạng phân số, căn thức,…và trong trường hợp cần thiết, Maple cũng cho phép ta chuyển các kết quả chính xác đó sang dạng thập phân như cách biểu diễn của phần lớn các ngôn ngữ lập trình Một tính
năng nữa mà Maple cung cấp là chúng ta có thể lập trình để giải các bài
II.1.1 Tính toán với các số nguyên
Ở mức đơn giản nhất, có thể sử dụng Maple như một calculator có đầy
đủ tính năng Chẳng hạn, cần tính giá trị của biểu thức 17.15, thực hiện lệnh
[> 17*15;
Maple có khả năng nhận biết được nhiều toán tử (operator) như giai thừa, tìm ước chung lớn nhất (greatest common divisor-gcd), bội chung nhỏ nhất
Trang 2(least common multiple-lcm) và tính toán trên các số nguyên modulo m Dòng lệnh dưới đây tìm ước số chung lớn nhất của hai số nguyên 10 và 15.
Trang 3II.1.2 Số học dấu phẩy động
Một trong những điểm mạnh chủ yếu của Maple là khả năng chính xác hoá rất cao Các phân số và các căn thức không được chuyển về dạng thập phân tương đương trong quá trình tính toán, do đó tránh được các lỗi về làm tròn số Khi cần sử dụng dạng thập phân, Maple cung cấp cho ta lệnh
evalf(…) để thực hiện điều này.
[> (2^30/3^20)*sqrt(3.0);
II.1.3 Tổng, tích hữu hạn và vô hạn
Với Maple, để tính tổng, tích hữu hạn cũng như vô hạn rất đơn giản
bằng cách sử dụng các lệnh sum(…), product(…) tương ứng
Trang 5[> product( ((i+3)/(i^2+3)), i=0 infinity );
Như vậy, để tính được các tổng, tích vô hạn ta chỉ cần thay giá trị của
cận trên bằng infinity.
Có thể ước lượng độ chính xác cho giá trị cần tính bằng cách báo cho Maple biết số chữ số (digit) cần phải lấy Maple sẽ chuyển giá trị cần ước lượng sang dạng thập phân với số chữ số được chỉ ra Trên phần lớn các hệ điều hành, số chữ số thể hiện độ chính xác có thể lên đến hàng trăm nghìn chữ số, một lần nữa chúng ta lại thấy thế mạnh của Maple
Lệnh sau tính số Pi với độ chính xác tới 20 chữ số
[> evalf[20](Pi);
II.1.4 Số phức và các hàm đặc biệt
Maple cũng hỗ trợ tính toán trên các số phức, đơn vị phức được Maple
kí hiêu bởi chữ cái in hoa I
[> ((I+1)/(I+2));
Việc chuyển một số phức sang dạng toạ độ cực (polar-coordinate form)
được thực hiện dễ dàng nhờ sử dụng hàm chuyển convert(…).
[> convert(I+2,polar);
Giá trị số của các hàm sơ cấp (elementary function) và nhiều hàm, hằng đặc biệt (special) đều tính được nhờ Maple
Trang 6Ví dụ: Tính giá trị của hằng số e (cơ số logarit tự nhiên) chính xác tới
II.2 Maple với các phép tính đại số
II.2.1 Làm việc với các biểu thức
Maple cung cấp nhiều cách thức khác nhau để thao tác và hiển thị các biểu thức, tạo điều kiện cho việc sử dụng chúng có hiệu quả Tính mềm dẻo này cho ta thực hiện một số công việc như khai triển, thu gọn các biểu thức, đơn giản hoá các biểu thức lượng giác, gán các giá trị hoặc biểu thức cho các tên biến và chuyển các biểu thức về các dạng tương đương khác nhau
II.2.1.1 Khai triển và thu gọn các biển thức
Để khai triển một biểu thức, sử dụng lệnh expand(…).
[> expand((a+b)^6);
Trang 7Sau khi xem kết quả nhận được, muốn thu gọn lại ta dùng lệnh
factor(…).
[> factor(%);
Cần chú ý rằng ta cũng có thể đưa trực tiếp biểu thức cần rút gọn vào
trong câu lệnh factor(…) như sau.
[> factor(x^2+2*x*y+y^2);
II.2.1.2 Đơn giản các biểu thức
Maple có thể áp dụng những tính chất đồng nhất (identities) để đơn giản hoá các biểu thức Toán học dài, chẳng hạn như các biểu thức lượng giác
Lệnh sau đơn giản hoá biểu thức
[> simplify( cos(x)^5 + sin(x)^4 + 2*cos(x)^2 - 2*sin(x)^2 - cos(2*x) );
Một cách khác để đơn giản hoá các biểu thức là sử dụng lệnh
normal(…), lệnh này sẽ đưa biểu thức về dạng một phân số và bỏ đi các
thừa số có ở cả tử số và mẫu số
[> normal( (x^3-y^3)/(x^2+x-y-y^2) );
II.2.1.3 Gán các kết quả cho các tên biến
Có thể gán các kết quả của một lần tính toán cho một đối tượng do ta đặt tên (tất nhiên phải tuân theo quy tắc đặt tên của Maple), đối tượng được đặt tên này đôi khi được tham chiếu tới như một biến Mục đích của việc gán này là cơ sở cho việc quản lý một số lượng lớn các biểu thức và các kết quả
Trang 8tính toán, đặc biệt có ích nếu trong một phiên làm việc ta muốn sử dụng lại các biểu thức và các kết quả đã tính toán trước đó cho những tính toán về sau.
Lưu biểu thức vào đối tượng được đặt tên expr1.
[> expr1 := (41*x^2+x+1)^2*(2*x-1);
Sử dụng lệnh expand đối với expr1 và lưu kết quả vào biến expr2
[> expr2 := expand( expr1 );
Ước lượng giá trị của expr2 với x=1.
[>answer := normal( top/bottom );
II.2.1.4 Đưa các biểu thức về các dạng tương đương khác nhau
Lệnh convert(…) cho phép biến đổi các biểu thức về các dạng khác
nhau tương đương với chúng
Ví dụ: Chuyển biểu thức về dạng tổng các phân thức.
[>my_expr := (a*x^2+b)/(x*(-3*x^2-x+4));
Trang 9[>convert( my_expr, parfrac, x );
Chuyển biểu thức lượng giác cos(x) về dạng hàm mũ (exponential expression)
[> convert( cot(x), exp );
II.2.2 Kí hiệu hàm
Maple cung cấp một số cách để định nghĩa hàm Một trong các cách đó
là sử dụng kí hiệu mũi tên (→) rất gần gũi với kí hiệu Toán học chuẩn cho
một ánh xạ Ngoài ra, cũng có thể sử dụng lệnh unapply(…) như dưới đây.
Trang 10Sử dụng lệnh unapply(…).
[> g := unapply( x^2 + 1/2, x );
II.2.3 Về một số lệnh liên quan tới đa thức
Phân tích đa thức thành nhân tử
[>factor(-x^2-3*x+4);
Cũng như trong phần số học, để tìm ước chung lớn nhất và bội chung
nhỏ nhất của hai đa thức, ta sử dụng lệnh gcd(…) và lcm(…).
Trang 11II.2.4 Giải phương trình và hệ phương trình
Dùng Maple có thể giải và xác nhận (verify) các nghiệm của phương trình và hệ phương trình
II.2.4.1 Giải phương trình
Dùng Maple để giải phương trình sau
[> eval( eqn , x=a/2 );
II.2.4.2 Giải hệ phương trình
Maple có thể giải được hệ phương trình Chúng ta hãy xem xét một hệ gồm 4 phương trình với 5 ẩn số như dưới đây
[>eqn1 := a+2*b+3*c+4*d+5*e=41;
[>eqn2 := 5*a+5*b+4*c+3*d+2*e=20;
[>eqn3 := 3*b+4*c-8*d+2*e=125;
Trang 12[>eqn4 := a+b+c+d+e=9;
Bây giờ ta giải hệ trên đối với các ẩn a, b, c và d Khi đó ta được các nghiệm ở dạng tham số theo biến số thứ năm, e
[>solve( {eqn1, eqn2, eqn3, eqn4}, {a, b, c, d} );
Để xác nhận nghiệm này thoả mãn cả hai phương trình eqn1 và eqn2,
ta dùng lệnh
[> eval( {eqn1, eqn2} , % );
II.2.4.3 Các ví dụ khác về giải phương trình
Các ví dụ dưới đây cho thấy Maple còn có thể giải các loại phương trình khác, đó là các phương trình có chứa các hàm số lượng giác và biểu thức giá trị tuyệt đối
Phương trình chứa hàm số lượng giác
[> solve( arccos(x) - arctan(x)= 0, {x} );
Phương trình chứa biểu thức giá trị tuyệt đối
[>solve( abs( (z+abs(z+2))^2-1 )^2 = 9, {z} );
[> eval( abs( (z+abs(z+2))^2-1 )^2 = 9, z=-3 );
II.2.5 Giải bất phương trình
Các ví dụ sau thể hiện sự dễ dàng của việc giải các hệ bất phương trình trong Maple
Giải hệ bất phương trình: x2<1, y2<=1, và x+y <1/2
Trang 13[> solve( {x^2<1, y^2<=1, x+y<1/2}, {x,y} );
Tìm x theo y thoả mãn bất phương trình
II.3 Maple với đồ thị hàm số
Maple cho phép ta hình dung bài toán thông qua khẳ năng vẽ đồ thị rất phong phú Các tiện ích vẽ đồ thị trong mặt phẳng cho phép vẽ đồ thị hàm số
và điều chỉnh các thông số liên quan như phạm vi vẽ, các trục toạ độ, màu sắc, tựa đề, chú thích,…cho đồ thị Ta có thể vẽ đồ thị của các hàm có cấu trúc đơn giản, các hàm xác định giá trị phức tạp, các hàm ẩn…Trong không gian ba chiều, ta cũng có thể vẽ các đường (curves) và các mặt (surfaces), chẳng hạn các mặt được cho dưới dạng tham số, dạng ẩn, các nghiệm của phương trình vi phân, các trường véctơ…, sự hiển thị của đồ thị cũng có thể được thay đổi thông qua việc điều chỉnh font chữ, cường độ sáng, màu sắc
tiêu đề…, tính năng quay (rotate) của Maple còn cho phép ta quan sát đồ thị
dưới nhiều góc độ khác nhau Ngoài ra Maple còn cung cấp tính năng
animation làm cho các đồ thị vận động theo sự thay đổi của một tham số
nào đó có mặt trong phương trình biểu thị hàm số Thông tin chi tiết về các
khẳ năng vẽ đồ thị của Maple có thể xem trên Website: http:// www.mapleapps.com/
Trang 14II.3.1 Đồ thị hàm số trong mặt phẳng
Để vẽ đồ thị của hàm số trong mặt phẳng, ta thường sử dụng lệnh
plot(…), đối với các hàm ẩn, hàm xác định từng khúc,…sẽ có các lệnh riêng tương ứng, chi tiết về cách thức sử dụng các lệnh này sẽ được minh họa
trong từng ví dụ cụ thể
[> plot(sin(x)+cos(2*x),x=-3 3);
Có thể vẽ nhiều đồ thị của nhiều hàm số trên cùng một hệ trục tọa độ như minh họa dưới đây
[> plot( [sin(x), 2*sin(x), sin(x/2), sin(2*x)], x=-2*Pi 2*Pi, y=-2 2,
color=[red, black, green, blue] );
Trang 15Để vẽ đồ thị của các hàm ẩn trong Maple, ta dùng lệnh
implicitplot Chẳng hạn lệnh sau mô phỏng đồ thị của đường tròn đơn vị và của hàm mũ y=exp(x).
[> implicitplot( [ x^2+y^2=1, y=exp(x) ], x=-Pi Pi, y=-Pi Pi,
scaling=CONSTRAINED, color=[blue, red] );
Để có thể vẽ được đồ thị của hàm xác định từng khúc, đầu tiên ta khai
báo hàm từng khúc bằng câu lệnh piecewise.
Trang 16[>piecewise(x>=0 and x<3,x^3+2*x^2+1,x>=3 and x<5,x^2,abs(x));
[> plot(piecewise(x>=0 and x<3,x^3+2*x^2+1,x>=3 and
Trang 17Ngoài cách mô phỏng miền nghiệm của một hệ bất phương trình tuyến tính như trên, ta có thể sử dụng hộp thoại giao tiếp như dưới đây.
[> with(Student[Precalculus]):
[> LinearInequalitiesTutor();
Trong nhiều trường hợp ta cần vẽ đồ thị của hàm số f cùng với đồ thị
hàm ngược của nó trên cùng một hệ trục tọa độ Để làm được điều này, ta thực hiện câu lệnh sau
[> with(Student[Calculus1]):InverseTutor(x^2+1,-3 3);
Trang 18Maple cung cấp tính năng animation để tạo sự vận động cho đồ thị khi
biểu thức biểu diễn phương trình hàm số có chứa tham số Khẳ năng này đặc biệt quan trọng khi chúng ta cần xem xét sự biến đổi của đồ thị
[> animate( plot, [sin(2*x*t), x, x=-2 2, coords=polar], t=1 2,
numpoints=100, frames=100 );
Để tạo sự vận động, nháy nút phải chuột vào đồ thị vừa vẽ, khi đó xuất hiện một menu ngữ cảnh và ta chọn Animation\Play
Trang 19II.3.2 Đồ thị hàm số trong không gian
Trong không gian, ta thường sử dụng lệnh plot3d(…) để vẽ đồ thị hàm
số
[> plot3d( x * exp(-x^2-y^2), x=-2 2, y=-2 2, axes=BOXED,
lightmodel=light1);
Các thao tác khác đối với đồ thị hàm số trong không gian cũng tương tự
như trong trường hợp mặt phẳng, hàm animate(…) vẫn được sử dụng cho
đồ thị ba chiều nhưng đối số thứ nhất ta thay bằng plot3d Để quan sát được
đồ thị ở nhiều góc độ khác nhau, ta có thể quay (rotate) đồ thị bằng cách đặt
con trỏ chuột vào vùng vẽ đồ thị, nhấn và giữ nút trái chuột, sau đó rê con trỏ chuột lên trên, xuống dưới hoặc sang trái, sang phải theo ý muốn
II.4 Maple với giải tích Toán học
Giải tích Toán học nằm trong chương trình Toán ở bậc trung học phổ thông, bao gồm các kiến thức về giới hạn, đạo hàm, khảo sát hàm số, tìm nguyên hàm, tích phân, tính thể tích các vật thể tròn xoay,…Trong phần này, chúng ta sẽ xem xét một số tiện ích mà Maple hỗ trợ để giải các bài toán có liên quan tới các vấn đề nêu trên
II.4.1 Tìm giới hạn của hàm số
Sử dụng lệnh limit(f, x=a, dir) để tìm giới hạn của hàm số f(x) khi x tiến tới điểm giới hạn a, tham số dir đặc tả hướng tiến đến của đối số x, dir
có thể nhận giá trị là left hoặc right tuỳ thuộc vào ta muốn tìm giới hạn bên trái hay giới hạn bên phải Điểm giới hạn a có thể là dương vô cùng hoặc âm
vô cùng và được biểu thị bằng hai từ khoá tương ứng là infinity và – infinity Trong trường hợp ta không quan tâm tới giới hạn một phía, tham số dir được bỏ qua.
Trang 20[> Limit(sqrt(x^2+3*x+5)/(x+1),x=3,left);
[> limit(sqrt(x^2+3*x+5)/(x+1),x=3,left);
Lệnh limit( ) ở trên đưa ra ngay kết quả cần tính mà không chỉ rõ từng
bước của quá trình tìm giới hạn, câu lệnh dưới đây khắc phục nhược điểm này bằng cách cung cấp một hộp thoại trên đó có mô tả từng bước tính toán
[> with(Student[Calculus1]):
[> LimitTutor((x^2-1)/(x-1),x=1);
Một khẳ năng tuyệt vời nữa mà Maple hỗ trợ cho việc tìm giới hạn của
hàm số f(x) khi x→a là chúng ta còn có thể thấy được dạng đồ thị biểu diễn hàm f cùng với giá trị của hàm này tại một lân cận nào đó của điểm giới hạn
a Chúng ta hãy quan sát ví dụ dưới đây.
[> with(Student[Precalculus]):LimitTutor(sin(x)/x);
Trang 21II.4.2 Tính đạo hàm của hàm số
Giả sử f(x 1 , x 2 ,…, x n ) là một hàm n biến, lệnh diff(f, x 1 , x 2 ,…, x n ) sẽ lần lượt tính đạo hàm của hàm số f theo các biến x 1 , x 2 ,…, x n
Trang 22Toán tử $ được sử dụng khi ta muốn tính đạo hàm bậc cao.
[> Diff(f(x,y),x$m,y$n);
[> diff(sin(x*y),x$5,y$4);
Khi giảng dạy môn Toán, một điều quan trọng đối với các thầy cô giáo
là giúp cho học sinh, sinh viên hiểu được từng bước của quá trình giải Việc tính đạo hàm cũng vậy, các thầy cô có thể sử dụng câu lệnh dưới đây để thấy được Maple cũng hỗ trợ việc tính toán đạo hàm theo từng bước
[> with(Student[Calculus1]):DiffTutor(2*x^5+3*x^4,x);
Trang 23II.4.3 Tìm nguyên hàm của một hàm số
Để tìm nguyên hàm của hàm số f(x) theo biến số x, ta sử dụng lệnh
trường hợp tích phân có phụ thuộc tham số
Trang 25quả cuối cùng cần tính toán hoặc yêu cầu Maple đưa ra kết quả thực hiện từng bước Trong trường hợp muốn tính tích phân, ta phải đặc tả giá trị của cận trên và cận dưới cho tích phân cần tính.
[> with(Student[Calculus1]):
[> IntTutor(x^2*cos(x),x);
II.4.5 Thể tích và diện tích của vật thể tròn xoay
Với câu lệnh VolumeOfRevolutionTutor(f,var=a b) và câu lệnh SurfaceOfRevolutionTutor(f,var=a b) của Maple chứa trong gói công cụ Student[Calculus1] sẽ cung cấp cho ta một giao diện người sử dụng trên đó
có vẽ và tính thể tích hoặc diện tích của vật thể tròn xoay được sinh ra khi ta
quay đồ thị hàm số f trên đoạn [a, b] quanh một trục tọa độ nào đó Nếu hàm
số f, hoặc đoạn [a, b], hay biến số var không được đặc tả thì tương ứng một
hàm, hoặc một đoạn, hay một biến mặc định sẽ được sử dụng
Trong giao diện xuất hiện, ta có thể thay đổi hàm số f, đoạn [a, b] và
báo cho Maple biết vật thể được quay quanh trục tung hay trục hoành
[> with(Student[Calculus1]):
Trang 26[> VolumeOfRevolutionTutor(f,var=a b);
[> SurfaceOfRevolutionTutor();
Trang 27II.4.6 Đồ thị của hàm phân thức
[> with(Student[Precalculus]): [> RationalFunctionTutor();
Trang 28II.5 Ứng dụng Maple trong hình học
Maple cung cấp hai gói công cụ để xử lý các bài toán trong hình học,
đó là các gói geometry cho hình học phẳng và gói geom3d cho hình học
không gian Các hàm xử lý trong các gói công cụ này thực hiện các thao tác
cơ bản để giải các bài toán hình học như viết phương trình đường thẳng, mặt phẳng, mặt cầu,…, tính diện tích tam giác, tứ giác, hình tròn,…, tính khoảng cách từ một điểm tới một đường thẳng hoặc một mặt phẳng…Nhìn chung,
để giải được một bài toán hình học trong Maple, trong phần lớn các trường hợp, ta phải kết hợp các hàm xử lý cơ bản lại với nhau để giải quyết yêu cầu của bài toán Trong phần dưới đây, tác giả sẽ không trình bày về cách thức
sử dụng các hàm trong các gói công cụ trên mà chỉ đưa ra một số ví dụ để chúng ta thấy được khái quát về ứng dụng của Maple trong hình học
Ví dụ 1: Kiến thức về các đường côníc được trang bị cho học sinh cuối
cấp ở bậc trung học phổ thông, để giúp cho học sinh và các thầy cô giáo có được công cụ học tập cũng như giảng dạy học phần này, Maple cung cấp gói
công cụ Student[Precalculus][ConicsTutor].
[>with(Student[Precalculus]):