TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA SƯ PHẠM
BỘ MÔN SƯ PHẠM VẬT LÝ
----- -----
LUẬN VĂN TỐT NGHIỆP
Đề tài: GIẢI PHƯƠNG TRÌNH ĐẠO HÀM RIÊNG
SỬ DỤNG PHẦN MỀM MAPLE 12
Giáo viên hướng dẫn:
Vương Tấn Sĩ
Giáo viên phản biện:
Hồ Hữu Hậu
Nguyễn Thị Thúy Hằng
Sinh viênTH:
Nguyễn Quốc Toản
MSSV: 1062642
Lớp: Sư Phạm Vật lý-Tin hoc K32
Cần Thơ, 2010
LỜI CẢM ƠN
Em xin chân thành cảm ơn:
Thầy Vương Tấn Sĩ đã tận tình hướng dẫn và đóng góp những ý kiến quý báu
để em có thể hoàn thành luận văn tốt nghiệp.
Các thầy cô trong Bộ môn Vật lý đã cung cấp cho em những kiến thức để em
có thể vận dụng vào thực hiện đề tài.
Mặc dù đã cố gắng hết sức nhưng vẫn không tránh khỏi những thiếu sót, rất
mong được sự đóng góp ý kiến chân thành của quý thầy cô và các bạn để đề tài được
hoàn chỉnh hơn.
Em xin kính chúc quý thầy cô lời chúc sức khỏe, thành công và hạnh phúc.
Nguyễn Quốc Toản
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
Vương Tấn Sĩ
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
Hồ Hữu Hậu
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
Nguyễn Thị Thúy Hằng
MỤC LỤC
PHẦN I: MỞ ĐẦU
1. Lý do chọn đề tài..................................................................... Trang 1
2. Mục đích đề tài...................................................................................1
3. Phương pháp thực hiện đề tài.............................................................1
4. Các bước thực hiện đề tài...................................................................1
PHẦN II: NỘI DUNG
A. LÝ THUYẾT .....................................................................................2
1. Maple – công cụ tính toán toán học......................................................2
1.1 Giới thiệu tổng quan về Maple.......................................................2
1.2 Các phép toán .................................................................................4
1.3 Các hàm toán học thông dụng........................................................4
1.4 Một số lệnh cơ bản tiện ích thường dùng.......................................4
2. Ma trận và vector ..................................................................................7
2.1 Hàm array.......................................................................................7
2.2 Ma trận ...........................................................................................7
2.3 Vector .............................................................................................8
2.4 Các phép toán trên ma trận và vec tor............................................8
3. Giải phương trình và hệ phương trình ..................................................9
3.1 Cách biểu diễn các nghiệm của phương trình theo dạng
chuẩn ....................................................................................................9
3.2 Cách xác định giá trị của RootOf...................................................9
3.3 Giải phương trình và hệ phương trình..........................................10
3.4 Giải gần đúng bằng thủ tục fsolve ...............................................10
4. Phép tính đạo hàm – giới hạn .............................................................10
4.1 Đạo hàm của biểu thức theo các biến ..........................................10
4.2 Toán tử vi phân D ........................................................................11
4.3 Khai triển hàm thành chuổi tổng quát - Khai triển Taylor..........11
4.4 Đạo hàm của hàm số ẩn ...............................................................11
4.5 Giới hạn........................................................................................12
5. Phép tính tích phân .............................................................................13
5.1 Tích phân bất định và tích phân xác định ....................................13
5.2 Tích phân bội................................................................................13
5.3 Tích phân từng phần.....................................................................14
5.4 Đổi biến số ...................................................................................14
5.5 Tích phân mặt...............................................................................14
5.6 Tích phân khối..............................................................................15
6. Giải phương trình vi phân – phương trình đạo hàm riêng..................15
6.1 Phương trình vi phân....................................................................15
6.2 Phương trình đạo hàm riêng.........................................................16
7. Đồ thị ..................................................................................................16
7.1 Đồ thị hai chiều ............................................................................16
7.1.1 Đồ thị hàm thực...................................................................16
7.1.2 Đồ thị hàm trong tọa độ cực................................................18
7.1.3 Vẽ nhiều đồ thị trên cùng một hệ trục tọa độ......................20
7.2 Đồ thị ba chiều .............................................................................21
7.2.1 Hàm trong tọa độ Descartes ................................................21
7.2.2 Hàm trong tọa độ cực ..........................................................23
7.2.3 Vẽ nhiều đồ thị trên cùng hệ trục tọa độ .............................25
7.3 Đồ thị động...................................................................................26
7.3.1 Đồ thị động hai chiều ..........................................................26
7.3.2 Biểu diễn các đồ thị động trên cùng hệ trục tọa độ ............27
7.3.3 Đồ thị động ba chiều ...........................................................28
B. ỨNG DỤNG MAPLE ĐỂ GIẢI PHƯƠNG TRÌNH ĐẠO HÀM
RIÊNG TRONG CƠ HỌC LƯỢNG TỬ VÀ VẬT LÝ THỐNG KÊ
LƯỢNG TỬ ..........................................................................................30
1. Phương trình Schrodinger trong không gian 3 chiều .........................30
1.1 Hàm cầu .......................................................................................30
1.2 Thế coulomb.................................................................................33
1.3 Nguyên tử hyđrô ..........................................................................35
1.4 Điện thế đối xứng của electron ....................................................55
1.5 Obitan liên kết hỗn hợp ................................................................58
1.6 Hố thế sâu vô hạn .........................................................................61
2. Thống kê lượng tử ..............................................................................66
2.1 Thống kê Maxwell-Boltzmann ....................................................66
2.2 Khí lí tưởng Bose .........................................................................69
2.3 Mật độ thấp và khai triển Virial ...................................................70
2.4 Sự ngưng tụ Bose-Einstein ở nhiệt độ thấp..................................75
2.5 Khí lí tưởng Fermi........................................................................79
2.6 Nhiệt dung riêng của kim loại ở nhiệt độ thấp.............................80
2.7 Khí tương đối ...............................................................................88
PHẦN III: KẾT LUẬN
TÀI LIỆU THAM KHẢO
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
PHẦN I: MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay, cùng với những thành tựu trong lĩnh vực công nghệ thông tin, người
ta đã xây dựng nhiều phần mềm để hỗ trợ công tác học tập và nghiên cứu. Maple là
phần mềm tính toán điển hình giúp việc giải các bài toán trở nên đơn giản và nhanh
chóng, góp phần làm tăng hiệu suất làm việc của chúng ta trong học tập, nghiên cứu
và giảng dạy. Maple có khả năng tính toán trên số thực lẫn số phức, Maple có thể
giải phương trình vi phân, phương trình đạo hàm riêng,…Đặc biệt là khi phương
trình đạo hàm riêng được ứng dụng trong vật lý rất nhiều, và chúng ta thường gặp
nhiều khó khăn khi giải phương trình đạo hàm riêng, để khắc phục những khó khăn
đó người ta phải sử dụng một phần mềm để hỗ trợ giải phương trình đạo hàm riêng.
Phần mềm hữu ích đó là Maple, và để giải phương trình đạo hàm riêng ta với Maple
ta phải hiểu biết về nó. Với những lý do đó, tôi quyết định chọn đề tài luận văn tốt
nghiệp là “Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12”.
2. Mục đích đề tài
Đề tài này nhằm phục vụ cho việc dạy và học môn Vật lý đạt hiệu quả cao
nói chung, phần giải phương trình đạo hàm riêng nói riêng.
Ứng dụng công nghệ thông tin vào dạy học Vật lý và làm tài liệu tham khảo
cho giáo viên và sinh viên.
3. Phương pháp thực hiện đề tài
Thu thập tài liệu, các thông tin có liên quan, phân tích tài liệu, thông tin thu
được và chọn lọc thông tin phù hợp.
Nghiên cứu, tìm hiểu rõ các thành phần, cách sử dụng Maple và các bài toán
sẽ trình bày trong đề tài.
Tổng hợp các yêu cầu của đề tài, các ý kiến đóng góp để xây dựng đề tài
hoàn chỉnh lẫn nội dung và hình thức.
4. Các bước thực hiện đề tài
Bước 1: Nhận đề tài.
Bước 2: Nghiên cứu tài liệu liên quan đến đề tài.
Bước 3: Tiến hành viết đề tài và trao đổi với giáo viên hướng dẫn.
Bước 4: Viết báo cáo.
Bước 5: Bảo vệ luận văn.
GVHD: Vương Tấn Sĩ
Trang 1
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
PHẦN II: NỘI DUNG
A. LÝ THUYẾT
1. Maple-công cụ tính toán toán học
1.1 Giới thiệu tổng quan về Maple
Phần mềm toán học Maple, ta gọi tắt là Maple là phần mềm đa dụng có các
đặc trưng quan trọng:
-
Thực hiện tính toán toán học (kể cả trên các đối tượng hình thức, thường
được cho dưới dạng một tên) bởi các qui tắc của các phép toán số học hay
bằng các thủ tục, các hàm (được cho bởi tên đặc biệt của chúng).
-
Cho phép tạo ra các hàm mới, các thủ tục mới, các phép toán mới theo cấu
trúc dữ liệu của người dùng và như vậy, Maple cũng chính là một ngôn ngữ
lập trình, hơn nữa lại là ngôn ngữ rất dễ hiểu mà cũng hết sức hiệu quả vì bản
thân mỗi câu lệnh của ngôn ngữ này đã là một chương trình con có khả năng
tính toán rất mạnh.
Maple sau khi được khởi động, sẽ xuất hiện dấu “>” trong cửa sổ làm việc
(worksheet) của nó. Các câu lệnh sẽ được xử lý khi được nhập vào từ sau dấu “>”,
kết thúc bởi dấu “;” và nhấn phím Enter. Nếu muốn kết quả của việc thực hiện một
lệnh nào đó không cần hiện ra màn hình, thay cho dấu “;” ở cuối dòng lệnh, ta dùng
dấu “:”.
Để xóa các kết quả trung gian, các giá trị tồn tại do phép gán trị hay nói
chung là mọi kết quả được lưu trữ trong bộ nhớ của Maple, nhằm thực hiện lại một
công việc tính toán nào đó, ta gõ:
> restart;
Và để thoát khỏi Maple, ta gõ:
> quit ;
Để xem các trang trợ giúp (gọi tắt là các trang help), cung cấp các thông tin
chi tiết về mọi lệnh hay một chủ đề nào đó của Maple (chẳng hạn cung cấp về cú
pháp, chức năng, các chú ý và các ví dụ về cách sử dụng), ta gõ “ ?name ;”, với
name là tên hay chủ đề.
Thủ tục là một chương trình được viết bằng ngôn ngữ của chính Maple, thực
chất là một dãy của các chỉ thị (cũng là các câu lệnh của Maple) được sắp xếp theo
một thứ tự nào đó nhằm giải quyết một bài toán, một mục đích mà kết quả cuối
GVHD: Vương Tấn Sĩ
Trang 2
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
cùng của việc thực hiện thủ tục là kết quả của việc thực hiện lệnh cuối cùng trong
thủ tục. Thông thường, một thủ tục được gọi kèm theo các tham số của nó.
Hàm cũng là một thủ tục, nhưng thường mục đích của hàm là trả về một đối
tượng cụ thể (nghĩa là một kiểu dữ liệu cụ thể) và trực tiếp. Đối với hàm, ta gọi
chung các tham số của nó là đối số. Nếu đối số của hàm là một dãy các số và kết
quả của lời gọi hàm thuộc kiểu dữ liệu numberic, thì nó chính là một hàm số. Ta tìm
hiểu về các kiểu dữ liệu của Maple bằng lệnh “?type ;”. Chú ý rằng ta có thể đổi
một kiểu dữ liệu này sang một kiểu dữ liệu khác cho cùng một đối tượng bằng thủ
tục convert. Muốn kiểm tra đối tượng (obj) đang xét thuộc một kiểu dữ liệu nào,
hãy gọi whattype(obj).
Maple chứa sẵn các hàm và thủ tục đặc biệt trong thư viện của nó và ta có
thể gọi chúng bằng câu lệnh “readlib(name) ;”, với name là tên hàm hay thủ tục.
Ngoài ra, Maple đóng gói sẵn một số thủ tục và hàm đặc biệt cho một lĩnh vực tính
toán đặc thù nào đó trong những gói. Các gói được sử dụng nhiều là linalg và
student lần lượt chứa các hàm và thủ tục cho việc tính toán trên các ma trận, vector
và cho việc tính các loại tích phân.
Để xét khái niệm biến (variable) và tên trong Maple, ta hay xét phương
trình :
ax2 + bx + c= 0
Trong đó, a,b,c là các tham số và x là ẩn. Chúng cũng được gọi chung là các
biến và trong cách dùng của chúng trong phương trình, chúng được xem là các biến
tự do, nghĩa là mỗi biến được xem đơn thuần là một ký hiệu và chỉ đến bản thân ký
hiệu riêng của chúng khi được nhắc đến. Các biến có thể được gán cho một giá trị
bởi phép gán trị “ := ”, chẳng hạn, a := 2 thì a được gọi là biến bị gán trị, và khi a
được nhắc đến thì số 2 sẽ được thay thế. Mặc khác, trong quá trình tính toán, ta
thường đặt tên cho các kiểu dữ liệu phức tạp để cách trình bày các phép toán được
ngắn gọn và rõ ràng hơn. Tên cũng được cho bởi phép gán, là một chuỗi ký tự có độ
dài không quá 499 ký tự và phải bắt đầu bằng một mẫu tự, chẳng hạn ta có thể đặt
tên cho hàm sin là f bằng lời gọi :
> f :=->sin(x) ;
Các biến toàn cục trong Maple là các biến được gán sẵn một giá trị xác định
và luôn giữ nguyên giá trị của chúng trong mọi trường hợp, trừ phi chúng được gán
GVHD: Vương Tấn Sĩ
Trang 3
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
tạm thời một giá trị khác bởi phép gán trị (khi khởi động lại chương trình hoặc khi
dùng restart, thì các biến toàn cục nhận lại giá trị ban đầu của chúng). Một số biến
toàn cục của Maple thường dùng là Digits, Order hay –MaxSols... Biến môi
trường( thường có tên bắt đầu bởi các ký tự -Env) là biến toàn cục nhưng thường
nhận các giá trị logic true, false để xác nhận tình trạng đang xét thuộc hay không
thuộc một điều kiện qui ước nào đó. Các biến môi trường của Maple thường dùng :
-EnvExplicit,
-EnvAllsolutions.
1.2 Các phép toán
+ Nhị nguyên: +, -, *, /, **, hay ^ (lũy thừa ), so sánh (<, <=,>, >=,<>), lấy
hàm hợp (@), lấy hàm hợp kép(@@), gán trị ( :=), phép toán logic (and, or), phép
hợp (union), phép giao (interset), phép hiệu (minus).
+ Nhất nguyên: cộng, trừ, phủ định ( +,-, not), giai thừa (!).
+ Ký hiệu %: Dùng để thay thế kết quả hay biểu thức gần nhất bằng (%),
biểu thức trước đó bằng (%%), biểu thức trước đó nữa bằng (%%%).
1.3 Các hàm toán học thông dụng
+ Hàm lượng giác và lượng giác ngược: sin, cos, tan, cot, arcsin, arccos,
arctan, arccot.
+ Hàm trị tuyệt đối (abs): lấy giá trị nguyên nhỏ nhất không nhỏ hơn một số
(ceil) ; hàm số mũ cơ số e (exp) ; hàm giai thừa của một số nguyên không âm
(factorial) ; hàm lấy phần thập phân của một số (frac) ; hàm logarithm cơ số e (ln) ;
hàm logarithm cơ số n dương khác 1 bất kì (log[n]) ; hàm logarithm cơ số 10
(log10) ; hàm lấy giá trị lớn nhất hay nhỏ nhất của một dãy số thực (max hay min) ;
hàm căn bậc n của một số (root[n]) ; hàm lấy giá trị nguyên gần nhất của một số
(round) ; hàm căn bậc 2 (sqrt) ; hàm lấy giá trị nguyên gần nhất của một số theo
hướng số 0 (trunc).
1.4 Một số lệnh cơ bản tiện ích thường dùng
+ evalf (e,n): cho giá trị của một biểu thức e với n chữ số chính xác, có thể
chọn đến 500000 !.
+ value( F): cho giá trị thực tế của một kết quả hình thức F.
Ví dụ :
> b:=Limit(sin(x)/x,x=0);
GVHD: Vương Tấn Sĩ
Trang 4
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
> value(b);
+ expand(e,x1,x2..): khai triển phép nhân đối với các tổng trong e.
+ normal(e): thu gọn một biểu thức hữu tỉ e dạng chuẩn.
+ simplify(e): đơn giản e.
+ radsimp(e) và radsimp(e, ‘ratdenom’): đơn giản một biểu thức chứa căn
thức và hữu tỉ hóa mẫu số của biểu thức e (nếu có).
Ví dụ:
> a:=3*((-16+15*sqrt(3))/(sqrt(3)-3));
> simplify(a);
> normal(a);
+ seq(element,range): liệt kê một dãy phần tử được đánh chỉ số element theo
các chỉ số được cho bởi range.
Ví dụ:
> l:=[1,2,3,4,5,6,7,8,9]:
> s:=seq(l[2*i-1], i=1..5);
+ subs: thay thế toán hạng của một biểu thức bởi các biểu thức xác định một
số trường hợp thường sử dụng:
subs(x,a,e): thay a cho x.
subs(s1,…,sn,e): thay thế tuần tự s1, …,sn vào e.
subs({s1,…,sn},e) hay subs([s1,…,sn],e): thay thế đồng thời s1,…,sn vào e.
Ví dụ:
> p:=x+y+2^(x+y+z) +z:
> subs(y=c,p);
GVHD: Vương Tấn Sĩ
Trang 5
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
> subs(x+y+z=c,p);
> subs([x=y,y=z,z=c], x*y*z+2*z);
+ student[powsubs](e,f): tương tự như subs nhưng tiến hành thay thế lần lượt
từ trái sang phải.
> A:=m*n*sin(x)-2^(m*n+3)+Limit(f(m*n)-x^2,x=3);
> student[powsubs](m*n=d,A);
+ sum(args) và product(args): dùng để tính tổng và tích xác định.
sum(f,k): là tổng dạng: f(0)+….+f(k-1).
sum(f,k=m..n): là tổng dạng: f(m)+f(m+1)+…+f(n).
Nếu m=n+1 thì lời gọi trả lại giá trị 0, nếu m>n+1 thì kết quả có dạng:
sum(f,k=n+1..m-1).
sum(f,k=e): (e không chứa k): thay giá trị của e cho k trong f.
> Sum(1/((2*n-1)*(2*n+1)),n=1..infinity)= sum(1/((2*n1)*(2*n+1)),n=1..infinity);
+ add,mul: Tính tổng và tích của một dãy có giá trị xác định.
add(f,i=m..n): tính tổng dạng f(m)+f(m+1)+..+f(n).
add(f,i=x): tính tổng của các f trên toán hạng x.
Ví dụ:
> a:={2,4,6,8,10};
> add(a[i],i=1..nops(a));
+ Hàm điều kiện dạng:
1) if(cond) then (statm) fi,
GVHD: Vương Tấn Sĩ
Trang 6
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
2) if(cond) then (statm) else (statm) fi,
3) if(cond) then (statm) elif (cond) then (statm) fi,
4) if(cond) then (statm) elif (cond) then (statm) else (statm) fi,
Với cond: điều kiện
statm: một hay một số các câu lệnh.
* Dùng hàm unapply
+ unapply(e,x1,x2..); : e là biểu thức theo các biến x1,x2..
+ map(f,x,y1,_ _,yn); : thay mỗi toán hạng x[i] của x bởi f(x[i],y[1],..,y[n]).
+ is(x,prop); : x là tên biến hay biểu thức bất kỳ, prop là một tính chất, cặp tham số
x; đây là nhận một trong các giá trị logic.
+ has(f,x); : f là một biểu thức, một danh sách hay một tập các biểu thức. Nếu f chứa
x thì hàm has lấy giá trị true, ngược lại là false.
+ evalb(x); : x là một biểu thức, dùng để tính giá trị: true, false, FAIL.
+ select(f,x,y1,..,yn); : chọn ra các toán hạng của x thỏa f.
+ remove(f,x,y1,..,yn); : có tác dụng ngược lại với select (bỏ đi các toán hạng thỏa
f).
2. Ma trận và vector
2.1 Hàm array
Để thực hiện các phép tính trên các ma trận và trên các vector ta xét hàm
array được dùng để tạo một mảng n chiều (n>1).
Cú pháp: array( indexfcn,bound,list);
Trong đó: indexfcn: (tùy chọn) là hàm chỉ mục.
bound: (tùy chọn) là dãy các range.
list: (tùy chọn) là danh sách các giá trị ban đầu.
Trong hàm này phải có ít nhất một tham số.
2.2 Ma trận
Một ma trận được xem là một mảng hai chiều, với các hàng và cột được
đánh chỉ số từ L. Ta có thể xác định một ma trận bằng lệnh matrix với các tham số
dùng trong ma trận như sau:
L: danh sách của các danh sách hay của vector,
m, n:các số nguyên dương (chỉ số hàng và cột),
f: hàm được dùng để xác định các phần tử của ma trận,
GVHD: Vương Tấn Sĩ
Trang 7
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
lv: danh sách hay vector của các thành phần.
Cú pháp:
+ matrix(m,n); : tạo ma trận cấp m x n, với các phần tử chưa xác định.
+ matrix(m,n,l); : tạo ma trận cấp m x n, trong đó hàng thứ i của ma trận được
xác định bởi danh sách l[i](i=1..m).
+ matrix(m,n,f); : tạo ma trận cấp m x n, các phần tử là kết quả của việc áp
dụng hàm f lên các cặp chỉ số hàng cột.
Trong trường hợp f=0, ta xác định được một ma trận 0.
+ matrix(m,n,lv); : tạo ma trận cấp m x n, các phần tử của nó đọc từ lv theo qui
tắc lấy n phần tử đầu của lv làm hàng thứ nhất, n phần tử kế tiếp làm hàng thứ hai.
+ Linalg[det]; : tính định thức của ma trận vuông.
+ Linalg[det](A) và linalg[det](A,sparse); : A là ma trận vuông, sparse (tùy
chọn) xác định phương pháp tính theo các định thức con bù.
2.3 Vector
Vector là một array một chiều với các chỉ số bắt đầu từ 1. Lời gọi vector có
các tham số sau:
x1,..,xn: các thành phần thuộc loại số đại số của vector.
n: số các thành phần của vector.
f: hàm được dùng để tạo ra các thành phần của vector.
+ vector[x1,..,xn] và vector(n,[x1,..,xn]); : tạo ra vector có n thành phần là
các phần tử của x[i].
+ vector(n,f); : tạo ra một vector có n thành phần nhận được bằng cách áp
dụng hàm f lên các chỉ số vị trí của chúng.
2.4 Các phép toán trên ma trận và vector
Các phép toán trên ma trận gồm: so sánh hai ma trận, tổng hai ma trận, tích
hai ma trận (cột ma trận này bằng hàng của ma trận kia), tích một số với một ma
trận, lấy lũy thừa nguyên đối với một ma trận.
Cú pháp: evalm(mate); : mate là một biểu thức của ma trận.
+ evalm(A^0); : cho kết quả là 1.
+ evalm(A^(-1)); : cho kết quả là nghịch đảo của ma trận A.
+ Toán tử &*: chỉ tích hai ma trận.
+ Số 0: chỉ ma trận 0.
GVHD: Vương Tấn Sĩ
Trang 8
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
+ &*(): chỉ ma trận đơn vị.
* Các qui ước trên có thể được thay đổi tạm thời bằng lệnh alias.
+ Các ma trận có thể là đối số trong hàm.
+ So sánh hai ma trận: bằng lệnh equal.
Muốn so sánh hai ma trận xem chúng có bằng nhau không (tức là các phần
tử cùng vị trí tương ứng của chúng phải bằng nhau) ta dùng lệnh equal.
Chú ý: hai ma trận phải cùng số chiều như nhau mới có thể so sánh được.
Do các vector là trường hợp đặc biệt của ma trận 1 hàng nên các phép toán
cộng giữa các vector và phép nhân vector với một số cũng được thực hiện bởi hàm
evalf, trong đó mate là một biểu thức vector.
Ngoài ra đối với hai vector u, v ta có các phép toán tích vô hướng và tích có
hướng được gọi lần lượt từ gói linalg theo cú pháp sau:
+ linalg[dotprod](u,v,orthogonal); : u, v là các vector có cùng thành phần.
+ linalg[crossprod](u,v); : u, v là các vector có 3 thành phần.
3. Giải phương trình và hệ phương trình
3.1 Cách biểu diễn các nghiệm của phương trình theo dạng chuẩn
Maple cung cấp thủ tục RootOf để biểu diễn các nghiệm của phương trình
và hệ phương trình đa thức, các giá trị riêng và các tích phân hàm hữu tỉ. Thủ tục
được gọi theo các trường hợp sau:
a. RootOf(e)
b. RootOf(e,x)
c. RootOf(e,x,c)
d. RootOf(e,x,a..b)
Trong đó, e biểu thức đại số hay phương trình, x là một biến.
3.2 Cách xác định giá trị của RootOf
Để xác định giá trị của RootOf ta dùng thủ tục allvalues. Thủ tục này được
dùng trong các trường hợp sau:
a. allvalues(e)
b. allvalues(e,opt)
Trong đó, e là một biểu thức, bảng danh sách hay tập biểu thức,opt là tham số tùy
chọn được xác định bởi kiểu ‘dependent’ hay ‘independent’.
GVHD: Vương Tấn Sĩ
Trang 9
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
3.3 Giải phương trình và hệ phương trình
Ta dùng thủ tục solve để giải phương trình.
Cú pháp:
+ solve(eqn,var); : giải phương trình eqn theo ẩn var. Kết quả là giá trị của ẩn
(thường là một biểu thức).
+ solve(eqn(s),vars); : Giải hệ các phương trình eqns theo tập các ẩn vars.
Kết quả lệnh này là tập các phương trình dạng var[i]=expr[i] (vế phải là giá
trị của ẩn thứ i).
{var1=expr1,var2=expr2,…} nếu vars được cho dưới dạng {var1,var2,…}
3.4 Giải gần đúng bằng thủ tục fsolve
Trong trường hợp không thể dùng thủ tục solve để tìm nghiệm chính xác của
một (hệ) phương trình, ta có thể dùng thủ tục fsolve để tìm nghiệm gần đúng.
Cú pháp: fsolve(eqns,vars,options);
Trong đó, eqns: là phương trình hay hệ phương trình
vars: (tùy chọn) là ẩn hay tập các ẩn.
options: là các tùy chọn nhằm xử lý các nghiệm
* Khi options là maxsols=n: xác định n nghiệm nhỏ nhất (đối với đa thức nhiều hơn
một nghiệm).
* Khi options là complex:tìm một nghiệm (hay mọi nghiệm đối với đa thức) trên tập
các số phức.
4. Phép tính đạo hàm - giới hạn
4.1 Đạo hàm của biểu thức theo các biến
+ Cú pháp: diff(expr,x1,x2,…,xn);: tính đạo hàm của expr theo các biến
x1,x2,…,xn.
+ Chú ý: lệnh trên có thể được viết: diff(expr,[x1,x2,…,xn]);. Cách viết này
có lợi khi ta tính đạo hàm cấp 0 của f(x). Khi đó ta viết: diff(f(x),[0]);.
Nếu n>=2 thì lệnh diff được thực hiện tuần tự theo số lần lấy đạo hàm đối với
các biến. Chẳng hạn: diff(f,x,y) tương đương với diff(diff(f,x),y);.
Ta có thể dùng ký hiệu $ để thành lập các biểu thức.
+ Ví dụ: tính diff(f,x,x,x,y,y) ta dùng diff(f,x$3,y$2);
Các đạo hàm riêng cùng cấp luôn được giả thiết là thỏa định lý Schwarz
Nếu lệnh diff được thay bởi Diff thì kết quả là ký hiệu chỉ đạo hàm cần tính.
GVHD: Vương Tấn Sĩ
Trang 10
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
4.2 Toán tử vi phân D
Cú pháp:
+ D(f): tính đạo hàm của hàm một biến f.
+ D[i](g): tính đạo hàm theo chỉ số biến i.
Trong đó g là biểu thức dạng hàm, i là số nguyên dương hay một biểu thức
hoặc một dãy các đối tượng.
4.3 Khai triển hàm thành chuổi tổng quát - Khai triển Taylor
Cú pháp: series(expr,eqn); và series(expr,eqn,n); : khai triển expr thành chuỗi đối
với biến x trong lân cận của điểm a cho đến số hạng bậc n, nếu:
+ a là vô hạn thì khai triển được tính theo t=1/x (khai triển tiệm cận).
+ eqn chỉ là tên x thì khai triển được xét trong lân cận của điểm x=0.
Trong đó, expr: là một biểu thức.
eqn: là một phương trình (x=a) hay một tên (x).
n: (tùy chọn) là một số nguyên không âm.
Chú ý:
-
Nếu khai triển gần đúng thì số hạng bậc là số hạng cuối của chuỗi.
-
Kết quả của lệnh series là một khai triển chuỗi tổng quát.
Hàm taylor dùng để khai triển Taylor của expr theo x trong lân cận của
điểm x=a cho đến bậc n như trường hợp giới hạn của hàm series. Ta dùng lệnh sau:
> taylor(expr,eqn,n);
4.4 Đạo hàm của hàm số ẩn
Để tính đạo hàm của hàm số ẩn được cho bởi phương trình hoặc hệ phương
trình ta dùng cú pháp sau:
1. implicitdiff(f,y,x);
2. implicitdiff(f,y,x[1],…,x[k]);
3. implicitdiff({f[1],…,f[m]},{y[1],…,y[n]},u,x);
4. implicitdiff({f[1],…,f[m]},{y[1],…,y[n]},u,x[1],…,x[k]);
5. implicitdiff({f[1],…,f[m]},{y[1],…,y[n]},{u[1],…,u[r]},x);
6. implicitdiff({f[1],…,f[m]},{y[1],…,y[n]},{u[1],…,u[r]}, x[1],…,x[k]);
Trong đó: f,f[1],…,f[m]: là các biểu thức hay phương trình,
y, y[1],…,y[n]: là các tên (biến) hay hàm theo các tên,
x, x[1],…,x[k]: là các tên (của biến lấy đạo hàm),
GVHD: Vương Tấn Sĩ
Trang 11
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
u, u[1],…,u[r]: là các tên (của biến phụ thuộc).
Các trường hợp trên được dùng theo ý nghĩa tương ứng sau:
1. Tính đạo hàm dy/dx của hàm ẩn y=y(x) xác định từ phương trình f.
Đối số thứ hai y xác định các biến phụ thuộc, các biến độc lập và các hằng
số.
a. Nếu y là một tên thì y là biến phụ thuộc. Mọi tên khác trong f và các
biến lấy đạo hàm x (không phải là hằng số) đều được xem là biến độc
lập. Ví dụ lệnh implicitdiff (a=b*c/d,b,d) xác định rằng b là biến phụ
thuộc, được xem là hàm theo a, c, d với d là biến lấy đạo hàm
b. Nếu y=y(x[1],…,x[i] thì lệnh) implicitdiff (a=b*c/d,b,d) xác định rằng
b là hàm của c, d và a được xem là hằng số.
2. Có tác dụng như diff nếu không kể đối số f
3. Đối số thứ nhất là hệ phương trình gồm các phương trình f[1],…,f[m], xác
định đối số thứ hai như là các hàm ẩn xác định từ hệ và u là một hàm trong
số đó, x là biến lấy đạo hàm.
4. Lệnh dùng để tính các đạo hàm cấp cao của u tuần tự theo các biến
x[1],…,x[k] đã chỉ ra.
5. Lệnh dùng để tính các đạo hàm riêng của các hàm u[1],…,u[r] đối với x.
Kết quả sẽ là một hệ phương trình dạng
du j
dx
J i với J i chứa các Jacobian của
các hàm đối với các biến.
6. Tương tự như trên, nhưng kết quả sẽ là hệ phương trình dạng
dui
J i, j
dx j
Nếu đối số tùy chọn là notation = D hoặc không có đối số này trong lệnh thứ
5 hay thứ 6 thì kết quả sẽ được ký hiệu là D(f) hay Di(f) tương ứng với f là hàm
một biến hay nhiều biến. Nếu đối số tùy chọn là notation =Diff thì kết quả sẽ
được ký hiệu tương ứng với lệnh Diff(f,x) đối với hàm một biến hay tương ứng
với Diff(f,x)[name] đối với hàm nhiều biến, trong đó name là một dãy các biến
còn lại ngoài biến lấy đạo hàm.
4.5 Giới hạn
Để tính giới hạn của hàm số tại a ta dùng lệnh có cú pháp sau:
> limit(f(x),x=a);
GVHD: Vương Tấn Sĩ
Trang 12
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
Trong đó f(x) là biểu thức cần tìm giới hạn và a là điểm tại đó cần tính giới
hạn (nếu a là vô cùng thì ta viết x= infinity).
Ngoài ra, ta có thể tính giới hạn theo hướng (trái hoặc phải).
5. Phép tính tích phân
5.1 Tích phân bất định và tích phân xác định
Maple cung cấp hàm int hay integrate để tính tích phân bất định, tích phân
xác định và tích phân suy rộng.
a. Tích phân bất định
Lệnh thực hiện: int(f(x),x);
b. Tích phân xác định
Lệnh thực hiện: int(f(x),x=a..b):%=value(%);
Trong đó x=a..b: khoảng lấy tích phân.
Lệnh: evalf(Int(f,x=a..b,digits,flag)); : lấy giá trị tích phân chính xác đến n(digits)
số, flag là tên phương pháp được dùng.
5.2 Tích phân bội
Ta có thể tính tích phân hai lớp, tích phân ba lớp bằng Maple với các hàm
Doubleint, Tripleint trong gói student. Hàm value được dùng để nhận được kết quả
tính toán thực tế.
Ta thực hiện cú pháp sau để tính tích phân hai lớp:
> student[Doubleint](g,x,y);
> student[Doubleint](g,x,y,Domain);
> student[Doubleint](g,x=a..b,y=c..d);
Trong đó: g: là biểu thức dưới dấu tích phân,
x,y: các biến lấy tích phân,
a,b,c,d: các cận trên và cận dưới xác định các khoảng lấy tích phân,
Domain: tên miền lấy tích phân.
Đối với tích phân ba lớp ta thực hiện cú pháp sau:
> student[Tripleint](g,x,y,z);
> student[Tripleint](g,x,y,z,Domain);
> student[Tripleint](g,x=a..b,y=c..d,z=e..f);
GVHD: Vương Tấn Sĩ
Trang 13
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
5.3 Tích phân từng phần
Ta tính tích phân bằng công thức tích phân từng phần cho các kết quả chưa
được tính bằng cách dùng hàm intparts với cú pháp sau:
> student[intparts](f,u);
Trong đó, f: là biểu thức dạng Int(udv,x),
u: là thừa số khả vi của biểu thức dưới dấu tích phân.
Lệnh trên sẽ cho kết quả uv-Int(vdu,x).
5.4 Đổi biến số
Khi tích phân trả lại kết quả chưa được tính, ta có thể đổi biến lấy tích phân
và như vậy sẽ thay đổi biểu thức dưới dấu tích phân. Để thực hiện cách tính này ta
dùng hàm changevar trong gói student với cú pháp sau:
> student[changevar](s,f);
> student[changevar](s,f,u);
> student[changevar](t,g,v);
Trong đó, s: là biểu thức có dạng h(x)=g(u) xác định x như hàm của u,
f: là biểu thức được cho dưới dạng hình thức, chẳng hạn
Int(F(x),x=a..b),
u: là tên biến mới lấy tích phân,
t: là tập các phương trình xác định phép biến đổi nhiều lần,
g: là ký hiệu hình thức của một tích phân bội,
v: là một danh sách các biến mới.
Chú ý:
-
Tham số thứ nhất trong các lệnh trên là một (hay tập các) phương trình
xác định biến mới theo biến cũ. Nếu có nhiều hơn hai biến thì biến mới
phải được cho ở vị trí tham số thứ ba. Tham số thứ hai là biểu thức
thường chứa Int, Sum, Limit hay Doubleint hoặc Tripleint.
-
Phép biến đổi cũng có thể được cho dưới dạng ẩn.
Nên dùng các dạng Int, Sum, Limit,… hơn là các dạng int, sum, limit,… và
chúng có thể được tính sau nhờ hàm value.
5.5 Tích phân mặt
Lệnh thực hiện:
> Doubleint(f(x,y),x=a..b,y=c..d);
GVHD: Vương Tấn Sĩ
Trang 14
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
> Doubleint(g,x,y,Domain);
Với: x=a..b,y=c..d là khoảng lấy tích phân của biến đổi đối với hàm f(x,y),
Domain: miền xác định của tích phân.
5.6 Tích phân khối
Lệnh thực hiện:
> Tripleint(g,x=a..b,y=c..d,z=e..f);
> Tripleint(g,x,y,z,Domain);
6. Giải phương trình vi phân- phương trình đạo hàm riêng
6.1 Phương trình vi phân
Ta có thể dùng Maple để tìm nghiệm chính xác của rất nhiều phương trình
vi phân thường và phương trình vi phân với điều kiện ban đầu và bài toán biên. Hơn
nữa, Maple cho phép ta tìm nghiệm xấp xỉ của bất kỳ phương trình vi phân nào.
Ngoài ra nó còn vẽ được đồ thị nghiệm của các phương trình vi phân thường.
Một số ký hiệu cần nhớ:
-
D(y) là đạo hàm bậc nhất của hàm y.
-
D(D)(y)(x) là đạo hàm bậc hai của y theo x.
-
D@@k là D kết hợp với chính nó k lần.
Muốn giải phương trình vi phân ta dùng cú pháp:
> dsolve({deq,x(t0)=x0},x(t) );
Trong đó: deq là phương trình vi phân, x(t) là nghiệm, x(t0)=x0 là điều kiện
ban đầu. Nếu nghiệm tổng quát thì ta bỏ qua điều kiện ban đầu.
* Vẽ đồ thị nghiệm của phương trình và hệ phương trình vi phân:
Trong một số bài toán, ta không thể tìm được nghiệm ngay khi dùng tùy
chọn method=laplace, do đó việc tìm nghiệm qua đồ thị trở nên thuận tiện.
Lệnh vẽ:
> with(DEtools):
> Deplot(ode,dep-var,range,[init-conds]);
Với: ode: phương trình vi phân.
dep-var: nghiệm của phương trình (biến phụ thuộc).
range: khoảng giá trị của biến độc lập.
init-conds: các điều kiện ban đầu.
GVHD: Vương Tấn Sĩ
Trang 15
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
6.2 Phương trình đạo hàm riêng
Phương trình đạo hàm riêng là phương trình chứa hàm cần tìm của hai hay
nhiều biến với các đạo hàm riêng theo các biến này.
Cấp của phương trình đạo hàm riêng là cấp cao nhất của đạo hàm có mặt
trong phương trình này.
Ví dụ:
2
u 3x y , là phương trình đạo hàm riêng cấp hai.
xy
Nghiệm của phương trình đạo hàm riêng là một hàm, nó thỏa mãn đồng nhất
phương trình.
Ở đây ta xét các phương trình đạo hàm riêng tuyến tính cấp hai.
Bài toán biên của phương trình đạo hàm riêng là bài toán tìm kiếm các
nghiệm của phương trình đạo hàm riêng trong miền xác định nào đấy thỏa mãn các
điều kiện trên biên của miền gọi là điều kiện biên.
Có nhiều phương pháp giải bài toán biên của phương trình đạo hàm riêng
tuyến tính. Phương pháp tách biến là một trong những phương pháp quan trọng
nhất.
+ Ý tưởng: đầu tiên ta tìm nghiệm tổng quát sau đó cho thỏa mãn điều kiện biên.
+ Phương pháp: Giả thiết rằng nghiệm có được biểu diễn dưới dạng tích của các
hàm chưa biết mà mỗi hàm chỉ phụ thuộc vào một biến độc lập. Kết quả của
phương pháp là có thể viết phương trình mà ở cả hai vế, mỗi vế chỉ phụ thuộc vào
một biến, vì vậy mỗi vế phải bằng hằng số. Ta lần lượt giải cho từng hàm chưa xác
định. Hợp các nghiệm này cho ta nghiệm cần tìm.
7. Đồ thị
7.1 Đồ thị hai chiều
7.1.1 Đồ thị hàm thực
+ Lệnh vẽ: > plot(f,x=a..b,y=c..d,options);
Trong đó, f: là hàm thực.
x=a..b,y=c..d: khoảng xác định trên trục Ox và Oy.
options: các tùy chọn.
-
scaling=constrained (tỉ lệ hai trục như nhau), unconstrained.
- discont=true: hàm biến thiên gián đoạn.
GVHD: Vương Tấn Sĩ
Trang 16
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
-
style=point (điểm),line (liền nét), patch,patchnogrid.
-
symbol=box, cross, circle, point, diamond.
-
linestyle=[m,n]: nét vẽ liên tục gạch chấm (solid, dash, dot)
m,n=1(solid),2(dot), 3(dash), 4(dash – dot).
-
numpoints=….: số điểm vẽ.
-
coords=polar: tọa độ cực.
-
axes= none, normal.
-
thickness=0,1,2,3: độ lớn của nét vẽ (mặc nhiên là 0).
-
filled=true: tô nền.
- color= [color1,color2,…]: màu vẽ (red, blue, green, black,..).
- view=[xmin...xmax,ymin..ymax].
- tickmarks=[m,n]: số khoảng chia trên hai trục, m=n=0: không chia
khoảng trên hai trục.(xtickmarks=m,ytickmarks=n)
- title=…: tên đồ thị.
- titlefont=[family, style, size]. Ví dụ: [HELVETICA,BOLD,24].
- labels=[‘Hor’, ‘Ver’]: nhãn trên trục ngang, đứng.
+ Lệnh vẽ và đặt text vào đồ thị
> restart;
> with(plots):
> dothi:=plot(f,x=a..b,y=c..d):
> t1:=textplot([x-coord,y-coord, ‘Text’]):
> t2:= textplot([x-coord,y-coord, ‘Text’]):
> display([dothi,t1,t2],title= ‘Text’);
+ Các ví dụ
1. Vẽ đồ thị hàm sin(x)
> restart;
> plot(sin(x), x=-Pi..Pi, y=-1..1);
GVHD: Vương Tấn Sĩ
Trang 17
SVTH: Nguyễn Quốc Toản
Giải phương trình đạo hàm riêng sử dụng phần mềm Maple 12.
2. Vẽ đồ thị hàm sin(x) với x=[0,]
> restart;
> plot(sin(x), x=0..infinity, color=blue);
7.1.2 Đồ thị hàm trong tọa độ cực
+ Lệnh vẽ : > plot([r(t),theta(t),t=t1..t2],x=a..b,y=c..d,coords=polar,options) ;
Trong đó : r(t) là hàm khoảng cách tính từ gốc, xác định trong khoảng t=t1..t2
x=a..b,y=c..d : khoảng xác định trên trục Ox và Oy
options : các tùy chọn
-
scaling=contrained : tỉ lệ hai trục như nhau
-
style=point, line: vẽ dạng điểm, đường.
Có thể dùng lệnh: > with(plots):
> polarplot( r(),=0..0);
+ Ví dụ: Vẽ đồ thị của các hàm sau:
1. Hàm r(t)=1, (t)=t, với t=0..2
> plot([1,t,t=0..2*Pi],scaling=constrained,style=point,
> symbol=diamond,coords=polar,thickness=2);
GVHD: Vương Tấn Sĩ
Trang 18
SVTH: Nguyễn Quốc Toản