Sử dụng các lệnh đơn giản của Maple

Một phần của tài liệu GIÁO TRÌNH SỬ DỤNG PHẦN MỀM HỖ TRỢ DẠY HỌC TOÁN (Trang 75)

Maple cung cấp một hệ thống các hàm hầu như phủ khắp các lĩnh vực của toán học, bạn đọc cần tham khảo những tài liệu của nhóm tác giả Phạm Huy Điển, Đinh Thế

Lục, Tạ Duy Phượng, ởđây chúng tôi chỉ mô tả một số câu lệnh đơn giản thường sử dụng.

-Lệnh xoá đi tất cả các biến nhớ của việc tính toán trước đó và khởi động một quy trình tính toán mới: [> restart;

-Để xác định giá trị cho một biến, một hằng, một hàm hoặc khai báo một thủ tục, Maple sử dụng câu lệnh gán “:=” , ví dụ:Xác định biến n nhận giá trị bằng 5: [> n := 5;

:=

n 5

[> z := (x^2 + 1)/(x - y); #Khai báo dạng tổng quát cuả Z ↵

:=

z x2 + 1

x y

-Lệnh tìm số nguyên tốđứng trước số nguyên a đã xác định: prevprime(a); Ví dụ, với a = 100, ta gõ lệnh: [> prevprime(100);

- Lệnh tìm số nguyên tốđứng sau số nguyên a: nextprime(a); Ví dụ a = 100 , ta gõ lệnh: [> nextprime(100);

-Lệnh tìm nghiệm nguyên của phương trình: isolve(f,{x,y...}); Trong đó f là biểu thức của phương trình hoặc hệ phương trình, {x,y...} là danh sách các ẩn.

Ví dụ, tìm nghiệm nguyên của bài toán cổ vừa gà vừa chó bó lại cho tròn 36 con 100 chân chẵn. Gọi số gà là x, số chó là y ta thực hiện lệnh:

[> isolve({2*x+4*y=100,x+y=36},{x,y});

{y = 14,x = 22}

Kết quả cho ta đáp số của bài toán là: số gà là 22, số chó là 14.

-Lệnh tìm thương và phần dư: iquo(a,b); và irem(a,b); trong đó a, b là các biểu thức. Ví dụ với a=23, b = 4, ta gõ lệnh: [> Thuong = iquo(23,4); ↵ = Thuong 5 [> Du = irem(23,4); ↵ = Du 3

-Lệnh tính tổng vô hạn và tổng hữu hạn các số hạng sum(f,n=a..b); trong đó f là biểu thức của số hạng tổng quát, a..b N là cận dưới, cận trên của giới hạn tính tổng, ví dụ: [> F = Sum((1+n^2)/(1+n+n^3),n=1..10); ↵ = F ∑ = n 1 10 1 + n2 + + 1 n n3 [>F = sum((1+n^2)/(1+n+n^3),n=1..10); ↵ = F 26427131228884246127 10434641980997032227 [>F = evalf(sum((1+n^2)/(1+n+n^3),n=1..10)); ↵ = F 2.532634208

-Lệnh tính tích hữu hạn và vô hạn các số Product(f, n=a..b); trong đó f là biểu thức của số hạng tổng quát, a..b N là cận dưới, cận trên của giới hạn tính tích, ví dụ: [> F = Product((n^3+5*n+6)/(n^2+1),n=0..5); ↵ = F ∏ = n 0 5 n3 + 5n + 6 + 1 n2 [>F = product((n^3+5*n+6)/(n^2+1),n=0..5); ↵ = F 2239488 85 -Xác định độ chính xác của các phép tính số học: evalf(f,n); trong đó f là biểu thức, n là số các chữ số sau dấu phẩy, ví dụ: [> evalf(Pi,30); ↵ 3.14159265358979323846264338328

-Tính toán với các số phức được Maple thực hiện theo quy tắc thông thường, ví dụ: [> (1+3*I)*(3+8*I); + -21 17I [> (1+3*I)/(3+8*I); ↵ + 27 73 1 73I -Chuyển số phức x về dạng toạđộ cực: convert((x),polar), ví dụ: [> convert((1+3*I)/(3+8*I),polar); ↵ ⎛ ⎝ ⎜⎜ ⎞⎠⎟⎟ polar 1 , 73 730 ⎛ ⎝ ⎜⎜ ⎞⎠⎟⎟ arctan 1 27

-Lệnh khai triển biểu thức đại số: expand(f), ví dụ: [> expand((2*x+y)^3); ↵

+ + +

-Lệnh phân tích đa thức thành nhân tử: factor(f), ví dụ: [> factor(6*x^2+18*x-24); ↵ 6 (x + 4 () x − 1) -Lệnh xác định bậc của đa thức: degree(f),ví dụ: [> degree(x^12-x^10+x^15+1); ↵ 15

-Lệnh viết đa thức dưới dạng bình phương của tổng: completesquare() (lệnh này phải phải mở gói công cụ student), ví dụ:

[> with(student):

completesquare(x^2 - 2*x*a + a^2 + y^2 -2*y*b + b^2 = 23, x); ↵ =

+ − +

(x a − )2 y2 2y b b2 23 (adsbygoogle = window.adsbygoogle || []).push({});

-Lệnh sắp xếp đa thức theo bậc: collect(f,x), trong đó f là biểu thức, x là ẩn chọn để xếp theo thứ bậc, ví dụ: [> f := a^3*x-x+a^3+a; ↵ := f a3x x a − + + 3 a [> collect(f,x); ↵ + + (a3 − 1)x a3 a [> collect(f,x,factor); + (a − 1 () a2 + + a 1)x a(a2 + 1) -Lệnh đơn giản (rút gọn) biểu thức: simplify(), ví dụ:

[> e := cos(x)^5 + sin(x)^4 + 2*cos(x)^2 - 2*sin(x)^2 - cos(2*x): simplify(e); ↵

( )

cos x 4(cos( )x + 1)

-Lệnh tối giản phân thức: normal(), ví dụ: [> normal( (x^2-y^2)/(x-y)^3 ); ↵ +

x y

(x y − )2

-Lệnh khử căn thức ở mẫu số: readlib(). Trước khi thực hiện lệnh này cần mở thư viện readlib(rationalize), ví dụ:[> readlib(rationalize):2/(2-sqrt(2)); ↵ 2 − 2 2 [> rationalize(%);↵ + 2 2 -Khai báo hàm số:Đểđịnh nghĩa hàm số ta dùng dấu gán (:=). Ví dụ: [> f:=x->2*x^3+x^2/3+x-1;

:=

f x → 2x3 + 1 + −

3x2 x 1

Sau khi đã định nghĩa hàm số ta có thể tính giá trị của hàm số, ví dụ tính giá trị của hàm số tại x=0.12345: [> f(0.12345); ↵

-0.8677073006

-Giải phương trình solve(f,{d/s biến})

Bước 1: định nghĩa phương trình bởi lệnh gán := , ví dụ : [> eq := x^4-5*x^2+6*x=2;

:=

eq x4 − 5x2 + 6x = 2

Bước 2: giải phương trình bằng lệnh solve(); [> solve(eq,x);

, , ,

1 1 3 − 1 − − 1 3

-Giải hệ phương trình solve({d/s pt},{d/s ẩn}).

Bước 1: định nghĩa các phương trình bằng lệnh gán :=, ví dụ : [> Pt1:=x+y+z-3=0; ↵ := Pt1 x y z + + − 3 0 = [>Pt2:=2*x-3*y+z=2; ↵ := Pt2 2x − + 3y z = 2 [>Pt3:=x-y+5*z=5; ↵ := Pt3 x y − + 5z = 5

Bước 2: giải phương trình bằng lệnh solve. [> solve({Pt1,Pt2,Pt3},{x,y,z});

{z = 9, , } 11 x = 17

11 y = 7

11 -Giải bất phương trình solve() :

Bước 1: định nghĩa các bất phương trình bằng lệnh gán := [> Bpt:=sqrt(7*x+1)-sqrt(3*x-18)<=sqrt(2*x+7); ↵ := Bpt 7x + 1 − 3x − 18 ≤ 2x + 7 Bước 2: dùng lệnh solve(): [> solve(Bpt,{x});↵ {9 ≤ x}

[> solve(sqrt(7*x+1)-sqrt(3*x-18)<=sqrt(2*x+7),{x}); ↵ {9 ≤ x}

-Giải hệ bất phương trình với lệnh solve(), ví dụ : Bước 1: định nghĩa các bất phương trình: [> Bpt1:=x^3-11*x^2+10*x<0; ↵ := Bpt1 x3 − 11x2 + 10x < 0 [> Bpt2:=x^3-12*x^2+32*x>0; ↵ := Bpt2 0 < x3 − 12x2 + 32x Bước 2: dùng lệnh :[> solve({Bpt1,Bpt2},x); ↵ , {1 < x,x < 4 {} 8 < x,x < 10}

Hoặc ta có thểđưa trực tiếp bất phương trình vào trong câu lệnh như sau: [> solve({x^3-11*x^2+10*x<0,x^3-12*x^2+32*x>0},x); ↵ (adsbygoogle = window.adsbygoogle || []).push({});

,

{1 < x,x < 4 {} 8 < x,x < 10}

Vđồ th trong không gian hai chiu plot().

Ví dụ: vẽ đồ thị hàm số x4+2x3-x2+1

[> restart: with(plots):

[> plot(x^4+2*x^3-x^2+1,x=-3..3,-4..12);

Ví dụ: vẽđồ thị hàm số |x4+2x3-x2+1| [> plot(abs(x^4+2*x^3-x^2+1),x=-3..3,-4..12);

Ví dụ : vẽđồ thị hàm số y= x4+2x3-x2+1và y=2x3-2*x+2 trên cùng hệ trục toạđộ: [> plot([x^4+2*x^3-x^2+1,2*x^3-2*x+2],x=-3..3,-4..12); ↵ • Vẽđồ thị hàm ẩn với lệnh implicitplot(). Ví dụ: vẽ elip có phương trình x2/9 + y2/4 = 1. [> implicitplot(x^2/9+y^2/4=1,x=-4..4,y=-2..2); ↵ • Vẽđồ thị hàm xác định từng khúc:

Trước hết cần, khai báo hàm từng khúc với câu lệnh: piecewise() , [> piecewise(x*x>4 and x<8,x^3-2*x,x-4); ↵ {x3 − 2xx2 < -4 and x < 8 − x 4 otherwise sau đó dùng lệnh vẽđồ thị: [> plot(piecewise(x*x>4 and x<8,x^3-2*x,x-4),x=-3..3);

• Vẽđồ thị hàm sin, cos theo tham số t

[> plot([sin(t),cos(t)],t=-Pi..Pi);

• Vẽđồ thị trong không gian ba chiều

Trước tiên ta khởi động chương trình và nạp thư viện : [> restart: with(plots): with(plottools):

Tiếp theo vẽ mặt hai chiều trong không gian ba chiều bằng lệnh plot3d()

[> f:=x*exp(-x^2-y^2);

[> plot3d(sin(x+y), x=-1..1, y=-1..1);

[> c1:= [cos(x)-2*cos(0.4*y), sin(x)-2*sin(0.4*y), y]:

c2:= [cos(x)+2*cos(0.4*y), sin(x)+2*sin(0.4*y), y]: c3:= [cos(x)+2*sin(0.4*y), sin(x)-2*cos(0.4*y), y]: c4:= [cos(x)-2*sin(0.4*y), sin(x)+2*cos(0.4*y), y]: plot3d({c1, c2, c3, c4}, x=0..2*Pi, y=0..10, grid=[25,15], style=patch, color=sin(x));

Maple có chức năng hỗ trợ sự vận động (animation) của đồ thị hai chiều và đồ thị ba chiều với cú pháp [>animate (cho đồ thị hai chiều), và cú pháp [>animate3d (cho đồ thị

ba chiều).

Ví dụ: Vẽđồ thị hàm y=tsin(xt).

[> animate(t*sin(x*t),x=-Pi..Pi,t=-2..2);

Muốn cho đồ thị chuyển động thì tại khung đồ thị ta nhấn chuột phải sau đó chọn ->

Animation -> Play

Muốn cho đồ thị chuyển động liên tục không ngừng trên thanh công cụ:

nhắp chuột vào nút thì đồ thị sẽ chuyển động liên tục, nút dừng sự vận động. Tương tự như vậy ta có thể cho đồ thị ba chiều vận động.

Khai báo hàm bằng toán tử “->”

Để khai báo một hàm (f) được xác định bởi biểu thức (bt(x)), trong Maple sử dụng toán tử “->” với cú pháp như sau:

[> tên hàm := x-> biu thc xác định hàm f (đối s).Ví dụ (adsbygoogle = window.adsbygoogle || []).push({});

[> f:=x-> x^3+2*x-5*x+4;

:=

f xx3 − + 3x 4

Sau khi đã khai báo hàm, để tính giá trị của hàm tại một giá trị nào đó, ta chỉ việc thay giá trị cụ thểđó vào lời gọi hàm [> f(value);, ví dụ:

[> f(3);

22

Khai báo hàm tự tạo bằng proc()... end

Giữa proc(d/s tham số)... end: là các câu lệnh của hàm. ví dụ:

[> Max:=proc(a,b,c) if a < b then

if b < c then c else b fi; elif a < c then c

else a fi; end:

Sau đó nếu gọi hàm Max với các số cụ thể sẽđược kết quả ví dụ: [> Max(23,5,87);

Các cấu trúc cơ bản được sử dụng trong lập trình của Maple - Cấu trúc lặp điều kiện trước

While <Điều kiện> Do < danh sách các câu lệnh> od;

Vòng lặp While sẽ thực hiện lặp đi lặp lại các câu lệnh giữa dood nếu điều kiện sau từ khoá While còn đúng. Nếu muốn thoát sớm khỏi vòng lặp cần phải sử dụng các lệnh Return, Break, Quit.

Ví dụ: thuật toán Ơclit tìm ước số chung lớn nhất của hai số tự nhiên: [> restart;

[> a:=126:b:=34: # khai bao hai so tu nhien a=126, b=34 [> while b <> 0 do

d:=irem(a,b); a:=b;

b:=d; od;

print(` USCLN cua hai so la:`); value(a); Ví dụ: viết ra màn hình n số hạng đầu của dãy Fibonacci [>restart; f(0):=1; f(1):=1; n:=2; while n <= 20 do f(n):=f(n-1)+f(n-2); n:=n+1; od; seq(f(i),i=3..2); ↵ - Cấu trúc lặp biết trước số lần

For <biến> from <cận đầu> by <bước thay đổi> to <cận cuối>

Do <d/s các câu lệnh>; od; Hoặc

For < tên biến> in <danh sách giá trị>

Do <d/s các lệnh>; od; Ví dụ: tính tổng bình phương các số chẵn trong mảng: [> restart; mang:=[2,5,7,8,9,23,45,67,89,24,36,42]; tong:=0; for i in mang do

if irem(i,2)=0 then tong:=tong+i^2; fi;

od;

print(` tong can tim la:`,tong);

Khi thực hiện ta được kết quả: := mang [2 5 7 8 9 23 45 67 89 24 36 42, , , , , , , , , , , ] := tong 0 ,

tong can tim la: 3704

if <điều kiện 1> then < d/s các câu lệnh 1>; (adsbygoogle = window.adsbygoogle || []).push({});

elif < điều kiện 2> then < d/s các câu lệnh 2>;

else < d/s các câu lệnh 3>; fi;

Ví dụ giải phương trình bậc 2, trước tiên ta khai báo một proc() : [> ptb2:=proc(a,b,c)

local delta,x1,x2; delta:=b*b-4*a*c; if delta < 0 then

print(` phuong trinh da cho vo nghiem`); elif delta=0 then

x1:=-b/(2*a);

print(` phuong trinh co nghiem kep:x1=`,x1); else

x1:=(-b-sqrt(delta))/(2*a); x2:=(-b+sqrt(delta))/(2*a);

print(` phuong trinh da cho co 2 nghiem phan biet :`); print(x1);

print(x2); fi;

end;

Để giải phương trình bậc hai, ta chỉ cần gọi tên proc() với các hệ số thực sự, ví dụ: [> ptb2(1,2,1);

,

phuong trinh co nghiem kep:x1= -1

[> ptb2(1,2,-1);

phuong trinh da cho co 2 nghiem phan biet :

− − 1 2

− + 1 2

[> ptb2(1,2,3);

phuong trinh da cho vo nghiem

Để tìm hiểu về lập trình với Maple, bạn đọc sẽ tìm thấy những hướng dẫn chi tiết, chuyên sâu trong các tài liệu [1],[2],[3],[4]

Một phần của tài liệu GIÁO TRÌNH SỬ DỤNG PHẦN MỀM HỖ TRỢ DẠY HỌC TOÁN (Trang 75)