SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC HUẾ
HUỲNH THẾ PHÙNG
HƯỚNG DẪN
SỬ DỤNG MAPLE
Huế - 2010
1
Mục lục
1. Giới thiệu phần mềm Maple. . . . . . . . . . . . . . . . . . . . . . . . 2
2. Các thao tác trên tập hợp. . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Định nghĩa tập hợp. . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Các phép toán trên tập hợp. . . . . . . . . . . . . . . . . . . . 3
2.3. Kiểm tra các quan hệ trên tập hợp. . . . . . . . . . . . . . . . 4
3. Giải (hệ) phương trình, (hệ) bất phương trình. . . . . . . . . . . . . . 4
3.1. Giải phương trình, bất phương trình. . . . . . . . . . . . . . . 4
3.2. Giải hệ phương trình, hệ bất phương trình. . . . . . . . . . . . 5
4. Dãy số và chuỗi số. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.1. Tính giới hạn của dãy số. . . . . . . . . . . . . . . . . . . . . 6
4.2. Tính tổng hữu hạn hoặc vô hạn. . . . . . . . . . . . . . . . . . 6
5. Vec-tơ và ma trận. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.1. Khai báo vec-tơ. . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.2. Khai báo ma trận. . . . . . . . . . . . . . . . . . . . . . . . . 7
5.3. So sánh hai vec-tơ hoặc hai ma trận. . . . . . . . . . . . . . . 8
5.4. Tính chuẩn của vec-tơ. . . . . . . . . . . . . . . . . . . . . . . 8
5.5. Khoảng cách giữa hai điểm. . . . . . . . . . . . . . . . . . . . 8
5.6. Tích hai vec-tơ. . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.7. Tổng, hiệu hai hoặc nhiều ma trận cùng cỡ. . . . . . . . . . . 9
5.8. Nhân hai hoặc nhiều ma trận có cỡ phù hợp. . . . . . . . . . . 9
5.9. Tích trong của ma trận và vec-tơ. . . . . . . . . . . . . . . . . 9
5.10. Tính định thức ma trận. . . . . . . . . . . . . . . . . . . . . . 9
6. Hàm một biến số, giới hạn và đồ thị. . . . . . . . . . . . . . . . . . . 9
6.1. Định nghĩa hàm một biến số. . . . . . . . . . . . . . . . . . . 9
6.2. Vẽ đồ thị của hàm số trên hệ toạ độ Oxy. . . . . . . . . . . . 10
6.3. Tính giới hạn của hàm một biến số. . . . . . . . . . . . . . . . 13
7. Hàm nhiều biến số, giới hạn và đồ thị. . . . . . . . . . . . . . . . . . 13
7.1. Định nghĩa hàm nhiều biến số. . . . . . . . . . . . . . . . . . . 13
7.2. Vẽ đồ thị của hàm nhiều biến. . . . . . . . . . . . . . . . . . . 14
7.3. Vẽ các đường mức của một hàm hai biến. . . . . . . . . . . . . 15
7.4. Tính giới hạn của hàm nhiều biến. . . . . . . . . . . . . . . . 15
8. Phép tính vi phân. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
8.1. Tính đạo hàm của một hàm số. . . . . . . . . . . . . . . . . . 16
8.2. Gradient, Hessian của hàm nhiều biến. . . . . . . . . . . . . . 17
8.3. Khai triển Taylor. . . . . . . . . . . . . . . . . . . . . . . . . . 17
8.4. Tính giới hạn các dạng vô định. . . . . . . . . . . . . . . . . . 18
9. Tổng quát về vẽ đường và mặt. . . . . . . . . . . . . . . . . . . . . . 18
9.1. Vẽ đường cong trong mặt phẳng. . . . . . . . . . . . . . . . . 19
9.2. Vẽ mặt cong trong không gian. . . . . . . . . . . . . . . . . . 20
9.3. Vận động đồ thị. . . . . . . . . . . . . . . . . . . . . . . . . . 21
10. Phép tính tích phân. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
10.1. Tích phân hàm một biến. . . . . . . . . . . . . . . . . . . . . 22
10.2. Ứng dụng tích phân xác định. . . . . . . . . . . . . . . . . . . 24
10.3. Tích phân bội trên hộp. . . . . . . . . . . . . . . . . . . . . . 25
10.4. Tích phân lặp. . . . . . . . . . . . . . . . . . . . . . . . . . . 26
11. Phương trình vi phân và Phương trình đạo hàm riêng. . . . . . . . . 27
11.1. Giải phương trình vi phân thường. . . . . . . . . . . . . . . . 27
11.2. Giải hệ phương trình vi phân thường. . . . . . . . . . . . . . . 28
11.3. Vẽ đồ thị nghiệm của hệ phương trình vi phân. . . . . . . . . 29
11.4. Giải phương trình đạo hàm riêng. . . . . . . . . . . . . . . . . 30
Tài liệu tham khảo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1. Giới thiệu phần mềm Maple.
Maple là một trong các phần mềm tính toán phong phú, hỗ trợ cho 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ố tuyến tính, đại số hình thức,
phương trình vi phân, phương trình toán lý,... Maple tạo ra một môi trường làm việc
hoàn toàn thoải mái, giúp cho người dùng có thể thực hiện các tính toán trực tiếp
đơn giản hoặc viết các đoạn chương trình tính toán phức tạp. Vì đây không phải là
một cuốn sách chuyên khảo về Maple nên chúng tôi không có tham vọng giới thiệu
quá sâu mà chỉ muốn cho sinh viên làm quen với phần mềm, đủ để giải quyết tốt
những bài toán có liên quan trong phạm vi giáo trình. Sử dụng phần mềm này, sinh
viên không những giải được những bài toán phức tạp mà nếu tính toán bằng tay
3
phải mất hằng tháng trời (hoặc không tính nổi) mà còn giúp sinh viên nhìn thấy
được bản chất của nhiều vấn đề một cách nhanh chóng và sinh động. Thật ra, đây
không phải là phần mềm tính toán duy nhất. Tuy nhiên, nếu biết sử dụng Maple
một cách thành thạo, sinh viên dễ dàng tiếp cận với các chương trình tính toán phổ
biến khác hiện nay như Mathematica, Matlab,...
Ta luôn bắt đầu tính toán với việc đưa vào một cụm xử lý (bằng cách nhấn chuột
vào nút có biểu tượng [> hoặc vào chức năng Insert/Execution Group/After
Cusor có sẵn trên thanh lệnh của giao diện) Một dấu nhắc lệnh [> sẽ hiện ra, chờ
đợi ta đưa lệnh vào thực hiện.
Một số điều cần chú ý là: Câu lệnh được viết ra phải tuân thủ nghiêm ngặt là
chữ hoa hay chữ thường, tất cả câu lệnh đều viết bằng tiếng Anh (nhưng không khó
để học thuộc, vì số lượng không nhiều). Kết thúc mỗi câu lệnh đều có dấu ";" hoặc
":" và sau đó nhấn phím Enter. Nếu sử dụng dấu ";" thì kết quả tính toán sẽ hiển
thị ngay dòng dưới, còn nếu sử dụng dấu ":" thì kết quả sẽ không hiện ra.
2. Các thao tác trên tập hợp.
2.1. Định nghĩa tập hợp.
Cú pháp: [> (Tên tập hợp):= {(danh sách các phần tử của tập hợp)};
Ví dụ:
[> A:={1, 2, 3, 4, 15}:
[> B:={a, b, x, y, z};
B := {a, b, x, y, z}
2.2. Các phép toán trên tập hợp.
Ta đã biết 3 phép toán trên tập hợp là ∪ (ký hiệu union), ∩ (ký hiệu intersect)
và  (ký hiệu minus).
Cú pháp: [> (Tập hợp 1) (phép toán) (Tập hợp 2);
Ví dụ:
[> {2, 6, 1, 3 } union {2, 3, 7, 18};
{1, 2, 3, 6, 7, 18}
[> M:={1, 3, 5}:
[> N:={5, 1, 2, 6}:
4
[> P:=M minus N;
P := {3}
2.3. Kiểm tra các quan hệ trên tập hợp.
Ta có 3 phép kiểm tra là ∈ (kí hiệu member), ⊂ (kí hiệu verify(subset)) và
⊃ (kí hiệu verify(superset)). Kết quả ta được true hoặc false.
Cú pháp: [> member(phần tử, tập hợp);
[> verify(Tập hợp 1, Tập hợp 2, ’subset’/’superset’);
Ví dụ:
[> member(3, {1, 3, 5});
true
[> verify({1, 3, 5}, {2, 3, 5}, ’subset’);
false
[> verify({1, 3, 5, 6}, {3, 5}, ’superset’);
true
3. Giải (hệ) phương trình, (hệ) bất phương trình.
3.1. Giải phương trình, bất phương trình.
Cú pháp: [> solve(phương trình/bất phương trình, {biến});
Ví dụ:
[> solve(x*x - 1 = 0, {x});
{x = 1}, {x = −1}
[> ptb3:=u∧3 - 1 = 0:
[> solve(ptb3, {u});
{u = 1}, {u = −
1
2
+
1
2
I
√
3}, {u = −
1
2
−
1
2
I
√
3}
5
[> solve(x*x - 3*x + 2 < 0, {x});
{1 < x, x < 2}
[> bpt:=x*x - 3*x + 2 >= 0;
bpt := 0 ≤ x2
− 3x + 2
[> solve(bpt, {x});
{x ≤ 1}, {2 ≤ x}
3.2. Giải hệ phương trình, hệ bất phương trình.
Cú pháp: [> solve({danh sách phương trình/bất phương trình}, {ds biến});
Ví dụ:
[> p1:=sqrt(x) + sqrt(2-y)=sqrt(2);
p1 :=
√
x +
√
2 − y =
√
2
[> p2:=sqrt(2-x) + sqrt(y)=sqrt(2);
p2 :=
√
2 − x +
√
y =
√
2
[> solve({p1, p2}, {x, y});
{x = 0, y = 0}, {x = 2, y = 2}
[> q1:=sqrt(4*u-7) < u;
q1 :=
√
4u − 7 < u
[> q2:=sqrt(u+5) + sqrt(5-u)>4;
q2 := 4 <
√
u + 5 +
√
5 − u
[> solve({q1, q2}, {u});
{
7
4
≤ u, u < 4}
6
4. Dãy số và chuỗi số.
4.1. Tính giới hạn của dãy số.
Cú pháp: [> limit(x[n], n=infinity);
Ví dụ:
[> limit ((n+1)/n, n=infinity);
1
Chú ý rằng nếu viết Limit thì chỉ hiện ra công thức hình thức của giới hạn đó. Nếu
muốn tính giới hạn này bằng bao nhiêu ta dùng lệnh value(%). Chẳng hạn:
[> Limit ((n*n+1)/(3-2*n*n), n=infinity);
lim
n→∞
n2
+ 1
3 − 2n2
[> value(%);
−2
Ta cũng có thể định nghĩa dãy trước khi gọi thực hiện giới hạn. Ví dụ:
[> y[n]:= (3*n*n-5)/(4*n+5*n*n);
y[n] :=
3n2
− 5
4n + 5n2
[> limit(y[n], n=infinity);
3
5
4.2. Tính tổng hữu hạn hoặc vô hạn.
Cú pháp: [> sum(x[n], n=n1..n2); (nếu dùng Sum thì cho ra công thức hình thức)
trong đó, n1 là chỉ số đầu và n2 là chỉ số cuối của tổng cần tính.
Ví dụ:
[> sum(1/(n*(n+1)), n=2..10);
9
22
[> Sum(1/(n*n), n=1..infinity);
∞∑
n=1
1
n2
7
[> value(%);
1
6
π2
5. Vec-tơ và ma trận.
Để thực hiện các thao tác trên vec-tơ và ma trận trước tiên cần khởi động gói
công cụ của đại số tuyến tính linalg bằng lệnh
[> with(linalg);
5.1. Khai báo vec-tơ.
Cú pháp: [> (tên vec-tơ):= [(liệt kê các thành phần của vec-tơ)];
Ví dụ:
[> u:=[1, 2, x∧2];
u := [1, 2, x2
]
Thật ra, để định nghĩa vec-tơ u như trên ta còn có các cách khai báo khác.
Chẳng hạn:
u:=vector[1, 2, x∧2];
u:=array(1..3, [1, 2, x∧2]);
u:=matrix(1,3, [1, 2, x∧2]);
Tuy nhiên, cách dùng chúng vẫn khác nhau. Mặt khác nếu viết
u:=matrix(3,1, [1, 2, x∧2]); ta được
u :=


1
2
x2


5.2. Khai báo ma trận.
Cú pháp: [> (tên ma trận):= matrix(m, n, [ liệt kê các thành phần của ma trận]);
Ví dụ:
[> A:=matrix(3, 2, [1, 2, 1, a, x+1, 4]);
A :=


1 2
1 a
x + 1 4


8
5.3. So sánh hai vec-tơ hoặc hai ma trận.
Cú pháp: [> equal(biến 1, biến 2);
Kết quả cho ra true hoặc false.
5.4. Tính chuẩn của vec-tơ.
Cú pháp: [> norm( tên vec-tơ, loại chuẩn); (có ba loại chuẩn là 1, 2, infinity)
Ví dụ:
[> u:=[1, 2, 3]:
[> norm(u, infinity);
3
5.5. Khoảng cách giữa hai điểm.
Điểm được xem như vec-tơ, nên khoảng cách giữa hai điểm cũng là khoảng cách
giữa hai vec-tơ. Ở đây, khoảng cách được tính theo chuẩn Euclide. Trước tiên cần
khởi động gói student:
[> with(student);
Cú pháp: [> distance(vec-tơ 1, vec-tơ 2);
5.6. Tích hai vec-tơ.
Tích vô hướng.
Cú pháp: [> dotprod(vec-tơ 1, vec-tơ 2);/ [> innerprod(vec-tơ 1, vec-tơ 2);
Tích hữu hướng.
Cú pháp: [> crossprod(vec-tơ 1, vec-tơ 2);
Ví dụ:
[> u:=[1, 2, 3]:
[> v:=[2, 0, 1]:
[> dotprod(u,v);
5
[> crossprod(u,v);
[2, 5, −4]
9
5.7. Tổng, hiệu hai hoặc nhiều ma trận cùng cỡ.
Cú pháp: [> evalm(A ± B ± C...);
5.8. Nhân hai hoặc nhiều ma trận có cỡ phù hợp.
Cú pháp: [> multiply(A, B, C..);
5.9. Tích trong của ma trận và vec-tơ.
Cho u ∈ Rm
, A ∈ Rm×n
, v ∈ Rn
.
Cú pháp: [> innerprod(u, A, v); (sẽ cho ra số thực bằng uT
Av.)
5.10. Tính định thức ma trận.
Cú pháp: [> det(A);
6. Hàm một biến số, giới hạn và đồ thị.
6.1. Định nghĩa hàm một biến số.
Cú pháp: [> f:=x− > (biểu thức hàm theo x);
Sau đó, muốn tính giá trị hàm tại một điểm x0 ta chỉ cần viết f(x0). Ta có thể dùng
một biến khác thay cho x và tên hàm khác thay cho f. Biểu thức hàm ở đây có thể
một biểu thức đơn giản nhưng cũng có thể là một biểu thức phức tạp như giới hạn,
tổng...
Ví dụ:
[> f:= x− > x∧2 - x +1;
f := x → x2
− x + 1
[> f(2);
3
[> g:= u− > limit(n*u∧2/(u*(2*n+5)+3), n= infinity);
g := u → lim
n→∞
nu2
u(2n + 5) + 3
[> g(3);
3
2
10
6.2. Vẽ đồ thị của hàm số trên hệ toạ độ Oxy.
Muốn vẽ đồ thị hàm số trước tiên ta phải khởi động gói chuyên dụng plots
bằng lệnh
[> with(plots);
sau đó, mới thực hiện các lệnh vẽ đồ thị.
Vẽ đồ thị hàm y = f(x).
Cú pháp: [> plot(f(x), x=a..b, y=c..d);
Lúc đó, đồ thị hàm y = f(x) được vẽ trong phạm vi hình chữ nhật [a, b]×[c, d].
Nếu không khai báo các phạm vi thì máy sẽ tự vẽ theo một toạ độ thích hợp.
Ví dụ:
[> f:= x − > x*sin(1/x);
f := x → x sin
(
1
x
)
[> plot(f(x), x=-1..1, y=-0.5..1); Kết quả xem ở Hình 1.
–0.4
–0.2
0.2
0.4
0.6
0.8
1
y
–1 –0.8 –0.6 –0.4 –0.2 0.2 0.4 0.6 0.8 1x
Hình 1: Đồ thị hàm số x sin 1
x
Vẽ đồ thị đường cong ẩn dạng F(x, y) = 0.
Cú pháp: [> implicitplot(F(x,y)=0,x=a..b, y=c..d);
với [a, b] × [c, d] là phạm vi cần vẽ.
Ví dụ: Để vẽ Êlip x2
4
+ y2
9
= 1 trong hình chữ nhật [−2, 2] × [−3, 3], ta viết
[> implicitplot(x∧2/4 + y∧2/9 -1 =0, x=-2..2, y=-3..3);
11
–3
–2
–1
1
2
3
y
–2 –1 1 2
x
Hình 2: Đồ thị Ellipse x2
4
+ y2
9
= 1
Vẽ nhiều đồ thị trên cùng một hệ truc toạ độ.
Cú pháp: [> plot([f1(x), ..., fm(x)], x=a..b, y=c..d, color=[c1, ..., cm]});
Lúc đó, đồ thị các hàm fi(x), 1 ≤ i ≤ m, được vẽ tương ứng với các màu ci,
1 ≤ i ≤ m trên cùng một hệ trục toạ độ. Việc vẽ nhiều đồ thị trên cùng một hệ trục
toạ độ cho chúng ta một công cụ rất mạnh để đánh giá việc xấp xỉ một hàm bởi các
hàm đa thức. Chẳng hạn để biết hàm ex
được xấp xỉ tốt như thế nào bởi hàm
g(x) =
(
1 +
x
9
)9
ta dùng lệnh
[> g:=x − > (1+x/9)∧9;
g := x →
(
1 +
x
9
)9
[> plot([exp(x), g(x)], x=-2..2, color=[red, blue]); (Hình 3)
1
2
3
4
5
6
7
–4 –3 –2 –1 1 2
x
Hình 3: Xấp xỉ hàm ex
bởi hàm (1 + x
9
)9
12
Vẽ đồ thị hàm từng khúc.
Đó là hàm được xác định trên từng khoảng với các công thức khác nhau. Để
khai báo một hàm như thế ta dùng cú pháp sau
[> f:= piecewise(đk1, f1(x), đk2, f2(x), ..., đkk, fk(x), fk+1(x));
Điều đó có nghĩa là
f(x) :=



f1(x), nếu điều kiện đk1 đúng,
f2(x), nếu điều kiện đk2 đúng và đk1 sai,
...
fk(x), nếu điều kiện đkk đúng và tất cả các điều kiện trước sai,
fk+1(x), nếu không có điều kiện nào đúng.
Ví dụ:
[> f(x):= piecewise(x<-1, 1, x<1, -x∧2, 2*x+1);
f(x) :=



1 x < −1
−x2
x < 1
2x + 1 otherwise
[> plot(f(x), x=-2..2, color=blue); Xem Hình 4.
–1
0
1
2
3
4
5
–2 –1 1 2
x
Hình 4: Đồ thị hàm từng khúc
Trong ví dụ trên ta thấy, mặc dù hàm gián đoạn tại −1 và 1, đồ thị vẫn được
vẽ liên tục. Đó là vì Maple tự động nối các điểm gián đoạn lại thành đường liền nét.
Muốn thấy rõ các điểm gián đoạn ta đưa vào tham số discont=true. Cụ thể, với
lệnh như sau, ta có kết quả được cho trong Hình 5.
[> plot(f(x), x=-2..2, color=blue, discont=true);
13
–1
1
2
3
4
5
–2 –1 1 2
x
Hình 5: Đồ thị hàm từng khúc gián đoạn thực sự
6.3. Tính giới hạn của hàm một biến số.
Cú pháp: [> limit(f(x), x=a); (dùng Limit thì chỉ cho công thức hình thức)
Ví dụ:
[> Limit(sin(x)/x, x=0);
lim
x→0
sin(x)
x
[> value(%);
1
[> limit((1+1/x)∧x, x=infinity);
e
7. Hàm nhiều biến số, giới hạn và đồ thị.
7.1. Định nghĩa hàm nhiều biến số.
Để đơn giản ta chỉ xét hàm hai biến.
Cú pháp: [> f:=(x, y)− > (biểu thức hàm theo x, y);
Ví dụ:
[> f:= (x, y)− > 3*x∧2*sin(x*y);
f := (x, y) → 3x2
sin(xy)
14
7.2. Vẽ đồ thị của hàm nhiều biến.
Muốn vẽ đồ thị hàm nhiều biến ta phải khởi động hai gói lệnh plots và
plottools:
[> with(plots);
[> with(plottools);
Vẽ đồ thị hàm z = f(x, y).
Cú pháp: [> plot3d(f(x,y), x=a..b, y=c..d);
Lúc đó, đồ thị là một mặt trong không gian Oxyz với miền xác định là hình
chữ nhật [a, b] × [c, d].
Ví dụ:
[> f:= (x, y) − > x∧2 + y∧2:
[> with(plots):
[> with(plottools):
[> plot3d(f(x,y), x=-3..3, y=-2..2);
Hình 6: Đồ thị hàm z = x2
+ y2
Nếu vẽ nhiều mặt trên cùng một không gian toạ độ thì ta viết
Cú pháp: [> plot3d({f(x,y), g(x,y),...}, x=a..b, y=c..d);
Vẽ mặt được cho dưới dạng tham số.
Giả sử mặt S được cho bởi hệ



x = x(u, v),
y = y(u, v),
z = z(u, v),
(u, v) ∈ [a, b] × [c, d].
15
Để vẽ mặt S ta dùng lệnh (chú ý đừng nhầm lẫn với lệnh vẽ nhiều mặt cùng lúc)
Cú pháp: [> plot3d([x(u,v), y(u,v), z(u,v)], u=a..b, v=c..d);
Vẽ mặt được cho bởi phương trình ẩn dạng F(x, y, z) = 0.
Cú pháp: [> implicitplot3d(F(x,y,z)=0,x=a..b, y=c..d, z=e..f);
Ví dụ: Để vẽ mặt x2
4
+ y2
9
− z2
= 1 trong hình hộp [−5, 5] × [−6, 6] × [−1..1], ta viết
[> implicitplot3d(x∧2/4+y∧2/9- z∧2-1 =0, x=-5..5, y=-6..6, z=-1..1);
Hình 7: Đồ thị hàm ẩn x2
/4 + y2
/9 − z2
− 1 = 0
7.3. Vẽ các đường mức của một hàm hai biến.
Cú pháp: [> contourplot(f(x,y), x=a..b, y=c..d);
Lúc đó, máy sẽ vẽ trên mặt phẳng Oxy các đường cong dạng f(x, y) = α, với các α
khác nhau.
7.4. Tính giới hạn của hàm nhiều biến.
Chẳng hạn, ta xét hàm hai biến.
Cú pháp: [> limit(f(x, y), {x=a, y=b}); (Limit sẽ cho công thức hình thức)
Chú ý rằng nếu viết limit(limit(f(x,y),x=a),y=b) thì ý nghĩa sẽ khác.
16
8. Phép tính vi phân.
8.1. Tính đạo hàm của một hàm số.
Việc tính đạo hàm của hàm một biến hoặc đạo hàm riêng của hàm nhiều biến
được thực hiện tương tự nhau.
Tính đạo hàm cấp một (theo biến x).
Cú pháp: [> diff(hàm số, x); (dùng Diff thì cho công thức hình thức)
Ví dụ:
[> diff(sqrt(1+x∧2), x);
x
√
1 + x2
Nhiều lúc máy cho ta một biểu thức đạo hàm khá cồng kềnh. Lúc đó, muốn đơn
giản biểu thức ta dùng lệnh simplify có cú pháp
[> simplify(biểu thức);
Ví dụ:
[> f:=x− > cos(x)∧2/sin(2*x);
f := x →
cos(x)2
sin(2x)
[> Diff(f(x), x);
∂
∂x
cos(x)2
sin(2x)
[> Df:=value(%);
Df := −2
cos(x) sin(x)
sin(2x)
− 2
cos(x)2
cos(2x)
sin(2x)2
[> simplify(%);
2
cos(x)2
−1 + cos(2x)2
Việc tính đạo hàm riêng của hàm nhiều biến cũng sử dụng câu lệnh trên.
Ví dụ:
[> f:=(x,y)− >x*sin(x*y):
[> diff(f(x,y), y);
x2
cos(xy)
17
Tính đạo hàm cấp cao.
Cú pháp: [> diff(f(x,y), x$k, y$m);
Ví dụ: (với hàm f như trên)
[> diff(f(x, y ),x$2, y$3);
8x3
sin(xy)y − 12x2
cos(xy) + x4
cos(xy)y2
8.2. Gradient, Hessian của hàm nhiều biến.
Chẳng hạn, ta xét hàm 3 biến:
Tính gradient.
Cú pháp: [> grad(f(x,y,z), [x,y,z]);
Tính Hessian.
Cú pháp: [> hessian(f(x,y,z), [x,y,z]);
Ví dụ: (với f ở trên)
[> grad(f(x,y), [x,y]);
[sin(xy) + x cos(xy)y, x2
cos(xy)]
[> hessian(f(x,y), [x,y]);
[
2 cos(xy)y − x sin(xy)y2
2 cos(xy)x − x2
sin(xy)y
2 cos(xy)x − x2
sin(xy)y −x3
sin(xy)
]
8.3. Khai triển Taylor.
Khai triển Taylor hàm f(x) tại x = a đến cấp n.
Cú pháp: [> taylor(f(x), x=a, n); (nếu a = 0 thì viết x thay cho x=0)
Ví dụ:
[> taylor(exp(x), x, 7);
1 + x +
1
2
x2
+
1
6
x3
+
1
24
x4
+
1
120
x5
+
1
720
x6
+ O(x7
)
[> taylor(x*cos(x), x=Pi, 5);
−π − (x − π) +
1
2
π(x − π)2
+
1
2
(x − π)3
−
1
24
π(x − π)4
+ O((x − π)5
)
18
Khai triển Taylor hàm f(x, y) tại x = a, y = b đến cấp n.
Cú pháp: [> mtaylor(f(x,y), [x=a, y=b], n);
Ví dụ:
[> mtaylor(sin(x∧2 + y∧2), [x, y ], 8);
x2
+ y2
−
1
6
x6
−
1
2
y2
x4
−
1
2
x2
y4
−
1
6
y6
8.4. Tính giới hạn các dạng vô định.
Để tính giới hạn các dạng vô định chúng ta vẫn dùng lệnh tính giới hạn như
các hàm thông thường, bởi vì máy đã biết dùng Công thức L’hospital trong tính
toán. Tuy vậy, cũng có lúc chúng ta cũng phải hỗ trợ bằng những bước thích hợp.
Ví dụ:
[> limit((six(x)-x)/(x*(1-cos(x))), x=0);
−
1
3
[> limit((x*exp(2*x)-5*tan(x))/(tan(x)∧2+x∧3), x=0);
undefined
Như vậy, máy đã không tính nổi giới hạn này. Chúng ta có thể giúp máy bằng
cách cho lần lượt tính đạo hàm cấp một, rồi cấp hai, cấp ba... đồng thời cả tử và
mẫu và tính giới hạn của thương cho đến khi máy tính được. Trong ví dụ trên, khi
tính đến đạo hàm cấp hai thì ta có kết quả
[> f:=value(diff(x*exp(2*x)-5*tan(x),x$2);
f := 4e(2x)
+ 4xe(2x)
− 10 tan(x)(1 + tan(x)2
)
[> g:=value(diff(tan(x)∧2+x∧3,x$2);
g := 2(1 + tan(x)2
)2
+ 4 tan(x)2
(1 + tan(x)2
) + 6x
[> limit(f/g, x=0);
2
9. Tổng quát về vẽ đường và mặt.
Trong mục này ta sẽ nghiên cứu cách vẽ các đường cong và mặt cong trong mặt
phẳng và trong không gian, bao gồm cả các trường hợp đã xét trong các mục 6 và
7. Để thực hiện các lệnh trong mục này, nói chung, ta cần khởi động các gói công
cụ plots, plottools.
19
9.1. Vẽ đường cong trong mặt phẳng.
Dùng toạ độ Đê-các.
Trong toạ độ Đê-các, một đường cong phẳng (C) thường được biểu diễn như là
đồ thị của hàm một biến f nào đó:
(C) : y = f(x), x ∈ [a, b],
hoặc được biểu diễn dưới dạng tham số:
(C) :
{
x = x(t),
y = y(t),
t ∈ [a, b],
hoặc dưới dạng một phương trình ẩn
(C) : F(x, y) = 0.
Để vẽ đường cong trong trường hợp thứ nhất ta dùng lệnh
[> plot(f(x), x=a..b);
trong trường hợp thứ hai ta dùng lệnh
[> plot([x(t), y(t), t=a..b]);
và trong trường hợp thứ ba:
[> implicitplot(F(x,y)=0, x=a..b, y=c..d);
Dùng toạ độ cực.
Trong toạ độ cực, một đường cong phẳng thường có hai cách biểu diễn
(C) : r = f(φ); φ ∈ [a, b]
hoặc
(C) :
{
r = r(t),
φ = φ(t),
t ∈ [a, b].
Để vẽ đường cong trong trường hợp thứ nhất ta dùng lệnh
[> polarplot(f(phi), phi=a..b);
và trong trường hợp thứ hai ta dùng lệnh
[> polarplot([r(t), phi(t), t=a..b]);
20
9.2. Vẽ mặt cong trong không gian.
Dùng toạ độ Đê-các.
Trong toạ độ Đê-các, một mặt cong phẳng (S) cũng thường được biểu diễn như
là đồ thị của hàm hai biến f nào đó:
(S) : z = f(x, y), (x, y) ∈ [a, b] × [c, d],
hoặc được biểu diễn dưới dạng tham số:
(S) :



x = x(s, t),
y = y(s, t),
z = z(s, t),
(s, t) ∈ [a, b] × [c, d],
hoặc bởi một phương trình ẩn:
(S) : F(x, y, z) = 0.
Để vẽ mặt cong trong trường hợp thứ nhất ta dùng lệnh
[> plot3d(f(x,y), x=a..b, y=c..d);
trong trường hợp thứ hai ta dùng lệnh
[> plot3d([x(s,t), y(s,t), z(s,t)], s=a..b, t=c..d);
và trong trường hợp thứ ba ta dùng lệnh
[> implicitplot3d(F(x,y,z)=0, x=a..b, y=c..d, z=e..f);
Dùng toạ độ trụ.
Trong toạ độ trụ, một mặt cong phẳng (S) thường được biểu diễn bởi một
trong hai cách:
(S) : r = f(φ, z), (φ, z) ∈ [a, b] × [c, d],
hoặc
(S) :



r = r(s, t),
φ = φ(s, t),
z = z(s, t),
(s, t) ∈ [a, b] × [c, d].
Để vẽ mặt cong trong trường hợp thứ nhất ta dùng lệnh
[> cylinderplot(f(phi, z), phi=a..b, z=c..d);
và trong trường hợp thứ hai ta dùng lệnh
[> cylinderplot([r(s,t), phi(s,t), z(s,t)], s=a..b, t=c..d);
21
Dùng toạ độ cầu.
Trong toạ độ cầu, một mặt cong phẳng (S) thường được biểu diễn bởi một
trong hai cách:
(S) : ρ = f(φ, θ), (φ, θ) ∈ [a, b] × [c, d],
hoặc
(S) :



ρ = ρ(s, t),
φ = φ(s, t),
θ = θ(s, t),
(s, t) ∈ [a, b] × [c, d].
Để vẽ mặt cong trong trường hợp thứ nhất ta dùng lệnh
[> sphereplot(f(phi, theta), phi=a..b, theta=c..d);
và trong trường hợp thứ hai ta dùng lệnh
[> sphereplot([rho(s,t), phi(s,t), theta(s,t)], s=a..b, t=c..d);
Hình 8: Mặt cầu đơn vị
Ví dụ: Để vẽ mặt cầu đơn vị ta có thể dùng một trong các lệnh sau (Hình 8).
[> plot3d([sin(s)*cos(t),sin(s)*sin(t),cos(s)],s=0..Pi,t=0..2*Pi);
[> cylinderplot(sqrt(1-z∧2), phi=0..2*Pi, z=-1..1);
[> cylinderplot([sin(s), phi, cos(s)], phi=0..2*Pi, s=0..Pi);
[> sphereplot(1, phi=0..2*Pi, theta=0..Pi);
9.3. Vận động đồ thị.
Vận động đồ thị là sự biến thiên của đồ thị theo tham số. Điều đó có nghĩa
là ta cho một họ đường cong (Ct) hay mặt cong (St) phụ thuộc vào một tham số
t. Sau đó vẽ tất cả các đường/mặt này ứng với các giá trị t khác nhau. Họ đường
22
cong, mặt cong có thể biểu diễn dưới các dạng khác nhau và theo các hệ toạ độ khác
nhau. Ở đây, chúng ta chỉ xét họ được viết dưới dạng đơn giản:
(Ct) : y = f(x, t), x ∈ [a, b], t ∈ [t1, t2]
(St) : z = f(x, y, t), (x, y) ∈ [a, b] × [c, d], t ∈ [t1, t2].
Để vận động họ (Ct) ta dùng lệnh
[> animate(f(x, t), x=a..b, t=t1..t2);
và vận động họ (St) bằng lệnh
[> animate3d(f(x, y, t), x=a..b, y=c..d, t=t1..t2);
Chú ý là khi thực hiện lệnh này ta thấy đồ thị chưa vận động bởi vì máy chỉ vẽ
một đường/mặt ứng với một tham số cụ thể nào đó. Nếu đưa con trỏ chuột vào vùng
đồ thị và kích trái chuột thì một bảng lệnh điêù hành sẽ hiện ra ngay dưới thanh
công cụ, gồm các ký hiệu play ( ), continuous ( ), stop ( ) quen thuộc. Nếu
bạn muốn đồ thị vận động liên tục theo các tham số thì nhấn continuous/play,
sau đó muốn dừng thì nhấn stop.
10. Phép tính tích phân.
10.1. Tích phân hàm một biến.
Xấp xỉ diện tích hình thang cong.
Trước tiên chúng ta trở lại khảo sát việc xấp xỉ diện tích hình thang cong bởi
tổng diện tích của các hình chữ nhật. Ta đã biết, nếu f khả tích (và đặc biệt là
liên tục) thì các phân hoạch đều vẫn cho những xấp xỉ tốt. Maple cho phép chúng
ta dùng một trong ba lệnh rightbox/leftbox/middlebox để minh hoạ việc xấp xỉ
đều một hàm f trên đoạn [a, b]. Cụ thể,
Cú pháp: [> rightbox(f(x), x=a..b, n, ’shading’=m1, color=m2); (tương tự,
leftbox, middlebox)
Lệnh này minh hoạ việc xấp hình thang cong giới hạn bởi các đường y = f(x),
y = 0, x = a và x = b bằng một xấp xỉ đều gồm n hình chữ nhật có đáy bằng
nhau (= (b − a)/n) và chiều cao của mỗi hình bằng giá trị hàm f tại mút phải của
mỗi đoạn (đối với leftbox là mút trái và middlebox là điểm giữa). m1 là màu tô
các hình chữ nhật còn m2 là màu vẽ đường cong (điều này chỉ được thấy trên màn
hình, trong giáo trình này chỉ thấy màu đen). Mặc định n = 4. Chú ý rằng, trước
khi thực hiện lệnh này cần khởi động gói lệnh student.
Ví dụ:
[> with(student);
23
–1.5
–1
–0.5
0.5
1
–1 –0.8 –0.6 –0.4 –0.2 0.2 0.4 0.6 0.8 1x
Hình 9: Xấp xỉ tích phân xác định bởi 4 hình chữ nhật
[> leftbox(exp(x)-2*x∧2, x=-1..1, ’shading’=cyan, color=green);
[> middlebox(exp(x)-2*x∧2, x=-1..1, 10, ’shading’=red, color=blue);
–1.5
–1
–0.5
0
0.5
1
–1 –0.8 –0.6 –0.4 –0.2 0.2 0.4 0.6 0.8 1
x
Hình 10: Xấp xỉ tích phân xác định bởi 10 hình chữ nhật
b) Tính tích phân xác định
∫ b
a
f(x)dx.
Cú pháp: [> int(f(x), x=a..b); (nếu dùng Int thì cho công thức hình thức)
Ví dụ:
[> int(x∧2, x=-1..2);
3
[> int(sin(x)/x, x=0..2);
Si(2)
Điều này có nghĩa là máy đã định nghĩa một hàm mới Si(t) =
∫ t
0
sin(x)
x
dx. Muốn
tính xem Si(2) bằng bao nhiêu ta viết tiếp
[> evalf(%,20);
1.6054129768026948486
24
Lệnh này có nghĩa là hãy tính giá trị biểu thức vừa tính với độ chính xác 20
chữ số lẻ (nếu không chỉ định rõ độ chính xác, máy sẽ tính với 10 chữ số lẻ).
Lưu ý là câu lệnh tính tích phân xác định ở trên cũng được dùng để tính các
tích phân suy rộng.
Ví dụ:
[> int(1/sqrt(x*(1-x)), x=0..1);
π
[> int(1/x∧2,x=1..infinity);
1
[> int(1/x∧2,x=0..1);
∞
Tìm nguyên hàm của hàm y = f(x).
Ta đã biết một hàm, nếu khả tích, sẽ có vô số nguyên hàm, sai khác nhau bởi
các hằng số. Vì vậy chỉ cần biết một nguyên hàm nào đó của nó là đủ. Maple cho
phép tìm một nguyên hàm của hàm f(x) thông qua lệnh int.
Cú pháp: [> int(f(x), x); (Nếu dùng Int sẽ hiển thị công thức hình thức)
Ví dụ:
[> int(x*cos(x), x);
cos(x) + x sin(x)
10.2. Ứng dụng tích phân xác định.
Tính diện tích hình phẳng.
Để tính diện tích hình phẳng giới hạn bởi các đường y = f(x), y = 0, x = a
và x = b ta tính tích phân xác định trên đoạn [a, b] của hàm |f(x)| (ký hiệu là
abs(f(x)). Còn muốn tính diện tích hình phẳng giới hạn bởi các đường y = f(x),
y = g(x), x = a và x = b ta dùng lệnh
[> int(abs(f(x)-g(x)), x=a..b);
Tính độ dài đường cong phẳng.
Cho đường cong C trong mặt phẳng có phương trình tham số:
{
x = u(t),
y = v(t),
t ∈ [a, b].
25
Ở đây, u và v là các hàm khả vi liên tục trên đoạn [a, b]. Để tính độ dài của C, trước
tiên ta cần tính đạo hàm của u, v, sau đó mới áp dụng công thức tính độ dài đường
cong. Cụ thể, ta thực hiện ba lệnh
[> f(t):=diff(u(t), t);
[> g(t):=diff(v(t), t);
[> int(sqrt(f(t)∧2+g(t)∧2), t=a..b);
Tính thể tích hình tròn xoay.
Cho hình phẳng S giới hạn bởi các đường y = 0, y = f(x), x = a, x = b. Hình
phẳng này quay quanh trục Ox tạo nên vật thể tròn xoay T. Để tính thể tích vật
thể này ta thực hiện lệnh
[> Pi*int(f(x)∧2,x=a..b);
Ví dụ: Tính thể tích vật thể tròn xoay được tạo ra khi quay cung parabol y = x2
−x,
−2 ≤ x ≤ 1 quanh trục Ox. Ta dùng lệnh
[> Pi*int((x∧2-x)∧2,x=-2..1);
171
10
π
Tính diện tích mặt tròn xoay.
Cho mặt tròn xoay F, được tạo thành khi quay cung C = {(x, f(x)) | x ∈ [a, b]}
quanh trục Ox. Nếu f khả vi liên tục, ta có thể tính diện tích của F bằng cách thực
hiện hai lệnh:
[> g(x):=diff(f(x), x);
[> 2*Pi*int(abs(f(x))*sqrt(1+g(x)∧2), x=a..b);
Chẳng hạn, mặt cầu đơn vị là mặt tròn xoay được tạo ra bởi hàm f(x) =
√
1 − x2.
Ta viết
[> f:=x->sqrt(1-x∧2):
[> g(x):=diff(f(x),x):
[> 2*Pi*int(abs(f(x))*sqrt(1+g(x)∧2),x=-1..1);
4π
10.3. Tích phân bội trên hộp.
Để tính tích phân bội trên hộp ta cần nạp gói lệnh student:
[> with(student);
26
Tích phân bội 2.
Để tính tích phân bội 2 của hàm f(x, y) trên hình hộp ∆ = [a, b] × [c, d] ta
dùng lệnh Doubleint.
Cú pháp: [> Doubleint(f(x, y), x=a..b, y=c..d);
Vì đây là lệnh trơ nên chỉ cho công thức hình thức. Để biết giá trị của nó ta
phải dùng hàm định giá value hoặc hàm evalf.
Ví dụ:
[> m:= Doubleint(x∧2*exp(x*y),x=-1..1, y=0..2);
m :=
∫ 2
0
∫ 1
−1
x2
e(xy)
dxdy
[> value(m);
1
4
e2
+
3
4
e(−2)
[> evalf(m);
1.948765487
Tích phân bội 3.
Để tính tích phân bội 3 của hàm f(x, y, z) trên hình hộp ∆ = [a, b]×[c, d]×[e, g]
ta dùng lệnh (trơ) Tripleint.
Cú pháp: [> Tripleint(f(x, y), x=a..b, y=c..d, z=e..g);
10.4. Tích phân lặp.
Tích phân lặp 2 lớp.
Để tính tích phân
∫ b
a
dx
∫ y2(x)
y1(x)
f(x, y)dy
ta dùng lệnh
[> int(int(f(x,y), y=y1(x)..y2(x)), x=a..b);
Ví dụ:
[> int(int(x*exp(y), y=1..x∧2), x=0..2);
1
2
e4
− 2e −
1
2
[> evalf(%);
1.948765487
27
Tích phân lặp 3 lớp.
Tương tự, để tính tích phân
∫ b
a
dx
∫ y2(x)
y1(x)
dy
∫ z2(x,y)
z1(x,y)
f(x, y, z)dz
ta dùng lệnh
[> int(int(int(f(x,y,z),z=z1(x,y)..z2(x,y)),y=y1(x)..y2(x)),x=a..b);
11. Phương trình vi phân và Phương trình đạo
hàm riêng.
Muốn tiến hành giải phương trình vi phân và phương trình đạo hàm riêng ta
cần nạp gói công cụ DEtools bằng lệnh
[> with(DEtools);
cũng cần ghi nhớ các ký hiệu
1. D(y) là đạo hàm bậc nhất của y.
2. D(D(y)) là đạo hàm bậc hai của y.
3. (D@@k)(y) là đạo hàm bậc k của y.
11.1. Giải phương trình vi phân thường.
Cú pháp: [> dsolve( {ODE, ICs}, y(x), Options);
trong đó, ODE là phương trình cần giải, ICs là các điều kiện đầu, y(x) là ẩn hàm
cần tìm và Options là các tuỳ chọn, cho phép ta xác định phương pháp giải cùng
dạng biểu diễn nghiệm (nếu không chọn dạng biểu diễn nghiệm thì mặc định là biểu
diễn chính xác). Chẳng hạn, nếu Options có dạng
+ type= series thì máy sẽ cho nghiệm dưới dạng chuỗi,
+ type= numeric thì máy sẽ sử dụng các phương pháp số và cho ta nghiệm
dưới dạng một hàm tượng trưng mà có thể tính được giá trị của nó tại bất kỳ điểm
nào,
+ output= basis (đối với phương trình tuyến tính) thì máy sẽ cho ta tập hàm
cơ sở. Nếu phương trình không thuần nhất thì máy sẽ cho thêm một nghiệm riêng.
Ví dụ:
[> dsolve((D3)(y)(x)-D(D(y))(x)+exp(x)=0,y(x));
y(x) = −xex
+ 2ex
+ ex
_C1 + _C2x + C3
28
[> dsolve({D(D(y))(x)-D(y)(x)+sin(x)=0,y(0)=0, D(y)(0)=1},y(x));
y(x) =
1
2
sin(x) −
1
2
cos(x) +
1
2
ex
[> pt:=D(D(y))(x)-D(y)(x)+sin(x)=0; Dkd:=y(0)=0, D(y)(0)=1:
[> dsolve({pt, Dkd},y(x), type=series);
y(x) = x +
1
2
x2
+
1
120
x5
+ O(x6
)
[> f:=dsolve({pt, Dkd},y(x), type=numeric);
g:=proc(rkf45_x)... endproc
[> g(0); [
x = 0, y(x) = 0.,
∂
∂x
y(x) = 1.
]
[> dsolve(pt, y(x), output=basis);
[
[1, ex
], −
1
2
cos(x) +
1
2
sin(x)
]
11.2. Giải hệ phương trình vi phân thường.
Cú pháp: [> dsolve( {ODEs, ICs}, {Vars}, Options);
trong đó, ODEs là hệ phương trình cần giải, ICs là các điều kiện đầu, Vars là các
ẩn hàm cần tìm và Options là các tuỳ chọn (tương tự như các tuỳ chon khi giải
phương trình vi phân).
Ví dụ: Để giải hệ phương trình
{
y′
(x) = z(x) + 1,
z′
(x) = 2y(x) − z(x) − x,
với điều kiện đầu
y(0) = 1, z(0) = 0
ta dùng các lệnh
[> hept:=diff(y(x),x)=z(x)+1, diff(z(x), x)= 2*y(x)-z(x) -x:
[> Dkd:=y(0)=1, z(0)=0:
[> dsolve({ hept, Dkd},{y(x), z(x)});
{
y(x) = −
1
4
+
1
2
x + ex
+
1
4
e(−2x)
, z(x) = −
1
2
+ ex
−
1
2
e(−2x)
}
29
11.3. Vẽ đồ thị nghiệm của hệ phương trình vi phân.
Cú pháp: [> DEplot( {ODEs},{Vars},Trange,ICs,Xrange,Yrange,Options);
trong đó:
ODEs là hệ các phương trình vi phân bậc nhất (hoặc 1 phương trình vi phân
bậc cao, có thể quy về hệ bậc nhất)
Vars là các biến phụ thuộc (hay các ẩn hàm cần tìm).
Trange là miền thay đổi của biến độc lập.
ICs là điều kiện ban đầu xác định đường cong nghiệm cần vẽ.
Xrange là miền thay đổi của biến phụ thuộc thứ nhất.
Yrange là miền thay đổi của biến phụ thuộc thứ hai.
Options là các tuỳ chọn như màu mũi tên (color=?), màu đường cong nghiệm
(linecolor=?), tiêu đề (title=?), bước nhảy (stepsize=?), nếu nhiều hơn 2 biến phụ
thuộc thì phải khai báo mặt phẳng chiếu vì chỉ được phép vẽ trên không gian hai
chiều (scene=?)...
Ví dụ: Vẽ đồ thị của nghiệm hệ phương trình vi phân



x′
= y − z,
y′
= z − x,
z′
= x − y2
với điều kiện đầu:



x(0) = 1,
y(0) = 0,
z(0) = 2,
biến độc lập t thay đổi trong khoảng [−2, 2], biến phụ thuộc x thay đổi trong khoảng
[−3, 4], tuỳ chọn: bước nhảy = 0.05, chiếu lên mặt phẳng Ozx:
[> DEplot({D(x)(t)=y(t)-z(t), D(y)(t)=z(t)-x(t),D(z)(t)=x(t)-y(t)∧2},
{x(t),y(t),z(t)}, t=-2..2, x=-3..4, [[x(0)=1,y(0)=0,z(0)=2]],
stepsize=0.05,scene=[z(t),x(t)]);
–3
–2
–1
0
1
2
3
4
x(t)
–1 –0.5 0.5 1 1.5 2
z(t)
Hình 11: Đồ thị hệ phương trình vi phân
30
Ví dụ: Vẽ dồ thị hệ phương trình
{
x′
(t) = x(t)(1 − y(t)),
y′
(t) = 0.3y(t)(x(t) − 1)
với 2 điều kiện đầu:
{
x(0) = 1.2, y(0) = 1.2,
x(0) = 1, y(0) = 0.2,
t ∈ [−7..7], bước nhảy 0.1, tiêu đề Graph, mũi tên màu đỏ, quỹ đạo màu xanh:
[> DEplot({diff(x(t),t)=x(t)*(1-y(t)), diff(y(t),t)=0.3*y(t)*(x(t)
-1)}, [x(t),y(t)], t=-7..7,[[x(0)=1.2,y(0)=1.2],[x(0)=1,y(0)=0.2]],
x=-2..2, y=-1..2,stepsize=.1,title=’Graph’,linecolor=blue,color=red);
Graph
–1
–0.5
0
0.5
1
1.5
2
y
–2 –1 1 2
x
Hình 12: Đồ thị hệ phương trình vi phân với nhiều điều kiện đầu
[> DEplot(hpt,x(t),y(t),t=0..2,[[x(0)=0,y(0)=1],[x(0)=1,y(0)=1]],x=-3..3,y=-3..3);
–3
–2
–1
0
1
2
3
y
–3–2–1123
x
Hình 13: Đồ thị hệ phương trình vi phân với nhiều điều kiện đầu
[[> DEplot(D(x)(t)-x(t)=0,x(t),t=-2..2,[[x(0)=2],[x(0)=4]],x=0..10);
11.4. Giải phương trình đạo hàm riêng.
Cú pháp: [> pdsolve( PDE, Var , HINT=?);
31
0
2
4
6
8
10
x(t)
–2–112
t
Hình 14: Đồ thị hệ phương trình vi phân với nhiều điều kiện đầu
trong đó, PDE là phương trình cần giải, Var là ẩn hàm (nếu cần) và tuỳ chọn HINT=?
là định hướng để giải. Chẳng hạn HINT=P(x,y)∧(1/2) là chỉ tìm nghiêm dưới
dạng U(x, y) =
√
P(x, y), HINT=f(x)+g(y) là chỉ tìm nghiệm dưới dạng U(x, y) =
f(x) + g(y)...
Ví dụ:
[> PDE := x*diff(f(x,y),y)-y*diff(f(x,y),x) = 0;
PDE := x
(
∂
∂y
f(x, y)
)
− y
(
∂
∂x
f(x, y)
)
= 0
[> pdsolve(PDE);
f(x, y) = _F1(x2
+ y2
)
ở đây, ta hiểu _F1 là một hàm tuỳ ý.
[> PDE := S(x,y)*diff(S(x,y),y,x)+diff(S(x,y),x)*diff(S(x,y),y)=1;
PDE := S(x, y)
(
∂2
∂y∂x
S(x, y)
)
+
(
∂
∂x
S(x, y
) (
∂
∂y
(S(x, y)
)
= 1
[> pdsolve(PDE,HINT=f(x)*g(y));
(S(x, y) = f(x)g(y))&where
[
{
∂
∂x
f(x) =
_c1
f(x)
,
∂
∂y
g(y) =
1
2
1
g(y)_c1
}
]
32
Tài liệu tham khảo
[1] B.W. Char, K.O. Geddes, G.H. Gonnet, B.L. Leong, M.B. Managan, S.M. Watt,
Maple V Library Reference Manual, Springer Verlag, 1993.
[2] P.H. Điển, Đ.T. Lục, T.D. 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, Hà Nội, 1998.
[3] Phạm Huy Điển, Tính toán, lập trình và giảng dạy trên Maple, Nxb KHKT,
2002.

Más contenido relacionado

La actualidad más candente

Bt toan a2
Bt toan   a2Bt toan   a2
Bt toan a2Duy Duy
 
Luận văn: Một số phương pháp giải xấp xỉ phương trình tích phân phi tuyến Vol...
Luận văn: Một số phương pháp giải xấp xỉ phương trình tích phân phi tuyến Vol...Luận văn: Một số phương pháp giải xấp xỉ phương trình tích phân phi tuyến Vol...
Luận văn: Một số phương pháp giải xấp xỉ phương trình tích phân phi tuyến Vol...Viết thuê trọn gói ZALO 0934573149
 
Tuyen tap de dh 2002 2012 theo chu de
Tuyen tap de dh  2002 2012 theo chu deTuyen tap de dh  2002 2012 theo chu de
Tuyen tap de dh 2002 2012 theo chu deĐăng Trọng
 
[Mathvn.com] tuyen tap de dh 2002-2012 theo chu de
[Mathvn.com] tuyen tap de dh  2002-2012 theo chu de[Mathvn.com] tuyen tap de dh  2002-2012 theo chu de
[Mathvn.com] tuyen tap de dh 2002-2012 theo chu dehannahisabellla
 
Bài tập xâu cơ bản-nâng cao
Bài tập xâu cơ bản-nâng caoBài tập xâu cơ bản-nâng cao
Bài tập xâu cơ bản-nâng caoTường Tường
 
12.ma trận và dịnh thức
12.ma trận và dịnh thức12.ma trận và dịnh thức
12.ma trận và dịnh thứcTrinh Yen
 
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng LongBài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng LongHoàng Như Mộc Miên
 
đại số tuyến tính 2 ( không gian eculid )
đại số tuyến tính 2 ( không gian eculid )đại số tuyến tính 2 ( không gian eculid )
đại số tuyến tính 2 ( không gian eculid )Bui Loi
 
Do do tich-phan-thai_thuan_quang mearsure and intergral
Do do tich-phan-thai_thuan_quang mearsure and intergralDo do tich-phan-thai_thuan_quang mearsure and intergral
Do do tich-phan-thai_thuan_quang mearsure and intergralBui Loi
 
Bài tập cơ bản-nâng cao mảng
Bài tập cơ bản-nâng cao mảngBài tập cơ bản-nâng cao mảng
Bài tập cơ bản-nâng cao mảngTường Tường
 
Baitap toancc2
Baitap toancc2Baitap toancc2
Baitap toancc2tuongnm
 
Bai tap a2 c2
Bai tap a2   c2Bai tap a2   c2
Bai tap a2 c2Duy Duy
 
He phuong trinh (chuong 2)
He phuong trinh (chuong 2)He phuong trinh (chuong 2)
He phuong trinh (chuong 2)Nguyễn Phụng
 

La actualidad más candente (18)

Bt toan a2
Bt toan   a2Bt toan   a2
Bt toan a2
 
Bai tập mảng
Bai tập mảngBai tập mảng
Bai tập mảng
 
Giai tri bat dang thuc
Giai tri bat dang thucGiai tri bat dang thuc
Giai tri bat dang thuc
 
Luận văn: Một số phương pháp giải xấp xỉ phương trình tích phân phi tuyến Vol...
Luận văn: Một số phương pháp giải xấp xỉ phương trình tích phân phi tuyến Vol...Luận văn: Một số phương pháp giải xấp xỉ phương trình tích phân phi tuyến Vol...
Luận văn: Một số phương pháp giải xấp xỉ phương trình tích phân phi tuyến Vol...
 
Toan a2
Toan a2Toan a2
Toan a2
 
Tuyen tap de dh 2002 2012 theo chu de
Tuyen tap de dh  2002 2012 theo chu deTuyen tap de dh  2002 2012 theo chu de
Tuyen tap de dh 2002 2012 theo chu de
 
[Mathvn.com] tuyen tap de dh 2002-2012 theo chu de
[Mathvn.com] tuyen tap de dh  2002-2012 theo chu de[Mathvn.com] tuyen tap de dh  2002-2012 theo chu de
[Mathvn.com] tuyen tap de dh 2002-2012 theo chu de
 
Bài tập xâu cơ bản-nâng cao
Bài tập xâu cơ bản-nâng caoBài tập xâu cơ bản-nâng cao
Bài tập xâu cơ bản-nâng cao
 
Đề tài: Lớp bất đẳng thức, bài toán cực trị với đa thức đối xứng, 9đ
Đề tài: Lớp bất đẳng thức, bài toán cực trị với đa thức đối xứng, 9đĐề tài: Lớp bất đẳng thức, bài toán cực trị với đa thức đối xứng, 9đ
Đề tài: Lớp bất đẳng thức, bài toán cực trị với đa thức đối xứng, 9đ
 
12.ma trận và dịnh thức
12.ma trận và dịnh thức12.ma trận và dịnh thức
12.ma trận và dịnh thức
 
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng LongBài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
 
đại số tuyến tính 2 ( không gian eculid )
đại số tuyến tính 2 ( không gian eculid )đại số tuyến tính 2 ( không gian eculid )
đại số tuyến tính 2 ( không gian eculid )
 
Do do tich-phan-thai_thuan_quang mearsure and intergral
Do do tich-phan-thai_thuan_quang mearsure and intergralDo do tich-phan-thai_thuan_quang mearsure and intergral
Do do tich-phan-thai_thuan_quang mearsure and intergral
 
Bài tập cơ bản-nâng cao mảng
Bài tập cơ bản-nâng cao mảngBài tập cơ bản-nâng cao mảng
Bài tập cơ bản-nâng cao mảng
 
Baitap toancc2
Baitap toancc2Baitap toancc2
Baitap toancc2
 
Bai tap a2 c2
Bai tap a2   c2Bai tap a2   c2
Bai tap a2 c2
 
He phuong trinh (chuong 2)
He phuong trinh (chuong 2)He phuong trinh (chuong 2)
He phuong trinh (chuong 2)
 
Luận văn: Một số lớp bài toán về phương trình hàm, HAY, 9đ
Luận văn: Một số lớp bài toán về phương trình hàm, HAY, 9đLuận văn: Một số lớp bài toán về phương trình hàm, HAY, 9đ
Luận văn: Một số lớp bài toán về phương trình hàm, HAY, 9đ
 

Similar a Help maple 20000x

175 thuc-hanh-matlab-[dh-khoa-hoc-tu-nhien-hcm]
175 thuc-hanh-matlab-[dh-khoa-hoc-tu-nhien-hcm]175 thuc-hanh-matlab-[dh-khoa-hoc-tu-nhien-hcm]
175 thuc-hanh-matlab-[dh-khoa-hoc-tu-nhien-hcm]Vinh Phan
 
Luận văn: Một số lớp bài toán về loại phương trình hàm, HAY - Gửi miễn phí qu...
Luận văn: Một số lớp bài toán về loại phương trình hàm, HAY - Gửi miễn phí qu...Luận văn: Một số lớp bài toán về loại phương trình hàm, HAY - Gửi miễn phí qu...
Luận văn: Một số lớp bài toán về loại phương trình hàm, HAY - Gửi miễn phí qu...Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Một số lớp bài toán tối ưu không lồi, Thuật toán và ứng dụng.pdf
Một số lớp bài toán tối ưu không lồi, Thuật toán và ứng dụng.pdfMột số lớp bài toán tối ưu không lồi, Thuật toán và ứng dụng.pdf
Một số lớp bài toán tối ưu không lồi, Thuật toán và ứng dụng.pdfMan_Ebook
 
Giai tich loi roi rac
Giai tich loi roi rac Giai tich loi roi rac
Giai tich loi roi rac KhacVu1
 
Bài giảng giải tích 3 - thầy nguyễn xuân diệu.pdf
Bài giảng giải tích 3 - thầy nguyễn xuân diệu.pdfBài giảng giải tích 3 - thầy nguyễn xuân diệu.pdf
Bài giảng giải tích 3 - thầy nguyễn xuân diệu.pdfTrường Việt Nam
 
Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731Vu Tuan
 
TongHopLyThuyet.pdf
TongHopLyThuyet.pdfTongHopLyThuyet.pdf
TongHopLyThuyet.pdfmaytinh_5p
 
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdfĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdfMan_Ebook
 

Similar a Help maple 20000x (20)

175 thuc-hanh-matlab-[dh-khoa-hoc-tu-nhien-hcm]
175 thuc-hanh-matlab-[dh-khoa-hoc-tu-nhien-hcm]175 thuc-hanh-matlab-[dh-khoa-hoc-tu-nhien-hcm]
175 thuc-hanh-matlab-[dh-khoa-hoc-tu-nhien-hcm]
 
Luận văn: Một số lớp bài toán về loại phương trình hàm, HAY - Gửi miễn phí qu...
Luận văn: Một số lớp bài toán về loại phương trình hàm, HAY - Gửi miễn phí qu...Luận văn: Một số lớp bài toán về loại phương trình hàm, HAY - Gửi miễn phí qu...
Luận văn: Một số lớp bài toán về loại phương trình hàm, HAY - Gửi miễn phí qu...
 
Một số lớp bài toán tối ưu không lồi, Thuật toán và ứng dụng.pdf
Một số lớp bài toán tối ưu không lồi, Thuật toán và ứng dụng.pdfMột số lớp bài toán tối ưu không lồi, Thuật toán và ứng dụng.pdf
Một số lớp bài toán tối ưu không lồi, Thuật toán và ứng dụng.pdf
 
Luận văn: Các dạng phương trình lượng giác, HOT - Gửi miễn phí qua zalo=> 090...
Luận văn: Các dạng phương trình lượng giác, HOT - Gửi miễn phí qua zalo=> 090...Luận văn: Các dạng phương trình lượng giác, HOT - Gửi miễn phí qua zalo=> 090...
Luận văn: Các dạng phương trình lượng giác, HOT - Gửi miễn phí qua zalo=> 090...
 
Empheq help
Empheq helpEmpheq help
Empheq help
 
Chuyên đề tich phan on thi dh
Chuyên đề tich phan on thi dhChuyên đề tich phan on thi dh
Chuyên đề tich phan on thi dh
 
Luận án: Giải bài toán biên phi tuyến cho phương trình vi phân
Luận án: Giải bài toán biên phi tuyến cho phương trình vi phânLuận án: Giải bài toán biên phi tuyến cho phương trình vi phân
Luận án: Giải bài toán biên phi tuyến cho phương trình vi phân
 
Dãy số và giới hạn
Dãy số và giới hạnDãy số và giới hạn
Dãy số và giới hạn
 
Giai tich loi roi rac
Giai tich loi roi rac Giai tich loi roi rac
Giai tich loi roi rac
 
Bai_Giang_GT3.pdf
Bai_Giang_GT3.pdfBai_Giang_GT3.pdf
Bai_Giang_GT3.pdf
 
Bài giảng giải tích 3 - thầy nguyễn xuân diệu.pdf
Bài giảng giải tích 3 - thầy nguyễn xuân diệu.pdfBài giảng giải tích 3 - thầy nguyễn xuân diệu.pdf
Bài giảng giải tích 3 - thầy nguyễn xuân diệu.pdf
 
Luận văn: Một số phương pháp giải phương trình hàm, HOT, 9đ
Luận văn: Một số phương pháp giải phương trình hàm, HOT, 9đLuận văn: Một số phương pháp giải phương trình hàm, HOT, 9đ
Luận văn: Một số phương pháp giải phương trình hàm, HOT, 9đ
 
Đề tài: Cực trị và ứng dụng trong đo lường rủi ro tài chính, HAY, 9đ
Đề tài: Cực trị và ứng dụng trong đo lường rủi ro tài chính, HAY, 9đĐề tài: Cực trị và ứng dụng trong đo lường rủi ro tài chính, HAY, 9đ
Đề tài: Cực trị và ứng dụng trong đo lường rủi ro tài chính, HAY, 9đ
 
matlab co ban
matlab co banmatlab co ban
matlab co ban
 
Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731
 
Luận văn: Phương pháp giải phương trình chứa ẩn dưới dấu căn
Luận văn: Phương pháp giải phương trình chứa ẩn dưới dấu cănLuận văn: Phương pháp giải phương trình chứa ẩn dưới dấu căn
Luận văn: Phương pháp giải phương trình chứa ẩn dưới dấu căn
 
TongHopLyThuyet.pdf
TongHopLyThuyet.pdfTongHopLyThuyet.pdf
TongHopLyThuyet.pdf
 
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdfĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
ĐIỀU KHIỂN HỆ ĐA TÁC TỬ.pdf
 
Luận văn: Một số phương pháp giải phương trình hàm, HOT, 9đ
Luận văn: Một số phương pháp giải phương trình hàm, HOT, 9đLuận văn: Một số phương pháp giải phương trình hàm, HOT, 9đ
Luận văn: Một số phương pháp giải phương trình hàm, HOT, 9đ
 
Đề tài: Tính tồn tại nghiệm của hệ phản ứng các chất Xúc tác-Ức chế
Đề tài: Tính tồn tại nghiệm của hệ phản ứng các chất Xúc tác-Ức chếĐề tài: Tính tồn tại nghiệm của hệ phản ứng các chất Xúc tác-Ức chế
Đề tài: Tính tồn tại nghiệm của hệ phản ứng các chất Xúc tác-Ức chế
 

Help maple 20000x

  • 1. BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC HUẾ HUỲNH THẾ PHÙNG HƯỚNG DẪN SỬ DỤNG MAPLE Huế - 2010
  • 2. 1 Mục lục 1. Giới thiệu phần mềm Maple. . . . . . . . . . . . . . . . . . . . . . . . 2 2. Các thao tác trên tập hợp. . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. Định nghĩa tập hợp. . . . . . . . . . . . . . . . . . . . . . . . 3 2.2. Các phép toán trên tập hợp. . . . . . . . . . . . . . . . . . . . 3 2.3. Kiểm tra các quan hệ trên tập hợp. . . . . . . . . . . . . . . . 4 3. Giải (hệ) phương trình, (hệ) bất phương trình. . . . . . . . . . . . . . 4 3.1. Giải phương trình, bất phương trình. . . . . . . . . . . . . . . 4 3.2. Giải hệ phương trình, hệ bất phương trình. . . . . . . . . . . . 5 4. Dãy số và chuỗi số. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1. Tính giới hạn của dãy số. . . . . . . . . . . . . . . . . . . . . 6 4.2. Tính tổng hữu hạn hoặc vô hạn. . . . . . . . . . . . . . . . . . 6 5. Vec-tơ và ma trận. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5.1. Khai báo vec-tơ. . . . . . . . . . . . . . . . . . . . . . . . . . 7 5.2. Khai báo ma trận. . . . . . . . . . . . . . . . . . . . . . . . . 7 5.3. So sánh hai vec-tơ hoặc hai ma trận. . . . . . . . . . . . . . . 8 5.4. Tính chuẩn của vec-tơ. . . . . . . . . . . . . . . . . . . . . . . 8 5.5. Khoảng cách giữa hai điểm. . . . . . . . . . . . . . . . . . . . 8 5.6. Tích hai vec-tơ. . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.7. Tổng, hiệu hai hoặc nhiều ma trận cùng cỡ. . . . . . . . . . . 9 5.8. Nhân hai hoặc nhiều ma trận có cỡ phù hợp. . . . . . . . . . . 9 5.9. Tích trong của ma trận và vec-tơ. . . . . . . . . . . . . . . . . 9 5.10. Tính định thức ma trận. . . . . . . . . . . . . . . . . . . . . . 9 6. Hàm một biến số, giới hạn và đồ thị. . . . . . . . . . . . . . . . . . . 9 6.1. Định nghĩa hàm một biến số. . . . . . . . . . . . . . . . . . . 9 6.2. Vẽ đồ thị của hàm số trên hệ toạ độ Oxy. . . . . . . . . . . . 10 6.3. Tính giới hạn của hàm một biến số. . . . . . . . . . . . . . . . 13 7. Hàm nhiều biến số, giới hạn và đồ thị. . . . . . . . . . . . . . . . . . 13 7.1. Định nghĩa hàm nhiều biến số. . . . . . . . . . . . . . . . . . . 13
  • 3. 7.2. Vẽ đồ thị của hàm nhiều biến. . . . . . . . . . . . . . . . . . . 14 7.3. Vẽ các đường mức của một hàm hai biến. . . . . . . . . . . . . 15 7.4. Tính giới hạn của hàm nhiều biến. . . . . . . . . . . . . . . . 15 8. Phép tính vi phân. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 8.1. Tính đạo hàm của một hàm số. . . . . . . . . . . . . . . . . . 16 8.2. Gradient, Hessian của hàm nhiều biến. . . . . . . . . . . . . . 17 8.3. Khai triển Taylor. . . . . . . . . . . . . . . . . . . . . . . . . . 17 8.4. Tính giới hạn các dạng vô định. . . . . . . . . . . . . . . . . . 18 9. Tổng quát về vẽ đường và mặt. . . . . . . . . . . . . . . . . . . . . . 18 9.1. Vẽ đường cong trong mặt phẳng. . . . . . . . . . . . . . . . . 19 9.2. Vẽ mặt cong trong không gian. . . . . . . . . . . . . . . . . . 20 9.3. Vận động đồ thị. . . . . . . . . . . . . . . . . . . . . . . . . . 21 10. Phép tính tích phân. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 10.1. Tích phân hàm một biến. . . . . . . . . . . . . . . . . . . . . 22 10.2. Ứng dụng tích phân xác định. . . . . . . . . . . . . . . . . . . 24 10.3. Tích phân bội trên hộp. . . . . . . . . . . . . . . . . . . . . . 25 10.4. Tích phân lặp. . . . . . . . . . . . . . . . . . . . . . . . . . . 26 11. Phương trình vi phân và Phương trình đạo hàm riêng. . . . . . . . . 27 11.1. Giải phương trình vi phân thường. . . . . . . . . . . . . . . . 27 11.2. Giải hệ phương trình vi phân thường. . . . . . . . . . . . . . . 28 11.3. Vẽ đồ thị nghiệm của hệ phương trình vi phân. . . . . . . . . 29 11.4. Giải phương trình đạo hàm riêng. . . . . . . . . . . . . . . . . 30 Tài liệu tham khảo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 1. Giới thiệu phần mềm Maple. Maple là một trong các phần mềm tính toán phong phú, hỗ trợ cho 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ố tuyến tính, đại số hình thức, phương trình vi phân, phương trình toán lý,... Maple tạo ra một môi trường làm việc hoàn toàn thoải mái, giúp cho người dùng có thể thực hiện các tính toán trực tiếp đơn giản hoặc viết các đoạn chương trình tính toán phức tạp. Vì đây không phải là một cuốn sách chuyên khảo về Maple nên chúng tôi không có tham vọng giới thiệu quá sâu mà chỉ muốn cho sinh viên làm quen với phần mềm, đủ để giải quyết tốt những bài toán có liên quan trong phạm vi giáo trình. Sử dụng phần mềm này, sinh viên không những giải được những bài toán phức tạp mà nếu tính toán bằng tay
  • 4. 3 phải mất hằng tháng trời (hoặc không tính nổi) mà còn giúp sinh viên nhìn thấy được bản chất của nhiều vấn đề một cách nhanh chóng và sinh động. Thật ra, đây không phải là phần mềm tính toán duy nhất. Tuy nhiên, nếu biết sử dụng Maple một cách thành thạo, sinh viên dễ dàng tiếp cận với các chương trình tính toán phổ biến khác hiện nay như Mathematica, Matlab,... Ta luôn bắt đầu tính toán với việc đưa vào một cụm xử lý (bằng cách nhấn chuột vào nút có biểu tượng [> hoặc vào chức năng Insert/Execution Group/After Cusor có sẵn trên thanh lệnh của giao diện) Một dấu nhắc lệnh [> sẽ hiện ra, chờ đợi ta đưa lệnh vào thực hiện. Một số điều cần chú ý là: Câu lệnh được viết ra phải tuân thủ nghiêm ngặt là chữ hoa hay chữ thường, tất cả câu lệnh đều viết bằng tiếng Anh (nhưng không khó để học thuộc, vì số lượng không nhiều). Kết thúc mỗi câu lệnh đều có dấu ";" hoặc ":" và sau đó nhấn phím Enter. Nếu sử dụng dấu ";" thì kết quả tính toán sẽ hiển thị ngay dòng dưới, còn nếu sử dụng dấu ":" thì kết quả sẽ không hiện ra. 2. Các thao tác trên tập hợp. 2.1. Định nghĩa tập hợp. Cú pháp: [> (Tên tập hợp):= {(danh sách các phần tử của tập hợp)}; Ví dụ: [> A:={1, 2, 3, 4, 15}: [> B:={a, b, x, y, z}; B := {a, b, x, y, z} 2.2. Các phép toán trên tập hợp. Ta đã biết 3 phép toán trên tập hợp là ∪ (ký hiệu union), ∩ (ký hiệu intersect) và (ký hiệu minus). Cú pháp: [> (Tập hợp 1) (phép toán) (Tập hợp 2); Ví dụ: [> {2, 6, 1, 3 } union {2, 3, 7, 18}; {1, 2, 3, 6, 7, 18} [> M:={1, 3, 5}: [> N:={5, 1, 2, 6}:
  • 5. 4 [> P:=M minus N; P := {3} 2.3. Kiểm tra các quan hệ trên tập hợp. Ta có 3 phép kiểm tra là ∈ (kí hiệu member), ⊂ (kí hiệu verify(subset)) và ⊃ (kí hiệu verify(superset)). Kết quả ta được true hoặc false. Cú pháp: [> member(phần tử, tập hợp); [> verify(Tập hợp 1, Tập hợp 2, ’subset’/’superset’); Ví dụ: [> member(3, {1, 3, 5}); true [> verify({1, 3, 5}, {2, 3, 5}, ’subset’); false [> verify({1, 3, 5, 6}, {3, 5}, ’superset’); true 3. Giải (hệ) phương trình, (hệ) bất phương trình. 3.1. Giải phương trình, bất phương trình. Cú pháp: [> solve(phương trình/bất phương trình, {biến}); Ví dụ: [> solve(x*x - 1 = 0, {x}); {x = 1}, {x = −1} [> ptb3:=u∧3 - 1 = 0: [> solve(ptb3, {u}); {u = 1}, {u = − 1 2 + 1 2 I √ 3}, {u = − 1 2 − 1 2 I √ 3}
  • 6. 5 [> solve(x*x - 3*x + 2 < 0, {x}); {1 < x, x < 2} [> bpt:=x*x - 3*x + 2 >= 0; bpt := 0 ≤ x2 − 3x + 2 [> solve(bpt, {x}); {x ≤ 1}, {2 ≤ x} 3.2. Giải hệ phương trình, hệ bất phương trình. Cú pháp: [> solve({danh sách phương trình/bất phương trình}, {ds biến}); Ví dụ: [> p1:=sqrt(x) + sqrt(2-y)=sqrt(2); p1 := √ x + √ 2 − y = √ 2 [> p2:=sqrt(2-x) + sqrt(y)=sqrt(2); p2 := √ 2 − x + √ y = √ 2 [> solve({p1, p2}, {x, y}); {x = 0, y = 0}, {x = 2, y = 2} [> q1:=sqrt(4*u-7) < u; q1 := √ 4u − 7 < u [> q2:=sqrt(u+5) + sqrt(5-u)>4; q2 := 4 < √ u + 5 + √ 5 − u [> solve({q1, q2}, {u}); { 7 4 ≤ u, u < 4}
  • 7. 6 4. Dãy số và chuỗi số. 4.1. Tính giới hạn của dãy số. Cú pháp: [> limit(x[n], n=infinity); Ví dụ: [> limit ((n+1)/n, n=infinity); 1 Chú ý rằng nếu viết Limit thì chỉ hiện ra công thức hình thức của giới hạn đó. Nếu muốn tính giới hạn này bằng bao nhiêu ta dùng lệnh value(%). Chẳng hạn: [> Limit ((n*n+1)/(3-2*n*n), n=infinity); lim n→∞ n2 + 1 3 − 2n2 [> value(%); −2 Ta cũng có thể định nghĩa dãy trước khi gọi thực hiện giới hạn. Ví dụ: [> y[n]:= (3*n*n-5)/(4*n+5*n*n); y[n] := 3n2 − 5 4n + 5n2 [> limit(y[n], n=infinity); 3 5 4.2. Tính tổng hữu hạn hoặc vô hạn. Cú pháp: [> sum(x[n], n=n1..n2); (nếu dùng Sum thì cho ra công thức hình thức) trong đó, n1 là chỉ số đầu và n2 là chỉ số cuối của tổng cần tính. Ví dụ: [> sum(1/(n*(n+1)), n=2..10); 9 22 [> Sum(1/(n*n), n=1..infinity); ∞∑ n=1 1 n2
  • 8. 7 [> value(%); 1 6 π2 5. Vec-tơ và ma trận. Để thực hiện các thao tác trên vec-tơ và ma trận trước tiên cần khởi động gói công cụ của đại số tuyến tính linalg bằng lệnh [> with(linalg); 5.1. Khai báo vec-tơ. Cú pháp: [> (tên vec-tơ):= [(liệt kê các thành phần của vec-tơ)]; Ví dụ: [> u:=[1, 2, x∧2]; u := [1, 2, x2 ] Thật ra, để định nghĩa vec-tơ u như trên ta còn có các cách khai báo khác. Chẳng hạn: u:=vector[1, 2, x∧2]; u:=array(1..3, [1, 2, x∧2]); u:=matrix(1,3, [1, 2, x∧2]); Tuy nhiên, cách dùng chúng vẫn khác nhau. Mặt khác nếu viết u:=matrix(3,1, [1, 2, x∧2]); ta được u :=   1 2 x2   5.2. Khai báo ma trận. Cú pháp: [> (tên ma trận):= matrix(m, n, [ liệt kê các thành phần của ma trận]); Ví dụ: [> A:=matrix(3, 2, [1, 2, 1, a, x+1, 4]); A :=   1 2 1 a x + 1 4  
  • 9. 8 5.3. So sánh hai vec-tơ hoặc hai ma trận. Cú pháp: [> equal(biến 1, biến 2); Kết quả cho ra true hoặc false. 5.4. Tính chuẩn của vec-tơ. Cú pháp: [> norm( tên vec-tơ, loại chuẩn); (có ba loại chuẩn là 1, 2, infinity) Ví dụ: [> u:=[1, 2, 3]: [> norm(u, infinity); 3 5.5. Khoảng cách giữa hai điểm. Điểm được xem như vec-tơ, nên khoảng cách giữa hai điểm cũng là khoảng cách giữa hai vec-tơ. Ở đây, khoảng cách được tính theo chuẩn Euclide. Trước tiên cần khởi động gói student: [> with(student); Cú pháp: [> distance(vec-tơ 1, vec-tơ 2); 5.6. Tích hai vec-tơ. Tích vô hướng. Cú pháp: [> dotprod(vec-tơ 1, vec-tơ 2);/ [> innerprod(vec-tơ 1, vec-tơ 2); Tích hữu hướng. Cú pháp: [> crossprod(vec-tơ 1, vec-tơ 2); Ví dụ: [> u:=[1, 2, 3]: [> v:=[2, 0, 1]: [> dotprod(u,v); 5 [> crossprod(u,v); [2, 5, −4]
  • 10. 9 5.7. Tổng, hiệu hai hoặc nhiều ma trận cùng cỡ. Cú pháp: [> evalm(A ± B ± C...); 5.8. Nhân hai hoặc nhiều ma trận có cỡ phù hợp. Cú pháp: [> multiply(A, B, C..); 5.9. Tích trong của ma trận và vec-tơ. Cho u ∈ Rm , A ∈ Rm×n , v ∈ Rn . Cú pháp: [> innerprod(u, A, v); (sẽ cho ra số thực bằng uT Av.) 5.10. Tính định thức ma trận. Cú pháp: [> det(A); 6. Hàm một biến số, giới hạn và đồ thị. 6.1. Định nghĩa hàm một biến số. Cú pháp: [> f:=x− > (biểu thức hàm theo x); Sau đó, muốn tính giá trị hàm tại một điểm x0 ta chỉ cần viết f(x0). Ta có thể dùng một biến khác thay cho x và tên hàm khác thay cho f. Biểu thức hàm ở đây có thể một biểu thức đơn giản nhưng cũng có thể là một biểu thức phức tạp như giới hạn, tổng... Ví dụ: [> f:= x− > x∧2 - x +1; f := x → x2 − x + 1 [> f(2); 3 [> g:= u− > limit(n*u∧2/(u*(2*n+5)+3), n= infinity); g := u → lim n→∞ nu2 u(2n + 5) + 3 [> g(3); 3 2
  • 11. 10 6.2. Vẽ đồ thị của hàm số trên hệ toạ độ Oxy. Muốn vẽ đồ thị hàm số trước tiên ta phải khởi động gói chuyên dụng plots bằng lệnh [> with(plots); sau đó, mới thực hiện các lệnh vẽ đồ thị. Vẽ đồ thị hàm y = f(x). Cú pháp: [> plot(f(x), x=a..b, y=c..d); Lúc đó, đồ thị hàm y = f(x) được vẽ trong phạm vi hình chữ nhật [a, b]×[c, d]. Nếu không khai báo các phạm vi thì máy sẽ tự vẽ theo một toạ độ thích hợp. Ví dụ: [> f:= x − > x*sin(1/x); f := x → x sin ( 1 x ) [> plot(f(x), x=-1..1, y=-0.5..1); Kết quả xem ở Hình 1. –0.4 –0.2 0.2 0.4 0.6 0.8 1 y –1 –0.8 –0.6 –0.4 –0.2 0.2 0.4 0.6 0.8 1x Hình 1: Đồ thị hàm số x sin 1 x Vẽ đồ thị đường cong ẩn dạng F(x, y) = 0. Cú pháp: [> implicitplot(F(x,y)=0,x=a..b, y=c..d); với [a, b] × [c, d] là phạm vi cần vẽ. Ví dụ: Để vẽ Êlip x2 4 + y2 9 = 1 trong hình chữ nhật [−2, 2] × [−3, 3], ta viết [> implicitplot(x∧2/4 + y∧2/9 -1 =0, x=-2..2, y=-3..3);
  • 12. 11 –3 –2 –1 1 2 3 y –2 –1 1 2 x Hình 2: Đồ thị Ellipse x2 4 + y2 9 = 1 Vẽ nhiều đồ thị trên cùng một hệ truc toạ độ. Cú pháp: [> plot([f1(x), ..., fm(x)], x=a..b, y=c..d, color=[c1, ..., cm]}); Lúc đó, đồ thị các hàm fi(x), 1 ≤ i ≤ m, được vẽ tương ứng với các màu ci, 1 ≤ i ≤ m trên cùng một hệ trục toạ độ. Việc vẽ nhiều đồ thị trên cùng một hệ trục toạ độ cho chúng ta một công cụ rất mạnh để đánh giá việc xấp xỉ một hàm bởi các hàm đa thức. Chẳng hạn để biết hàm ex được xấp xỉ tốt như thế nào bởi hàm g(x) = ( 1 + x 9 )9 ta dùng lệnh [> g:=x − > (1+x/9)∧9; g := x → ( 1 + x 9 )9 [> plot([exp(x), g(x)], x=-2..2, color=[red, blue]); (Hình 3) 1 2 3 4 5 6 7 –4 –3 –2 –1 1 2 x Hình 3: Xấp xỉ hàm ex bởi hàm (1 + x 9 )9
  • 13. 12 Vẽ đồ thị hàm từng khúc. Đó là hàm được xác định trên từng khoảng với các công thức khác nhau. Để khai báo một hàm như thế ta dùng cú pháp sau [> f:= piecewise(đk1, f1(x), đk2, f2(x), ..., đkk, fk(x), fk+1(x)); Điều đó có nghĩa là f(x) :=    f1(x), nếu điều kiện đk1 đúng, f2(x), nếu điều kiện đk2 đúng và đk1 sai, ... fk(x), nếu điều kiện đkk đúng và tất cả các điều kiện trước sai, fk+1(x), nếu không có điều kiện nào đúng. Ví dụ: [> f(x):= piecewise(x<-1, 1, x<1, -x∧2, 2*x+1); f(x) :=    1 x < −1 −x2 x < 1 2x + 1 otherwise [> plot(f(x), x=-2..2, color=blue); Xem Hình 4. –1 0 1 2 3 4 5 –2 –1 1 2 x Hình 4: Đồ thị hàm từng khúc Trong ví dụ trên ta thấy, mặc dù hàm gián đoạn tại −1 và 1, đồ thị vẫn được vẽ liên tục. Đó là vì Maple tự động nối các điểm gián đoạn lại thành đường liền nét. Muốn thấy rõ các điểm gián đoạn ta đưa vào tham số discont=true. Cụ thể, với lệnh như sau, ta có kết quả được cho trong Hình 5. [> plot(f(x), x=-2..2, color=blue, discont=true);
  • 14. 13 –1 1 2 3 4 5 –2 –1 1 2 x Hình 5: Đồ thị hàm từng khúc gián đoạn thực sự 6.3. Tính giới hạn của hàm một biến số. Cú pháp: [> limit(f(x), x=a); (dùng Limit thì chỉ cho công thức hình thức) Ví dụ: [> Limit(sin(x)/x, x=0); lim x→0 sin(x) x [> value(%); 1 [> limit((1+1/x)∧x, x=infinity); e 7. Hàm nhiều biến số, giới hạn và đồ thị. 7.1. Định nghĩa hàm nhiều biến số. Để đơn giản ta chỉ xét hàm hai biến. Cú pháp: [> f:=(x, y)− > (biểu thức hàm theo x, y); Ví dụ: [> f:= (x, y)− > 3*x∧2*sin(x*y); f := (x, y) → 3x2 sin(xy)
  • 15. 14 7.2. Vẽ đồ thị của hàm nhiều biến. Muốn vẽ đồ thị hàm nhiều biến ta phải khởi động hai gói lệnh plots và plottools: [> with(plots); [> with(plottools); Vẽ đồ thị hàm z = f(x, y). Cú pháp: [> plot3d(f(x,y), x=a..b, y=c..d); Lúc đó, đồ thị là một mặt trong không gian Oxyz với miền xác định là hình chữ nhật [a, b] × [c, d]. Ví dụ: [> f:= (x, y) − > x∧2 + y∧2: [> with(plots): [> with(plottools): [> plot3d(f(x,y), x=-3..3, y=-2..2); Hình 6: Đồ thị hàm z = x2 + y2 Nếu vẽ nhiều mặt trên cùng một không gian toạ độ thì ta viết Cú pháp: [> plot3d({f(x,y), g(x,y),...}, x=a..b, y=c..d); Vẽ mặt được cho dưới dạng tham số. Giả sử mặt S được cho bởi hệ    x = x(u, v), y = y(u, v), z = z(u, v), (u, v) ∈ [a, b] × [c, d].
  • 16. 15 Để vẽ mặt S ta dùng lệnh (chú ý đừng nhầm lẫn với lệnh vẽ nhiều mặt cùng lúc) Cú pháp: [> plot3d([x(u,v), y(u,v), z(u,v)], u=a..b, v=c..d); Vẽ mặt được cho bởi phương trình ẩn dạng F(x, y, z) = 0. Cú pháp: [> implicitplot3d(F(x,y,z)=0,x=a..b, y=c..d, z=e..f); Ví dụ: Để vẽ mặt x2 4 + y2 9 − z2 = 1 trong hình hộp [−5, 5] × [−6, 6] × [−1..1], ta viết [> implicitplot3d(x∧2/4+y∧2/9- z∧2-1 =0, x=-5..5, y=-6..6, z=-1..1); Hình 7: Đồ thị hàm ẩn x2 /4 + y2 /9 − z2 − 1 = 0 7.3. Vẽ các đường mức của một hàm hai biến. Cú pháp: [> contourplot(f(x,y), x=a..b, y=c..d); Lúc đó, máy sẽ vẽ trên mặt phẳng Oxy các đường cong dạng f(x, y) = α, với các α khác nhau. 7.4. Tính giới hạn của hàm nhiều biến. Chẳng hạn, ta xét hàm hai biến. Cú pháp: [> limit(f(x, y), {x=a, y=b}); (Limit sẽ cho công thức hình thức) Chú ý rằng nếu viết limit(limit(f(x,y),x=a),y=b) thì ý nghĩa sẽ khác.
  • 17. 16 8. Phép tính vi phân. 8.1. Tính đạo hàm của một hàm số. Việc tính đạo hàm của hàm một biến hoặc đạo hàm riêng của hàm nhiều biến được thực hiện tương tự nhau. Tính đạo hàm cấp một (theo biến x). Cú pháp: [> diff(hàm số, x); (dùng Diff thì cho công thức hình thức) Ví dụ: [> diff(sqrt(1+x∧2), x); x √ 1 + x2 Nhiều lúc máy cho ta một biểu thức đạo hàm khá cồng kềnh. Lúc đó, muốn đơn giản biểu thức ta dùng lệnh simplify có cú pháp [> simplify(biểu thức); Ví dụ: [> f:=x− > cos(x)∧2/sin(2*x); f := x → cos(x)2 sin(2x) [> Diff(f(x), x); ∂ ∂x cos(x)2 sin(2x) [> Df:=value(%); Df := −2 cos(x) sin(x) sin(2x) − 2 cos(x)2 cos(2x) sin(2x)2 [> simplify(%); 2 cos(x)2 −1 + cos(2x)2 Việc tính đạo hàm riêng của hàm nhiều biến cũng sử dụng câu lệnh trên. Ví dụ: [> f:=(x,y)− >x*sin(x*y): [> diff(f(x,y), y); x2 cos(xy)
  • 18. 17 Tính đạo hàm cấp cao. Cú pháp: [> diff(f(x,y), x$k, y$m); Ví dụ: (với hàm f như trên) [> diff(f(x, y ),x$2, y$3); 8x3 sin(xy)y − 12x2 cos(xy) + x4 cos(xy)y2 8.2. Gradient, Hessian của hàm nhiều biến. Chẳng hạn, ta xét hàm 3 biến: Tính gradient. Cú pháp: [> grad(f(x,y,z), [x,y,z]); Tính Hessian. Cú pháp: [> hessian(f(x,y,z), [x,y,z]); Ví dụ: (với f ở trên) [> grad(f(x,y), [x,y]); [sin(xy) + x cos(xy)y, x2 cos(xy)] [> hessian(f(x,y), [x,y]); [ 2 cos(xy)y − x sin(xy)y2 2 cos(xy)x − x2 sin(xy)y 2 cos(xy)x − x2 sin(xy)y −x3 sin(xy) ] 8.3. Khai triển Taylor. Khai triển Taylor hàm f(x) tại x = a đến cấp n. Cú pháp: [> taylor(f(x), x=a, n); (nếu a = 0 thì viết x thay cho x=0) Ví dụ: [> taylor(exp(x), x, 7); 1 + x + 1 2 x2 + 1 6 x3 + 1 24 x4 + 1 120 x5 + 1 720 x6 + O(x7 ) [> taylor(x*cos(x), x=Pi, 5); −π − (x − π) + 1 2 π(x − π)2 + 1 2 (x − π)3 − 1 24 π(x − π)4 + O((x − π)5 )
  • 19. 18 Khai triển Taylor hàm f(x, y) tại x = a, y = b đến cấp n. Cú pháp: [> mtaylor(f(x,y), [x=a, y=b], n); Ví dụ: [> mtaylor(sin(x∧2 + y∧2), [x, y ], 8); x2 + y2 − 1 6 x6 − 1 2 y2 x4 − 1 2 x2 y4 − 1 6 y6 8.4. Tính giới hạn các dạng vô định. Để tính giới hạn các dạng vô định chúng ta vẫn dùng lệnh tính giới hạn như các hàm thông thường, bởi vì máy đã biết dùng Công thức L’hospital trong tính toán. Tuy vậy, cũng có lúc chúng ta cũng phải hỗ trợ bằng những bước thích hợp. Ví dụ: [> limit((six(x)-x)/(x*(1-cos(x))), x=0); − 1 3 [> limit((x*exp(2*x)-5*tan(x))/(tan(x)∧2+x∧3), x=0); undefined Như vậy, máy đã không tính nổi giới hạn này. Chúng ta có thể giúp máy bằng cách cho lần lượt tính đạo hàm cấp một, rồi cấp hai, cấp ba... đồng thời cả tử và mẫu và tính giới hạn của thương cho đến khi máy tính được. Trong ví dụ trên, khi tính đến đạo hàm cấp hai thì ta có kết quả [> f:=value(diff(x*exp(2*x)-5*tan(x),x$2); f := 4e(2x) + 4xe(2x) − 10 tan(x)(1 + tan(x)2 ) [> g:=value(diff(tan(x)∧2+x∧3,x$2); g := 2(1 + tan(x)2 )2 + 4 tan(x)2 (1 + tan(x)2 ) + 6x [> limit(f/g, x=0); 2 9. Tổng quát về vẽ đường và mặt. Trong mục này ta sẽ nghiên cứu cách vẽ các đường cong và mặt cong trong mặt phẳng và trong không gian, bao gồm cả các trường hợp đã xét trong các mục 6 và 7. Để thực hiện các lệnh trong mục này, nói chung, ta cần khởi động các gói công cụ plots, plottools.
  • 20. 19 9.1. Vẽ đường cong trong mặt phẳng. Dùng toạ độ Đê-các. Trong toạ độ Đê-các, một đường cong phẳng (C) thường được biểu diễn như là đồ thị của hàm một biến f nào đó: (C) : y = f(x), x ∈ [a, b], hoặc được biểu diễn dưới dạng tham số: (C) : { x = x(t), y = y(t), t ∈ [a, b], hoặc dưới dạng một phương trình ẩn (C) : F(x, y) = 0. Để vẽ đường cong trong trường hợp thứ nhất ta dùng lệnh [> plot(f(x), x=a..b); trong trường hợp thứ hai ta dùng lệnh [> plot([x(t), y(t), t=a..b]); và trong trường hợp thứ ba: [> implicitplot(F(x,y)=0, x=a..b, y=c..d); Dùng toạ độ cực. Trong toạ độ cực, một đường cong phẳng thường có hai cách biểu diễn (C) : r = f(φ); φ ∈ [a, b] hoặc (C) : { r = r(t), φ = φ(t), t ∈ [a, b]. Để vẽ đường cong trong trường hợp thứ nhất ta dùng lệnh [> polarplot(f(phi), phi=a..b); và trong trường hợp thứ hai ta dùng lệnh [> polarplot([r(t), phi(t), t=a..b]);
  • 21. 20 9.2. Vẽ mặt cong trong không gian. Dùng toạ độ Đê-các. Trong toạ độ Đê-các, một mặt cong phẳng (S) cũng thường được biểu diễn như là đồ thị của hàm hai biến f nào đó: (S) : z = f(x, y), (x, y) ∈ [a, b] × [c, d], hoặc được biểu diễn dưới dạng tham số: (S) :    x = x(s, t), y = y(s, t), z = z(s, t), (s, t) ∈ [a, b] × [c, d], hoặc bởi một phương trình ẩn: (S) : F(x, y, z) = 0. Để vẽ mặt cong trong trường hợp thứ nhất ta dùng lệnh [> plot3d(f(x,y), x=a..b, y=c..d); trong trường hợp thứ hai ta dùng lệnh [> plot3d([x(s,t), y(s,t), z(s,t)], s=a..b, t=c..d); và trong trường hợp thứ ba ta dùng lệnh [> implicitplot3d(F(x,y,z)=0, x=a..b, y=c..d, z=e..f); Dùng toạ độ trụ. Trong toạ độ trụ, một mặt cong phẳng (S) thường được biểu diễn bởi một trong hai cách: (S) : r = f(φ, z), (φ, z) ∈ [a, b] × [c, d], hoặc (S) :    r = r(s, t), φ = φ(s, t), z = z(s, t), (s, t) ∈ [a, b] × [c, d]. Để vẽ mặt cong trong trường hợp thứ nhất ta dùng lệnh [> cylinderplot(f(phi, z), phi=a..b, z=c..d); và trong trường hợp thứ hai ta dùng lệnh [> cylinderplot([r(s,t), phi(s,t), z(s,t)], s=a..b, t=c..d);
  • 22. 21 Dùng toạ độ cầu. Trong toạ độ cầu, một mặt cong phẳng (S) thường được biểu diễn bởi một trong hai cách: (S) : ρ = f(φ, θ), (φ, θ) ∈ [a, b] × [c, d], hoặc (S) :    ρ = ρ(s, t), φ = φ(s, t), θ = θ(s, t), (s, t) ∈ [a, b] × [c, d]. Để vẽ mặt cong trong trường hợp thứ nhất ta dùng lệnh [> sphereplot(f(phi, theta), phi=a..b, theta=c..d); và trong trường hợp thứ hai ta dùng lệnh [> sphereplot([rho(s,t), phi(s,t), theta(s,t)], s=a..b, t=c..d); Hình 8: Mặt cầu đơn vị Ví dụ: Để vẽ mặt cầu đơn vị ta có thể dùng một trong các lệnh sau (Hình 8). [> plot3d([sin(s)*cos(t),sin(s)*sin(t),cos(s)],s=0..Pi,t=0..2*Pi); [> cylinderplot(sqrt(1-z∧2), phi=0..2*Pi, z=-1..1); [> cylinderplot([sin(s), phi, cos(s)], phi=0..2*Pi, s=0..Pi); [> sphereplot(1, phi=0..2*Pi, theta=0..Pi); 9.3. Vận động đồ thị. Vận động đồ thị là sự biến thiên của đồ thị theo tham số. Điều đó có nghĩa là ta cho một họ đường cong (Ct) hay mặt cong (St) phụ thuộc vào một tham số t. Sau đó vẽ tất cả các đường/mặt này ứng với các giá trị t khác nhau. Họ đường
  • 23. 22 cong, mặt cong có thể biểu diễn dưới các dạng khác nhau và theo các hệ toạ độ khác nhau. Ở đây, chúng ta chỉ xét họ được viết dưới dạng đơn giản: (Ct) : y = f(x, t), x ∈ [a, b], t ∈ [t1, t2] (St) : z = f(x, y, t), (x, y) ∈ [a, b] × [c, d], t ∈ [t1, t2]. Để vận động họ (Ct) ta dùng lệnh [> animate(f(x, t), x=a..b, t=t1..t2); và vận động họ (St) bằng lệnh [> animate3d(f(x, y, t), x=a..b, y=c..d, t=t1..t2); Chú ý là khi thực hiện lệnh này ta thấy đồ thị chưa vận động bởi vì máy chỉ vẽ một đường/mặt ứng với một tham số cụ thể nào đó. Nếu đưa con trỏ chuột vào vùng đồ thị và kích trái chuột thì một bảng lệnh điêù hành sẽ hiện ra ngay dưới thanh công cụ, gồm các ký hiệu play ( ), continuous ( ), stop ( ) quen thuộc. Nếu bạn muốn đồ thị vận động liên tục theo các tham số thì nhấn continuous/play, sau đó muốn dừng thì nhấn stop. 10. Phép tính tích phân. 10.1. Tích phân hàm một biến. Xấp xỉ diện tích hình thang cong. Trước tiên chúng ta trở lại khảo sát việc xấp xỉ diện tích hình thang cong bởi tổng diện tích của các hình chữ nhật. Ta đã biết, nếu f khả tích (và đặc biệt là liên tục) thì các phân hoạch đều vẫn cho những xấp xỉ tốt. Maple cho phép chúng ta dùng một trong ba lệnh rightbox/leftbox/middlebox để minh hoạ việc xấp xỉ đều một hàm f trên đoạn [a, b]. Cụ thể, Cú pháp: [> rightbox(f(x), x=a..b, n, ’shading’=m1, color=m2); (tương tự, leftbox, middlebox) Lệnh này minh hoạ việc xấp hình thang cong giới hạn bởi các đường y = f(x), y = 0, x = a và x = b bằng một xấp xỉ đều gồm n hình chữ nhật có đáy bằng nhau (= (b − a)/n) và chiều cao của mỗi hình bằng giá trị hàm f tại mút phải của mỗi đoạn (đối với leftbox là mút trái và middlebox là điểm giữa). m1 là màu tô các hình chữ nhật còn m2 là màu vẽ đường cong (điều này chỉ được thấy trên màn hình, trong giáo trình này chỉ thấy màu đen). Mặc định n = 4. Chú ý rằng, trước khi thực hiện lệnh này cần khởi động gói lệnh student. Ví dụ: [> with(student);
  • 24. 23 –1.5 –1 –0.5 0.5 1 –1 –0.8 –0.6 –0.4 –0.2 0.2 0.4 0.6 0.8 1x Hình 9: Xấp xỉ tích phân xác định bởi 4 hình chữ nhật [> leftbox(exp(x)-2*x∧2, x=-1..1, ’shading’=cyan, color=green); [> middlebox(exp(x)-2*x∧2, x=-1..1, 10, ’shading’=red, color=blue); –1.5 –1 –0.5 0 0.5 1 –1 –0.8 –0.6 –0.4 –0.2 0.2 0.4 0.6 0.8 1 x Hình 10: Xấp xỉ tích phân xác định bởi 10 hình chữ nhật b) Tính tích phân xác định ∫ b a f(x)dx. Cú pháp: [> int(f(x), x=a..b); (nếu dùng Int thì cho công thức hình thức) Ví dụ: [> int(x∧2, x=-1..2); 3 [> int(sin(x)/x, x=0..2); Si(2) Điều này có nghĩa là máy đã định nghĩa một hàm mới Si(t) = ∫ t 0 sin(x) x dx. Muốn tính xem Si(2) bằng bao nhiêu ta viết tiếp [> evalf(%,20); 1.6054129768026948486
  • 25. 24 Lệnh này có nghĩa là hãy tính giá trị biểu thức vừa tính với độ chính xác 20 chữ số lẻ (nếu không chỉ định rõ độ chính xác, máy sẽ tính với 10 chữ số lẻ). Lưu ý là câu lệnh tính tích phân xác định ở trên cũng được dùng để tính các tích phân suy rộng. Ví dụ: [> int(1/sqrt(x*(1-x)), x=0..1); π [> int(1/x∧2,x=1..infinity); 1 [> int(1/x∧2,x=0..1); ∞ Tìm nguyên hàm của hàm y = f(x). Ta đã biết một hàm, nếu khả tích, sẽ có vô số nguyên hàm, sai khác nhau bởi các hằng số. Vì vậy chỉ cần biết một nguyên hàm nào đó của nó là đủ. Maple cho phép tìm một nguyên hàm của hàm f(x) thông qua lệnh int. Cú pháp: [> int(f(x), x); (Nếu dùng Int sẽ hiển thị công thức hình thức) Ví dụ: [> int(x*cos(x), x); cos(x) + x sin(x) 10.2. Ứng dụng tích phân xác định. Tính diện tích hình phẳng. Để tính diện tích hình phẳng giới hạn bởi các đường y = f(x), y = 0, x = a và x = b ta tính tích phân xác định trên đoạn [a, b] của hàm |f(x)| (ký hiệu là abs(f(x)). Còn muốn tính diện tích hình phẳng giới hạn bởi các đường y = f(x), y = g(x), x = a và x = b ta dùng lệnh [> int(abs(f(x)-g(x)), x=a..b); Tính độ dài đường cong phẳng. Cho đường cong C trong mặt phẳng có phương trình tham số: { x = u(t), y = v(t), t ∈ [a, b].
  • 26. 25 Ở đây, u và v là các hàm khả vi liên tục trên đoạn [a, b]. Để tính độ dài của C, trước tiên ta cần tính đạo hàm của u, v, sau đó mới áp dụng công thức tính độ dài đường cong. Cụ thể, ta thực hiện ba lệnh [> f(t):=diff(u(t), t); [> g(t):=diff(v(t), t); [> int(sqrt(f(t)∧2+g(t)∧2), t=a..b); Tính thể tích hình tròn xoay. Cho hình phẳng S giới hạn bởi các đường y = 0, y = f(x), x = a, x = b. Hình phẳng này quay quanh trục Ox tạo nên vật thể tròn xoay T. Để tính thể tích vật thể này ta thực hiện lệnh [> Pi*int(f(x)∧2,x=a..b); Ví dụ: Tính thể tích vật thể tròn xoay được tạo ra khi quay cung parabol y = x2 −x, −2 ≤ x ≤ 1 quanh trục Ox. Ta dùng lệnh [> Pi*int((x∧2-x)∧2,x=-2..1); 171 10 π Tính diện tích mặt tròn xoay. Cho mặt tròn xoay F, được tạo thành khi quay cung C = {(x, f(x)) | x ∈ [a, b]} quanh trục Ox. Nếu f khả vi liên tục, ta có thể tính diện tích của F bằng cách thực hiện hai lệnh: [> g(x):=diff(f(x), x); [> 2*Pi*int(abs(f(x))*sqrt(1+g(x)∧2), x=a..b); Chẳng hạn, mặt cầu đơn vị là mặt tròn xoay được tạo ra bởi hàm f(x) = √ 1 − x2. Ta viết [> f:=x->sqrt(1-x∧2): [> g(x):=diff(f(x),x): [> 2*Pi*int(abs(f(x))*sqrt(1+g(x)∧2),x=-1..1); 4π 10.3. Tích phân bội trên hộp. Để tính tích phân bội trên hộp ta cần nạp gói lệnh student: [> with(student);
  • 27. 26 Tích phân bội 2. Để tính tích phân bội 2 của hàm f(x, y) trên hình hộp ∆ = [a, b] × [c, d] ta dùng lệnh Doubleint. Cú pháp: [> Doubleint(f(x, y), x=a..b, y=c..d); Vì đây là lệnh trơ nên chỉ cho công thức hình thức. Để biết giá trị của nó ta phải dùng hàm định giá value hoặc hàm evalf. Ví dụ: [> m:= Doubleint(x∧2*exp(x*y),x=-1..1, y=0..2); m := ∫ 2 0 ∫ 1 −1 x2 e(xy) dxdy [> value(m); 1 4 e2 + 3 4 e(−2) [> evalf(m); 1.948765487 Tích phân bội 3. Để tính tích phân bội 3 của hàm f(x, y, z) trên hình hộp ∆ = [a, b]×[c, d]×[e, g] ta dùng lệnh (trơ) Tripleint. Cú pháp: [> Tripleint(f(x, y), x=a..b, y=c..d, z=e..g); 10.4. Tích phân lặp. Tích phân lặp 2 lớp. Để tính tích phân ∫ b a dx ∫ y2(x) y1(x) f(x, y)dy ta dùng lệnh [> int(int(f(x,y), y=y1(x)..y2(x)), x=a..b); Ví dụ: [> int(int(x*exp(y), y=1..x∧2), x=0..2); 1 2 e4 − 2e − 1 2 [> evalf(%); 1.948765487
  • 28. 27 Tích phân lặp 3 lớp. Tương tự, để tính tích phân ∫ b a dx ∫ y2(x) y1(x) dy ∫ z2(x,y) z1(x,y) f(x, y, z)dz ta dùng lệnh [> int(int(int(f(x,y,z),z=z1(x,y)..z2(x,y)),y=y1(x)..y2(x)),x=a..b); 11. Phương trình vi phân và Phương trình đạo hàm riêng. Muốn tiến hành giải phương trình vi phân và phương trình đạo hàm riêng ta cần nạp gói công cụ DEtools bằng lệnh [> with(DEtools); cũng cần ghi nhớ các ký hiệu 1. D(y) là đạo hàm bậc nhất của y. 2. D(D(y)) là đạo hàm bậc hai của y. 3. (D@@k)(y) là đạo hàm bậc k của y. 11.1. Giải phương trình vi phân thường. Cú pháp: [> dsolve( {ODE, ICs}, y(x), Options); trong đó, ODE là phương trình cần giải, ICs là các điều kiện đầu, y(x) là ẩn hàm cần tìm và Options là các tuỳ chọn, cho phép ta xác định phương pháp giải cùng dạng biểu diễn nghiệm (nếu không chọn dạng biểu diễn nghiệm thì mặc định là biểu diễn chính xác). Chẳng hạn, nếu Options có dạng + type= series thì máy sẽ cho nghiệm dưới dạng chuỗi, + type= numeric thì máy sẽ sử dụng các phương pháp số và cho ta nghiệm dưới dạng một hàm tượng trưng mà có thể tính được giá trị của nó tại bất kỳ điểm nào, + output= basis (đối với phương trình tuyến tính) thì máy sẽ cho ta tập hàm cơ sở. Nếu phương trình không thuần nhất thì máy sẽ cho thêm một nghiệm riêng. Ví dụ: [> dsolve((D3)(y)(x)-D(D(y))(x)+exp(x)=0,y(x)); y(x) = −xex + 2ex + ex _C1 + _C2x + C3
  • 29. 28 [> dsolve({D(D(y))(x)-D(y)(x)+sin(x)=0,y(0)=0, D(y)(0)=1},y(x)); y(x) = 1 2 sin(x) − 1 2 cos(x) + 1 2 ex [> pt:=D(D(y))(x)-D(y)(x)+sin(x)=0; Dkd:=y(0)=0, D(y)(0)=1: [> dsolve({pt, Dkd},y(x), type=series); y(x) = x + 1 2 x2 + 1 120 x5 + O(x6 ) [> f:=dsolve({pt, Dkd},y(x), type=numeric); g:=proc(rkf45_x)... endproc [> g(0); [ x = 0, y(x) = 0., ∂ ∂x y(x) = 1. ] [> dsolve(pt, y(x), output=basis); [ [1, ex ], − 1 2 cos(x) + 1 2 sin(x) ] 11.2. Giải hệ phương trình vi phân thường. Cú pháp: [> dsolve( {ODEs, ICs}, {Vars}, Options); trong đó, ODEs là hệ phương trình cần giải, ICs là các điều kiện đầu, Vars là các ẩn hàm cần tìm và Options là các tuỳ chọn (tương tự như các tuỳ chon khi giải phương trình vi phân). Ví dụ: Để giải hệ phương trình { y′ (x) = z(x) + 1, z′ (x) = 2y(x) − z(x) − x, với điều kiện đầu y(0) = 1, z(0) = 0 ta dùng các lệnh [> hept:=diff(y(x),x)=z(x)+1, diff(z(x), x)= 2*y(x)-z(x) -x: [> Dkd:=y(0)=1, z(0)=0: [> dsolve({ hept, Dkd},{y(x), z(x)}); { y(x) = − 1 4 + 1 2 x + ex + 1 4 e(−2x) , z(x) = − 1 2 + ex − 1 2 e(−2x) }
  • 30. 29 11.3. Vẽ đồ thị nghiệm của hệ phương trình vi phân. Cú pháp: [> DEplot( {ODEs},{Vars},Trange,ICs,Xrange,Yrange,Options); trong đó: ODEs là hệ các phương trình vi phân bậc nhất (hoặc 1 phương trình vi phân bậc cao, có thể quy về hệ bậc nhất) Vars là các biến phụ thuộc (hay các ẩn hàm cần tìm). Trange là miền thay đổi của biến độc lập. ICs là điều kiện ban đầu xác định đường cong nghiệm cần vẽ. Xrange là miền thay đổi của biến phụ thuộc thứ nhất. Yrange là miền thay đổi của biến phụ thuộc thứ hai. Options là các tuỳ chọn như màu mũi tên (color=?), màu đường cong nghiệm (linecolor=?), tiêu đề (title=?), bước nhảy (stepsize=?), nếu nhiều hơn 2 biến phụ thuộc thì phải khai báo mặt phẳng chiếu vì chỉ được phép vẽ trên không gian hai chiều (scene=?)... Ví dụ: Vẽ đồ thị của nghiệm hệ phương trình vi phân    x′ = y − z, y′ = z − x, z′ = x − y2 với điều kiện đầu:    x(0) = 1, y(0) = 0, z(0) = 2, biến độc lập t thay đổi trong khoảng [−2, 2], biến phụ thuộc x thay đổi trong khoảng [−3, 4], tuỳ chọn: bước nhảy = 0.05, chiếu lên mặt phẳng Ozx: [> DEplot({D(x)(t)=y(t)-z(t), D(y)(t)=z(t)-x(t),D(z)(t)=x(t)-y(t)∧2}, {x(t),y(t),z(t)}, t=-2..2, x=-3..4, [[x(0)=1,y(0)=0,z(0)=2]], stepsize=0.05,scene=[z(t),x(t)]); –3 –2 –1 0 1 2 3 4 x(t) –1 –0.5 0.5 1 1.5 2 z(t) Hình 11: Đồ thị hệ phương trình vi phân
  • 31. 30 Ví dụ: Vẽ dồ thị hệ phương trình { x′ (t) = x(t)(1 − y(t)), y′ (t) = 0.3y(t)(x(t) − 1) với 2 điều kiện đầu: { x(0) = 1.2, y(0) = 1.2, x(0) = 1, y(0) = 0.2, t ∈ [−7..7], bước nhảy 0.1, tiêu đề Graph, mũi tên màu đỏ, quỹ đạo màu xanh: [> DEplot({diff(x(t),t)=x(t)*(1-y(t)), diff(y(t),t)=0.3*y(t)*(x(t) -1)}, [x(t),y(t)], t=-7..7,[[x(0)=1.2,y(0)=1.2],[x(0)=1,y(0)=0.2]], x=-2..2, y=-1..2,stepsize=.1,title=’Graph’,linecolor=blue,color=red); Graph –1 –0.5 0 0.5 1 1.5 2 y –2 –1 1 2 x Hình 12: Đồ thị hệ phương trình vi phân với nhiều điều kiện đầu [> DEplot(hpt,x(t),y(t),t=0..2,[[x(0)=0,y(0)=1],[x(0)=1,y(0)=1]],x=-3..3,y=-3..3); –3 –2 –1 0 1 2 3 y –3–2–1123 x Hình 13: Đồ thị hệ phương trình vi phân với nhiều điều kiện đầu [[> DEplot(D(x)(t)-x(t)=0,x(t),t=-2..2,[[x(0)=2],[x(0)=4]],x=0..10); 11.4. Giải phương trình đạo hàm riêng. Cú pháp: [> pdsolve( PDE, Var , HINT=?);
  • 32. 31 0 2 4 6 8 10 x(t) –2–112 t Hình 14: Đồ thị hệ phương trình vi phân với nhiều điều kiện đầu trong đó, PDE là phương trình cần giải, Var là ẩn hàm (nếu cần) và tuỳ chọn HINT=? là định hướng để giải. Chẳng hạn HINT=P(x,y)∧(1/2) là chỉ tìm nghiêm dưới dạng U(x, y) = √ P(x, y), HINT=f(x)+g(y) là chỉ tìm nghiệm dưới dạng U(x, y) = f(x) + g(y)... Ví dụ: [> PDE := x*diff(f(x,y),y)-y*diff(f(x,y),x) = 0; PDE := x ( ∂ ∂y f(x, y) ) − y ( ∂ ∂x f(x, y) ) = 0 [> pdsolve(PDE); f(x, y) = _F1(x2 + y2 ) ở đây, ta hiểu _F1 là một hàm tuỳ ý. [> PDE := S(x,y)*diff(S(x,y),y,x)+diff(S(x,y),x)*diff(S(x,y),y)=1; PDE := S(x, y) ( ∂2 ∂y∂x S(x, y) ) + ( ∂ ∂x S(x, y ) ( ∂ ∂y (S(x, y) ) = 1 [> pdsolve(PDE,HINT=f(x)*g(y)); (S(x, y) = f(x)g(y))&where [ { ∂ ∂x f(x) = _c1 f(x) , ∂ ∂y g(y) = 1 2 1 g(y)_c1 } ]
  • 33. 32 Tài liệu tham khảo [1] B.W. Char, K.O. Geddes, G.H. Gonnet, B.L. Leong, M.B. Managan, S.M. Watt, Maple V Library Reference Manual, Springer Verlag, 1993. [2] P.H. Điển, Đ.T. Lục, T.D. 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, Hà Nội, 1998. [3] Phạm Huy Điển, Tính toán, lập trình và giảng dạy trên Maple, Nxb KHKT, 2002.