Mục tiêu của bài báo cáo này là sử dụng phần mềm Maple để phân tích bài toán khảo sát hàm số.. + Sử dụng các gói chuyên dụng của Maple để giải quyết các bài toán cụ thể như: vẽ đồthị gói
Trang 1MỤC LỤC
CHƯƠNG I: TỔNG QUAN VỀ MAPLE 4
I.1 GIỚI THIỆU VỀ MAPLE 4
I.2 CÁC LỆNH CƠ BẢN TRONG MAPLE 4
I.2.1 Tính toán số học thông dụng 4
I.2.2 Tính toán với độ chính xác theo yêu cầu 4
I.2.3 Các thao tác với số nguyên 5
I.2.4 Giải phương trình 8
I.2.5 Khái niệm biến số, hằng số 8
I.2.6 Triển khai biểu thức: 9
I.2.7 Phân tích đa thức thành nhân tử 10
I.2.8 Đơn giản biểu thức đại số 11
I.2.9 Tối giản phân thức 11
I.2.10 Thay giá trị cho biến trong biểu thức 12
I.2.11 Chuyển đổi dạng biểu thức 12
I.3 CẤU TRÚC DỮ LIỆU 15
I.3.1 Dãy biểu thức ( Expression Sequence) 15
I.3.2 Danh sách (List) 15
Ví dụ 1 16
I.3.3 Tập hợp (Set) 16
Ví dụ 1 16
I.3.4 Mảng (Array) 16
Ví dụ 17
I.3.5 Bảng (Table) 17
I.3.6 Các hàm thông dụng trong cấu trúc dữ liệu 17
b Hàm tìm max,min một dãy 18
c Hàm map 18
Ví dụ 18
d Hàm add,mul 18
e Hàm subsop 18
I.4 CÁC VÒNG LẶP TRONG MAPLE 18
I.4.1 Vòng lặp While 18
I.4.2 Vòng lặp for 18
I.4.3 Lệnh điều kiện if 19
Trang 2I.4.4 Lệnh break 19
I.4.5 Lệnh next 19
I.4.6 Sử dụng các hàm RETURN, ERROR 19
I.4.7 Khai báo chu trình 20
I.4.8 Phạm vi các biến (biến toàn cục, biến cục bộ và tham biến) 21
CHƯƠNG II: ỨNG DỤNG MAPLE 22
II.1 Mô tả chương trình 22
II.2 Cơ sở lý thuyết 22
II.2.1 Khảo sát hàm số: 22
II.2.2 Tìm giá trị tham sô m để đồ thị có cực trị (cực đại và cực tiểu) 22
II.3 Procedure để vẽ đồ thị và biện luận m 23
THAM KHẢO 24
[1] PGS.TS Đỗ Văn Nhơn Bài giảng mông lập trình symbolic ĐH CNTT TPHCM 24
[2] Thư viện của phần mềm maple 24
[3] http://toan.hoctainha.vn/Thu-Vien/The/khao-sat-va-ve-do-thi-ham-so 24
Trang 3Lời nói đầu
Maple là một hệ thống tính toán trên các biểu thức đại số và minh họa toán học mạnh mẽ
Maple cung cấp nhiều công cụ trực quan, các gói lệnh tự học gắn liền với toán họcphổ thông và đại học
Qua quá trình nghiên cứu Maple, tôi nhận thấy rằng ngoài tính năng tính toán mạnh trong toán học, Maple còn là ngôn ngữ lập trình hướng thủ tục Thủ tục là một dãy các lệnh do người dùng định sẵn để xử lý
Mục tiêu của bài báo cáo này là sử dụng phần mềm Maple để phân tích bài toán khảo sát hàm số
Tôi xin chân thành cảm ơn PGS.TS Đỗ Văn Nhơn đã tận tình truyền đạt những kiến thức quý báo
Chân thành cảm ơn!
Vũ Công TâmTP.HCM 31-01-2013
Trang 4NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 5
CHƯƠNG I: TỔNG QUAN VỀ MAPLE
Maple là một phần mềm tính toán do hãng Maple Soft, một bộ phận chủ yếu của liên hợp công ty Waterloo Maple phát triển
Cho đến nay Maple đã được phát triển qua nhiều phiên bản khác nhau và ngày càng hoàn thiện
Với phần mềm Maple, chúng ta có thể:
+ Thực hiện các tính toán với khối lượng lớn, với thời gian nhanh và độ chính xác cao + Sử dụng các gói chuyên dụng của Maple để giải quyết các bài toán cụ thể như: vẽ đồthị (gói plot), hình học giải tích (gói geometry), đại số tuyến tính (gói linalg),
+ Thiết kế các đối tượng 3 chiều
+ v.v
1.2.1 Tính toán số học thông dụng.
Các phép toán số học: +, -, *, /
Lũy thừa: ^, giai thừa: x!
Logarit: ln(x), log[a](b), exp(x)
Các hàm lượng giác: sin(x), cos(x), tan(x), cot(x),
Một số hàm khác: abs(x) - |x|, sqrt(x) - căn bậc 2 của x
1.2.2 Tính toán với độ chính xác theo yêu cầu
Trang 6>
> evalf(Pi);
> evalf(cos(1) + sin(1)*I);
> evalf(3/4*x^2+1/3*x-sqrt(2));
1.2.3 Các thao tác với số nguyên.
Phân tích một số n thành thừa số nguyên tố: lệnh ifactor(n);
Trang 7Kiểm tra một số n có phải là số nguyên tố không?: lệnh isprime(n);
Trang 8Tìm bội số chung nhỏ nhất của 2 số nguyên dương a, b: lệnh lcm(a,b);
Trang 91.2.5 Khái niệm biến số, hằng số
Trong Maple, biến số được sử dụng thoải mái mà không cần khai báo, định nghĩa trước:
Biến số, hằng số được đặt tên thỏa mãn một số quy tắc sau:
+ Không bắt đầu bằng chữ số
+ Không chứa khoảng trắng và một số ký tự đặc biệt như: %,^,&,*,$,#,
+ Không được trùng với tên một số hàm và lệnh của Maple: sin, cos, ln, min, max,
Một biến số sẽ trở thành hằng số ngay khi nó được gán cho một giá trị nào đó.Nếu muốn biến một hằng số trở lại biến số, ta dùng phép gán: ten_bien:='ten_bien';
1.2.6 Triển khai biểu thức:
expand(expr , expr1 , expr2 , , exprn )
Trang 13> normal( 1/x+x/(x+1) );
> normal( 1/x+x/(x+1), expanded );
1.2.10 Thay giá trị cho biến trong biểu thức
Cú pháp: subs(bien = gia_tri , bieu_thuc);
Trang 14binomial boolean_function boolean_operator bytes
Elliptic_related elsymfun equality erf
FormalPowerSeries FromMma FromMmaNoteboo
function_rules GAMMA GAMMA_related global
listlist listlist(deprecated) ln local
bject MeijerG metric metric(deprecated)MobiusR
Trang 15octal ODE ODEs or
PhysicsVectors piecewise PLOT3Doptions PLOToptions
sincos sqrfree StandardFunctions std
tan temperature to_special_function trig
Trang 16> convert(s, polynom); # Drop the order term
I.3 CẤU TRÚC DỮ LIỆU.
I.3.1 Dãy biểu thức ( Expression Sequence)
Dãy là một cấu trúc dữ liệu gồm:
Các phần tử ngăn cách nhau bởi dấu ,
Các phần tử của dãy có thể là bất cứ gì
Maple áp dụng sự định giá đầy đủ khi định giá một dãy
I.3.2 Danh sách (List)
Danh sách là dãy được bao trong cặp dấu ngoặc vuông.Các phần tử của danh sách co thể là bất cứ gì
Ví d ụ 1
Trang 17>
I.3.3 Tập hợp (Set)
Tập hợp là dãy được bao trong cặp dấu ngoặc nhọn
Trong tập hợp thứ tự các phần tử không quan trọng
Cac phép tóan trên tập hợp như union(hợp),intersect(giao),minus(trừ)
Ví d ụ 1
>
I.3.4 Mảng (Array)
Mảng là cấu trúc dữ liệu bao gồm
Một hay nhiều chiều
Miền chỉ mục của các chiều phải là khỏang số nguyên
Các phần tử của mảng có thể là mọi thứ
Cú pháp : > array(indexfcn , bounds ,list);
- indexfcn (tùy chọn) : hàm chỉ số
- bounds (tùy chọn) : dãy của các khỏang
- list (tùy chọn) : danh sách các giá trị khởi đầu
Ví d ụ
> v := array(1 4):
Trang 18for i to 3 do v[i] := i^2 end do:
* L (tùy chọn): dãy hay tập hợp gồm các phần tử của bảng
Nếu L có dạng danh sách hay tập hợp các đẳng thức thì các vế trái sẽ là các chỉ số của mảng ; các phần tử vế phải sẽ là các phần tử của bảng
Trái lại, các chỉ số là các số nguyên 1,2,3
rand(m n)( ): sinh số nguyên ngẫu nhiên trong khỏang m n
rand( ): sinh số nguyên ngẫu nhiên không âm có 12 chữ số
randomize( ): gieo giống lại bộ sinh số
b Hàm tìm max,min một dãy
Cú pháp: > max( day );
> min( day );
Trang 19c Hàm map
Ví d ụ
> map(f, x + y*z);
d Hàm add,mul
add dùng để cộng dãy các giá trị
mul dùng để nhân dãy các giá trị
Cú pháp: add(f, i = m n) add(f, i = x) add(f,
i in x) mul(f, i = m n) mul(f, i = x) mul(f, i in x)
Hoặc dạng phát biểu khác:
for name in expressiondo
statement sequence
Trang 20I.4.3 Lệnh điều kiện if
Cấu trúc cú pháp:
if condition thenstatement sequence
| elif condition then statement sequence |
| else statement sequence |fi;
Ghi chú: Các câu lệnh trong cặp dấu ngoặc đứng là các lệnh tuỳ chọn Thí dụ: biểu
thức | statement | cho biết rằng statement là một câu lệnh tuỳ chọn
I.4.6 Sử dụng các hàm RETURN, ERROR
Hàm RETURN được sử dụng để cho giá trị hàm trước khi thoát khỏi chu trình.Nếu không có lệnh RETURN, chu trình tự động cho kết quả của phép tính cuối cùngtrong chu trình
Hàm ERROR được sử dụng để đưa thông điệp lỗi ra màn hình từ bên trong chutrình
Maple là một ngôn ngữ lập trình hướng chu trình (procedure) Chúng ta có thể làmviệc với Maple bằng hai chế độ khác nhau: Chế độ tương tác trực tiếp thông qua việcnhập từng lệnh đơn lẻ ngay tại dấu nhắc lệnh của Maple và nhận được ngay kết quả củalệnh đó Chế độ chu trình được thực hiện bằng cách đóng gói một dãy các lệnh xử lí cùngmột công việc vào trong một chu trình (procedure) duy nhất, sau đó ta chỉ cần gọi chutrình này và Maple tự động thực hiện các lệnh có trong chu trình đó một cách tuần tự vàsau đó trả lại kết quả cuối cùng
Trang 21Maple chứa một lượng rất lớn các hàm tạo sẵn đáp ứng cho những yêu cầu tínhtoán khác nhau trong nhiều lĩnh vực Các hàm này được lưu trữ trong các gói chu trình(package) và người sử dụng có thể dễ dàng gọi đến mỗi khi cần thiết Tuy nhiên, ngườidùng Maple có thể tự tạo cho riêng mình những gói chu trình cũng như có thể trao đổidùng chung những gói chu trình nào đấy, phục vụ cho công việc mang tính đặc thù riêngcủa mình
Các khái niệm cơ bản cần phải nắm vững để tạo ra một chu trình (procedure) là:Cấu trúc proc() end; cùng với các khai báo trong cấu trúc này (global, local, option, )
Các cấu trúc dữ liệu và các hàm có liên quan (dãy-sequence, tập hợp-set, danhsách-list, mảng-array, bảng-table)
Các hàm lập trình cơ bản (đã nêu ở trên) và các hàm liên quan đến việc xử lí dữliệu (eval, evalf, subs, map, convert, )
I.4.7 Khai báo chu trình
Lời gọi khai báo một chu trình:
procedure_name:=proc(parameter_sequence)[local local_sequence]
[global global_sequence]
[options options_sequence]
statements_sequence;
end;
Giải thích các khai báo:
parameter_name: Là một dãy các kí hiệu, ngăn cách nhau bởi các dấu phẩy, chứatên các tham biến truyền cho chu trình
local_sequence: Là một dãy các tên được khai báo là biến cục bộ trong chu trình,
nó chỉ có giá trị sử dụng trong phạm vi chu trình đang xét (local được sử dụng để khaibáo cho các biến chỉ sử dụng bên trong một chu trình)
global_sequen: Dãy các tên biến toàn cục có giá trị sử dụng ngay cả bên ngoài chutrình
options_sequence: Dãy các tuỳ chọn cho một chu trình
statements_sequence: Dãy các câu lệnh do người lập trình đưa vào
Trang 22Tham biến (parameter) là các biến được đặt giữa hai dấu ngoặc trong biểu thứcproc( ) Tham biến được dùng để nhận dữ liệu truyền cho chu trình khi gọi chu trình đó.
Ví dụ ta có thể khai báo chu trình tính tổng của 2 số [tong:=proc(x,y) x+y; end.] thì khigọi chu trình này để tính tổng của hai số 10 và 5 ta phải truyền các dữ liệu này cho cáctham biến (cho x nhận giá trị là 10, y nhận giá trị là 5), tức là tại dấu nhắc lệnh ta phảiviết tong(10, 5); và sau khi thực hiện chu trình trả lại kết quả là 15
Tham biến có tính cục bộ: chúng chỉ được sử dụng bên trong chu trình đã đượckhai báo, bên ngoài chu trình này chúng không mang ý nghĩa gì
Kiểu của tham biến có thể được khai báo trực tiếp
I.4.8 Phạm vi các biến (biến toàn cục, biến cục bộ và tham biến)
Biến toàn cục
Biến toàn cục được khai báo sau từ khoá global trong khai báo chu trình
Biến toàn cục được khai báo bên trong một chu trình, nhưng có phạm vi giá trịtrong toàn bộ chương trình, tức là bên ngoài phạm vi của chu trình mà nó được khai báotrong đó
Biến cục bộ
Biến cục bộ được khai báo sau từ khoá local trong khai báo chu trình
Biến cục bộ chỉ có giá trị bên trong chu trình mà nó được khai báo Ngoài chutrình này nó không mang ý nghĩa gì
Trang 23CHƯƠNG II: ỨNG DỤNG MAPLE II.1 Mô tả chương trình
Chương trình giải 1 bài toán về hàm số gồm những bài toán nhỏ sau:
Khảo sát và vẽ đồ thị hàm số dạng hàm bậc hai chia cho bậc nhất khi biết giá trị tham số m.
Tìm giá trị tham số m để hàm số đại cực trị (cực đạ và cực tiểu).
II.2 Cơ sở lý thuyết
II.2.1 Khảo sát hàm số:
- Tìm tập xác định
- Nêu tính chất đặc biệt của hàm số (nếu có) như: hàm số chẵn, hàm số lẻ, hàm số tuần hoàn
- Xét sự biến thiên của hàm số:
+ Tìm giới hạn tại vô cực và giới hạn vô cực (nếu có) của hàm số
+ Tìm các đường tiệm cận của đồ thị (nếu có)
+ Lập bảng biến thiên: Gồm: tìm đạo hàm, xét dấu,
- Vẽ đồ thị:
+ Vẽ hệ trục toạ độ Đề các vuông góc
+ Xác định các điểm đặc biệt: cực trị, điểm uốn, giao điểm với Ox, Oy
+ Vẽ các đường tiệm cận, trục đối xứng (nếu có)
+ Dựa vào bảng biến thiên và các điểm, đường đã xác định để vẽ đồ thị
II.2.2 Tìm giá trị tham sô m để đồ thị có cực trị (cực đại và cực tiểu)
Để đồ thị hàm số có cực đại và cực tiểu thì phương trình đạo hàm bậc nhất y’=0 có hai nghiệm phân biệt
1 Điều này suy ra của y’ phải lớn hơn không
2 Giải bất phương trình > 0 theo m
3 Từ đây suy ra giá trị m để Delta > 0, cũng là giá trị m để phương trình y’=0 có 2 nghiệm phân biệt
II.3 Procedure để vẽ đồ thị và biện luận m
Trang 25THAM KHẢO
[1] PGS.TS Đỗ Văn Nhơn Bài giảng mông lập trình symbolic ĐH CNTT TPHCM
[2] Thư viện của phần mềm maple
[3] http://toan.hoctainha.vn/Thu-Vien/The/khao-sat-va-ve-do-thi-ham-so