Xây dựng hệ thống đại số máy tính xử lý biểu thức toán học

14 5 0
Xây dựng hệ thống đại số máy tính xử lý biểu thức toán học

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mục tiêu của luận văn là dựa vào nền tảng lý thuyết về toán học và các khái niệm thuật toán cơ bản để xây dựng các thuật toán và thể hiện của nó bằng các toán tử và cấu trúc điều khiển[r]

(1)

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN VĂN ĐỒNG

XÂY DỰNG HỆ THỐNG ĐẠI SỐ MÁY TÍNH XỬ LÝ BIỂU THỨC TOÁN HỌC

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

(2)

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN VĂN ĐỒNG

XÂY DỰNG HỆ THỐNG ĐẠI SỐ MÁY TÍNH XỬ LÝ BIỂU THỨC TỐN HỌC

Ngành: Cơng nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm

Mã số: 60480103

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS.TRƯƠNG ANH HOÀNG

(3)

LỜI CẢM ƠN

Trước tiên em xin chân thành cảm ơn PGS.TS.Trương Anh Hồng tận tình hướng dẫn, giúp đỡ em suốt trình thực luận văn tốt nghiệp

Em xin chân thành cảm ơn thầy cô giáo khoa Công nghệ Thông tin, trường Đại học Công nghệ, Đại học Quốc gia Hà Nội, người tận tình truyền đạt kiến thức, quan tâm, động viên suốt thời gian học tập nghiên cứu Trường

Nhân cho phép em gửi lời cảm ơn tới gia đình, bạn bè đặc biệt nhóm bạn học lớp K20CNPM, lớp chuyên ngành công nghệ phần mềm thường xuyên quan tâm, giúp đỡ, chia sẻ kinh nghiệm, cung cấp tài liệu hữu ích suốt thời gian học tập trường

Hà Nội, tháng 06 năm 2016 Tác giả luận văn

(4)

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn “Xây dựng hệ thống đại số máy tính xử lý biểu thức tốn học” cơng trình nghiên cứu tơi hướng dẫn khoa học PGS.TS.Trương Anh Hoàng, tham khảo nguồn tài liệu rõ trích dẫn danh mục tài liệu tham khảo Các nội dung công bố kết trình bày luận văn trung thực chưa công bố cơng trình

Hà Nội, tháng 06 năm 2016 Tác giả luận văn

(5)

MỤC LỤC

LỜI CẢM ƠN LỜI CAM ĐOAN Danh mục hình ảnh Danh mục bảng Danh mục chữ viết tắt Mở đầu Tóm tắt luận văn

Chương Kiến thức tảng

1.1 Ngôn ngữ giả mã

1.2 Tính tốn biểu thức chương trình tốn học

1.3 Khái niệm toán học

1.3.1 Số nguyên

1.3.2 Số hữu tỉ

Chương Cấu trúc biểu thức đại số

2.1 Cây biểu thức

2.2 Cấu trúc đệ quy biểu thức đại số

2.3 Cấu trúc thông thường biểu thức đại số

2.4 Cấu trúc rút gọn biểu thức đại số

2.5 Các toán tử biểu thức đại số rút gọn 10

2.5.1 Định nghĩa toán tử 𝐾𝑖𝑛𝑑(𝑢) 10

2.5.2 Định nghĩa toán tử 𝑁𝑢𝑚𝑏𝑒𝑟𝑂𝑓𝑂𝑝𝑒𝑟𝑎𝑛𝑑𝑠(𝑢) 11

2.5.3 Định nghĩa toán tử 𝑂𝑝𝑒𝑟𝑎𝑛𝑑(𝑢, 𝑖) 11

2.6 Các toán tử dựa cấu trúc biểu thức 11

2.6.1 Định nghĩa toán tử 𝐶𝑜𝑚𝑝𝑙𝑒𝑡𝑒𝑆𝑢𝑏E𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛(𝑢) 11

2.6.2 Định nghĩa toán tử 𝐹𝑟𝑒𝑒𝑂𝑓(𝑢, 𝑡) 11

Chương Thuật toán 12

3.1 Thuật toán toán học 12

3.2 Thuật toán đệ quy 12

3.3 Thủ tục đệ quy 13

3.3.1 Toán tử 𝐶𝑜𝑚𝑝𝑙𝑒𝑡𝑒S𝑢𝑏E𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛 13

(6)

Chương Rút gọn biểu thức 14

4.1 Các phép biến đổi sử dụng trình rút gọn biểu thức 14

4.1.1 Biểu thức đại số biểu thức đại số rút gọn 16

4.1.2 Thể biểu thức đại số 19

4.2 Thuật toán rút gọn 21

4.2.1 Thủ tục rút gọn 21

4.2.2 Rút gọn biểu thức số hữu tỉ 22

4.2.3 Rút gọn lũy thừa 23

4.2.4 Rút gọn tích 24

4.2.5 Rút gọn tổng 26

4.3 Thể thuật toán rút gọn 28

4.3.1 Phương thức rút gọn biểu thức số hữu tỉ 28

4.3.2 Phương thức rút gọn lũy thừa 29

4.3.3 Phương thức rút gọn tích 29

4.3.4 Phương thức rút gọn tổng 30

4.3.5 Phương thức rút gọn 30

Chương Cấu trúc đa thức biểu thức hữu tỉ 31

5.1 Đa thức biến 31

5.1.1 Phân tích 31

5.1.2 Các thể đơn thức đa thức biến 37

5.2 Đa thức nhiều biến 39

5.3 Đa thức tổng quát 40

5.3.1 Các toán tử đơn thức tổng quát 41

5.3.2 Các toán tử đa thức tổng quát 46

5.3.3 Các toán tử thao tác với đa thức tổng quát 50

5.4 Biểu thức hữu tỉ tổng quát 54

5.4.1 Toán tử 𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟 𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟 54

5.4.2 Toán tử RationalGPE 55

5.4.3 Toán tử RationalVariables 55

5.4.4 Hữu tỉ hóa biểu thức đại số 55

5.4.5 Thể biểu thức hữu tỉ 57

Chương Các toán tử hệ thống SMC 58

6.1 Khai triển Taylor 58

(7)

6.1.2 Toán tử 𝐻𝑖𝑔ℎ𝑒𝑟𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 59

6.1.3 Toán tử 𝑇𝑎𝑦𝑙𝑜𝑟Series 60

6.2 Các toán tử khác 60

6.2.1 Toán tử 𝑀𝐼𝑁𝐹 60

6.2.2 Toán tử 𝑀𝐴𝑋𝐹 61

6.2.3 Toán tử 𝐷𝐸𝑈𝑃 62

Chương Kiểm thử 63

Kết luận 66

Tài liệu tham khảo 67

(8)

Danh mục hình ảnh

Hình 1.1 Thủ tục tìm ước chung lớn hai số nguyên a b

Hình 1.2 Thủ tục rút gọn số hữu tỉ

Hình 3.1 Thuật tốn đệ quy tìm giai thừa số ngun khơng âm 13

Hình 3.2 Thủ tục thực tốn tử 𝐶𝑜𝑚𝑝𝑙𝑒𝑡𝑒𝑆𝑢𝑏𝐸𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛 14

Hình 3.3 Thủ tục thực tốn tử 𝐹𝑟𝑒𝑒𝑂𝑓 14

Hình 4.1 Phương thức tạo nút gốc lớp Bae 21

Hình 4.2 Thủ tục rút gọn 22

Hình 4.3 Thủ tục thực tốn tử 𝑆𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑅𝑁𝐸 23

Hình 4.4 Phương thức 𝑠𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑅𝑁𝐸 28

Hình 4.5 Phương thức 𝑠𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑃𝑜𝑤𝑒𝑟 29

Hình 4.6 Phương thức 𝑠𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑃𝑟𝑜𝑑𝑢𝑐𝑡 30

Hình 4.7 Phương thức 𝑠𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑆𝑢𝑚 30

Hình 4.8 Phương thức 𝑆𝑖𝑚𝑝𝑙𝑖𝑓𝑦 31

Hình 5.1 Thủ tục thực tốn tử 𝑀𝑜𝑛𝑜𝑚𝑖𝑎𝑙𝑆𝑉 32

Hình 5.2 Thủ tục thực tốn tử 𝑃𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙𝑆𝑉 33

Hình 5.3 Thủ tục thực thực toán tử 𝐷𝑒𝑔𝑟𝑒𝑒𝑀𝑜𝑛𝑜𝑚𝑖𝑎𝑙𝑆𝑉 34

Hình 5.4 Thủ tục thực thực tốn tử 𝐷𝑒𝑔𝑟𝑒𝑒𝑆𝑉 35

Hình 5.5 Thủ tục thực tốn tử 𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑀𝑜𝑛𝑜𝑚𝑖𝑎𝑙𝑆𝑉 36

Hình 5.6 Thủ tục thực tốn tử 𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑆𝑉 36

Hình 5.7 Phương thức 𝑚𝑜𝑛𝑜𝑚𝑖𝑎𝑙𝑆𝑉 38

Hình 5.8 Phương thức khởi tạo 𝑀𝑜𝑛𝑜𝑚𝑖𝑎𝑙𝑆𝑉 38

Hình 5.9 Phương thức 𝑝𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙𝑆𝑉 39

Hình 5.10 Phương thức khởi tạo 𝑃𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙𝑆𝑉 39

Hình 5.11 Thủ tục thực tốn tử 𝑀𝑜𝑛𝑜𝑚𝑖𝑎𝑙𝐺𝑃𝐸 42

Hình 5.12 Thủ tục thực tốn tử 𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝐺𝑀𝐸 43

Hình 5.13 Phương thức 𝑚𝑜𝑛𝑜𝑚𝑖𝑎𝑙𝐺𝑝𝑒 45

Hình 5.14 Thủ tục thực tốn tử 𝑃𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙𝐺𝑃𝐸 46

Hình 5.15 Phương thức 𝑝𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙𝐺𝑝𝑒 50

Hình 5.16 Thủ tục thực tốn tử 𝐶𝑜𝑙𝑙𝑒𝑐𝑡𝑇𝑒𝑟𝑚 52

Hình 5.17 Thủ tục 𝐸𝑥𝑝𝑎𝑛𝑑 53

Hình 5.18 Thủ tục thực tốn tử 𝑅𝑎𝑡𝑖𝑜𝑛𝑎𝑙𝑖𝑧𝑒𝐸𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛 57

Hình 6.1 Thủ tục thực tốn tử 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 59

Hình 6.2 Thủ tục thực toán tử 𝐻𝑖𝑔ℎ𝑒𝑟𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 59

Hình 6.3 Thủ tục thực tốn tử 𝑇𝑎𝑦𝑙𝑜𝑟𝑆𝑒𝑟𝑖𝑒𝑠 60

Hình 6.4 Thủ tục thực tốn tử 𝑀𝐼𝑁𝐹 61

Hình 6.5 Thủ tục thực toán tử 𝑀𝐴𝑋𝐹 62

(9)

Danh mục bảng

Bảng 1.1 Các toán tử đại số

Bảng 2.1 Thứ tự ưu tiên toán tử

Bảng 2.2 Thứ tự ưu tiên toán tử cấp độ ngoặc 10

Bảng 4.1 Các thuộc tính lớp AnyNode 20

Bảng 4.2 Các phương thức lớp AnyNode 20

Bảng 4.3 Các thuộc tính lớp Bae 20

Bảng 4.4 Các phương thức lớp BAE 20

Bảng 5.1 Các thuộc tính lớp MonomialSV 37

Bảng 5.2 Các phương thức lớp MonomialSV 37

Bảng 5.3 Các thuộc tính lớp PolynomialSV 38

Bảng 5.4 Các phương thức lớp PolynomialSV 39

Bảng 5.5 Các thuộc tính lớp GeneralMonomial 43

Bảng 5.6 Các phương thức lớp GeneralMonomial 44

Bảng 5.7 Các thuộc tính lớp GeneralPolynomial 48

Bảng 5.8 Các phương thức lớp GeneralPolynomial 49

Bảng 5.9 Các thuộc tính lớp GenneralRationalExpression 57

Bảng 5.10 Các phương thức lớp GenneralRationalExpression 58

Danh mục chữ viết tắt

Thuật ngữ/ Từ viết tắt Mô tả

BAE Basic algebraic expression

GRE General rational expression

SAE Simpily algebraic expression

RNE Rational number expression

(10)

Mở đầu

Ngày nhà khoa học mô hình hóa tượng tự nhiên cách dịch kết thực nghiệm khái niệm lý thuyết vào biểu thức toán học chứa số, biến, hàm số tốn tử Sau dựa vào định lý chứng minh để biến đổi chuyển thành biểu thức khác để khám phá tượng nghiên cứu Cách tiếp cận toán học thành phần quan trọng phương pháp nghiên cứu khoa học ngành khoa học

Trong nửa kỉ qua máy tính trở thành thiết bị khơng thể thiếu giúp giải vấn đề toán học Các nhà tốn học thường xun sử dụng máy tính để tìm lời giải cho vấn đề khó khăn vấn đề thực phương pháp thủ cơng Trên thực tế máy tính thao tác với hai kí hiệu - thơng qua luật thiết lập sẵn nên mong đợi tạo tiên đề, lý thuyết Tuy nhiên phần lý luận toán học thao tác máy móc, phân tích biểu thức… thực thuật tốn Hiện có chương trình máy tính có khả rút gọn biểu thức, tích hợp chức phức tạp, giải xác phương trình… Các lĩnh vực tốn học khoa học máy tính có liên quan đến vấn đề gọi đại số máy tính

Đại số máy tính lĩnh vực khoa học đề cập tới việc nghiên cứu phát triển thuật toán phần mềm ứng dụng tính tốn biểu thức toán học đối tượng toán học khác Trong hệ thống đại số máy tính phần đại số máy tính, chương trình phần mềm cho phép tính tốn biểu thức tốn học cách tương tự tính tốn phương pháp thủ cơng mà nhà tốn học khoa học thường sử dụng

Hệ thống đại số máy tính gì?

Hệ thống đại số máy tính chương trình phần mềm thực biến đổi biểu thức tốn học yếu tố tốn học rút gọn, giai thừa, lũy thừa… kết hợp với cấu trúc điều khiển vòng lặp, cấu trúc rẽ nhánh chương trình để tạo chương trình giải vấn đề toán học.[Error! Reference source ot found.]

Hệ thống đại số máy tính đặc biệt hữu ích cho nhà tốn học, khoa học chúng có nhiều chức tính tốn biểu thức, xử lý biểu tượng (symbolic manipulation), giải phương trình…

Tại lại cần hệ thống đại số máy tính?

 Trên thực tế có tốn vấn đề giải phương pháp thủ công

(11)

 Từ biểu thức đại số suy thay đổi tham số ảnh hưởng đến kết tính tốn

 Kết tính tốn đại số ln xác cịn tính tốn số học thường tồn giá trị xấp xỉ dẫn đến sai lệch kết

 Trong số trường hợp hệ thống đại số máy tính rút gọn thời gian tính tốn phương pháp tính tốn truyền thống

Hệ thống SMC [14]

Đếm mẫu vấn đề cổ điển tính tốn số lượng giải pháp thỏa mãn tập ràng buộc Nó có nhiều ứng dụng lĩnh vực khoa học máy tính trí tuệ nhận tạo, tối ưu hóa chương trình, phân tích lưu lượng thơng tin

Đếm mẫu kỹ thuật áp dụng cho số nguyên, giá trị logic áp dụng trực tiếp cho liệu phức tạp chuỗi kí tự, để giải vấn đề nhóm tác giả Loi Luu, Shweta Shinde, Prateek Saxena trường đại học quốc gia Singapore (National University of Singapore) đưa giải pháp có trình bày cơng cụ gọi SMC (string model-counting)

Cho tập chuỗi kí tự ràng buộc chúng, SMC tính biên dựa số lượng phần tử tập chuỗi thỏa mãn ràng buộc với độ xác hiệu cao Nhóm tác giả sử dụng hàm sinh (generating functions - GFs) cơng cụ tốn học quan trọng cho lý luận chuỗi vơ hạn, cung cấp chế cho phép xác định số lượng phần tử tập chuỗi ràng buộc Ý tưởng đằng sau hàm sinh (GFs) mã hóa số lượng chuỗi có độ dài k hệ số thứ k đa thức Các đa thức biểu diễn dạng biểu thức hữu hạn, biểu thức hữu hạn có khả biểu diễn tập vô hạn chuỗi

Trong cơng cụ SMC có sử dụng hệ thống Mathematica (một hệ thống đại số máy tính) để xử lý biểu thức đại số, xử lý đa thức số tính tốn khác

Mục tiêu luận văn

Mục tiêu luận văn dựa vào tảng lý thuyết toán học khái niệm thuật toán để xây dựng thuật tốn thể tốn tử cấu trúc điều khiển có ngơn ngữ lập trình Java để giải vấn đề hệ thống đại số máy tính để từ phát triển hệ thống đại số máy tính miễn phí cho phép thực thao tác tính tốn từ đến phức tạp tính giá trị biểu thức, tối giản phân số, tính tốn đa thức …Trong mục tiêu luận văn phát triển hàm xử lý đa thức nhằm thay hồn tồn Mathematica cơng cụ SMC

Các vấn đề nêu xử lý phạm vi luận văn:

 Xử lý biểu thức

o Phân tích chuỗi đầu vào để nhận biết biểu thức

o Tính giá trị biểu thức

(12)

o Đa thức biến, nhiều biến

o Các phép toán đa thức

o Khai triển đa thức

 Xây dựng hàm xử lý cho hệ thống SMC

o Tìm chuỗi taylor giá trị bất kỳ, đến hệ số

(13)

67

Tài liệu tham khảo

Tiếng việt

1 Đỗ Xuân Lôi (1999), Cấu trúc liệu giải thuật, Nhà xuất thống kê Trương Ninh Thuận – Đặng Đức Hạnh (2013), Giáo trình phân tích thiết kế

hướng đối tượng, Nhà xuất Đại Học Quốc gia Hà Nội Tiếng anh

3 Hazem Mohamed El-Alfy (1997) Computer algebraic and its applications, B.Sc., Faculty of Engineering, Alexandria University

4 Chee Keng Yap (2000) Fundamental Problems of Algorithmic Algebra, Oxford University Press, New York

5 David Musser (1971) Algorithms for Polynomial Factorization, PhD thesis, Department of Computer Science, University of Wisconsin

6 F Winkler (1996) Polynomial Algorithms in Computer Algebra, SpringerVerlag, New York

7 Hans Vangheluwe, Bhama Sridharan and Indrani A.V (2013) An algorithm to implement a canonical representation of algebraic expression and equations in AToM

8 Henri Cohen (1993) A Course in Computational Algebraic Number Theory, Springer-Verlag, New York

9 J H Davenport, Y Siret, and E Tournier (1988) Computer Algebra, Systems and Algorithms for Algebraic Computation, Academic Press, New York

10.James F Epperson (2002) An Introduction to Numerical Methods and Analysis, John Wiley & Sons, New York

11.Joachim von zur Gathen and Jăurgen Gerhard Modern Computer Algebra, Cambridge University Press, New York, 1999

12.Joel S Cohen (2002) Computer Algebra and Symbolic Computation: Elementary Algorithms A K Peters, Natick, MA

13.Joel S Cohen (2002) Computer Algebra and Symbolic Computation: Mathematical Methods, A K Peters, Natick, MA

14.John W Gray (1997) Mastering Mathematica, Programming Methods and Applications, Second Edition Academic Press, New York

15.Loi Luu, Shweta Shinde, Prateek Saxena (2014) A Model Counter For Constraints Over Unbounded Strings, School of Computing, National University of Singapore

16.Michael J Wester (1999) Computer Algebra Systems, A Practical Guide, John Wiley & Sons, Ltd., New York

17.Richard Andrew Mealing (2010) Simplifying Numerical Expressions, The University of Liverpool

(14)

68

19.Richard J Gaylord, N Kamin, Samuel, and Paul R Wellin (1996) An Introduction to Programming with Mathematica, Second Edition Springer-Verlag, New York

20.Richard Liska, Ladislav Drska, Jiri Limpouch, Milan Sinor, Michael Wester, Franz Winkler (1999) Computer algebraic, Algorithms, System and Applications

21.Richard Zippel (1993) Effective Polynomial Computation, Kluwer Academic Publishers, Boston

Ngày đăng: 14/05/2021, 17:16

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan