Hàm một biến số, giới hạn và đồ thị.. Vẽ đồ thị của hàm số trên hệ toạ độ Oxy.. Tính giới hạn của hàm một biến số.. Hàm nhiều biến số, giới hạn và đồ thị.. 32 Maple là một trong các phần
Trang 1HUỲNH THẾ PHÙNG
HƯỚNG DẪN
SỬ DỤNG MAPLE
Huế - 2010
Trang 2Mụ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
Trang 37.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
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
Trang 4phả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, đâykhô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 Maplemộ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
Trang 5[> P:=M minus N;
P := {3}
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: [> solve(phương trình/bất phương trình, {biến});
Trang 6Cú pháp: [> solve({danh sách phương trình/bất phương trình}, {ds biến});
Trang 7Cú 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);
922
Trang 8Để 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);
Cú pháp: [> (tên vec-tơ):= [(liệt kê các thành phần của vec-tơ)];
Trang 95.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 f alse.
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
Điểm được xem như vec-tơ, nên khoảng cách giữa hai điểm cũng là khoảng cáchgiữ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:
Trang 105.7 Tổng, hiệu hai hoặc nhiều ma trận cùng cỡ.
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
[> g(3);
32
Trang 116.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 plotsbằ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 x 1
Hình 1: Đồ thị hàm số x sin1x
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 x42 + y92 = 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);
Trang 12–3 –2 –1
1 2 3
y
Hình 2: Đồ thị Ellipse x2
4 +y92 = 1
Vẽ nhiều đồ thị trên cùng một hệ truc toạ độ.
Cú pháp: [> plot([f1(x), , f m (x)], x=a b, y=c d, color=[c1, , c m]});
Lúc đó, đồ thị các hàm f i (x), 1 ≤ i ≤ m, được vẽ tương ứng với các màu c i,
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 e x được xấp xỉ tốt như thế nào bởi hàm
g(x) =
(
1 + x9)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
Hình 3: Xấp xỉ hàm e x bởi hàm (1 + x9)9
Trang 13f1(x), nếu điều kiện đk1 đúng,
f2(x), nếu điều kiện đk2 đúng và đk1 sai,
f k (x), nếu điều kiện đkk đúng và tất cả các điều kiện trước sai,
f k+1 (x), nếu không có điều kiện nào đúng.
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ớilệnh như sau, ta có kết quả được cho trong Hình 5
[> plot(f(x), x=-2 2, color=blue, discont=true);
Trang 141 2 3 4 5
Hình 5: Đồ thị hàm từng khúc gián đoạn thực sự
Cú pháp: [> limit(f(x), x=a); (dùng Limit thì chỉ cho công thức hình thức)
Để đơ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) → 3x2sin(xy)
Trang 157.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].
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ệ
Trang 16Để 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 x42 +y92 − 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
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
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
Trang 178 Phép tính vi phân.
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)
∂
∂x
cos(x)2sin(2x) [> Df:=value(%);
Trang 18Tí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);
8x3sin(xy)y − 12x2cos(xy) + x4cos(xy)y2
2 cos(xy)y − x sin(xy)y2 2 cos(xy)x − x2sin(xy)y
2 cos(xy)x − x2sin(xy)y −x3sin(xy)
]
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)
Trang 19Khai 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);
Trang 209.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 đó:
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);
và trong trường hợp thứ hai ta dùng lệnh
[> polarplot([r(t), phi(t), t=a b]);
Trang 219.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 đó:
Để 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ứ hai ta dùng lệnh
[> cylinderplot([r(s,t), phi(s,t), z(s,t)], s=a b, t=c d);
Trang 22Để 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);
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 (C t) hay mặt cong (S t) 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
Trang 23cong, 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ácnhau Ở đây, chúng ta chỉ xét họ được viết dưới dạng đơn giản:
[> 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 ( I), 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.
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);
Trang 24–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 x 1
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
Trang 25Lệ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 20chữ 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áctích phân suy rộng.
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)
Để 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].
Trang 26Ở đâ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
Cho mặt tròn xoayF, đượ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
Để tính tích phân bội trên hộp ta cần nạp gói lệnh student:
[> with(student);
Trang 27Tí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ó taphải dùng hàm định giá value hoặc hàm evalf