Hệ đại số máy tính và Maple - Chương 2: Các kiểu dữ liệu của maple
Là danh sách các phần tử được đặt trong dấu
ngoặc vuông.
• Giống với set, chỉ khác là các phần tử trong list có
thể trùng nhau và thứ tự phần tử được giữ nguyên.
67 trang |
Chia sẻ: nguyenlam99 | Lượt xem: 1000 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Hệ đại số máy tính và Maple - Chương 2: Các kiểu dữ liệu của maple, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 2:
CÁC KIỂU DỮ LIỆU CỦA
MAPLE
Giới thiệu một số kiểu dữ liệu cơ bản của Maple
Nội dung chương 2
1. Các kiểu số
• Số nguyên, thực, phức,
2. Names
• Assignment, unassignment, evaluation, full evaluation,
3. Các kiểu dữ liệu
• Dãy, tập hợp, danh sách, mảng,
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 2
1a. Số nguyên
• Maple cho phép sử dụng các toán tử số học thông
dụng: cộng (+), trừ (-), nhân (*), chia (/), lũy thừa (^
hoặc **) và giai thừa (!).
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 3
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 4
1a. Số nguyên – lưu trữ
• Con số lớn nhất trong Maple có 4[(2^17-1)-1]-1 =
2^19 – 9 = 524279 chữ số.
• Maple lưu trữ số nguyên theo cách:
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 5
intpos i_0 i_1 i_n
2
0 1 2
n
ni i i B i B Bi= ++ + +⋯
B được chọn là lũy thừa nguyên lớn nhất của 10
sao cho B^2 vẫn còn biểu diễn được bằng một số
nguyên single-precision (B = 10^4 trong các hệ
thống 32 bit).
1a. Số nguyên – các hàm
• Maple cung cấp 1 số hàm trên số nguyên
• isprime(n): kiểm tra n có là nguyên tố không
• nextprime(n): số nguyên tố kế tiếp
• ithprime(n): số nguyên tố thứ n
• ifactor(n): phân tích thành SNT
• iquo(a,b): thương của phép chia a/b
• irem(a,b): dư của phép chia a/b
• igcd(a,b): ƯCLN của a và b
• isqrt(n): xấp xỉ nguyên cho sqrt(n)
•
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 6
1a. Số nguyên – ví dụ
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 7
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 8
1b. Số thực – lưu trữ
• Maple lưu trữ số Float thành 2 phần: mantissa và
exponent. Giá trị của số thực là: mantissa x
10exponent.
• Mantissa là một số nguyên kiểu Maple. Còn
exponent là số nguyên single-precision (giống của
C).
• Độ chính xác của số thực trong Maple chính là số ký
tự tối đa của kiểu số nguyên trong Maple.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 9
1b. Số thực – độ chính xác
• Chỉnh sửa độ chính xác mặc định qua biến Digits
(mặc định Digits = 10)
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 10
1b. Số thực - evalf
• Hoặc xác định độ chính xác trực tiếp thông qua
tham số thứ 2 của hàm evalf (evaluate using
floating-point arithmetic)
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 11
1b. Số thực – hằng
• Maple biết một số hằng toán học
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 12
1b. Số thực - hàm
• Maple biết một số hàm
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 13
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 14
1b. Số thực - evalhf
• Để tăng tốc độ tính số, dùng hàm evalhf
(evaluate using hardware floating-point
arithmetic)
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 15
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 16
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 17
1b. Số thực – evalhf (tt)
• Hàm evalhf được dùng trong vẽ đồ thị
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 18
1c. Số đại số - RootOf
• Số đại số là nghiệm của đa thức với hệ số hữu tỷ.
• Được định nghĩa qua thủ tục RootOf.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 19
1c. Số đại số - alias
• Để tính toán dễ nhìn ta dùng alias.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 20
1c. Số đại số - convert
• Để xác định giá trị dùng allvalues.
• Có thể chuyển một số radical sang dạng RootOf bằng
convert và ngược lại.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 21
1c. Số đại số - ví dụ
• Ví dụ sau đây kiểm tra rằng zeta = sqrt(2) + sqrt(3) +
sqrt(5) là nghiệm của một đa thức hữu tỷ; rồi sau
đó phân tích sqrt(2) thành đa thức hữu tỷ theo zeta
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 22
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 23
1d. Số phức
• Đơn vị ảo được biểu diễn bằng I.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 24
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 25
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 26
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 27
1d. Số phức - evalc
• Với hàm phức đa trị, Maple sẽ chỉ lấy giá trị chính.
• Hàm evalc (evaluate using complex number
arithmetic) xem các biến là các đại lượng thực và
đưa số phức về dạng a+bI, với a, b là số thực.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 28
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 29
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 30
2. Names – đặt tên
• Tên biến là một chuỗi các: chữ cái, chữ số và dấu
gạch dưới. Chiều dài tối đa 499 ký tự.
• Maple phân biệt chữ hoa và chữ thường.
• Ví dụ: x, a, mot_bien_co_ten_rat_dai,
t2m, Bien, bien, BIEN, biEN,
• Chú ý: ở chế độ Math (2D input) dấu gạch dưới sẽ
được hiểu là bắt đầu chỉ số.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 31
2. Names – giá trị
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 32
Các biến a, b, c là tham số, biến x là ẩn.
Các biến này được Maple hiểu là các ký tự.
Chúng không không nhất thiết có giá trị
cụ thể nào.
Đây chính là đặc trưng của hệ đại số máy
tính.
2. Names – Evaluation
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 33
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 34
2. Names – Unassignment
• Dùng dấu ‘ ’ để trả giá trị 1 biến về chính nó (như
ví dụ trên).
• Cũng có thể dùng hàm evaln (evaluate to a
name).
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 35
2. Names – Full Evaluation
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 36
name a
name b
name c
intpos 5
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 37
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 38
Các tham số chứa biến thì đặt trong ‘ ’.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 39
3. Các kiểu dữ liệu
• Các kiểu dữ liệu cơ bản gồm: số nguyên, số thực,
chuỗi, Ngoài ra còn nhiều kiểu dữ liệu khác: dãy,
tập hợp, danh sách, mảng,
• Dùng whattype để hiển thị các kiểu dữ của một
đối tượng.
• Dùng type và hastype để kiểm tra kiểu dữ liệu
của đối tượng.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 40
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 41
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 42
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 43
3. KDL - confrac
• Phân số ¾ có thể biểu diễn thành dạng continued
fraction như sau:
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 44
10 11
3
+
+
3. KDL - sequence
• Là một dãy các đối tượng cách nhau bởi dấu phẩy.
• Tên trong Maple: exprseq (expression sequence).
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 45
3. KDL – sequence - seq
• Dãy có thể tạo thành từ seq(f(i), i=n..m).
• Hoặc sử dụng $.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 46
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 47
Dãy không có phần tử nào là NULL
3. KDL – sequence – [ ]
• Truy xuất phần tử dùng [].
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 48
3. KDL – set
• Là một dãy các đối tượng đặt trong {}.
• Maple tự động sắp xếp, loại bỏ pt trùng.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 49
3. KDL – set - operator
• Các toán tử trên tập hợp: union, minus,
intersect.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 50
3. KDL – set – member, [ ]
• Dùng member để kiểm tra phần tử thuộc tập hợp
hay không.
• Chọn phần tử từ tập hợp bằng [], hoặc op (extract
operands).
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 51
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 52
3. KDL – set - select
• select(criterion, set, extra arguments)
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 53
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 54
3. KDL - list
• Là danh sách các phần tử được đặt trong dấu
ngoặc vuông.
• Giống với set, chỉ khác là các phần tử trong list có
thể trùng nhau và thứ tự phần tử được giữ nguyên.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 55
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 56
3. KDL – list (tt)
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 57
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 58
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 59
3. KDL - array
• Maple cho phép sử dụng mảng một, hai hoặc nhiều
chiều.
• Kiểu array được xây dựng từ list.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 60
• Tuy nhiên array không phải là một list.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 61
• Xây dựng mảng nhiều chiều bằng cách đưa ra list
các list.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 62
• Dùng lệnh matrix trong gói linalg.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 63
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 64
• Maple không áp dụng full evaluation trên kiểu
array.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 65
3. KDL – map
• Để tác động một hàm vào các thành phần của một
đối tượng, dùng map.
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 66
Huỳnh Văn Kha -
1/1/2013
C01029 – THTT - Chương 2 67
Các file đính kèm theo tài liệu này:
- thtt_chuong2_kieudulieumaple_8367.pdf