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ũng giống như các hệ
Trang 1CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
PGS TS.: ĐỖ VĂN NHƠN HỌC VIÊN: NGUYỄN HOÀNG HUY
MSHV: CH1101090
Trang 2< 2012 >
Trang 3MỤC LỤC
A LẬP TRÌNH SYMBOLIC TRÊN MAPLE 4
I Maple 4
1 Giới thiệu 4
2 Chức năng cơ bản 4
II Nhập môn Maple 5
1 Biến 5
2 Tính toán 7
3 Cấu trúc dữ liệu 10
4 Hàm số 13
5 Phương trình 16
B MỘT SỐ ỨNG DỤNG TRÊN MAPLE 18
I Giải và biện luận phương trình bật nhất 18
1 Cài đặt 18
2 Ví dụ 18
II Giải và biện luận phương trình bật hai 19
1 Cài đặt 19
2 Ví dụ 20
20
TÀI LIỆU THAM KHẢO 21
Trang 4A LẬP TRÌNH SYMBOLIC TRÊN MAPLE
I Maple
1 Giới thiệu
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
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 rất dễ sử dụng 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
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
2 Chức năng cơ bản
• Là một hệ thống tính toán trên các biểu thức đại số
• Có thể thực hiện đượ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
• Cung cấp các công cụ minh họa hình học thuận tiện gồm: vẽ đồ thị động
và tĩnh của các đường và mặt được cho bởi các hàm tùy ý và trong các hệ tọa
độ khác nhau
• Là một 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
Trang 5• Cho phép trích xuất ra các định dạng khác nhau như word, HTML…
• Một 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
• Một côn cụ hỗ trợ đắc lực – hữu ích cho giáo viên trong việc dạy học cũng như cho học sinh – sinh viên trong việc học tập
II Nhập môn Maple
1 Biến
+ Các khái niệm
Tên biến: là một xâu ký tự, gồm chữ cái, chữ số, ký tự gạch dưới _
o Độ dài của tên phụ thuộc vào nền của hệ điều hành, hệ điều hành bit là 524,271 ký tự, 64-bit là 34,359,738,335 ký tự
32-o Tên biến chỉ có thể bắt đầu bằng chữ cái hoặc ký tự _ (Lưu ý: biến có tên bắt đầu bằng ký tự _ được Maple xem là biến toàn cục)
o Có 2 loại tên biến là ký hiệu (x, y, x_y_z, hello_there…), và tên theo
chỉ số (x[1], x[2], x[3]…)
o Maple phân biệt chữ hoa và chữ thường nên Hello khác hello
o Không được đặt tên trùng với 47 từ khóa sau đây:
and assuming break by catchdescription do done elif elseend error export fi finallyfor from global if implies
in intersect local minus modmodule next not od optionoptions or proc quit readreturn save stop subset then
to try union use useswhile xor
Trang 6Trạng thái của biến: mỗi biến trong Maple có một trong hai trạng thái:
o Đã được gán (assigned variables): mỗi biến là một cái tên đại diện cho
một giá trị nào đó Một biến đã được gán đại diện cho gần như bất kỳ thứ gì: một con số cụ thể, một biểu thức, một hàm, một phương trình, một đồ thị, một lời giải, một biến khác v.v…Một biến đã được gán
thỉnh thoảng được gọi là một biến lập trình vì cách chúng thể hiện ít
nhiều gì cũng giống với một biến lập trình truyền thống trong các ngôn ngữ lập trình Biến đã được gán cũng thỉnh thoảng được gọi là "nhãn của một kết quả" hay đơn giản là "nhãn"
o Chưa được gán (unassigned variables): mỗi biến là một cái tên chưa
đại diện cho một giá trị đặc biệt nào Biến chưa được gán thỉnh thoảng được gọi là "biến tự do" (free variables) chúng sẽ được tự do làm đại diện cho bất kỳ giá trị nào Hay thỉnh thoảng chúng cũng được gọi "ẩn" (unknowns) vì chúng chưa có một giá trị cụ thể Những cách gọi khác
nữa là xem biến chưa được gán như một biến toán học, một ký hiệu
toán học, một ẩn toán học, một ẩn đại số, biến vô định
o Phép gán: được thực hiện bằng toán tử gán :=
+ Phân loại
Biến trong Maple chia làm hai loại: biến toán học và biến lập trình
Biến toán học: đại diện cho một ẩn số trong toán học.
Biến lập trình: là những biến có thể gán giá trị nào đó và giá trị được
lưu trữ cho tận đến lúc nó bị thay đổi
Cách đơn giản nhất:
o Biến lập trình: biến đã được gán
o Biến toán học: biến có giá trị bằng tên biến
Sự định giá:
o Một tên được gán giá trị khác tên nó sẽ trở thành biến lập trình còn nếu chưa từng được gán giá trị thì nó sẽ nhận chính tên nó làm giá
trị và được xem như kí hiệu biểu thị ẩn số trong toán học
o Việc phân biệt một biến là biến toán học (ẩn số) hay biến lập trình
là rất quan trọng trong Maple
Ví dụ:
>
Trang 7Phép tóan Kí hiệu Phép tóan Kí hiệu Phép tóan Kí hiệu
Trang 8max(x1,x2,…) Giá trị lớn nhất của hai hay nhiều số
min(x1,x2,…) Giá trị nhỏ nhất của hai hay nhiều sốBảng các hàm lượng giác:
Pi Hằng số PI FAIL Thất bại, sai
infinity Vô cùng ∞ Catalan Hằng Catalan
Ví dụ:
>
>
+ Tính toán trên số nguyên
Các hàm liên quan tính tóan:
factorial(n) n giai thừa
isqrt(n) Căn bậc hai nguyên của n
iroot(x,n) Căn bậc n nguyên của x
ifactor(n) Phân tích n thành tích các thừa số nguyên tố
irem(m,n) irem(m,n,`q`)
Số dư khi chia m cho n và thương có thể được chứa trong q
iquo(m,n) iquo(m,n,`r`)
Thương khi chia m cho n và số dư có thể được chứa trong r
igcd(x1,x2, ) Ước số chung lớn nhất của hai hay nhiều số
Trang 9gcd(x1,x2) ilcm(x1,x2, ) lcm(x1,x2)
Bội số chung nhỏ nhất của hai hay nhiều số
m mod n Số dư khi chia m cho n
Các hàm liên quan tới số nguyên tố:
isprime(n) n có là số nguyên tố không?
nextprime(n) Số nguyên tố liền sau n prevprime(n
+ Tính tóan trên biểu thức đại số
Khai triển biểu thức:
>
Trang 10+ 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
Ví dụ:
Trang 12+ 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ừ)
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
Trang 13- Trái lại, các chỉ số là các số nguyên 1,2,3
Maple cung cấp nhiều cách để định nghĩa hàm số như :
- Dùng kí hiệu mũi tên
Trang 19II Giải và biện luận phương trình bật hai
1 Cài đặt
Trang 21TÀI LIỆU THAM KHẢO
1 Tài liệu bài giảng Lập Trình Symbolic
4 Tài liệu Sử Dụng Maple Học Toán
Th.S Nguyễn Văn Kiếm