Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 38 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
38
Dung lượng
2,47 MB
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 CHƢƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG ĐỀ TÀI: LẬP TRÌNH SYMBOLIC VÀ ỨNG DỤNG Giảng viên: PGC.TS. Đỗ Văn Nhơn Học viên: Nguyễn Mai Thƣơng - MSHV: CH1101124 Tp.HCM, Tháng 1/2013 Bài thu hoạch môn Lập trình Symbolic GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng 2 MỤC LỤC LỜI MỞ ĐẦU 5 CHƢƠNG 1 : TỔNG QUAN VỀ LẬP TRÌNH SYMBOLIC 7 1.1 Các hàm tính toán cơ bản 7 1.1.1 Tính toán số chính xác và gần đúng 7 1.1.2 Tính toán symbolic 7 1.1.3 Tính toán số nguyên, số hữu tỉ, số thực, số phức 8 1.1.4 Tính đạo hàm 10 1.1.5 Tính tổng vô hạn 10 1.1.6 Khai triển Maclaurin 11 1.1.7 Giải phương trình, hệ phương trình (có thể tính theo tham số) 11 1.1.8 Đơn giản biểu thức 11 1.2 Các kiểu cấu trúc cơ bản 11 1.2.1 Sequence (dãy) 11 1.2.2 Lists (danh sách) 12 1.2.3 Sets (tập hợp) 13 1.2.4 Arrays (mảng) 14 1.2.5 Tables (bảng) 15 1.2.6 Strings 15 1.3 Xử lý các biểu thức 16 1.4 Tính toán đa thức 17 1.4.1 Các hàm tiện ích 17 1.4.2 Các toán tử trên các đa thức 18 1.5 Tìm nghiệm phương trình, hệ phương trình, bất phương trình 19 CHƢƠNG 2: LẬP TRÌNH SYMBOLIC TRONG MAPLE 20 1.1 Các yếu tố của ngôn ngữ lập trình 20 1.2 Lệnh cơ sở, lệnh điều khiển 20 Bài thu hoạch môn Lập trình Symbolic GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng 3 1.2.1 Lệnh điều kiện IF 20 1.2.2 Vòng lặp While 20 1.2.3 Vòng lặp for 21 1.2.4 Lệnh Break 22 1.2.5 Lệnh Next 22 1.2.6 Hàm Return, Error 23 1.3 Thủ tục, hàm hay chu trình (procedure) 23 1.3.1 Cấu trúc thủ tục 24 1.3.2 Cấu trúc chu trình 24 1.4 Giải một số bài tập sử dụng hàm trong Maple 26 1.4.1 Giải phương trình bậc 2 26 1.4.2 Giải hệ phương trình 26 1.4.3 Giải bất phương trình 26 1.4.4 Tìm hình chiếu của 1 đường thẳng 26 CHƢƠNG 3: LẬP TRÌNH MỘT SỐ ỨNG DỤNG TRONG MAPLE 28 1.5 Giải và biện luận hệ phương trình bậc nhất hai ẩn số: 28 1.5.1 Đặt vấn đề bài toán 28 1.5.2 Biểu diễn bài toán 28 1.5.3 Thuật toán 28 1.5.4 Cài đặt thuật toán 29 1.5.5 Chạy thử nghiệm 31 1.6 Giải bài toán hình học vectơ trong mặt phẳng hình học không gian: 32 1.6.1 Đặt vấn đề bài toán 32 1.6.2 Biểu diễn bài toán 32 1.6.3 Thuật toán 33 1.6.4 Cài đặt thuật toán 33 1.6.5 Chạy thử nghiệm 36 KẾT LUẬN 37 Bài thu hoạch môn Lập trình Symbolic GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng 4 TÀI LIỆU THAM KHẢO 38 Bài thu hoạch môn Lập trình Symbolic GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng 5 LỜI MỞ ĐẦU aple là một hệ phần mềm chuyên dụng cho công việc tính toán, bao gồm các tính toán thuần túy bằng ký hiệu toán học, tính toán số và các tính toán đồ thị Sản phẩm này do trường Đại học Tổng hợp Waterloo (Canada) và trường Đại học kỹ thuật Zurich (ETZ) xây dựng và đưa vào thương mại đầu tiên vào năm 1985. Qua nhiều lần cải tiến và phát triển, Maple trở nên phổ biến và là công cụ hỗ trợ tính toán không thể thiếu trong quá trình dạy và học toán trên máy tính. Những đặc tính cơ bản của Maple là dễ sử dụng, đòi hỏi cấu hình máy tính không lớn, đáp ứng được nhu cầu tính toán của nhiều đối tượng. Ngoài ra, Maple còn được thiết kế thích hợp với chế độ tương tác người và máy, cho phép người dùng phát triển các modul chuyên dụng, lập trình hoặc tạo thư viện tính toán riêng bên trong phần mềm. Trong khuôn khổ bài bài thu hoạch này em xin trình bày khái quát về các lệnh, thủ tục và hàm tính toán cơ bản trong Maple (version 16), xây dựng ứng dụng đơn giản để minh họa quá trình xử lý và tính toán. Vì thời gian nghiên cứu có hạn nên không tránh khỏi sai sót, mong được sự góp ý, phê bình từ thầy cô và các bạn. Em xin chân thành cảm ơn: - Trường Đại Học Công Nghệ Thông Tin TP HCM đã tạo điều kiện cho em được nghiên cứu và học tập. - Thầy PGS.TS. Đỗ Văn Nhơn đã tận tâm giảng dạy và giúp đỡ em trong suốt quá trình học tập môn Lập trình Symbolic. - Các anh chị học viên trong nhóm của lớp CH6 đã giúp đỡ em trong suốt quá trình học, trau đổi, thực hiện bài thu hoạch. Em xin chân thành cảm ơn ! M Bài thu hoạch môn Lập trình Symbolic GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng 6 NHẬN XÉT CỦA GIẢNG VIÊN HƢỚNG DẪN Bài thu hoạch môn Lập trình Symbolic GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng 7 CHƢƠNG 1 : TỔNG QUAN VỀ LẬP TRÌNH SYMBOLIC 1.1 Các hàm tính toán cơ bản 1.1.1 Tính toán số chính xác và gần đúng - Tính toán biểu thức chính xác dạng số hữu tỉ, căn thức, số phức. - Sử dụng lệnh evalf. Ví dụ: > a := 2^(1/3); evalf(a,20); Kết quả: 1.1.2 Tính toán symbolic - Xác định loại tính toán: dùng lệnh type và whattype Ví dụ: > A := (1+x)^2 *(3-2*x)^2; whattype(A); type(A,`*`); expand(A); Kết quả: - Biến và phép gán Ví dụ: > x := 'x': eqn := x^2+y^2 = 2; #x := 'x'; Kết quả: - Toán tử nối tên (concatenation operator) Ví dụ: > a || b; Kết quả: Bài thu hoạch môn Lập trình Symbolic GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng 8 - Ký hiệu "->" trong định nghĩa hàm Ví dụ: > f := (x,y) -> 2*x^2 -3*x*y + 4*y^2; f(m,2*m+1); Kết quả: 1.1.3 Tính toán số nguyên, số hữu tỉ, số thực, số phức Maple được sử dụng giống như 01 máy tính tính toán, nó có khả năng nhận biết được các toán tử như giai thừa, tìm ước chung lớn nhất, bội chung nhỏ nhất, tính toán trên các số nguyên cực lớn - Các tính toán số nguyên gồm: + Biểu thức thông thường Ví dụ: nhân 2 số 17x15 >17*15; Kết quả: 255 + Giai thừa, hàm length (tính chiều dài của 1 số) Ví dụ: Tính giai thừa của 10 và tính chiều dài của 1 số > 10! Kết quả: > length(100000) Kết quả: + Các hàm: Hàm Ý nghĩa Ví dụ abs Lấy giá trị tuyệt đối > abs(-11); ifactor Phân tích ra thừa số nguyên tố > Bài thu hoạch môn Lập trình Symbolic GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng 9 iquo Lấy số nguyên của phép chia iquo(m, n) iquo(m, n, 'r') > irem(23,4,'q'); > q; > iquo(23,4,'r'); > r; irem Lấy số dư của phép chia irem(m, n) irem(m, n, 'q') gcd Ví dụ: bộ số chung nhỏ nhất của 10 vá 15 là 5 > igcd Ví dụ: bộ số chung nhỏ nhất của a vá b? > a := 3486231590; b := 8500576883815068; d := igcd(a,b); Kết quả: isprime Kiểm tra 1 số có phải là số nguyên hay không? > ithprime Xác định số nguyên tố thứ n (mặc định 2 là số nguyên tố thứ 1) > prevprime(n) nextprime(n) Số nguyên tố lớn nhất nhỏ hơn n và nhỏ nhất lớn hơn n > > max Tìm số lớn nhất > min Tìm số nhỏ nhất mod Chia lấy dư > convert Chuyển một số từ dạng này sang dạng khác > convert(9, binary); > convert(1.23456,rational); Bài thu hoạch môn Lập trình Symbolic GVHD: PGS.TS. Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng 10 - Tính toán sơ cấp: bao gồm các hàm toán học + sin, cos, tan, + sinh, cosh, tanh, + arcsin, arccos, arctan, + exp + ln, log[10] + sqrt + round, trunc + Zeta v.v - Và hằng số Pi. Ví dụ: > a := Pi^2+1; evalf(a,30); x := 5; Kết quả: 1.1.4 Tính đạo hàm Ví dụ: > Diff(sin(x)*ln(x), x); #value(%); diff(sin(ln(x))-x^3,x); Kết quả: 1.1.5 Tính tổng vô hạn Ví dụ: > Sum(n^2, n); #value(%); sum(n^2,n); Kết quả: [...]... Nguyễn Mai Thƣơng Bài thu hoạch môn Lập trình Symbolic global_sequen trình, nó chỉ có giá trị sử dụng trong phạm vi chu trình đang xét (local được sử dụng để khai báo cho các biến chỉ sử dụng bên trong một chu trình) Dãy các tên biến toàn cục có giá trị sử dụng ngay cả bên ngoài chu trình Dãy các tuỳ chọn cho một chu trình Dãy các câu lệnh do người lập trình đưa vào options_sequence statements_sequence... Nhơn HVTH: Nguyễn Mai Thƣơng Bài thu hoạch môn Lập trình Symbolic CHƢƠNG 3: LẬP TRÌNH MỘT SỐ ỨNG DỤNG TRONG MAPLE Chƣơng trình xây dựng trên thƣ viện hỗ trợ tính toán Maple 16 1.5 Giải và biện luận hệ phương trình bậc nhất hai ẩn số: 1.5.1 Đặt vấn đề bài toán Giải phương trình bậc nhất hai ẩn có dạng như sau: { 1.5.2 Biểu diễn bài toán Đặt: + Nếu : Hệ phương trình có nghiệm duy nhất (x,y): + Nếu : * hoặc... rem Cộng và trừ Nhân và lũy thừa Nội dung của đa thức Phép chia chính xác USCLN của 2 đa thức Bội số chung nhỏ nhất của 2 đa thức Phần nguyên của đa thức 18 GVHD: PGS.TS Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng Bài thu hoạch môn Lập trình Symbolic quo Thương của 2 đa thức 1.5 Tìm nghiệm phương trình, hệ phương trình, bất phương trình Để tìm nghiệm các phương trình, bất phương trình và hệ phương trình trong... sang phải) Nếu tên chu trình được định giá trỏ đến một chu trình, thì chu trình ấy được thực thi trên các đối số đã được định giá Tuy nhiên vẫn có một số chu trình ngoại lệ: đó là các hàm eval, assigned, seq 2.Định giá biến cục bộ và biến toàn cục 25 GVHD: PGS.TS Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng Bài thu hoạch môn Lập trình Symbolic Các biến cục bộ và tham biến truyền cho chu trình được định giá một... của phương trình ax+by=c 1.5.3 Thuật toán Input: Hệ phương trình bậc nhất hai ẩn Output: Nghiệm (x,y) của phương trình Bước 1: Nhập hệ phương trình bậc nhất hai ẩn Bước 2: tính D, Dx, Dy Bước 3: xét D 28 GVHD: PGS.TS Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng Bài thu hoạch môn Lập trình Symbolic 1.5.4 Cài đặt thuật toán 29 GVHD: PGS.TS Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng Bài thu hoạch môn Lập trình Symbolic. .. Thƣơng Bài thu hoạch môn Lập trình Symbolic CHƢƠNG 2: LẬP TRÌNH SYMBOLIC TRONG MAPLE 1.1 Các yếu tố của ngôn ngữ lập trình 1.2 Lệnh cơ sở, lệnh điều khiển 1.2.1 Lệnh điều kiện IF Cấu trúc cú pháp: if condition then statement sequence | elif condition then statement sequence | | else statement sequence | fi; Chức năng: Một dãy biểu thức được thực hiện khi điều kiện nào đó được thoả mãn và một dãy biểu thức... PGS.TS Đỗ Văn Nhơn HVTH: Nguyễn Mai Thƣơng Bài thu hoạch môn Lập trình Symbolic 1.2.6 Hàm Return, Error Hàm RETURN được sử dụng để cho giá trị hàm trước khi thoát khỏi chu trình Nếu không có lệnh RETURN, chu trình tự động cho kết quả của phép tính cuối cùng trong chu trình Hàm ERROR được sử dụng để đưa thông điệp lỗi ra màn hình từ bên trong chu trình Ví dụ: Nếu không có lệnh return thì kết quả tính toán... local trong khai báo chu trình Biến cục bộ chỉ có giá trị bên trong chu trình mà nó được khai báo Ngoài chu trình này nó không mang ý nghĩa gì 3.Tham biến: Cũng giống như biến cục bộ, các tham biến chỉ có giá trị bên trong phạm vi của chu trình mà nó được khai báo Sau khi chu trình kết thúc, chúng không còn giá trị Tham biến còn được sử dụng để trả lại kết quả, như các ngôn ngữ lập trình truyền thống Ngoài... (procedure) duy nhất, sau đó ta chỉ cần gọi chu trình này và Maple tự động thực hiện các lệnh có trong chu trình đó một cách tuần tự và sau đó trả lại kết quả cuối cùng Maple chứa một lượng rất lớn các hàm tạo sẵn đáp ứng cho những yêu cầu tính toán khác nhau trong nhiều lĩnh vực Các hàm này được lưu trữ trong các gói chu trình (package) và người sử dụng có thể dễ dàng gọi đến mỗi khi cần thiết Tuy... toàn cho biến cục bộ và tham biến, và định giá một mức cho các biến toàn cục 1.4 Giải một số bài tập sử dụng hàm trong Maple 1.4.1 Giải phương trình bậc 2 Lệnh gõ Kết quả Ghi chú > {x} là tập hợp nghiệm nên kết quả là 1 dãy (tập hợp, danh sách) > Thủ tục giải phương trình bậc 2 1.4.2 Giải hệ phương trình Lệnh gõ Kết quả > > Ghi chú 2 nghiệm của hệ phương trình 2 nghiệm của hệ phương trình chứa tham số . trình, hệ phương trình, bất phương trình 19 CHƢƠNG 2: LẬP TRÌNH SYMBOLIC TRONG MAPLE 20 1.1 Các yếu tố của ngôn ngữ lập trình 20 1.2 Lệnh cơ sở, lệnh điều khiển 20 Bài thu hoạch môn Lập trình. trình 26 1.4.3 Giải bất phương trình 26 1.4.4 Tìm hình chiếu của 1 đường thẳng 26 CHƢƠNG 3: LẬP TRÌNH MỘT SỐ ỨNG DỤNG TRONG MAPLE 28 1.5 Giải và biện luận hệ phương trình bậc nhất hai ẩn số: 28. tìm nghiệm các phương trình, bất phương trình và hệ phương trình trong maple cho sử dụng hàm solve và fsolve để tìm nghiệm cho các phương trình trên. Ví dụ: Phƣơng trình bậc 2 > #solve(x^2+x-1=0,