Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
723 KB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN Phịng Sau Đại Học Báo Cáo Mơn Học Lập Trình Symbolic CHƯƠNG TRÌNH HỖ TRỢ GIẢI TOÁN NGUYÊN HÀM SỬ DỤNG CƠ SỞ TRI THỨC VÀ MAPLE Giảng viên hướng dẫn: PGS.TS Đỗ Văn Nhơn Học viên thực hiện: Đỗ Duy Phúc Mã số học viên: CH1101122 Lớp: Cao Học K6 TP.HCM, tháng năm 2013 Mục Lục Mục Lục .2 Lời Nói Đầu Phần Giới Thiệu Phần Phần Nhân Tính Tốn Bằng Maple 2.1 Module nguyên hàm .4 2.2 Module biến đổi biểu thức .4 2.3 Module tích phân tính sẵn 2.4 Module đổi biến vô tỉ lượng giác Phần Giao Diện Chương Trình Tài Liệu Tham Khảo 12 Lời Nói Đầu Trong chương trình tốn học phổ thơng, tốn tìm nguyên hàm (hay tính tích phân) hàm cho trước dạng tốn khó Để giải ta cần phải xác định dạng hàm cần tìm ngun hàm Sau áp dụng biện pháp biến đổi khác để đưa hàm dạng giải Cuối áp dụng phương pháp giải phù hợp để tìm kết Đây trình nhiều bước, áp dụng nhiều kiến thức tốn, nhiều học sinh phổ thơng giải dạng tốn có cảm giác khó khăn Để hỗ trợ học sinh cho việc học giải tốn tìm ngun hàm cách thú vị hơn, mục tiêu báo cáo xây dựng chương trình hỗ trợ giải tốn tìm ngun hàm cho hàm nhiều dạng khác Chương trình có ứng dụng máy tính tốn chương trình Maple để hỗ trợ tính tốn trình bày kết thơng qua giao diện xây dựng thư viện NET (bằng ngôn ngữ C#) Với thân thiện quen thuộc giao diện window NET mạnh mẽ máy tính tốn Maple, chương trình giúp cho việc giải tốn tìm ngun hàm trở nên dễ dàng, trực quan nhiều Phần Giới Thiệu Chương trình chia làm hai phần chính: phần lõi tính tốn phần giao diện trình bày Phần lõi chương trình viết Maple phần quan trọng nhất, não chương trình Trong phần giao diện window NET lại mang đến cho người dùng thân thiện, trực quan dễ dàng thao tác Phần Phần Nhân Tính Tốn Bằng Maple Phần nhân tính tốn kết hợp từ nhiều module Mỗi module dùng để tính tích phân cho hàm số đầu vào dạng cụ thể Phần gồm có bảy module Các tập tin chứa source code Maple module tìm thấy thư mục “Source_Code\ Module Core (Maple)\” Chi tiết module miêu tả sau 2.1 Module nguyên hàm Đây module dùng để tìm nguyên hàm hàm số liệt kê cơng thức tính tích phân, như: hàm đa thức, hàm lượng giác, hàm logarit, … Module lưu tập tin “Module NguyenHamCoBan.mw” 2.2 Module biến đổi biểu thức Module dùng để đưa biểu thức dấu tích phân dạng đơn giản để lấy nguyên hàm Nói cách khác module đưa biểu thức dạng tích phân hàm Bên cạnh cịn cho phép đổi biến cần thiết Module gồm hai thành phần: tập tin sở tri thức Equations.txt thủ tục ApplyEquation tập tin “Module BienDoiBieuThuc.mw” Cấu trúc tập tin Equations.txt bao gồm nhiều đẳng thức, đẵng thức bắt đầu dòng ‘Equation N’ với N số thứ tự đẳng thức Các đẵng thức dùng để so khớp dạng hàm input biến đổi thành dạng đơn giản để tính Mỗi đẵng thức có cấu trúc gồm: - lhs: left hand side – biểu thức đầu vào cần so khớp rhs: right hand side – biểu thức đầu ra, hay biểu thức trả newVar: biến có đổi biến Ở biểu diễn đẵng thức đổi biến cond: điều kiện để đạt đẳng thức có Ví dụ: Equation // đẳng thức thứ lhs : N*(x^2+p*x+q)^m //biểu thức đầu vào so sánh rhs : N*(u^2+a^2)^m // biểu thức đầu newVar: u = x+p/2 ; a^2= q-p^2/4 // đẳng thức đổi biến cond : q-p^2/4>0 // điều kiện Kỹ thuật so khớp chủ yếu sử dụng hàm match Maple 2.3 Module tích phân tính sẵn Module dùng để đưa lời giải cho tốn tính ngun hàm khơng thể tính luật đưa Module gồm thủ tục TichPhanTinhSan tập tin “Module TichPhanTinhSan.mw” Nó so khớp biểu thức đưa vào có biểu thức tương ứng trả lời giải cho tốn 2.4 Module đổi biến vô tỉ lượng giác Module dùng để đổi biến cho tốn có chứa hàm lượng giác hàm vơ tỉ Trong đó: - Các hàm lượng giác đổi biến ví dụ sau: t = tan(x/2) sin(x) = 2*t/(1+t^2) cos(x) = (1-t^2)/(1+t^2) tan(x) = 2*t/(1-t^2) cotan(x) (hay cot(x)) = (1-c^2)/(2*c) Các hàm vô tỉ: Nếu biểu thức dấu tích phân có chứa ((a*x+b)/(c*x+d))^m với m số hữu tỉ Đặt t = ((a*x+b)/(c*x+d))^m Module gồm thủ tục DBVoTiVaLGiac tập tin “DB VoTiVaLGiac.mw” 2.5 Module tích phân phần Giả sử ta muốn tính hàm trường hợp f hàm số phức tạp, khơng tính trực tiếp ngun hàm, tách f(x)dx thành thành phần u dv (f(x)dx = u*dv) cách áp dụng công thức: Đây dạng hàm f(x) tổng hợp từ tốn tích phân phần, chương trình so khớp biểu thức với dạng này, áp dụng trực tiếp để tính u, v a) Đặt u = b) , dv = dx f hàm đa thức Đặt u = lnng(x), dv = f(x)*d(x) c) Arctan(g(x)) f(x)*arctan(g(x)) d) G(x)*sin(n*x) g(x)*cos(n*x) e) en*x*sin(x) f) g(x)*ex g) sin(ln(x)) cos(ln(x)) Với dạng kết trả (danh sách chứa lời giải tốn) có phần tử 2.6 Module hàm định hướng heuristic Các dạng nói khơng phải tất dạng tập thực tế cịn dạng khác( thường mở rộng dạng trên) áp dụng tích phân phần nên nguyên tắc cho việc áp dụng tích phân phần tích phân sinh phải đảm bảo đơn giản tích tốn so với tích phân ban đầu Song việc đưa tiêu chuẩn để xác định độ phức tạp tính tốn việc tính tích phân hàm số chưa tính tốn cụ thể bước giải khó khăn, ta tiếp cận vấn đề theo hướng khác, sát với lối tư giải toán người hơn: Sử dụng định hướng tìm lời giải có tính kế thừa, định hướng áp dụng hàm số không thuộc dạng nói Chương trình nhận dạng số đặc điểm đặc trưng hàm số từ có cách đặt biến thích hợp Vì sử dụng đặc trưng nên cho nhiều hướng giải khác nhau, số đúng, khơng hướng đúng, kết trả ko có phần tử nào, nhiều phần tử 2.7 Module tổng hợp Đây thủ tục chương trình Thủ tục chứa luật biến đổi biểu thức tổng quát kết hợp với tất module lại Thủ tục có cấu trúc vịng lặp chứa luật với thứ tự sau: 1) TQ1 (Luật tổng quát 1): Nếu tới bước giải đó, ta tra ngược lại bước giải trước bước giải tìm kết hợp với bước giải trước có dạng Int(f(x)) = g(Int(f(x)) ta giải phương trình tìm Int(f(x)) (với Int kí hiệu text dấu tích phân) Luật thường dùng phối hợp với tích phân phần để tìm kết Cho nên trước áp dụng tích phân phần, ta lưu vết biểu thức trước áp dụng Các biểu thức so sánh với 2) 3) 4) 5) 6) bước giải sau Tìm nguyên hàm cho hàm số dạng Nếu khơng tìm trả TQ2: Nếu tốn có dạng Int(A*f(x)) chuyển thành A*Int(f(x)) Ứng dụng tích phân tính sẳn Nếu khơng tìm trả Ứng dụng biển đổi biểu thức Nếu khơng có đẳng tương ứng trả Ứng dụng tích phân phần cho dạng biết trước Nếu khơng tìm dạng thích hợp trả list rỗng [] 7) Ứng dụng đổi biến vơ tỉ lượng giác Nếu khơng có thay đổi trả 8) TQ3: biểu thức dấu tích phân tích đa thức phân phối đa thức với 9) TQ4: biểu thức dấu tích phân có dạng tổng phân phối dấu tích phân vào hạng tử 10)TQ5: biểu thức dấu tích phân phân thức biến đổi thành tổng phân thức (dùng hàm convert/parfrac maple) 11)TQ6: toán có dạng A*Int(B*f(x)) với A, B số, biến đổi biểu thức thành A*B*Int(f(x)) 12)TQ7: tốn có dạng A*Int(f(x)), ta tìm nguyên hàm cho f(x) (ở dùng kĩ thuật đệ quy) Khi ta F(x) ngun hàm tìm được, ta có A*F(x) 13)TQ8: tốn có dạng tổng ta tìm ngun hàm cho hạng tử cịn dấu tích phân Do đó, ta có nhiều toán con, toán sử dụng đệ quy thủ tục tổng hợp để tìm nguyên hàm Khi tìm tất kết quả, ta lấy tổng tất kết lại Vòng lặp thủ tục lặp lại biểu thức đưa vào có thay đổi cịn dấu tích phân (Int) biểu thức Module tổng hợp gồm hai thủ tục INT (thủ tục chính) Prim (Primitive - thủ tục dùng để trình bày lại lời giải đơn giản cho người dùng) nằm tập tin “Module TongHop.mw” Phần Giao Diện Chương Trình Giao diện chương trình xây dựng thư viện NET, giồm có hai phần chính: - Một cửa sổ dùng để nhập hàm số cần tính tích phân - Cửa sổ cịn lại dùng để trình bày lời giải Một số ví dụ dùng để làm input cho chương trình sau: 3*x^2+5*x+1 # Hàm đa thức x/(4*x^2+3)^2 # Đổi biến đơn giản 1/(1+x^3) # Phân thức phức tạp, đổi biến lần ln(x)*x # tptp đơn giản exp(x)*sin(x) # Sử dụng công thức f = a+b*f => f = a/(1-b) 3*x/cos(x)^2 # tptp dùng kết tan(x)/(3*cos(x)+4*sin(x)+5) # Đổi biến lượng giác đơn giản 10 Kết Luận Chương trình xây dựng giải phần lớn tốn tìm ngun hàm hàm số đơn giản Chương trình kết nối sử dụng sức mạnh tính tốn Maple kết hợp với giao diện trực quan thân thiện NET Tốc độ giải toán tương đối nhanh (trong vịng 5-10 giây) Hạn chế chương trình chưa thể giải hết tất dạng tốn phức tạp cịn lại Cấu trúc tri thức sử dụng chưa rõ ràng dễ hiểu cho người dùng thay đổi Hướng phát triển nghiên cứu bổ sung thêm module để giải dạng hàm số phức tạp mà chưa giải Xây dựng sở tri thức rõ ràng bổ sung module tra cứu tri thức cho chương trình 11 Tài Liệu Tham Khảo [1] Đỗ Văn Nhơn, Tài liệu môn học Lập Trình Symbolic, 2013 [2] Đỗ Văn Nhơn, Maple Guide [3] Maple Help 12 ... thông giải dạng tốn có cảm giác khó khăn Để hỗ trợ học sinh cho việc học giải tốn tìm ngun hàm cách thú vị hơn, mục tiêu báo cáo xây dựng chương trình hỗ trợ giải tốn tìm ngun hàm cho hàm nhiều... giải dạng hàm số phức tạp mà chưa giải Xây dựng sở tri thức rõ ràng bổ sung module tra cứu tri thức cho chương trình 11 Tài Liệu Tham Khảo [1] Đỗ Văn Nhơn, Tài liệu mơn học Lập Trình Symbolic, ... Module Core (Maple) \” Chi tiết module miêu tả sau 2.1 Module nguyên hàm Đây module dùng để tìm nguyên hàm hàm số liệt kê cơng thức tính tích phân, như: hàm đa thức, hàm lượng giác, hàm logarit,