Tải bản đầy đủ (.doc) (16 trang)

ỨNG DỤNG MAPLE XÂY DỰNG HỆ THỐNG GIẢI TOÁN LỚP 12

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.08 MB, 16 trang )

Đại Học Quốc Gia TP.HCM
Trường Đại Học Công Nghệ Thông Tin
BÁO CÁO CHUYÊN ĐỀ
LẬP TRÌNH SYMBOLIC CHO TRÍ TUỆ NHÂN TẠO
ĐỀ TÀI:
ỨNG DỤNG MAPLE XÂY DỰNG
HỆ THỐNG GIẢI TOÁN LỚP 12
GVHD: PGS. TS Đỗ Văn Nhơn
Học viên: Trịnh Duy Sâm
Mã số: CH1001097
Lớp: Cao học khóa 6
Bình Dương – 01/2013
MỤC LỤC

MỤC LỤC 2
LỜI MỞ ĐẦU 3
PHẦN I. GIỚI THIỆU MAPLE 4
PHẦN II. LÝ THUYẾT VỀ KHẢO SÁT HÀM SỐ 10
PHẦN III. ỨNG DỤNG MAPLE GIẢI BÀI TOÁN KHẢO SÁT HÀM SỐ 11
KẾT LUẬN 15
15
TÀI LIỆU THAM KHẢO 16
Trang: 2
LỜI MỞ ĐẦU

Cùng với sự phát triển như vũ bão của Công nghệ Thông tin trong những năm
gần đây. Con người cũng muốn máy móc có được những khả năng suy nghĩ, tư
duy và thậm chí là có biểu hiện tình cảm giống như con người và làm việc như bộ
não của con người. Cũng vì thế ngành Trí tuệ nhân tạo ra đời và ngày càng phát
triển. Tuy nhiên đi kèm với nó là những thách thức cực kỳ lớn về mặt lập trình,
cần phải có một đội ngũ cộng tác lẫn nhau hoặc những chuyên viên lập trình giỏi


mới có thể đáp ứng được những yêu cầu này. Nhưng Maple đã ra đời và giải quyết
được những vấn đề trên, việc lập trình giờ đây đã nhẹ nhàng hơn do sự mạnh mẽ
của công cụ này. Trong bài tiểu luận này tôi xin được giới thiệu về việc ứng dụng
lập trình symbolic vào trí tuệ nhân tạo. Cụ thể trong bài tiểu luận là ứng dụng lập
trình Maple vào giải quyết bài toán đại số cấp trung học phổ thông. Dùng Maple
16 đê lập trình giải quyết bài toán “ Khảo sát hàm số”.
Em xin được gửi lời cám ơn chân thành đến thầy PGS. TS Đỗ Văn Nhơn đã
tận tình giảng dạy và hướng dẫn cho chúng em trong suốt thời gian học tại trường để
có thể hoàn thành được tiểu luận này và có được những kiến thức quý báu làm hành
trang vào đời.
Chân thành cám ơn
Trịnh Duy Sâm
Trang: 3
PHẦN I. GIỚI THIỆU MAPLE

1. GIỚI THIỆU VỀ MAPLE:
Khái niệm đầu tiên về Maple xuất phát từ một cuộc họp vào tháng 11 năm 1980 tại
Đại học Waterloo. Những nhà nghiên cứu tại đại học muốn mua một máy tính đủ
mạnh để chạy Macsyma. Thay vào đó, người ta quyết định họ sẽ phát triển hệ thống
đại số máy tính riêng để có thể chạy được những máy tính có giá thành hợp lý hơn.
Do đó, dự án bắt đầu với mục tiêu là tạo ra một hệ thống đại số hình thức mà các nhà
nghiên cứu và sinh viên có thể truy cập được.
Sự phát triển đầu tiên của Maple được tiến hành rất nhanh, với phiên bản hạn chế
đầu tiên xuất hiện vào tháng 12 năm 1980. Những nhà nghiên cứu đã thử nghiệm và
loại bỏ nhiều ý tưởng khác nhau để tạo ra một hệ thống liên tục cải tiến. Maple được
trình diễn đầu tiên tại những hội nghị bắt đầu vào năm 1982.
Đến cuối năm 1983, trên 50 trường đại học đã cài Maple trên máy của họ. Do số
lượng hỗ trợ và yêu cầu giấy phép lớn, vào năm 1984, nhóm nghiên cứu đã sắp xếp
với WATCOM Products Inc để cấp phép và phân phối Maple.
Vào năm 1988, do số lượng hỗ trợ ngày càng tăng, Waterloo Maple Inc. được

thành lập. Mục tiêu đầu tiên của công ty là quản lý những bản phân phối phần mềm.
Cuối cùng, công ty cũng phải mở ra phòng R&D ở đó khá nhiều sự phát triển cho
Maple được thực hiện đến ngày nay. Sự phát triển đáng kể của Maple tiếp tục diễn rại
những phòng thí nghiệm trường đại học, bao gồm: Phòng thí nghiệm Tính toán hình
thức tại Đại học Waterloo; Trung tâm nghiên cứu Tính toán hình thức Ontario tại Đại
học Tây Ontario; và những phòng thí nghiệm khắp nơi trên thế giới.
Vào năm 1989, giao diện đồ họa người dùng đầu tiên của Maple được phát triển và
bao gồm trong bản 4.3 dành cho Macintosh. Những phiên bản trước của Maple chỉ
gồm giao diện dòng lệnh với ngõ ra hai chiều. Bản X11 và Windows với giao diện
mới tiếp bước vào năm 1980 với Maple V.
Vào năm 1999, với việc phát hành Maple 6, Maple đã đưa vào một số Thư viện Số
học NAG, được mở rộng độ chính xác ngẫu nhiên.
Trang: 4
Vào năm 2003, giao diện "chuẩn" hiện nay được giới thiệu trong Maple 9. Giao
diện này được viết chủ yếu bằng Java (mặc dù có nhiều phần, nhưng luật cho việc gõ
công thức toán học, được viết bằng ngôn ngữ Maple). Giao diện Java bị phê phán là
chậm[3]; những sự phát triển được thực hiện trong các bản sau, mặc dù tài liệu Maple
11 documentation[4] khuyến cáo giao diện (“cổ điển”) trước đây dành cho người với
bộ nhớ vật lý ít hơn 500 MB. Giao diện cổ điển này không còn được bảo trì.
Giữa 1995 và 2005 Maple đã mất khá nhiều thị phần vào tay đối thủ do có giao
diện người dùng yếu hơn[5]. Nhưng vào năm 2005, Maple 10 giới thiệu một “chế độ
văn bản” mới, như một phần của giao diện chuẩn. Tính năng chính của chế độ này là
phép toán được đưa vào bằng ngõ nhập hai chiều, do đó nó xuất hiện tương tự như
công thức trong sách. Vào năm 2008, Maple 12 đã thêm những tính năn giao diện
người dùng giống như Mathematica, gồm có những kiểu trình bày theo mục đích đặc
biệt, quản lý phần đầu và cuối trang, so trùng mở đóng ngoặc, vùng thực hiện tự động,
mẫu hoàn thành lệnh, kiểm tra cú pháp và vùng tự động khởi tạo. Những tính năng
khác được thêm để làm cho Maple dễ dùng hơn như một hộp công cụ Maple.
Maple là một gói phần mềm toán học thương mại phục vụ cho nhiều mục đích. Nó
phát triển lần đầu tiên vào năm 1980 bởi Nhóm Tính toán Hình thức tại Đại học

Waterloo ở Waterloo, Ontario, Canada.
Từ năm 1988, nó đã được phát triển và thương mại hóa bởi Waterloo Maple Inc.
(còn được biết đến với tên gọi Maplesoft), một công ty Canada cũng có trụ sở tại
Waterloo, Ontario. Phiên bản hiện tại là Maple 16. Maple có cách cài đặt đơn giản,
chạy được trên nhiều hệ điều hành, có cấu trúc linh hoạt để sử dụng tối ưu cấu hình
máy và có trình trợ giúp (help) rất dễ sử dụng. Từ phiên bản 7, Maple cung cấp ngày
càng nhiều các công cụ trực quan, các gói lệnh tự học gắn liền với toán học phổ thông
và đại học. Ưu điểm đó làm cho nhiều nước trên thế giới lựa chọn sử dụng Maple
cùng các phần mềm toán học khác trong dạy học toán trước đòi hỏi của thực tiễn và sự
phát triển của giáo dục.
Ngoài các tính năng tính toán và minh hoạ rất mạnh mẽ bằng các câu lệnh riêng
biệt (thường chỉ cho ta kết quả cuối cùng), Maple còn là một ngôn ngữ lập trình
hướng thủ tục (procedure).
Thủ tục là một dãy các lệnh của Maple theo thứ tựmà người lập trình định sẵn để
xử lí một công việc nào đó, khi thực hiện thủ tục này Maple sẽ tự động thực hiện các
lệnh có trong thủ tục đó một cách tuần tự và sau đó trả lại kết quả cuối cùng.
2. MỘT SỐ TÍNH NĂNG CƠ BẢN CỦA MAPLE
Trang: 5
Người dùng có thể nhập biểu thức toán học theo các ký hiệu toán học truyền
thống. Có thể dễ dàng tạo ra những giao diện người dùng tùy chọn. Maple hỗ trợ cho
cả tính toán số và tính toán hình thức, cũng như hiển thị. Nhiều phép tính số học được
thực hiện dựa trên thư viện số học NAG; trong Maple, các chương trình con NAG đã
được mở rộng để cho phép độ chính xác ngẫu nhiên lớn. Các ví dụ về tính toán hình
thức sẽ được trình bày trong phần sau.
Maple cũng có một ngôn ngữ lập trình cấp cao đầy đủ. Cũng có giao diện cho
những ngôn ngữ khác (C, Fortran, Java, MatLab, và Visual Basic). Cũng có một giao
diện dành cho Excel.
Kiến trúc
Phần lớn chức năng toán học của Maple được viết bằng ngôn ngữ Maple, và được
thông dịch bởi nhân Maple. Nhân Maple được viết bằng C. Maple chạy trên tất cả các

hệ điều hành chính.
Ngôn ngữ lập trình Maple là một ngôn ngữ kiểu động. Cũng giống như các hệ
thống đại số máy tính, các biểu thức hình thức được lưu trữ trong bộ nhớ theo đồ thị
không chu trình có hướng (DAG). Ngôn ngữ cho phép các biến có phạm vi nhất định
(lexical scoping). Ngôn ngữ có hình thức lập trình hàm, nhưng cũng có hỗ trợ đầy đủ
cho lập trình truyền thống, theo kiểu mệnh lệnh.
Một điều lạ đối với chương trình thương mại, đa số mã nguồn đều có thể xem tự
do.
Nguồn gốc tên gọi
Tên "Maple" không phải là tên viết tắt hoặc từ cấu tạo bằng chữ đầu, mà chỉ đơn
giản là để chỉ hình tượng Lá phong (tiếng Anh: maple) trên Quốc kỳ Canada.
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ờigian 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óiplot), 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
Ví dụ về mã Maple:
+ Tính toánc ácsố lớn, các biểu thức cần độ chính xác cao
>100!:
Đáp án :
933262154439441526816992388562667004907159682643816214685929638952175
999932299156089414639761565182862536979208272237582511852109168640000
00000000000000000000
>2^64:
Trang: 6
Đáp án : 18446744073709551616
>evalf(Pi,500):
Đáp án :

3.1415926535897932384626433832795028841971693993751058209749445923078
164062862089986280348253421170679821480865132823066470938446095505822
317253594081284811174502841027019385211055596446229489549303819644288
109756659334461284756482337867831652712019091456485669234603486104543
266482133936072602491412737245870066063155881748815209209628292540917
153643678925903600113305305488204665213841469519415116094330572703657
595919530921861173819326117931051185480744623799627495673518857527248
912279381830119491
+ Vẽ đồ thị các hàm số
>with(plots):
Warning, thenamechangecoordshasbeen redefined
>with(plottools):Warning, theassigned namearrownowhasaglobalbinding
>plot(x^3+4*x^2-1,x=-10 5,y=-10 15,thickness=2,numpoints=1000):
+ Tính đạo
hàm, tích phân các
hàm số
>diff(sin(2*x^2-1),x):
Đáp án :
>int(sin(x)*cos(x),x):
Thiết kế các đối tượng 3 chiều
>tubeplot([10*cos(t),10*sin(t),0,t=0 2*Pi,radius=2*cos(7*t),numpoints=120,tube
points=24],
scaling=CONSTRAINED):
>tubeplot({[10*cos(t),10*sin(t),0,t=0 2*Pi,radius=2*cos(7*t),numpoints=120,tub
epoints=24]
,[0,10+5*cos(t),5*sin(t),t=0 2*Pi,radius=1.5,numpoints=50,
Trang: 7
tubepoints=18]},scaling=CONSTRAINED):
Tìm .
integrate(cos(x/a), x);

Đáp án:
Tính lời giải chính xác cho phương trình vi phân thường với điều kiện ban đầu
dsolve( {diff(y(x),x,x) - 3*y(x) = x, y(0)=0, D(y)(0)=2}, y(x) );
Đáp án:
Tính toán ra số nghiệm của phương trình bắt đầu tại điểm ; viết kết quả với 75 số
sau dấu chấm.
evalf[75](RootOf(exp(x)=x^2+2,x,-1));
Đáp án:
1.3190736768573653544178991095208484644219667808254976692560890049051
2707635
Tính định thức của ma trận.
M:= Matrix([[1,2,3], [a,b,c], [x,y,z]]); # Ma trận mẫu
with(LinearAlgebra):Determinant(M);
Đáp án: bz − cy + 3ay − 2az + 2xc − 3xb
Vẽ x2 + y2 với x và y đi từ -1 đến 1
plot3d(x^2+y^2,x=-1 1,y=-1 1);
Giải hệ phương trình vi phân cục bộ
with .
eqn1:= diff(v(x, t), x) = -u(x,t)*v(x,t):
eqn2:= diff(v(x, t), t) = -v(x,t)*(diff(u(x,t), x))+v(x,t)*u(x,t)^2:
eqn3:= diff(u(x,t), t)+2*u(x,t)*(diff(u(x,t), x))-(diff(diff(u(x,t), x), x)) = 0:
pdsolve({eqn1,eqn2,eqn3,v(x,t)<>0},[u,v]): op(%);
Đáp án:
Tìm hàm f thỏa mãn phương trình tích phân .
eqn:= f(x)-3*Integrate((x*y+x^2*y^2)*f(y), y=-1 1) = h(x):
intsolve(eqn,f(x));
Đáp án:
Các xây dựng lập trình mệnh lệnh mẫu:

myfac := proc(n)

local out, i;
out := 1;
if n < 0 then
error "input must be nonnegative"
else
Trang: 8
for i from 1 to n do
out := out * i
end do;
out
end if
end proc;
Trang: 9

PHẦN II. LÝ THUYẾT VỀ KHẢO SÁT HÀM SỐ
Để khảo sát hàm số:
- Xác định hàm số đó thuộc dạng nào.
- Tiến hành các bước khảo sát hàm số đó.
Các bước khảo sát và vẽ đồ thị hàm số
B1: Tìm tập xác định
- Hàm số bậc 3 và bậc 4 có tập xác định là

- Hàm số nhất biến
dcx
bax
y
+
+
=
có tập xác định là







−ℜ
c
d
\
B2: Sự biến thiên
Tính y’ , giải phương trình y’=0
Tính các giới hạn (tiệm cận_nếu có):
- Đối với hàm số bậc 3 và bậc 4:
Tính
)(lim xf
x +∞>−

)(lim xf
x −∞>−
.
- Đối với hàm số nhất biến:
dcx
bax
y
+
+
=
.
+ Tính các giới hạn:

c
a
dcx
bax
x
=
+
+
=
+∞>−
lim

c
a
dcx
bax
x
=
+
+
=
−∞>−
lim
;
Suy ra đồ thị có tiệm cận ngang là
c
a
y =
+ Tính các giới hạn:
)(lim

)(
±∞=
+
+
=
−>−
dcx
bax
c
d
x
Suy ra đồ thị có tiệm cận đứng là
c
d
x
−=
.
Bảng biến thiên
Từ Bảng biến thiên suy ra:
- Các khoảng đồng biến, nghịch biến của hàm số
- Các điểm cực trị (nếu có) của hàm số.
B3: Vẽ đồ thị
- Tìm giao điểm của đồ thị với trục Oy(cho x=0 , tính x );
- Tìm giao điểm (nếu có) của đồ thị với trục Ox( cho y=0 , tính x bằng
cách giải phương trình f(x)=0 )
- Chú ý đến tính đối xứng của đồ thị:
đồ thị hàm số bậc 3 nhận trung điểm của cực đại và cực tiểu làm tâm đối
xứng;
đồ thị hàm số bậc 4 (trùng phương) nhận trục Oy làm trục đối xứng;
đồ thị hàm số nhất biến nhận giao điểm 2 đường tiệm cận làm tâm đối

xứng.
Trang: 10
PHẦN III. ỨNG DỤNG MAPLE GIẢI BÀI TOÁN
KHẢO SÁT HÀM SỐ
1 Mô tả bài toán :
- Chương trình được chạy với:
o Input: hàm số (hàm số đa thức hoặc hàm số phân thức)
o Output: Các bước tiến hành khảo sát hàm số
- Chú ý:
o Hàm đa thức (chỉ xét hàm số bậc 3, không xét hàm số bậc 4 trùng
phương)
o Hàm phân thức (chỉ xét hàm số bậc 1)
- Thực thi chương trình gọi thủ tục
Ví dụ:
Khaosathamdathuc(y = x
3
+2x
2
-9)
2 Thiết kế các thủ tục :
- Thủ tục khảo sát hàm số đa thức

Trang: 11
Trang: 12
Trang: 13
Thủ tục khảo sát hàm số phân thức
Trang: 14
-

KẾT LUẬN


Maple đã và đang phát triển mạnh mẽ, nay đã là phiên bản thứ 16 và ngày càng
được sử dụng nhiều, từ sinh viên, giáo viên đến các chuyên gia lập trình. Bởi ưu điểm
của nó 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óiplot), 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 rất hiệu quả. Không dừng lại ở đó Maple được
ứng dụng như một công công cụ mạnh mẽ và hiệu quả để lập trình Trí Tuệ Nhân Tạo.
Trong bài tiểu luận này em đã nêu lên một phần nhỏ trong các bài toán trung học phổ
thông đó là khảo sát hàm số. Hướng phát triển có thể phát triển hệ thống giải tất cả các
bài toán Đại số và Hình học để giúp giáo viên và học sinh có thể tham khảo và học
môn Toán tốt hơn và đạt kết quả cao trong các kỳ thi.
Xin cám ơn thầy PGS.TS Đỗ Văn Nhơn đã tận tình giúp đỡ em hoàn thành bài
báo cáo, cảm ơn các thầy cô và các bạn trong lớp đã giúp đỡ tôi trong lúc thực hiện
để có được kết quả này.
Học viên thực hiện:
Trịnh Duy Sâm

Trang: 15
TÀI LIỆU THAM KHẢO

PGS.TS Đỗ Văn Nhơn (2011). Bài giảng Lập trình Symbolic cho trí tuệ nhân tạo.
Richard E Klima, Neil Sigmon, Ernest Stitzinger (1999), Applications of Abstract
Algebra with MAPLE.
Website
Website
Trang: 16

×