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.

pdf67 trang | Chia sẻ: nguyenlam99 | Lượt xem: 1000 | Lượt tải: 0download
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:

  • pdfthtt_chuong2_kieudulieumaple_8367.pdf