Tải bản đầy đủ (.pdf) (14 trang)

GIỚI THIỆU MAPLE VÀ ỨNG DỤNG MAPLE TÌM ĐIỂM CỐ ĐỊNH CỦA MỘT HỌ ĐƯỜNG CONG

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 (1.83 MB, 14 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
CHƢƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG
________________


BÀI THU HOẠCH MÔN HỌC
LẬP TRÌNH TÍNH TOÁN HÌNH
THỨC(SYMBOLIC)
ĐỀ TÀI: GIỚI THIỆU MAPLE VÀ ỨNG
DỤNG MAPLE TÌM ĐIỂM CỐ
ĐỊNH CỦA MỘT HỌ ĐƢỜNG
CONG




Giảng viên hướng dẫn: PGS.TS Đỗ Văn Nhơn
Học viên thực hiện: Lƣơng Trí Quân
MSHV: CH1101125




TP. HCM, năm 2013
Bài thu hoạch môn học: Lập trình tính toán hình thức(symbolic)

Học viên: Lương Trí Quân – Lớp Cao Học CNTT K6 Trang 2

MỤC LỤC



LỜI MỞ ĐẦU 3
1. TỔNG QUAN VỀ MAPLE 4
1.1. Lịch sử phát triển 4
1.2. Các phiên bản của Maple 5
1.3. Các chức năng của Maple 6
1.4. Kiến trúc Maple 7
1.5. Lĩnh vực ứng dụng của Maple 7
2. ỨNG DỤNG MAPLE GIẢI BÀI TOÁN “TÌM ĐIỂM CỐ ĐỊNH CỦA MỘT HỌ
ĐƢỜNG CONG” 8
2.1. Phát biểu bài toán 8
2.2. Cách giải bài toán(thuật toán) 8
2.3. Một số ví dụ minh họa thuật toán 9
2.3.1. Ví dụ 1 9
2.3.2. Ví dụ 2 9
2.4. Lập trình thủ tục “tìm điểm cố định của một họ đường cong” trên Maple 10
2.4.1. Giới thiệu các hàm sử dụng trong thủ tục "timdiemcodinh" 10
2.4.2. Xây dựng thủ tục "timdiemcodinh" trong Maple 10
2.4.3. Dữ liệu thử nghiệm(Test thủ tục "timdiemcodinh") 10
3. KẾT LUẬN 13
TÀI LIỆU THAM KHẢO 14




Bài thu hoạch môn học: Lập trình tính toán hình thức(symbolic)

Học viên: Lương Trí Quân – Lớp Cao Học CNTT K6 Trang 3

LỜI MỞ ĐẦU


Ngày nay, mọi người đều biết đến vai trò tiên phong của toán học trong cách mạng khoa
học công nghệ nói riêng và trong nền kinh tế tri thức nói chung. Một thực tế là ở đâu
biết sử dụng toán học như một công cụ làm việc thì ở đó thường thu được những kết quả
bất ngờ. Tuy nhiên, ở nước ta hiện nay toán học vẫn còn ít được sử dụng trong công việc
thường ngày. Một trong những rào cản khiến cho những thành quả của toán học cao cấp
chưa thâm nhập sau sắc vào thực tiễn sản xuất là vì chúng chưa dễ dàng sử dụng. Toán
học cao cấp chỉ có thể đi vào cuộc sống thường ngày nếu các phép tính phức tạp của nó
trở nên khả thi và dễ dàng tương tự như các phép tính trên máy tính điện tử mà không
đòi hỏi các kiến thức về lập trình trên máy tính vốn xa lạ với hầu hết mọi người. Đây là
vấn đề bức xúc đặt ra không chỉ riêng ở nước Việt Nam mà là ở khắp nơi trên thế giới,
kể cả các nước phát triển. Nhờ những nỗ lực chung của rất nhiều chuyên gia trên thế
giới mà một số phần mềm tính toán đã ra đời ngày càng mạnh và ngày càng thân thiện
với người sử dụng như: Maple, Matlab, Matematica. Trong đó Maple là phần mềm được
sử dụng càng ngày càng phổ biến với nhất tính năng cải tiến theo từng version.
Bài thu hoạch này, giới thiệu tổng quan về phần mềm Maple và ứng dụng Maple để
lập trình bài toán “Tìm điểm cố định của một họ đường cong”.

Bài thu hoạch môn học: Lập trình tính toán hình thức(symbolic)

Học viên: Lương Trí Quân – Lớp Cao Học CNTT K6 Trang 4

1. Tổng quan về Maple
1.1. Lịch sử phát triển
 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.
Bài thu hoạch môn học: Lập trình tính toán hình thức(symbolic)

Học viên: Lương Trí Quân – Lớp Cao Học CNTT K6 Trang 5

 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; 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 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. 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.
1.2. Các phiên bản của Maple
Phiên bản
Thời gian ra đời
Maple 1.0
tháng 1, 1982
Maple 1.1
tháng 1, 1982
Maple 2.0
tháng 5, 1982
Maple 2.1
tháng 6, 1982
Maple 2.15
tháng 8, 1982
Maple 2.2
tháng 12, 1982
Maple 3.0
tháng 5, 1983

Maple 3.1
tháng 10, 1983
Maple 3.2
tháng 4, 1984
Maple 3.3
tháng 3, 1985 (phiên bản phát hành
rộng rãi đầu tiên)
Maple 4.0
tháng 4, 1986
Bài thu hoạch môn học: Lập trình tính toán hình thức(symbolic)

Học viên: Lương Trí Quân – Lớp Cao Học CNTT K6 Trang 6

Maple 4.1
tháng 5, 1987
Maple 4.2
tháng 12, 1987
Maple 4.3
tháng 3, 1989
Maple V
tháng 8, 1990
Maple V R2
tháng 11 năm 1992
Maple V R3
15 tháng 3, 1994
Maple V R4
tháng 1, 1996
Maple V R5
1 tháng 11, 1997
Maple 6

6 tháng 12, 1999
Maple 7
1 tháng 7, 2001
Maple 8
16 tháng 4, 2002
Maple 9
30 tháng 6, 2003
Maple 9.5
5 tháng 4, 2004
Maple 10
10 tháng 5, 2005
Maple 11
21 tháng 2, 2007
Maple 12
tháng 5, 2008
Maple 13
2009
Maple 14
2010
Maple 15
2011
Maple 16
2012

1.3. Các chức năng của 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
khác nhau. 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.
Bài thu hoạch môn học: Lập trình tính toán hình thức(symbolic)

Học viên: Lương Trí Quân – Lớp Cao Học CNTT K6 Trang 7

Maple cũng có một ngôn ngữ lập trình cấp cao đầy đủ, có giao diện cho những
ngôn ngữ khác (C, Fortran, Java, MatLab, và Visual Basic)và giao diện dành cho
Excel.
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 plots), hình học giải tích (gói geometry), đại số tuyến tính (gói linalg),
Giải tích (gói student), phương trình vi phân(gói DEtools), lý thuyết số (gói
numtheory), Dữ liệu rời rạc(gói DiscreteTransforms),
Thiết kế các đối tượng 3 chiều.
Minh họa hình học thuận tiện gồm: vẽ đồ thị tĩnh và động của các đường và mặt
được cho bởi các hàm tùy ý trong nhiều hệ tọa độ khác nhau.
Tính toán trên các biểu thức đại số.
Có thể thực hiệc được hầu hết các phép toán cơ bản trong chương trình toán đại
học và sau đại học.
Ngôn ngữ lập trình đơn giản và mạnh mẽ, có khả năng tương tác với các ngôn
ngữ lập trình khác.
Công cụ biên soạn giáo án và bài giảng điện tử, thích hợp với các lớp học tương
tác trực tiếp.
Công cụ hữu ích cho học sinh và sinh viên trong việc tự học.
1.4. Kiến trúc Maple
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 được trên tất
cả các hệ điều hà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.
1.5. Lĩnh vực ứng dụng của Maple
Maple được ứng dụng rộng rãi trong nhiều lĩnh vực: toán, lý, tin học vv…, hỗ trợ
giải các bài toán tin học phức tạp trở nên dễ dàng do cung cấp đầy đủ các cấu trúc dữ
Bài thu hoạch môn học: Lập trình tính toán hình thức(symbolic)

Học viên: Lương Trí Quân – Lớp Cao Học CNTT K6 Trang 8

liệu cần thiết, hỗ trợ giảng dạy toán học được trực quan hơn. Đặc biệt maple còn hỗ
trợ soạn câu hỏi trắc nghiệm.
2. Ứng dụng Maple giải bài toán “Tìm điểm cố định của một họ đường cong”
2.1. Phát biểu bài toán
Cho họ đường cong (C
m
) có phương trình y=f(x,m), trong đó m là tham số. Hãy
tìm những điểm cố định khi m thay đổi? Đây là bài toán rất thông dụng và là một
vấn đề trong bài toán khảo sát sự biến thiên và vẽ đồ thị hàm số.
2.2. Cách giải bài toán(thuật toán)
 Với một giá trị của tham số m ta được một đồ thị của (C
m
) tương ứng. Như
vậy khi m thay đổi thì đồ thị (C
m
) cũng thay đổi theo 2 trường hợp:
 Hoặc mọi điểm của (C
m
) đều di động.

 Hoặc có một vài điểm của (C
m
) đứng yên khi m thay đổi.
 Những điểm đứng yên khi m thay đổi được gọi là điểm cố định của họ
đường (C
m
) . Đó là những điểm mà mọi đường (C
m
) đều đi qua với mọi giá trị
của m.
 Nếu điểm A(x
0
,y
0
) là điểm cố định của đồ thị (C
m
) thì y
0
=f(x
0
,m) thỏa mãn
∀m. Điều này có nghĩa là phương trình y
0
=f(x
0
,m) vô định theo tham số m.
Vậy để tìm các điểm cố định của họ đường (Cm) ta thực hiện các bước sau đây:
Đưa phương trình y=f(x,m) về dạng phương trình theo ẩn m với dạng thức:
Am + B = 0 hoặc Am
2

+ Bm + C = 0
Cho các hệ số bằng 0, ta được hệ phương trình:

hoặc


Ta giải hệ phương trình:

hoặc



- Nếu hệ phương trình (*) vô nghiệm thì (C
m
) không có điểm cố định.
- Nếu hệ phương trình (*) có nghiệm (x
0
,y
0
) thì điểm có tọa độ (x
0
,y
0
) là
(*)
Bài thu hoạch môn học: Lập trình tính toán hình thức(symbolic)

Học viên: Lương Trí Quân – Lớp Cao Học CNTT K6 Trang 9

điểm cố định của (C

m
) .
2.3. Một số ví dụ minh họa thuật toán
2.3.1. Ví dụ 1
Tìm điểm cố định của một họ đường cong (C
m
)
Biến đổi (Cm) về dạng: y(x+m+2)=(m-1)x+m+2
⇔ (1+x-y)m+2-yx-2y-x=0
Tọa độ điểm cố định là nghiệm của hệ phương trình:

Giải hệ phương trình trên ta có hai điểm cố định:

2.3.2. Ví dụ 2
Tìm điểm cố định của một họ đường cong (C
m
)

Biến đổi (C
m
) về dạng:

Tọa độ điểm cố định là nghiệm của hệ phương trình:

Giải hệ phương trình trên ta có một điểm cố định:
Bài thu hoạch môn học: Lập trình tính toán hình thức(symbolic)

Học viên: Lương Trí Quân – Lớp Cao Học CNTT K6 Trang 10

2.4. Lập trình thủ tục “tìm điểm cố định của một họ đường cong” trên Maple

2.4.1. Giới thiệu các hàm sử dụng trong thủ tục "timdiemcodinh"
- Hàm numer(g) để trích tử của g.
- Hàm denom(g) để trích mẫu của g.
- Hàm collect(f,m) để nhóm các số hạng có cùng số mũ của biến m
trong f.
- Hàm coef(p,x,k) trả về hệ số của x
k
của đa thức p.
2.4.2. Xây dựng thủ tục "timdiemcodinh" trong Maple

2.4.3. Dữ liệu thử nghiệm(Test thủ tục "timdiemcodinh")
2.4.3.1. Dữ liệu 1
Tìm điểm cố định của một họ đường cong(C
m
)



Ta gọi thủ tục như sau:





Kết quả trả về của thủ tục “timdiemcodinh” như sau:
Bài thu hoạch môn học: Lập trình tính toán hình thức(symbolic)

Học viên: Lương Trí Quân – Lớp Cao Học CNTT K6 Trang 11














Để vẽ họ các đường cong này bằng đồ họa ta dùng lệnh plot kết hợp với
seq như sau:


Kết quả vẽ đồ thị như sau:



2.4.3.2. Dữ liệu 2
Tìm điểm cố định của một họ đường cong(C
m
)


Bài thu hoạch môn học: Lập trình tính toán hình thức(symbolic)

Học viên: Lương Trí Quân – Lớp Cao Học CNTT K6 Trang 12

Ta gọi thủ tục như sau:


Kết quả trả về của thủ tục "timdiemcodinh” như sau:










Để vẽ họ các đường cong này bằng đồ họa ta dùng lệnh plot kết
hợp với seq như sau:

Kết quả vẽ họ đường cong được hiển thị như sau:

Bài thu hoạch môn học: Lập trình tính toán hình thức(symbolic)

Học viên: Lương Trí Quân – Lớp Cao Học CNTT K6 Trang 13


3. Kết Luận
Maple hỗ trợ ngôn ngữ lập trình hướng thủ tục (procedure). Chế độ thủ tục được
thực hiện bằng cách đóng gói một dãy các lệnh xử lí cùng một công việc vào một thủ
tục duy nhất, sau đó chỉ cần gọi thủ tục này và Maple tự động thực hiện các lệnh có
trong chu trình (thủ tục) đó một cách tuần tự và sau đó trả lại kết quả cuối cùng.
Maple là một phần mềm tính toán rất phong phú, hỗ trợ hầu hết các lĩnh vực của toán
học. Do đó, ứng dụng Maple vào tự học, tự nghiên cứu có thể kiểm tra được kiến
thức toán học của mình và tạo ra những tư duy mới về toán học .Ngoài ra, phần mềm

Maple hỗ trợ cho những giáo viên, giảng viên biên soạn những bài giảng theo giáo
trình điện tử một cách sinh động góp phần vào đổi mới phương pháp dạy học hiện
nay.




Bài thu hoạch môn học: Lập trình tính toán hình thức(symbolic)

Học viên: Lương Trí Quân – Lớp Cao Học CNTT K6 Trang 14


Tài liệu tham khảo

[1] Bài giảng lập trình Symbolic PGS.TS Đỗ Văn Nhơn
[2] Basic maple: a Beginer „s guide, University od Durham Information Technology
Service, July 2007
[3] Maple Experiments in Discrete Mathematics, James L. Hein Portland State
University, March 2009
[4] Võ Đại Mau - Phương pháp gi ải to án kh ảo sát hàm số - NXB Trẻ TP. Hồ Chí
Minh, 1997.
[5] Maple Advanced Programming Guide, M. B. Monagan K. O. Geddes K. M. Heal
G. Labahn S. M. Vorkoetter J. McCarron P. DeMarco
[6]
[7]






×