Giáo trình Tin học Tính toán - Chương 2: Các kiểu dữ liệu của Maple - Huỳnh Văn Kha

pdf 67 trang huongle 3110
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Tin học Tính toán - Chương 2: Các kiểu dữ liệu của Maple - Huỳnh Văn Kha", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_tin_hoc_tinh_toan_chuong_2_cac_kieu_du_lieu_cua_m.pdf

Nội dung text: Giáo trình Tin học Tính toán - Chương 2: Các kiểu dữ liệu của Maple - Huỳnh Văn Kha

  1. 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
  2. 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 - C01029 – THTT - Ch ươ ng 2 2 1/1/2013
  3. 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 - C01029 – THTT - Ch ươ ng 2 3 1/1/2013
  4. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 4 1/1/2013
  5. 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: intpos i_0 i_1 i_n =+ +2 + + n i i0 i 1 B i 2 B⋯ in B 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). Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 5 1/1/2013
  6. 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 - C01029 – THTT - Ch ươ ng 2 6 1/1/2013
  7. 1a. Số nguyên – ví dụ Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 7 1/1/2013
  8. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 8 1/1/2013
  9. 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 10 exponent . • 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 - C01029 – THTT - Ch ươ ng 2 9 1/1/2013
  10. 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 - C01029 – THTT - Ch ươ ng 2 10 1/1/2013
  11. 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 - C01029 – THTT - Ch ươ ng 2 11 1/1/2013
  12. 1b. Số thực – hằng • Maple biết một số hằng toán học Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 12 1/1/2013
  13. 1b. Số thực - hàm • Maple biết một số hàm Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 13 1/1/2013
  14. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 14 1/1/2013
  15. 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 - C01029 – THTT - Ch ươ ng 2 15 1/1/2013
  16. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 16 1/1/2013
  17. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 17 1/1/2013
  18. 1b. Số thực – evalhf (tt) • Hàm evalhf được dùng trong vẽ đồ thị Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 18 1/1/2013
  19. 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 - C01029 – THTT - Ch ươ ng 2 19 1/1/2013
  20. 1c. Số đại số - alias • Để tính toán dễ nhìn ta dùng alias. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 20 1/1/2013
  21. 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 - C01029 – THTT - Ch ươ ng 2 21 1/1/2013
  22. 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 - C01029 – THTT - Ch ươ ng 2 22 1/1/2013
  23. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 23 1/1/2013
  24. 1d. Số phức • Đơn vị ảo được biểu diễn bằng I. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 24 1/1/2013
  25. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 25 1/1/2013
  26. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 26 1/1/2013
  27. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 27 1/1/2013
  28. 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 - C01029 – THTT - Ch ươ ng 2 28 1/1/2013
  29. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 29 1/1/2013
  30. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 30 1/1/2013
  31. 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 - C01029 – THTT - Ch ươ ng 2 31 1/1/2013
  32. 2. Names – giá trị V 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ự. V Chúng không không nhất thiết có giá trị cụ thể nào. V Đây chính là đặc trưng của hệ đại số máy tính. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 32 1/1/2013
  33. 2. Names – Evaluation Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 33 1/1/2013
  34. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 34 1/1/2013
  35. 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 - C01029 – THTT - Ch ươ ng 2 35 1/1/2013
  36. 2. Names – Full Evaluation name a name b name c intpos 5 Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 36 1/1/2013
  37. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 37 1/1/2013
  38. V Các tham số chứa biến thì đặt trong ‘ ’ . Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 38 1/1/2013
  39. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 39 1/1/2013
  40. 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 - C01029 – THTT - Ch ươ ng 2 40 1/1/2013
  41. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 41 1/1/2013
  42. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 42 1/1/2013
  43. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 43 1/1/2013
  44. 3. KDL - confrac • Phân số ¾ có thể biểu diễn thành dạng con tinued frac tion như sau: 1 0 + 1 1+ 3 Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 44 1/1/2013
  45. 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 (expr ession seq uence). Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 45 1/1/2013
  46. 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 - C01029 – THTT - Ch ươ ng 2 46 1/1/2013
  47. V Dãy không có phần tử nào là NULL Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 47 1/1/2013
  48. 3. KDL – sequence – [ ] • Truy xuất phần tử dùng []. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 48 1/1/2013
  49. 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 - C01029 – THTT - Ch ươ ng 2 49 1/1/2013
  50. 3. KDL – set - operator • Các toán tử trên tập hợp: union, minus, intersect. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 50 1/1/2013
  51. 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 - C01029 – THTT - Ch ươ ng 2 51 1/1/2013
  52. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 52 1/1/2013
  53. 3. KDL – set - select • select(criterion, set, extra arguments) Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 53 1/1/2013
  54. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 54 1/1/2013
  55. 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 - C01029 – THTT - Ch ươ ng 2 55 1/1/2013
  56. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 56 1/1/2013
  57. 3. KDL – list (tt) Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 57 1/1/2013
  58. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 58 1/1/2013
  59. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 59 1/1/2013
  60. 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 - C01029 – THTT - Ch ươ ng 2 60 1/1/2013
  61. • Tuy nhiên array không phải là một list. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 61 1/1/2013
  62. • 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 - C01029 – THTT - Ch ươ ng 2 62 1/1/2013
  63. • Dùng lệnh matrix trong gói linalg. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 63 1/1/2013
  64. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 64 1/1/2013
  65. • Maple không áp dụng full evaluation trên kiểu array. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 65 1/1/2013
  66. 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 - C01029 – THTT - Ch ươ ng 2 66 1/1/2013
  67. Huỳnh Văn Kha - C01029 – THTT - Ch ươ ng 2 67 1/1/2013