ỨNG DỤNG MAPLE TRONG BÀI TOÁN GIẢI TAM GIÁC

21 787 5
ỨNG DỤNG MAPLE TRONG BÀI TOÁN GIẢI TAM GIÁ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

Đại Học Quốc Gia TP.HCM Trường Đại Học Công Nghệ Thông Tin    TIỂU LUẬN MÔN LẬP TRÌNH SYMBOLIC Đề tài: ỨNG DỤNG MAPLE TRONG BÀI TOÁN GIẢI TAM GIÁC GVHD: PGS.TS. ĐỖ VĂN NHƠN Học viên: DAI NGUYÊN THIỆN Lớp: Cao học khóa 6 Mã số: CH1101043 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Ứng dụng MAPLE trong bài toán giải tam giác Page 2 TP.HCM - 2013 MỤC LỤC Ứng dụng MAPLE trong bài toán giải tam giác Page 3 I. GIỚI THIỆU Maple là một phần mềm tính toán hình thức (formal computation) do Đại học Waterloo của Canada phát triển từ 1980 với mong muốn giúp máy tính có thể làm việc với được với các ký hiệu toán học truyền thống của con người (đạo hàm, tích phân, ma trận, định thức, …). Ngày nay, Maple còn làm được nhiều hơn rất nhiều: hỗ trợ các tính toán hình thức, tính toán số học với độ chính xác rất lớn, giải và biện luận các phương trình, hệ phương trình, vẽ đồ thị 2 chiều, 3 chiều, … Ngoài ra, Maple cũng hỗ trợ cho việc lập trình cấp cao. Nói chung, Maple là một công cụ rất mạnh cho phép người ta có thể giải quyết nhiều bài toán lớn trong nhiều lĩnh vực khoa học khác nhau. Trong phạm vi tiểu luận này, tôi trình bày ứng dụng của Maple vào bài toán giải tam giác: người dùng nhập vào giả thiết: giá trị của vài (thường là 3) yếu tố của tam giác (như cạnh a, góc B, cạnh c) và yêu cầu (phần kết luận) chương trình ứng dụng tính các yếu tố còn lại (diện tích S, nữa chu vi p, bán kính vòng tròn ngoại tiếp R, nội tiếp r, các góc A,C, cạnh b, các đường cao, phân giác, …). Ngoài ra, chương trình ứng dụng cũng đáp ứng yêu cầu loại bỏ các bước tính thừa và xuất ra kết quả qua từng bước tính cụ thể. Do thời gian eo hẹp nên chưa kịp trình bày dưới dạng ứng dụng hoàn chỉnh (viết giao diện bằng C# và kết nối Maple để nhập giả thiết, kết luận và xuất lời giải theo cách truyền thống). Chương trình ứng dụng này có thể dể dàng chuyển thành bài toán giải các hình hình học phẳng khác như hình chử nhật, hình bình hành, … bằng cách thay tập công thức của tam giác bằng các tập công thức của các hình đó. Xin chân thành cảm ơn Thầy, PGS.TS. Đỗ Văn Nhơn đã giới thiệu và truyền đạt những kiến thức nền tảng, chỉ ra những khả năng mạnh mẻ và các hướng phát triển ứng dụng lý thú của phần mềm này, phục vụ cho quá trình học tập nghiên cứu về sau. Ứng dụng MAPLE trong bài toán giải tam giác Page 4 II. NỘI DUNG 1. Một số lệnh MAPLE sử dụng trong chương trình a. Cấu trúc điều khiển – vòng lặp i. Lệnh điều khiển: if <biểu thức điều kiện> then <chuỗi lệnh> | elif <biểu thức điều kiện> then <chuỗi lệnh> | | else <chuỗi lệnh>| end if ví dụ : > a := 4 : b:= 10 : if (a > b) then a := a –b; else b:=b-a; endif ii. Vòng lặp (for while do) | for <name>| |from <expr>| |by <expr>| |to <expr>| |while <expr>| do <chuỗi lệnh> end do; hay : | for <name>| | in <expr>| | while <expr>| do <chuỗi lệnh> end do; ví dụ : in các số chẵn từ 6 100 > for i from 6 by 2 to 100 do print(i) end do; Tìm tổng của 2 số lẻ có 2 chữ số > tot := 0; for i from 11 by 2 while i < 100 do tot := tot + i end do; iii. Lệnh ngắt (break) Trong lúc vòng lặp while/for đang được thực hiện, nếu lệnh break được gọi thì chương trình sẽ thoát ngay lập tức ra khỏi vòng lặp while/for tận trong cùng nhất mà có chứa lệnh break (vì cũng có thể có nhiều vòng lặp while/for được lồng nhau). Trước lệnh break thường có một câu lệnh điều kiện if then Nếu lệnh break dùng ngoài các vòng lặp while/for thì sẽ sinh ra lỗi. Ứng dụng MAPLE trong bài toán giải tam giác Page 5 Chú ý: break không phải là từ khoá (từ dành riêng cho Maple), vì vậy ta có thể gán giá trị cho biến có tên là break mà không hề sinh ra lỗi (mặc dù điều này là không nên). Break iv. Lệnh next Cũng giống như câu lệnh break, lệnh next được thực hiện trong vòng lặp while/for với mục đích bỏ qua một số lệnh bên trong vòng lặp để nhảy qua lần lặp tiếp theo. Khi gặp lệnh next trong vòng lặp, chương trình bỏ qua các lệnh tiếp theo của vòng lặp tận cùng nhất chứa next cho đến khi gặp từ khoá xác định kết thúc vòng lặp (ở đây là lệnh od). Đến đây vòng lặp tiếp tục nhảy qua lần lặp tiếp theo (nếu có thể) bằng cách tăng chỉ số hoặc kiểm tra điều kiện để quyết định xem có nên thực hiện vòng lặp tiếp theo. Lệnh next sinh ra lỗi nếu nó được gọi ngoài vòng lặp while/for. Tương tự như break, next cũng không phải là từ khóa, do đó ta hoàn toàn có thể gán cho next một giá trị (xem như next là một biến). Ngay trước lệnh next cũng thường là một câu lệnh điều kiện if then b. Một số kiểu dữ liệu dùng trong chương trình i. Kiểu sequence (dãy) Là một nhóm các đối tượng được sắp xếp theo thứ tự và ngăn cách nhau bởi dấu phẩy. Dãy có thể được gán cho 1 biến. Ví dụ : X := a , b , c , d; Hàm seq, và ký hiệu toán tử $. > seq(a^n,n=0 10);# tạo ra dãy phần tử theo công thức a^n với n chạy từ 0 đến 10 a$4; # tạo ra 4 phần tử là a Ứng dụng MAPLE trong bài toán giải tam giác Page 6 ii. Kiểu Set (tập hợp) - Cú pháp (là một dãy bao trong cặp dấu ngoặc nhọn) > A := {1,2,3,x,3}; B := {1,m,x,y,z}; - Các toán tử: union, intersect, minus, subset > A intersect B; A union B; A minus B; - Các lệnh: nops: trả về số phần tử của biểu thức op : trả về một dãy gồm các toán hạng của biểu thức Gọi hàm: • op(i, e) • op(i j, e) • op(e) • op(list, e) • nops(e) Với: i, j : chỉ số vị trí của các toán hạng e: biểu thức list: danh sách map: thực hiện một phép ánh xạ đối với mỗi phân tử của một biểu thức ví dụ: > A:=[2,x+1,y^2]; B:=map(x->x^2,A); > Lệnh indets: trả về tập các toán hạng của một biểu thức Ứng dụng MAPLE trong bài toán giải tam giác Page 7 > iii. Kiểu List (danh sách) - Cú pháp > L := [1,2,3,a,b]; #kiểu list polys := [1,x,x^2]; L:={a,b,c};# kiểu set Thêm một phần tử vào List > Gở bỏ một phần tử khỏi List > subsop(3=NULL,L); # loại phần tử thứ 3 iv. Chuyển đổi kiểu giữa sequence, set, list > S := 1,2,3; A := {S}; L := [S]; L1 := [op(A)]; convert(L, set); Ứng dụng MAPLE trong bài toán giải tam giác Page 8 2. Bài toán giải tam giác a. Phân tích bài toán Trong một tam giác nếu biết 3 yếu tố (trong đó có 1 cạnh hay các yếu tố khác có thể tính ra cạnh) thì người ta có thể tính được các yếu tố khác nhờ vào các công thức thể hiện các mối quan hệ giữa các yếu tố trong tam giác. i. Tập các biến (yếu tố) trong tam giác gồm: • a,b,c : các cạnh. • A, B, C: các góc tương ứng đối diện với 3 cạnh a, b, c. • h a , h b , h c : 3 đường cao tương ứng với 3 cạnh a, b, c. • m a , m b , m c : 3 đường trung tuyến tương ứng với 3 cạnh a, b, c. • p a , p b , p c : 3 đường phân giác trong tương ứng với 3 cạnh a, b, c. • S: diện tích • p: nữa chu vi. • R: bán kính đường tròn ngoại tiếp • r: bán kính đường tròn nội tiếp Ứng dụng MAPLE trong bài toán giải tam giác Page 9 • r a , r b , r c : bán kính các đường tròn bàng tiếp ii. Các hệ thức cơ bản giữa các yếu tố của tam giác • Liên hệ giữa 3 góc : A + B + C = π • Định lý cosin : o a2 = b2 + c2 - 2.b.c.cosA o b2 = a2 + c2 - 2.a.c.cosB o c2 = a2 + b2 - 2.a.b.cosC • R A 2 sinC c sinB b sin a === Định lý Sin: • Nữa chu vi: • công thức tính diện tích: o o o o o • Đường cao: Ứng dụng MAPLE trong bài toán giải tam giác Page 10 [...]... luận (kl): Nhập gt Nhập kl Ứng dụng MAPLE trong bài toán giải tam giác Page 19 Nhấn Enter, chương trình xuất kết quả như sau: Giai tam giac Gia thiet: Ket luan: Giai: Buoc 1: Ta co: Tu: Suy ra: Buoc 2: Ta co: Tu: Suy ra: Buoc 3: Ta co: Tu: Ứng dụng MAPLE trong bài toán giải tam giác Page 20 Suy ra: Vay: III KẾT LUẬN Với sức mạnh của MAPLE, việc tạo một ứng dụng giải tam giác tương đối đơn giản nhưng... các đường phân giác trong o o o Trong chương trình ứng dụng (trên giao diện Maple) người dùng sẽ nhập vào giả thiết (các yếu tố cho trước) và kết luận (các yếu tố cần tính) như ví dụ bên dưới rồi nhấn Enter Chương trình sẽ tính và xuất kết quả (xem hình) Nhập gt Nhập kl Ứng dụng MAPLE trong bài toán giải tam giác Page 11 b Cấu trúc dữ liệu của bài toán Để cài đặt bài toán này trong Maple, đã dùng các... của tam giác- kiểu tập hợp, mỗi phần tử là một yếu tố tam giác (biến) ii Formulae Tập các công thức tam giác - kiểu tập hợp, mỗi phần tử là một công thức thể hiện mối quan hệ giữa các biến Ứng dụng MAPLE trong bài toán giải tam giác Page 12 iii gt Giả thiết: tập các biến cho trước - kiểu tập hợp, trong đó mỗi phần tử của tập gt là một biểu thức xác định giá trị của các biến cho trước Ứng dụng MAPLE trong. .. tập giả thiết gt và tập lời giải loigiai (sol, solution, …) • Dữ liệu xuất: Thể hiện (in) ra từng bước quá trình tính các biến của kết luận Cài đặt thủ tục xuất kết quả Ứng dụng MAPLE trong bài toán giải tam giác Page 18 3 Chạy thử chương trình: Chương trình giải tam giác được xây dựng trên nền MAPLE 16, file chương trình là Tamgiac2.mw Sau khi nạp Tamgiac2.mw trên giao diện MAPLE Người dùng cần nhập... công thức của sol) down to 1 do 2.1 tam := sol1 – [fi]; / /tam = sol bỏ bớt fi 2.2 if (kl vẫn nằm trong Known mà đã bỏ đi yếu tố được tính bằng fi ) then sol1 := tam; end for; Bước 3: return sol1 Cài đặt giải thuật loại bỏ công thức thừa Ứng dụng MAPLE trong bài toán giải tam giác Page 17 Chú thích: • sol: danh sách lời giải chưa rút gọn (chưa loại bỏ công thức thừa) • tam := subsop(i = NULL, sol1): hàm... tố đã biết Known và đưa công thức vào danh sách lời giải Solution Sau khi xét hết các công thức mà chưa tìm được các giá trị cần tính thì kết Ứng dụng MAPLE trong bài toán giải tam giác Page 14 luận bài toán không có lời giải Ngược lại, lời giải là danh sách Solution • Dữ liệu nhập: tập giả thiết gt và tập kết luận kl • Dữ liệu xuất: Danh sách lời giải Solution • Các biến tạm: Solution, Known, f Bước... bỏ công thức fi • op(map(x x[2], tam) : trả về dãy các biến đã được tính trong danh sách lời giải tam (vì mỗi phần tử trong tam la 1 danh sách trong đó phần tử 2 là biến tính được trong quá trình thực hiện thuật giải suy diễn tiến) • sol1: danh sách lời giải đã rút gọn iii Thủ tục xuất kết quả • Mô tả: lần lượt xét từng lời giải trong danh sách Solution Với mỗi lời giải: In ra tập các biến đã xác định... Thay thế và giải Newfact:= solve(subs(Known,f),Vnew); Known:= Known union Newfact; End while Bước 3: return Solution; Cài đặt giải thuật Suy diễn tiến Ứng dụng MAPLE trong bài toán giải tam giác Page 15 Chú thích: • indets(f,’name’): hàm trả về tập các biến của công thức f • indets(Known): hàm trả về tập các biến của Known • nops(indets(f,’name’) minus indets(Known)): trả về số biến chưa có trong Known... biến được tính từ công thức c Giải thuật Giải thuật của chương trình dựa trên thuật toán suy diễn tiến Ngoài ra, chương trình ứng dụng cũng sử dụng giải thuật loại bỏ luật thừa để rút gọn lời giải bỏ qua các bước không cần thiết cuối cùng là thủ tục in ra từng bước trong quá trình tính các yếu tố cần tính i Thuật giải suy diễn tiến • Mô tả: lần lượt xét từng công thức trong tập công thức Formulae:... âm) Ứng dụng MAPLE trong bài toán giải tam giác Page 16 • • hpt := {f, op(indets(f,’name’) minus indets(Known)) >0} : hệ phương trình gồm công thức f và ràng buộc biến cần tính >0 op(eval(solve(subs(Known,hpt), op(indets(f,’name’) minus indets(Known)))))} : thế các giá trị các biến đã biết từ Known vào hệ phương trình rồi giải Kết quả sẽ xác định được biến mới tính được và giá trị của nó ii Thuật giải . Ứng dụng MAPLE trong bài toán giải tam giác Page 2 TP.HCM - 2013 MỤC LỤC Ứng dụng MAPLE trong bài toán giải tam giác Page 3 I. GIỚI THIỆU Maple là một phần mềm tính toán hình thức. := [op(A)]; convert(L, set); Ứng dụng MAPLE trong bài toán giải tam giác Page 8 2. Bài toán giải tam giác a. Phân tích bài toán Trong một tam giác nếu biết 3 yếu tố (trong đó có 1 cạnh hay các. quả Ứng dụng MAPLE trong bài toán giải tam giác Page 18 3. Chạy thử chương trình: Chương trình giải tam giác được xây dựng trên nền MAPLE 16, file chương trình là Tamgiac2.mw. Sau khi nạp Tamgiac2.mw

Ngày đăng: 10/04/2015, 01:35

Từ khóa liên quan

Mục lục

  • I. GIỚI THIỆU

  • II. NỘI DUNG

    • 1. Một số lệnh MAPLE sử dụng trong chương trình

      • a. Cấu trúc điều khiển – vòng lặp

        • i. Lệnh điều khiển:

        • ii. Vòng lặp (for...while...do)

        • iii. Lệnh ngắt (break)

        • iv. Lệnh next

        • b. Một số kiểu dữ liệu dùng trong chương trình

          • i. Kiểu sequence (dãy)

          • ii. Kiểu Set (tập hợp)

          • iii. Kiểu List (danh sách)

          • iv. Chuyển đổi kiểu giữa sequence, set, list

          • 2. Bài toán giải tam giác

            • a. Phân tích bài toán

              • i. Tập các biến (yếu tố) trong tam giác gồm:

              • ii. Các hệ thức cơ bản giữa các yếu tố của tam giác

              • b. Cấu trúc dữ liệu của bài toán

                • i. Facts

                • ii. Formulae

                • iii. gt

                • iv. Known

                • v. kl

                • vi. Solution, sol, sol1

                • c. Giải thuật

                  • i. Thuật giải suy diễn tiến

                  • ii. Thuật giải loại bỏ luật thừa

                  • iii. Thủ tục xuất kết quả

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

Tài liệu liên quan