Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
726,77 KB
Nội dung
ĐẠ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 Ngành: Chuyên ngành: Mã số: Công nghệ thông tin Kỹ thuật phần mềm 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 Hà nội- 2016 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ố toá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ị thiếu giúp giải vấn đề toán học Các nhà toán học thường xuyên 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 toá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 toá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 toá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 toán biểu thức toán học cách tương tự tính toán phương pháp thủ công mà nhà toá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 toán học yếu tố toá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.[23] Hệ thống đại số máy tính đặc biệt hữu ích cho nhà toán học, khoa học chúng có nhiều chức tính toá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ó toán vấn đề giải phương pháp thủ công Các đáp án đưa phương pháp đại số thường ngắn gọn cung cấp thông tin mối liên hệ biến Từ biểu thức đại số suy thay đổi tham số ảnh hưởng đến kết tính toán Kết tính toán đại số xác tính toá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 toán phương pháp tính toán truyền thống Hệ thống SMC [14] Đếm mẫu vấn đề cổ điển tính toá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ụ toá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 toá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 toán thể toán tử cấu trúc điều khiển có ngôn ngữ lập trình để 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 toán từ đến phức tạp tính giá trị biểu thức, tối giản phân số, tính toá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 hoàn toà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 o Rút gọn biểu thức Xử lý đa thức 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ố o Xây dựng hàm MAXF, MINF, DEDUP Giới thiệu Chương - Kiến thức tảng Chương giới thiệu ngôn ngữ giả mã ngôn ngữ sử dụng luận văn để mô tả thuật toán, khái niệm ví dụ Ngoài tóm tắt kiến thức toán học số nguyên, số hữu tỉ, biểu thức đại số, biểu thức… Chương - Cấu trúc đệ quy biểu thức toán học Chương liên quan tới định nghĩa cấu trúc đệ quy, cấu trúc sau rút gọn biểu thức Ba toán tử dùng để phân tích xây dựng biểu thức ( Kind(), NumberOfOperator(), Operand() ), hai toán dựa vào cấu trúc biểu thức (CompleteSubExpression(), FreeOf() ) định nghĩa phần Chương - Thuật toán Chương luận văn đưa khái niệm thuật toán toán học (3.1), thuật toán đệ quy (3.2) số ví dụ sử dụng thuật toán đệ quy để thiết kế toán tử hệ thống đại số máy tính (3.3) Chương - Rút gọn biểu thức Trong phần luận văn trình bao gồm ba mục( 4.1, 4.2, 4.3) trình bày cụ thể trình xử lý thành phần đại số để rút gọn biểu thức Mục 4.1 liệt kê phép biến đổi đại số sử dụng trình rút gọn đưa định nghĩa biểu thức đại số biểu thức đại số sau rút gọn Mục 4.2 mô tả thuật toán rút gọn :rút gọn biểu thức số hữu tỉ , rút gọn tích, rút gọn tổng, rút gọn lũy thừa, rút gọn hàm số cuối thuật toán rút gọn Các thuật toán rút gọn dựa luật biến đổi đại số Mục 4.3 đưa cài đặt thuật toán ngôn ngữ Java Chương - Cấu trúc đa thức biểu thức hữu tỉ Phần luận văn mô tả cấu trúc đa thức cấu trúc hữu tỉ biểu thức đại số Phần đa thức có số định nghĩa tổng quát đa thức biến (5.1), đa thức nhiều biến (5.2) đa thức tổng quát (5.3) Mỗi định nghĩa có thủ tục để xác định cấu trúc đa thức biểu thức Phần cuối (5.4) mô tả cấu trúc hữu tỉ biểu thức đại số thuật toán biến đổi biểu thức dạng hữu tỉ Chương - Các toán tử hệ thống SMC Đây ứng dụng thực tế hệ thống Phần mô tả thủ tục thực toán tử SMC (TaylorSeries, MINF, MAXF, DEDUP) Chương - Kiểm thử Đưa số ca kiểm thử điển hình 1 Kiến thức tảng 1.1 Ngôn ngữ giả mã Là ngôn ngữ biểu tượng sử dụng luận văn để mô tả khái niệm, định lý, ví dụ, đặc biệt thuật toán thủ tục thực thuật toán Ngôn ngữ giả mã tương tự ngôn ngữ đại số máy tính mang tính hình thức sử dụng biểu tượng toán học, tiếng anh tiếng việt Biểu thức toán học ngôn ngữ giả mã giống biểu thức toán học thông thường có số thừa nhận để phù hợp với môi trường tính toán Các biểu thức mô tả cấu trúc sử dụng toán tử ký hiệu sau: Số nguyên phân số Số thực Định danh Toán tử đại số dấu ngoặc Hàm số Các toán tử logic toán tử quan hệ Tập hợp danh sách Biểu thức toán học ngôn ngữ giả mã 1.2 Tính toán biểu thức chương trình toán học Tính toán biểu thức Thuật ngữ tính toán biểu thức liên quan đến hành động hệ thống đại số máy tính để đáp ứng biểu thức đầu vào Chương trình toán học Một chương trình toán học hay gọi thuật toán toán học chuỗi câu lệnh để thực toán tử cấu trúc điều khiển lập trình đại số máy tính 1.3 Khái niệm toán học 1.3.1 Số nguyên Trong phần đưa tính chất số nguyên mô tả số thuật toán quan trọng để thao tác với số nguyên đại số máy tính 1.3.2 Số hữu tỉ Trong ngôn ngữ giả mã số hữu tỉ phân số 𝑎/𝑏 với 𝑎 𝑏 ≠ số nguyên 2 Cấu trúc biểu thức đại số Do biểu thức toán học đối tượng liệu chương trình đại số máy tính nên hiểu mối quan hệ toàn tử toán hạng biểu thức cần thiết Trong phần tài liệu mô tả cấu trúc thông thường biểu thức đại số 2.1 Cây biểu thức Cây tập hợp hữu hạn nút có nút đặc biệt gọi gốc Giữa nút có quan hệ phân cấp gọi quan hệ cha Định nghĩa đệ quy [1]: Một nút Nút gốc Nếu n nút 𝑇1 , 𝑇2 , … , 𝑇𝑘 với 𝑛1 , 𝑛2 … 𝑛𝑘 gốc T tạo cách cho n nút cha nút 𝑛1 , 𝑛2 … 𝑛𝑘 Nghĩa T lúc n gốc 𝑇1 , 𝑇2 , … , 𝑇𝑘 T, 𝑛1 , 𝑛2 … 𝑛𝑘 nút n Cấu trúc biểu thức bao gồm mối quan hệ toán tử toán hạng Một biểu thức sơ đồ biểu diễn cấu trúc 2.2 Cấu trúc đệ quy biểu thức đại số Lý đệ quy quan trọng hế thống đại số máy tính 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ố Cấu trúc thông thường biểu thức đại số hệ thống đại số máy tính tương tự cấu trúc biểu thức toán học ngôn ngữ lập trình phổ biến 2.4 Cấu trúc rút gọn biểu thức đại số Cấu trúc rút gọn biểu thức giúp đơn giản hóa trình lập trình cách loại bỏ toán tử không cần thiết cung cấp chế truy cập dễ dàng tới toán hạng biểu thức 2.5 Các toán tử biểu thức đại số rút gọn Để phân tích vận dụng biểu thức toán học yêu cầu phải truy cập vào toán tử toán hạng biểu thức 2.5.1 Định nghĩa toán tử 𝐾𝑖𝑛𝑑(𝑢) Nếu u biểu thức nguyên tử trả kiểu u (số nguyên, số hữu tỉ ký hiệu ) Nếu u biểu thức phức tạp Kind(u) trả toán tử nằm gốc biểu thức 2.5.2 Định nghĩa toán tử 𝑁𝑢𝑚𝑏𝑒𝑟𝑂𝑓𝑂𝑝𝑒𝑟𝑎𝑛𝑑𝑠(𝑢) Nếu 𝑢 biểu thức phức hợp 𝑁𝑢𝑚𝑏𝑒𝑟𝑂𝑓𝑂𝑝𝑒𝑟𝑎𝑛𝑑𝑠(𝑢) trả số toán hạng toán tử gốc biểu thức Nếu 𝑢 biểu thức phức hợp toán tử trả 2.5.3 Định nghĩa toán tử 𝑂𝑝𝑒𝑟𝑎𝑛𝑑(𝑢, 𝑖) Nếu 𝑢 biểu thức phức hợp toán tử trả toán hạng thứ i 𝑢 Nếu 𝑢 Các toán tử dựa cấu trúc biểu thức 2.6 Các toán tử dựa cấu trúc biểu thức 2.6.1 Định nghĩa toán tử 𝐶𝑜𝑚𝑝𝑙𝑒𝑡𝑒𝑆𝑢𝑏E𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛(𝑢) Một biểu thức đầy đủ 𝑢 toán hạng toán tử 𝑢 Cho 𝑢 biểu thức rút gọn toán tử 𝐶𝑜𝑚𝑝𝑙𝑒𝑡𝑒𝑆𝑢𝑏E𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛(𝑢) trả danh sách biểu thức đầy đủ 𝑢 2.6.2 Định nghĩa toán tử 𝐹𝑟𝑒𝑒𝑂𝑓(𝑢) Toán tử 𝐹𝑟𝑒𝑒𝑂𝑓(𝑢) xác định biểu thức 𝑢 không phụ thuộc vào biểu thức 𝑡 (u không chứa t) Cho 𝑢 𝑡 biểu thức đại số Toán tử 𝐹𝑟𝑒𝑒𝑂𝑓(𝑢, 𝑡) trả false 𝑡 biểu thức phụ đầy đủ 𝑢 trả True 𝑡 biểu thức phụ đầy đủ 𝑢 Thuật toán 3.1 Thuật toán toán học Một thuật toán toán học nói chung trình bước để giải vấn đề toán học, trình thực chương trình máy tính 3.2 Thuật toán đệ quy Phần tìm hiểu thuật toán đệ quy sử dụng đại số máy tính 3.3 Thủ tục đệ quy Phần đưa số ví dụ minh họa việc sử dụng thuật toán đệ quy hệ thống đại số máy tính 3.3.1 Toán tử 𝐶𝑜𝑚𝑝𝑙𝑒𝑡𝑒S𝑢𝑏E𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛 Thủ tục đệ quy thực toán tử 𝐶𝑜𝑚𝑝𝑙𝑒𝑡𝑒S𝑢𝑏E𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛 3.3.2 Toán tử 𝐹𝑟𝑒𝑒𝑂𝑓 Thủ tục thực thiện toán tử 𝐹𝑟𝑒𝑒𝑂𝑓 Rút gọn biểu thức Quá trình rút gọn phần trình tính toán giá trị định nghĩa tập hợp phép biến đổi rút gọn đại số biến đổi lượng giác áp dụng cho biểu thức đại số 4.1 Các phép biến đổi sử dụng trình rút gọn biểu thức Các luật biến đổi trình rút gọn xác định tiên đề hệ biến đổi logic tiên đề Phần trình bày tiên đề vai trò chúng trình rút gọn Phép phân phối Phép kết hợp Phép giao hoán Biến đổi lũy thừa Các phép biến đổi khác Các phép đồng Phép biến đổi đơn phân bản: Phép biến đổi Undefined: Nếu 𝑢 biểu thức phức hợp với toán hạng ký hiệu Undefined rút gọn thành Undefined 4.1.1 Biểu thức đại số biểu thức đại số rút gọn Trong phần mô tả biểu thức đại số biểu thức đại số rút gọn tương ứng đầu vào đầu thuật toán rút gọn 4.1.2 Thể biểu thức đại số Lớp AnyNode Lớp Bae 4.2.3 Rút gọn lũy thừa Toán tử 𝑆𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑃𝑜𝑤𝑒𝑟 biến đổi 𝑣 𝑚 thành biểu thức đại số rút gọn ký hiệu Undefined 4.2.4 Rút gọn tích Toán tử 𝑆𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑃𝑟𝑜𝑑𝑢𝑐𝑡 biến đổi tích thành biểu thức đại số rút gọn ký hiệu 𝑈𝑛𝑑𝑒𝑓𝑖𝑛𝑒𝑑 dựa phép biến đổi sau: biến đổi kết hợp, giao hoán, biến đổi lũy thừa, tính đồng nhất, phép biến đổi nhị phân, biến đổi số, biến đổi Undefined 4.2.5 Rút gọn tổng Toán tử 𝑆𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑆𝑢𝑚 biến đổi tổng thành biểu thức đại số rút gọn ký hiệu 𝑈𝑛𝑑𝑒𝑓𝑖𝑛𝑒𝑑 4.3 Thể thuật toán rút gọn Lớp Symplify thiết kế bao gồm phương thức tĩnh sử dụng để rút gọn biểu thức 4.3.1 Phương thức rút gọn biểu thức số hữu tỉ Phương thức 𝑠𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑅𝑁𝐸 thiết kế dựa định nghĩa thủ tục giả mã nêu 4.2.2 nhằm mục địch rút bọn hiểu thức số hữu tỉ 4.3.2 Phương thức rút gọn lũy thừa Phương thức 𝑠𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑃𝑜𝑤𝑒𝑟 thiết kế dựa định nghĩa nêu 4.2.2 để rút gọn biểu thức lũy thừa 4.3.3 Phương thức rút gọn tích Phương thức 𝑠𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑃𝑟𝑜𝑑𝑢𝑐𝑡 thiết kế dựa định nghĩa nêu 4.2.4 để rút gọn tích 4.3.4 Phương thức rút gọn tổng Phương thức 𝑠𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑆𝑢𝑚 thiết kế dựa định nghĩa nêu 4.2.5 để rút gọn tổng 4.3.5 Phương thức rút gọn Phương thức 𝑆𝑖𝑚𝑝𝑙𝑖𝑓𝑦 phương thức sử dụng để rút gọn biểu thức dạng biểu thức rút gọn Cấu trúc đa thức biểu thức hữu tỉ Phần tài liệu mô tả cấu trúc đa thức cấu trúc hữu tỉ biểu thức đại số Phần đa thức có số định nghĩa tổng quát đa thức biến (5.1), đa thức nhiều biến (5.2) đa thức tổng quát (5.3) Mỗi định nghĩa có thủ tục để xác định cấu trúc đa thức biểu thức Phần cuối (5.4) mô tả cấu trúc hữu tỉ biểu thức đại số thuật toán biến đổi biểu thức dạng hữu tỉ 5.1 Đa thức biến 5.1.1 Phân tích Định nghĩa 5.1: (Định nghĩa toán học) 𝑢 đa thức biến 𝑥 biểu thức có dạng: 𝑢 = 𝑢𝑛 𝑥 𝑛 + 𝑢𝑛−1 𝑥 𝑛−1 + ⋯ + 𝑢1 𝑥 + 𝑢0 Định nghĩa 5.2: Một đơn thức biến 𝑥 biểu thức toán học 𝑢 thỏa mãn tính chất sau: 𝑢 số nguyên phân số 𝑢 = 𝑥 𝑢 = 𝑥 𝑛 với 𝑛 số nguyên 𝑛 > 𝑢 tích với hai toán hạng thỏa mãn tính chất 1, 2, Định nghĩa 5.3: Một đa thức biến 𝑥 biểu thức thỏa mãn tính chất sau: 𝑢 đơn thức biến 𝑥 𝑢 tổng toán hạng 𝑢 đơn thức biến 𝑥 Các toán tử đa thức biến Định nghĩa 5.4: Cho 𝑢 biểu thức đại số Toán tử 𝑀𝑜𝑛𝑜𝑚𝑖𝑎𝑙𝑆𝑉(𝑢, 𝑥) trả true 𝑢 đơn thức biến 𝑥 trả false ngược lại Toán tử 𝑃𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙𝑆𝑉(𝑢, 𝑥) trả true 𝑢 đa thức biến 𝑥 trả false ngược lại Toán tử DegreeSV Định nghĩa 5.5: Cho 𝑢 biểu thức đại số Nếu 𝑢 đa thức biến 𝑥 𝐷𝑒𝑔𝑟𝑒𝑒𝑆𝑉(𝑢, 𝑥) trả bậc 𝑢 theo biến 𝑥 Nếu 𝑢 không đa thức theo biến 𝑥 toán tử trả ký hiệu 𝑈𝑛𝑑𝑒𝑓𝑖𝑛𝑒𝑑 Toán tử CoefficientSV Định nghĩa 5.6: Cho 𝑢 biểu thức đại số Nếu 𝑢 đa thức biến 𝑥, toán tử 𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑆𝑉(𝑢, 𝑥, 𝑗) trả hệ số 𝑢𝑗 𝑥 𝑗 Nếu 𝑗 > 𝑑𝑒𝑔(𝑢, 𝑥) 𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑆𝑉 trả Nếu 𝑢 không đa thức biến 𝑥 toán tử trả ký hiệu Undefined Toán tử LeadingCoefficientSV Định nghĩa 5.7: Cho 𝑢 biểu thức đại số Nếu 𝑢 đa thức biến 𝑥, toán tử 𝐿𝑒𝑎𝑑𝑖𝑛𝑔𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑆𝑉(𝑢, 𝑥) trả 𝑙𝑐(𝑢, 𝑥) Nếu 𝑢 đa thức biến 𝑥 toán tử trả ký hiệu Undefined 5.1.2 Các thể đơn thức đa thức biến 5.1.2.1 Lớp đơn thức biến MonomialSV 5.1.2.2 Đa thức biến PolynomialSV 5.2 Đa thức nhiều biến Một đa thức chứa nhiều biến gọi đa thức nhiều biến Định nghĩa 5.8: (Định nghĩa toán học) đa thức nhiều biến 𝑢 tập biến {𝑥1 , 𝑥2 , … , 𝑥𝑚 } tổng hữu hạn đơn thức có dạng 𝑛 𝑛 𝑛 𝑐𝑥1 𝑥2 … 𝑥𝑚𝑚 với hệ số 𝑐 số hữu tỉ phần biến 𝑛𝑗 số nguyên không âm 5.3 Đa thức tổng quát Có nhiều biểu thức đa thức ngữ cảnh tính toán đa thức định nghĩa phần 5.1 Ví dụ: Biểu thức 𝑢 = 𝑎 (𝑎+1) 𝑥 + 𝑏𝑥 + 𝑎 Có thể xem u đa thức biến x với phần hệ số 𝑎 (𝑎+1) , 𝑏, 𝑎 Định nghĩa 5.9: (Định nghĩa toán học) Cho 𝑐1 , 𝑐2 , … , 𝑐𝑟 biểu thức đại số 𝑥1 , 𝑥2 , … , 𝑥𝑚 biểu thức đại số số nguyên phân số Một đơn thức tổng quát tập biến {𝑥1 , 𝑥2 … , 𝑥𝑚 } biểu thức có dạng 𝑛 𝑛 𝑛 𝑐1 𝑐2 … 𝑐𝑟 𝑥1 𝑥2 … 𝑥𝑚𝑚 với số mũ 𝑛𝑗 số nguyên không âm 𝑐𝑖 thỏa mãn điều kiện sau 𝐹𝑟𝑒𝑒𝑂𝑓(𝑐𝑖 , 𝑥𝑗 ) → 𝑡𝑟𝑢𝑒 𝑣ớ𝑖 𝑗 = 1,2, … , 𝑚 Biểu thức 𝑥𝑗 biến tổng quát 𝑐𝑖 gọi hệ số tổng quát Biểu thức 𝑛 𝑛 𝑛 𝑥1 𝑥2 … 𝑥𝑚𝑚 gọi phần biến đơn thức, biến tổng quát đơn thức phần biến có giá trị Biểu thức 𝑐1 𝑐2 … 𝑐𝑟 gọi phần hệ số đơn thức, hệ số phần hệ số Một biểu thức 𝑢 đa thức tổng quát đơn thức tổng quát tổng đơn thức tổng quát tập biến {𝑥1 , 𝑥2 , … , 𝑥𝑚 } Định nghĩa 5.10: (Định nghĩa tính toán) Một đơn thức tổng quát tập biến tổng quát 𝑆 = {𝑥1 , 𝑥2 … , 𝑥𝑚 } biểu thức toán học 𝑢 thỏa mãn luật sau: 𝐹𝑟𝑒𝑒𝑂𝑓(𝑢, 𝑥𝑗 ) → 𝑡𝑟𝑢𝑒 với 𝑗 = 1, … , 𝑚 𝑢∈𝑆 𝑢 = 𝑥 𝑛 với 𝑥 ∈ 𝑆 𝑛 số nguyên lớn 𝑢 tích toán hạng 𝑢 đơn thức tổng quát 𝑆 Định nghĩa 6.11: (Định nghĩa tính toán) Một đa thức tổng quát tập 𝑆 = {𝑥1 , 𝑥2 … , 𝑥𝑚 } biểu thức toán học 𝑢 thỏa mãn luật sau: 𝑈 đơn thức tổng quát S 𝑈 tổng mà toán hạng đơn thức tổng quát S 5.3.1 Các toán tử đơn thức tổng quát 5.3.1.1 Toán tử MonomialGPE Định nghĩa 5.11: Cho 𝑢 biểu thức đại số cho 𝑣 biến 𝑥 tập biến tổng quát 𝑆 Toán tử 𝑀𝑜𝑛𝑜𝑚𝑖𝑎𝑙𝐺𝑃𝐸(𝑢, 𝑣) trả true 𝑢 đơn thức tổng quát 𝑆 ngược lại trả false 5.3.1.2 Toán tử CoefficientGME Toán tử trả danh sách gồm hai phần tử c m m bậc đơn thức c hệ số 𝑥 𝑚 trả ký hiệu 𝑈𝑛𝑑𝑒𝑓𝑖𝑛𝑒𝑑 Định nghĩa 5.12: Cho u biểu thức đại số toán tử 𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑡𝑒𝑛𝑡𝐺𝑀𝐸(𝑢, 𝑥) định nghĩa luật sau ([c, m]): Nếu 𝑢 = 𝑥 thì: 𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑡𝑒𝑛𝑡𝐺𝑀𝐸 (𝑢, 𝑥) → [1, 1] Nếu 𝑢 lũy thừa : 𝑏𝑎𝑠𝑒 = 𝑂𝑝𝑒𝑟𝑎𝑛𝑑 (𝑢, 1) 𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑡 = 𝑂𝑝𝑒𝑟𝑎𝑛𝑑 (𝑢, 2) 𝑢 = 𝑥 𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑡 số nguyên lớn trả [1, exponent] Nếu 𝑢 tích toán tử trả Undifined toán hạng 𝑢 đơn thức phụ thuộc x Nếu u có toán hạng phụ thuộc x toán hạng có bậc m số dương trả [𝑢/𝑥 𝑚 , m] Nếu 𝑢 không đơn thức phụ thuộc x toán tử trả Undefined 10 5.3.1.3 Toán tử DegreeGME Toán tử tìm bậc đơn thức theo tập biến tổng quát s Định nghĩa 5.13: Cho u biểu thức đại số vá tập biến tổng quát S toán tử 𝐷𝑒𝑔𝑟𝑒𝑒𝐺𝑀𝐸(𝑢, 𝑥) định nghĩa luật sau: Nếu 𝑢 𝜖 𝑆 toán tử trả Nếu 𝑢 lũy thừa toán tử trả 𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑡(𝑢) Nếu u tích toán hạng 𝑢1 , 𝑢2 , … , 𝑢𝑛 bậc u tổng bậc toán hạng 𝑢1 , 𝑢2 , … , 𝑢𝑛 với tập biến tổng quát S Nếu u không thuộc S: 𝑢 = toán tử trả Undefined ngược lại trả 5.3.1.4 Thể đơn thức tổng quát Lớp 𝐺𝑒𝑛𝑒𝑟𝑎𝑙𝑀𝑜𝑛𝑜𝑚𝑖𝑎𝑙 thiết kế dựa phân tích đơn thức tổng quát 5.3.2 Các toán tử đa thức tổng quát 5.3.2.1 Toán tử PolynomialGPE Định nghĩa 5.14: Toán tử 𝑃𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙𝐺𝑃𝐸 (𝑢, 𝑣 ) trả true 𝑢 đa thức với biến tổng quát {𝑥} 𝑆 ngược lại trả false 5.3.2.2 Toán tử Variables Toán tử xác định tập biến tổng quát tự nhiên biểu thức Định nghĩa 5.15: Cho u biểu thúc đại số Toán tử 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 (𝑢) định nghĩa luật sau đây: Nếu 𝑢 số nguyên phân số 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒(𝑢) → ∅ Giả sử 𝑢 lũy thừa Nếu số mũ u số nguyên lớn 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 (𝑢) → {𝑂𝑝𝑒𝑟𝑎𝑛𝑑(𝑢, 1)} Trong trườngh hợp lại 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 (𝑢) → {𝑢} Giả sử 𝑢 tổng Toán tử 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒(𝑢) hợp biến tổng quát toán hạng 𝑢 xác định luật 1, 2, 4, Giả sử 𝑢 tích Toán tử 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒(𝑢) chứa hợp biến tổng quát toán hạng u xác định luật 1, 2, 5 Nếu 𝑢 không thỏa mãn trường hợp 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 (𝑢) → {𝑢} 11 5.3.2.3 Toán tử DegreeGPE Định nghĩa 5.16: Cho 𝑆 = {𝑥1 , 𝑥2 , … , 𝑥𝑚 } tập đơn thức tổng quát Cho 𝑢 = 𝑛 𝑛 𝑐1 … 𝑐𝑟 𝑥1 … 𝑥𝑚𝑚 đơn thức với phần hệ số khác Bậc 𝑢 S tổng số mũ biến tổng quát: deg(𝑢, 𝑆) = 𝑛1 + 𝑛2 … + 𝑛𝑚 Theo quy ước toán học bậc đơn thức −∞ Nếu 𝑢 đa thức tổng quát tổng đơn thức deg(𝑢, 𝑆) giá trị lớn bậc đơn thức 𝑢 Nếu 𝑢 chứa biến 𝑥 bậc u deg(𝑢, 𝑥) Định nghĩa 5.17: Cho 𝑢 biểu thức đai số 𝑣 biến tổng quát 𝑥 tập biến tổng quát S Toán tử DegreeGPE có dạng 𝐷𝑒𝑔𝑟𝑒𝑒𝐺𝑃𝐸(𝑢, 𝑣) Khi 𝑢 đa thức tổng quát 𝑣 toán tử trả bậc 𝑢 Nếu 𝑢 không đa thức tổng quát 𝑣 toán tử trả ký hiệu Undefined Định nghĩa 5.18: Cho 𝑢 biểu thức toán học 𝑆 = 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠(𝑢) Toán tử deg(𝑢, 𝑆) gọi tổng bậc biểu thức 𝑢 5.3.2.4 Toán tử CoefficientGPE Định nghĩa 5.19: Cho 𝑢 cho biểu thức toán học Nếu 𝑢 đa thức tổng quát với biến tổng quát 𝑥 𝑣à 𝑗 ≥ số nguyên toán tử 𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝐺𝑃𝐸 (𝑢, 𝑥, 𝑗) trả tổng phần hệ số tất đơn thức 𝑢 mà có phần biến 𝑥 𝑗 Nếu đơn thức có phần biến 𝑥 𝑗 toán tử trả Nếu 𝑢 đa thức biến 𝑥 toán tử trả ký hiệu Undefined 5.3.2.5 Toán tử LeadingCoefficientGPE Định nghĩa 5.20: Cho 𝑢 biểu thức đại số Nếu 𝑢 đa thức tổng quát 𝑥 𝐿𝑒𝑎𝑑𝑖𝑛𝑔𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝐺𝑃𝐸(u) với 𝑥 định nghĩa tổng phần hệ số tất đơn thức với phần biến 𝑥 degreeGpe(𝑢,𝑥) Hệ số biểu diễn 𝑙𝑐(𝑢, 𝑥) Định nghĩa 5.21: Cho u đa thức tổng quát 𝑥 Toán tử 𝐿𝑒𝑎𝑑𝑖𝑛𝑔𝐶𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝐺𝑃𝐸(𝑢, 𝑥) trả 𝑙𝑐(𝑢, 𝑥) Nếu 𝑢 không đa thức tổng quát 𝑥 toán tử trả ký hiệu Undefined 12 5.3.2.6 Thiết kế lớp tương ứng đa thức tổng quát 5.3.3 Các toán tử thao tác với đa thức tổng quát Trong phần mô tả hai toán tử sử dụng để thao tác tính toán đa thức tổng quát Cả hai toán tử dựa hai tính chất phân phối vào giao hoán phép cộng 𝑎(𝑎 + 𝑏) = 𝑎𝑏 + 𝑎𝑐 (𝑎 + 𝑏)𝑐 = 𝑎𝑐 + 𝑏𝑐 5.3.3.1 Toán tử 𝐶𝑜𝑙𝑙𝑒𝑐𝑡𝑇𝑒𝑟𝑚𝑠 Việc rút gọn hệ số đa thức thường xuyên áp dụng trình tính toán đại số Trong suốt trình rút gọn toán tử áp dụng cho đơn thức có phần hệ số số hữu tỉ (số nguyên phân số) Việc rút gọn hệ số thực toán tử 𝐶𝑜𝑙𝑙𝑒𝑐𝑡𝑇𝑒𝑟𝑚𝑠 Định nghĩa 5.22: Một đa thức tổng quát 𝑢 có phần hệ số thu gọn tập biến tổng quát 𝑆 thỏa mãn số thuộc tính sau: U đơn thức tổng quát S U tổng đơn thức tổng quát S với phần biến rõ ràng (distinct) (Định nghĩa tương tự định nghĩa Định nghĩa 5.9 ngoại trừ luật số hai yêu cầu phần biến phải xác định rõ ràng.) 5.3.3.2 Toán tử 𝐸𝑥𝑝𝑎𝑛𝑑 Toán tử 𝐸𝑥𝑝𝑎𝑛𝑑 áp dụng hai phép biến đổi phân phối tới tích lũy thừa để thu tổng Ví dụ: (𝑥 + 2)(𝑥 + 3)(𝑥 + 4) → 𝑥 + 9𝑥 + 26𝑥 + 24 Định nghĩa 5.23 mô tả dạng đầu toán tử 𝐸𝑥𝑝𝑎𝑛𝑑 Định nghĩa 5.23: Một biểu thức đại số 𝑢 có dạng khai triển tập biến tổng quát tính bới toán tử 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒(𝑢) không chứa tổng 5.4 Biểu thức hữu tỉ tổng quát Trong ngữ cảnh toán học biểu thức hữu tỉ định nghĩa thương hai đa thức Trong phần luận văn trình bày cấu trúc biểu thức hữu tỉ biểu thức đại số mô tả thuật toán biến đổi biểu thức dạng hữu tỉ Định nghĩa 5.24: cho 𝑆 = {𝑥1 , 𝑥2 , … , 𝑥𝑚 } tập biến tổng quát Một biểu thức đại số 𝑢 biểu thức hữu tỉ GRE (general rational expression) 𝑆 𝑢 = 𝑝/𝑞 với 𝑝 𝑞 đa thức tổng quát 𝑆 13 5.4.1 Toán tử 𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟 𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟 Để xác định biểu thức dạng hữu tỉ hay không cần định nghĩa xác tử số mẫu số biểu thức Toán tử 𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟 𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟 sử dụng để làm việc Hai toán tử định nghĩa luật biến đổi Định nghĩa 5.25: Cho u biểu thức đại số Nếu 𝑢 phân số 𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟(𝑢) → 𝑂𝑝𝑒𝑟𝑎𝑛𝑑(𝑢, 1) 𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟 (𝑢) → 𝑂𝑝𝑒𝑟𝑎𝑛𝑑(𝑢, 2) Giả sử 𝑢 lũy thừa Nếu số mũ 𝑢 số nguyên âm phân số âm 𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟(𝑢) → 1, 𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟(𝑢) → 𝑢−1 không 𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟(𝑢) → 𝑢, 𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟 (𝑢) → Giả sử 𝑢 tích 𝑣 = 𝑂𝑝𝑒𝑟𝑎𝑛𝑑(𝑢, 1) thì: 𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟(𝑢) → 𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟(𝑣) ∗ 𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟(𝑢/𝑣) 𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟(𝑢) → 𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟(𝑣) ∗ 𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟(𝑢/𝑣) Nếu không thỏa mãn luật thì: 𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟(𝑢) → 𝑢, 𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟(𝑢) → Định nghĩa 5.26: Cho 𝑆 = {𝑥1 , 𝑥2 , … , 𝑥𝑚 } tập biến tổng quát Một biểu thức 𝑢 biểu thức hữu tỉ 𝑆 𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟(𝑢) 𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟(𝑢) đa thức tổng quát 𝑆 5.4.2 Toán tử RationalGPE Định nghĩa 5.27: Cho 𝑢 biểu thức đại số cho 𝑣 biến tổng quát 𝑥 tập biến tổng quát 𝑆 Toán tử 𝑅𝑎𝑡𝑖𝑜𝑛𝑎𝑙𝐺𝑃𝐸(𝑢, 𝑣) trả 𝑇𝑟𝑢𝑒 𝑢 biểu thức hữu tỉ tổng quát 𝑥 𝑆 trả 𝐹𝑎𝑙𝑠𝑒 trường hợp lại Toán tử định nghĩa luật biến đổi sau: 𝑅𝑎𝑡𝑖𝑜𝑛𝑎𝑙𝐺𝑃𝐸(𝑢, 𝑣) → 𝑃𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙𝐺𝑃𝐸(𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟(𝑢), 𝑣) 𝑎𝑛𝑑 𝑃𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙𝐺𝑃𝐸(𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟(𝑢), 𝑣) 5.4.3 Toán tử RationalVariables Toán tử định nghĩa tập biến tự nhiên biểu thức hữu tỉ tổng quát Định nghĩa 5.28: Cho u biểu thức đại số Toán tử 𝑅𝑎𝑡𝑖𝑜𝑛𝑎𝑙𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠(𝑢) định nghĩa luật sau: 14 𝑅𝑎𝑡𝑖𝑜𝑛𝑎𝑙𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠(𝑢) → 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠(𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟(𝑢)) ∪ 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠(𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟(𝑢)) với toán tử 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒 định nghĩa Định nghĩa 5.15 5.4.4 Hữu tỉ hóa biểu thức đại số Quá trình hữu tỉ hóa dựa việc biến đổi kết hợp toán hạng tổng mẫu số chung Định nghĩa 5.29: Một biểu thức đại số 𝑢 dạng hữu tỉ hóa thỏa mãn luật sau: Nếu 𝑢 số nguyên, phân số, ký hiệu, giai thừa dạng hàm 𝑢 loại khác xem 𝑢 biểu thức hữu tỉ tập 𝑆 = 𝑅𝑎𝑡𝑖𝑜𝑛𝑎𝑙𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠(𝑢) a Mỗi biểu thức 𝑣 𝑆 dạng hữu tỉ với 𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟(𝑣) = b Phần hệ số đơn thức 𝑁𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟(𝑢) 𝐷𝑒𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑜𝑟(𝑢) số nguyên Toán tử RationalizeExpression Toán tử biến đổi biểu thức đại số 𝑢 thành biểu thức tương đương dạng hữu tỉ Toán tử hiểu ngữ cảnh rút gọn bao gồm phép biến đổi lũy thừa sau: 𝑢𝑣 𝑢𝑤 → 𝑢𝑣+𝑤 (𝑢𝑣 )𝑛 → 𝑢𝑣𝑛 (𝑢 𝑣 )𝑛 → 𝑢 𝑛 𝑣 𝑛 Với 𝑢, 𝑣, 𝑤 biểu thức đại số 𝑛 số nguyên 5.4.5 Thể biểu thức hữu tỉ Lớp 𝐺𝑒𝑛𝑛𝑒𝑟𝑎𝑙𝑅𝑎𝑡𝑖𝑜𝑛𝑎𝑙𝐸𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛 lớp thể thiết kế dựa đặc điểm biểu thức hữu tỉ tổng quát Các toán tử hệ thống SMC 6.1 Khai triển Taylor 6.1.1 Toán tử 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 Định nghĩa 6.1: Cho biểu thức đại số 𝑢 Toán tử 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒(𝑢, 𝑥) trả đạo hàm bậc 𝑢 tính theo biến 𝑥 định nghĩa luật sau: Nếu 𝑢 = 𝑥 15 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑢, 𝑥) → 𝑤 Nếu 𝑢 = 𝑥 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑢, 𝑥) → 𝑤 ∗ 𝑣 𝑤−1 ∗ 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑣, 𝑥) + 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑤, 𝑥) ∗ 𝑣 𝑤 ∗ ln(𝑣) Giả sử 𝑢 tổng cho 𝑣 = 𝑂𝑝𝑒𝑟𝑎𝑛𝑑(𝑢, 1) 𝑤 = 𝑢 − 𝑣 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑢, 𝑥) → 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑣, 𝑥) + 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒(𝑤, 𝑥) Giả sử 𝑢 tích cho 𝑣 = 𝑂𝑝𝑒𝑟𝑎𝑛𝑑(𝑢, 1) 𝑤 = 𝑢/𝑣 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑢, 𝑥) → 𝑤 ∗ 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑣, 𝑥) + 𝑣 ∗ 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒(𝑤, 𝑥) Nếu 𝑢 = sin(𝑣) 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑢, 𝑥) → cos(𝑣 ) ∗ 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒(𝑣, 𝑥) Nếu 𝑢 = cos(𝑣) 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑢, 𝑥) → −sin(𝑥) ∗ 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒(𝑣, 𝑥) Nếu 𝑢 = tan(𝑣) 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑢, 𝑥) → sec (𝑣 ) ∗ 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒(𝑣, 𝑥) Nếu 𝑢 = cot(𝑣) 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑢, 𝑥) → −csc(𝑣 ) ∗ 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒(𝑣, 𝑥) Nếu 𝑢 = 𝑠𝑒𝑐(𝑣) 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑢, 𝑥) → sec(𝑣 ) ∗ tan(𝑣) ∗ 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒(𝑣, 𝑥) 10 Nếu 𝑢 = 𝑐𝑠𝑐(𝑣) 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑢, 𝑥) → −csc(𝑣 ) ∗ 𝑐𝑜𝑡(𝑣) ∗ 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒(𝑣, 𝑥) 11 Nếu 𝐹𝑟𝑒𝑒𝑂𝑓 (𝑢, 𝑥) = 𝑡𝑟𝑢𝑒 𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 (𝑢, 𝑥) → 6.1.2 Toán tử 𝐻𝑖𝑔ℎ𝑒𝑟𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 Cho u biểu thức đại số, toán tử 𝐻𝑖𝑔ℎ𝑒𝑟𝐷𝑒𝑟𝑖𝑣𝑎𝑡𝑖𝑣𝑒 trả đạo hàm bậc 𝑛 biểu thức 𝑢 với biến 𝑥 6.1.3 Toán tử 𝑇𝑎𝑦𝑙𝑜𝑟Series Định nghĩa 6.2: Cho 𝑓 hàm số có đạo hàm riêng liên tục tới cấp 𝑛 + khoảng chứa điểm 𝑎 Chuỗi taylor tạo hàm 𝑓 điểm 𝑥 = 𝑎 có dạng 𝑓 ′′ (𝑎) 𝑓 𝑛 (𝑎 ) (𝑥 − 𝑎 )2 + ⋯ + (𝑥 − 𝑎 )𝑛 + ⋯ 2! 𝑛! ∞ (𝑘) ( ) 𝑓 𝑎 (𝑥 − 𝑎 )𝑘 =∑ 𝑘! 𝑓 (𝑎) + 𝑓 ′ (0)(𝑥 − 𝑎) + 𝑘=0 Cho 𝑢 biểu thức đại số toán tử 𝑇𝑎𝑦𝑙𝑜𝑟𝑆𝑒𝑟𝑖𝑒𝑠 trả chuỗi taylor cấp 𝑛 𝑢 theo biến 𝑥 điểm 𝑎 16 6.2 Các toán tử khác 6.2.1 Toán tử 𝑀𝐼𝑁𝐹 Định nghĩa 6.3: [15] Cho 𝐹1 (𝑧), 𝐹2 (𝑧) biểu thức đại số với biến tổng quát 𝑧, 𝐹 (𝑧) = 𝑀𝐼𝑁𝐹(𝐹1 (𝑧), 𝐹2 (𝑧)) tính công thức sau: [𝑧 𝑖 ]𝐹 (𝑧) = 𝑀𝐼𝑁 ([𝑧 𝑖 ]𝐹1 (𝑧), [𝑧 𝑖 ]𝐹2 (𝑧)) ∀𝑖 ≥ Toán tử 𝑀𝐼𝑁𝐹 trả 𝑎𝑖 hệ số nhỏ hệ số 𝑧 𝑖 𝐹1 𝐹2 Ví dụ: MINF(1 + z + z , + 2z ) = + z 6.2.2 Toán tử 𝑀𝐴𝑋𝐹 Định nghĩa 6.4: [15] Cho 𝐹1 (𝑧), 𝐹2 (𝑧) biểu thức đại số với biến tổng quát 𝑧, 𝐹 (𝑧) = 𝑀𝐴𝑋𝐹(𝐹1 (𝑧), 𝐹2 (𝑧)) tính bởi: [𝑧 𝑖 ]𝐹 (𝑧) = 𝑀𝐴𝑋 ([𝑧 𝑖 ]𝐹1 (𝑧), [𝑧 𝑖 ]𝐹2 (𝑧)) ∀𝑖 ≥ Toán tử 𝑀𝐴𝑋𝐹 trả 𝑎𝑖 hệ số lớn hệ số 𝑧 𝑖 𝐹1 𝐹2 Ví dụ: MAXF(1 + z + z , + 2z ) = + z + 2z 6.2.3 Toán tử 𝐷𝐸𝑈𝑃 Định nghĩa 6.5: Cho F(z) hàm số 𝐷𝐸𝐷𝑈𝑃(𝐹 (𝑧)) = 𝑧𝑖 ∑ [𝑧 𝑖 ]𝐹(𝑧)>0 Toán tử DEDUP trả hàm sinh với hệ số 𝑧 𝑖 gán [𝑧 𝑖 ]𝐹 (𝑧) > [15] Ví dụ: 𝐷𝐸𝐷𝑈𝑃(𝐹 (𝑧)) = + z + z + z + = 1/(1 − z) Kiểm thử Đưa số ca kiểm thử điển hình Kiểm thử phương thức 𝑡𝑎𝑦𝑙𝑜𝑟𝑆𝑒𝑟𝑖𝑒𝑠 (Tìm chuỗi taylor theo bậc n biến x) Stt Đầu vào exp(𝑥) , Kết mong đợi 𝑥2 𝑥3 1+𝑥+ + Kết thực tế 1+𝑥+ 𝑥2 𝑥3 + 17 ,4 1−3 exp(𝑥)sin(𝑥), + 𝑥 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥 + 𝑥2 + 𝑥3 + 𝑥4 𝑥3 𝑥5 𝑥6 𝑥+𝑥 + − − 30 90 −1 𝑥 + 𝑥2 + 𝑥3 + 𝑥 30 −1 + 𝑥 90 Kiểm thử phương thức 𝑚𝑖𝑛𝐹 Stt Đầu vào 1 + x + x , + 2x 2 4𝑥 − 15𝑥 − 11𝑥 − 1, −14x + 14x + 22x + 14 Kết mong đợi + x2 −1 − 11𝑥 − 15𝑥 − 14𝑥 Kết thực tế + x2 −1 + (−11)𝑥 + (−15)𝑥 + (−14)𝑥 Kiểm thử phương thức 𝑚𝑎𝑥𝐹 Stt Đầu vào 1 + x + x , + 2x 2 4𝑥 − 15𝑥 − 11𝑥 − 1, −14x + 14x + 22x + 14 Kết mong đợi + x + 2x 14 + 22𝑥 + 14𝑥 + 4𝑥 Kết thực tế + x + 2x 14 + 22𝑥 + 14𝑥 + 4𝑥 Kiểm thử phương thức 𝑑𝑒𝑑𝑢𝑝 (Note: mặc định chuỗi taylor tính giá trị x=0) Stt Đầu vào 1/(1 − x), ,4 𝑥+1 Kết mong đợi + x + x2 + x3 − 5𝑥 + 𝑥 − 5𝑥 + 𝑥4 Kết thực tế + x + x2 + x3 − 5𝑥 + 𝑥 − 5𝑥 + 𝑥4 18 Kết luận Kết đạt Trong phạm vị luân văn hướng tới mục đích tìm hiểu, nghiên cứu phát triển hệ thống đại số máy tính miễn phí nhằm thay hệ thống đại số máy tính thương mại sẵn có việc đáp ứng yêu cầu hệ thống SMC Qua chương, luận văn trình bày phương pháp tiếp cận, phân tích giải vấn đề gặp phải trình xây dựng hệ thống Các kết đặt được: Xây dựng hệ thống đại số máy tính cho phép thao tác với biểu thức đại số 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 o Rút gọn biểu thức Xử lý đa thức 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 vủa hàm số giá trị bất kỳ, đến hệ số o Xây dựng hàm MAXF, MINF, TRUNC, DEDUP Hướng nghiên cứu lương lai Với làm trọng phạm vi luận văn hy vọng tương lai có cải thiện giúp tăng chất lượng hệ thống Hoàn thiện hệ thống o Khả rút gọn biểu thức hữu tỉ o Khả phân tích chuỗi để nhận biết biểu thức o Hỗ trợ xử lý biểu thức logic o Tăng hiệu xuất thực cách cải thiện thuật toán, phương thức tính toán để giảm thời gian o Phát triển lại ngôn ngữ C++ để cạnh tranh hiệu với hệ thống có Thêm giao diện để thân thiện với người dùng 19 Tài liệu tham khảo Tiếng việt Đỗ 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 Hazem Mohamed El-Alfy (1997) Computer algebraic and its applications, B.Sc., Faculty of Engineering, Alexandria University Chee Keng Yap (2000) Fundamental Problems of Algorithmic Algebra, Oxford University Press, New York David Musser (1971) Algorithms for Polynomial Factorization, PhD thesis, Department of Computer Science, University of Wisconsin F Winkler (1996) Polynomial Algorithms in Computer Algebra, SpringerVerlag, New York Hans Vangheluwe, Bhama Sridharan and Indrani A.V (2013) An algorithm to implement a canonical representation of algebraic expression and equations in AToM Henri Cohen (1993) A Course in Computational Algebraic Number Theory, Springer-Verlag, New York 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 18 Richard J Fateman (1999) Symbolic mathematics system evaluators, In Michael J Wester, editor, Computer Algebra Systems, A Practical Guide, pages 255–284 John Wiley & Sons, Ltd., New York 20 19 Richard J Gaylord, N Kamin, Samuel, and Paul R Wellin (1996) An Introduction to Programming with Mathematica, Second Edition SpringerVerlag, 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 22 Stephen Wolfram The Mathematica Book Fourth Edition Cambridge University Press., New York, 1999 Website 23 https://en.wikipedia.org/wiki/Computer_algebra_system 24 https://en.wikipedia.org/wiki/Taylor_series 25 http://www.le.ac.uk/users/dsgp1/COURSES/DERIVATE/TAYLOR.PDF 26 http://mathworld.wolfram.com/TaylorSeries.html Phụ lục Gồm thủ tục cài đặt số toán tử [...]... thống đại số máy tính thương mại sẵn có trong việc đáp ứng các yêu cầu của hệ thống SMC Qua 7 chương, luận văn đã trình bày về phương pháp tiếp cận, phân tích và giải quyết các vấn đề gặp phải trong quá trình xây dựng hệ thống Các kết quả đặt được: Xây dựng được hệ thống đại số máy tính cơ bản cho phép thao tác với biểu thức đại số 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. .. định cấu trúc đa thức của một biểu thức Phần cuối cùng (5.4) sẽ mô tả cấu trúc hữu tỉ của một biểu thức đại số và một thuật toán biến đổi biểu thức về dạng hữu tỉ 5.1 Đa thức một biến 5.1.1 Phân tích Định nghĩa 5.1: (Định nghĩa toán học) 𝑢 là đa thức một biến 𝑥 là một biểu thức có dạng: 𝑢 = 𝑢𝑛 𝑥 𝑛 + 𝑢𝑛−1 𝑥 𝑛−1 + ⋯ + 𝑢1 𝑥 + 𝑢0 Định nghĩa 5.2: Một đơn thức một biến 𝑥 là một biểu thức toán học 𝑢 thỏa mãn... là các biểu thức đại số và 𝑥1 , 𝑥2 , … , 𝑥𝑚 là các biểu thức đại số không phải là số nguyên hoặc phân số Một đơn thức tổng quát trong tập biến {𝑥1 , 𝑥2 … , 𝑥𝑚 } là một biểu thức có dạng 𝑛 𝑛 𝑛 𝑐1 𝑐2 … 𝑐𝑟 𝑥1 1 𝑥2 2 … 𝑥𝑚𝑚 với số mũ 𝑛𝑗 là số nguyên không âm và 𝑐𝑖 thỏa mãn điều kiện sau 𝐹𝑟𝑒𝑒𝑂𝑓(𝑐𝑖 , 𝑥𝑗 ) → 𝑡𝑟𝑢𝑒 𝑣ớ𝑖 𝑗 = 1,2, … , 𝑚 Biểu thức 𝑥𝑗 là biến tổng quát và 𝑐𝑖 gọi là hệ số tổng quát Biểu thức 𝑛 𝑛... tính toán đa thức tổng quát Cả hai toán tử dựa trên hai tính chất phân phối vào giao hoán của phép cộng 𝑎(𝑎 + 𝑏) = 𝑎𝑏 + 𝑎𝑐 (𝑎 + 𝑏)𝑐 = 𝑎𝑐 + 𝑏𝑐 5.3.3.1 Toán tử 𝐶𝑜𝑙𝑙𝑒𝑐𝑡𝑇𝑒𝑟𝑚𝑠 Việc rút gọn hệ số của đa thức thường xuyên được áp dụng trong quá trình tính toán đại số Trong suốt quá trình rút gọn toán tử này chỉ áp dụng cho các đơn thức có phần hệ số là số hữu tỉ (số nguyên hoặc phân số) Việc rút gọn các hệ. .. Thuật toán rút gọn Thuật toán rút gọn được thực hiện dựa trên các phép biến đổi cơ bản và các định nghĩa đã nêu ở các phần trước Thuật toán bao gồm các bước sau: 1 Nếu 𝑢 là một biểu thức đại số cơ bản thuật toán sẽ trả về một biểu thức đại số rút gọn 2 Nếu 𝑢 là một biểu thức đại số rút gọn thì thuật toán trả ra 𝑢 4.2.1 Thủ tục rút gọn chính Procedure 𝑆𝑖𝑚𝑝𝑙𝑖𝑓𝑦(u); Input u: a là một biểu thức đại số cơ... thức hữu tỉ tổng quát Trong ngữ cảnh toán học một biểu thức hữu tỉ được định nghĩa như là thương của hai đa thức Trong phần này của luận văn sẽ trình bày về cấu trúc biểu thức hữu tỉ của một biểu thức đại số và mô tả thuật toán biến đổi một biểu thức về dạng hữu tỉ Định nghĩa 5.24: cho 𝑆 = {𝑥1 , 𝑥2 , … , 𝑥𝑚 } là một tập biến tổng quát Một biểu thức đại số 𝑢 là một biểu thức hữu tỉ GRE (general rational... một tổng 4.3.5 Phương thức rút gọn chính Phương thức 𝑆𝑖𝑚𝑝𝑙𝑖𝑓𝑦 là phương thức chính sử dụng để rút gọn biểu thức cơ bản về dạng biểu thức rút gọn 7 5 Cấu trúc của đa thức và biểu thức hữu tỉ Phần này của tài liệu mô tả cấu trúc đa thức và cấu trúc hữu tỉ của một biểu thức đại số Phần đa thức có một số định nghĩa tổng quát về đa thức một biến (5.1), đa thức nhiều biến (5.2) và đa thức tổng quát (5.3)... 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 o Rút gọn biểu thức Xử lý đa thức o Đa thức một biến, nhiều biến o Các phép toán cơ bản trên đa thức o Khai triển đa thức Xây dựng các hàm xử lý cho hệ thống SMC o Tìm chuỗi taylor vủa một hàm số tại một giá trị bất kỳ, đến một hệ số bất kỳ o Xây dựng hàm MAXF, MINF, TRUNC, DEDUP Hướng nghiên cứu trong lương lai Với những gì... đơn thức có dạng 𝑛 𝑛 𝑛 𝑐𝑥1 1 𝑥2 2 … 𝑥𝑚𝑚 với hệ số 𝑐 là một số hữu tỉ và phần biến 𝑛𝑗 là số nguyên không âm 5.3 Đa thức tổng quát Có nhiều biểu thức là đa thức trong ngữ cảnh tính toán nhưng không phải là đa thức trong định nghĩa của phần 5.1 Ví dụ: Biểu thức 𝑢 = 𝑎 (𝑎+1) 𝑥 2 + 𝑏𝑥 + 1 𝑎 Có thể xem u như là một đa thức một biến x với phần hệ số là 𝑎 (𝑎+1) , 𝑏, 1 𝑎 Định nghĩa 5.9: (Định nghĩa toán học) ... Thủ tục rút gọn chính Toán tử 𝑀𝑎𝑝 sẽ được trình bày trong phần phụ lục 𝑚𝑎𝑝 4.2.2 Rút gọn biểu thức số hữu tỉ Toán tử 𝑆𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑅𝑁𝐸 sử dụng để tính toán với số nguyên và phân số 6 4.2.3 Rút gọn lũy thừa Toán tử 𝑆𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑃𝑜𝑤𝑒𝑟 sẽ biến đổi 𝑣 𝑚 thành biểu thức đại số rút gọn hoặc ký hiệu Undefined 4.2.4 Rút gọn tích Toán tử 𝑆𝑖𝑚𝑝𝑙𝑖𝑓𝑦𝑃𝑟𝑜𝑑𝑢𝑐𝑡 sẽ biến đổi một tích thành một biểu thức đại số rút gọn hoặc ký hiệu