Áp dụng thiết kế chương trình bằng maple để giải quyết bài toán

20 664 0
Áp dụng thiết kế chương trình bằng maple để giải quyết bài toán

Đ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

LẬP TRÌNH SYMBOLIC Phụ lục Phụ lục 1 PHẦN I 3 TỔNG QUAN 3 PHẦN II MỘT SỐ LỆNH THÔNG THƯỜNG 4 2.Giải phương trình bậc <5 4 4. Tính giới hạn 4 5. Trục căn thức ở mẫu 5 7. Lệnh vẽ đồ thị 5 8. Đồ thị hàm phần nguyên 7 10. Ma trận kề 8 12. Vòng lập for 9 13. Vòng lập while 9 15. Đơn giản biểu thức 10 PHẦN III 12 ỨNG DỤNG MAPLE VÀO BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT BẰNG DIJKSTRA 12 I.Mô tả giải thuật dijkstra 12 II.Ví dụ minh họa: 12 III.Áp dụng thiết kế chương trình bằng maple để giải quyết bài toán 14 PHẦN IV 19 KẾT LUẬN 19 PHAN KHÁNH NGUYÊN Trang 1 LẬP TRÌNH SYMBOLIC LỜI MỞ ĐẦU Để tiếp cận vào lĩnh vực khám phá các vấn đề tri thức, trí tuệ nhân tạo… thì lập trình Symbolic (dại biểu là maple ) không thể không được tìm hiểu. Bởi maple cung cấp những tính năng, tool đang dạng trong các lĩnh vực tính toán, dễ dàng cài đặt và thao tác. Cám ơn GS.TS. Nguyễn Văn Nhơn đã giúp tôi tiếp cận và tìm hiểu một ngôn ngữ lập trình lý thú, làm tiền đề cho việc nghiên cứu, phát triển các lĩnh vực khoa học máy tình sau này. Xin cảm ơn! PHAN KHÁNH NGUYÊN Trang 2 LẬP TRÌNH SYMBOLIC PHẦN I TỔNG QUAN Maple là một gói phần mềm toán học thương mại phục vụ cho nhiều mục đích. Nó phát triển lần đầu tiên vào năm 1980 bởi Nhóm Tính toán Hình thức tại Đại học Waterloo ở Waterloo, Ontario, Canada. Từ năm 1988, nó đã được phát triển và thương mại hóa bởi Waterloo Maple Inc. (còn được biết đến với tên gọi Maplesoft), một công ty Canada cũng có trụ sở tại Waterloo, Ontario. Phiên bản hiện tại là Maple 16. Đối thủ cạnh tranh chính của nó là Mathematica Nó là một phần mềm toán học cao cấp, có thể giải quyết một số vấn đề của Toán học. Chạy được trên nhiều hệ điều hành, có cấu trúc linh hoạt để sử dụng tối ưu cấu hình máy và có trình trợ giúp rất dễ dùng. Cung cấp ngày càng nhiều các công cụ trực quan, các gói lệnh tự học gắn liền với toán học phổ thông và đại học. mỗi phiên bản đều có những cái mới của nó và nhà sản xuất không ngừng phát triển khả năng tính toán của nó. Các tính năng Có thể thực hiện được hầu hết các phép toán cơ bản trong chương trình toán đại học và sau đại học. Cung cấp các công cụ vẽ đồ thị tĩnh và động . Lập trình đơn giản và có khả năng tương tác với ngôn ngữ lập trình khác. Có khả năng export ra các file dạng html, pdf. PHAN KHÁNH NGUYÊN Trang 3 LẬP TRÌNH SYMBOLIC PHẦN II MỘT SỐ LỆNH THÔNG THƯỜNG 1. Lệnh solve Dùng để giải phương trình lượng giác > 2. Giải phương trình bậc <5 Th1: > restart; > solve( x^4 – 2*x^3 + 2=0, x ); > allvalues({%}); 3. Lệnh tính tổng Sum > # cộng dồn giá trị của I với i=0,1,2,3=6 4. Tính giới hạn > PHAN KHÁNH NGUYÊN Trang 4 LẬP TRÌNH SYMBOLIC 5. Trục căn thức ở mẫu > 6. Vẽ hình tròn > 7. Lệnh vẽ đồ thị > PHAN KHÁNH NGUYÊN Trang 5 LẬP TRÌNH SYMBOLIC PHAN KHÁNH NGUYÊN Trang 6 LẬP TRÌNH SYMBOLIC 8. Đồ thị hàm phần nguyên > 9. Lệnh vẽ đồ thị > with(GraphTheory): > W := Matrix([[0,4,2,0,0,0],[4,0,1,5,0,0],[2,1,0,8,10,0],[0,5,8,0,0,6],[0,0,10,0,0,3], [0,0,0,6,3,0]]); > G1 := Graph(directed,weighted,W): > DrawGraph(G1); PHAN KHÁNH NGUYÊN Trang 7 LẬP TRÌNH SYMBOLIC 10. Ma trận kề Trong Maple chúng ta có thể biểu diễn 1 đồ thị theo dạng ma trận kề bằng các hàm sau đây: AdjacencyMatrix(G) Trong đó: G là đồ thị cần biểu diễn bằng ma trận kề Lệnh AdjacencyMatrix(G) trả về ma trận kề cho đồ thị G, chỉ mục của các nội dung và cột của ma trận kề là đỉnh của đồ thị > > PHAN KHÁNH NGUYÊN Trang 8 LẬP TRÌNH SYMBOLIC 11. Cấu trúc điều kiện if: if < điều kiện > then …….thực hiện……. end if Nếu điều kiện đúng sẽ thực hiện, nếu ngược lại sẽ dừng if < điều kiện 1 > then …….thực hiện……… Else …….thực hiện…… End if 12. Vòng lập for i:=0 for i to 10 do; thực thi 1; thực thi 2; thực thi 3; end; 13. Vòng lập while while (<điều kiện>) do; thực thi 1 thực thi 2 end; PHAN KHÁNH NGUYÊN Trang 9 LẬP TRÌNH SYMBOLIC 14. Dùng đệ qui với option remember Lưu ý : Nếu không sử dụng option remember trong thủ tục này thì ta cũng sẽ gặp khó khăn khi tính các số hạng lớn. 15. Đơn giản biểu thức > Kiểm tra sự tương đương của hai biểu thức logic Equivalent(bt1,bt2, p); > PHAN KHÁNH NGUYÊN Trang 10 [...]...LẬP TRÌNH SYMBOLIC PHAN KHÁNH NGUYÊN Trang 11 LẬP TRÌNH SYMBOLIC PHẦN III ỨNG DỤNG MAPLE VÀO BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT BẰNG DIJKSTRA I Mô tả giải thuật dijkstra Giải thuật Dijkstra được giới thiệu vào năm 1959 cung cấp một giải thuật hiệu quả nhất cho việc giải quyết bài toán đường đi ngắn nhất.Nó tìm đường đi ngắn nhất từ một đỉnh s... - (14,4)* 4->6 5 1,3,2,4,5,6 - - - - Kết quả của đồ thị sau khi tìm đường đi ngắn nhất ta có PHAN KHÁNH NGUYÊN Trang 13 LẬP TRÌNH SYMBOLIC III Áp dụng thiết kế chương trình bằng maple để giải quyết bài toán >……………………………… i := SourceNode; #diem khoi tao dist[i] := 0; #chieu dai pred[i] := 0; #diem khoi tao in_S := 0; #vi tri node khoi tao s := { }; while (in_S # Neu khong tim thay diem ke tiep if (not found_one) then printf("Khong xac dinh diem ke tiep.\n"); return false; end if; # Neu tim duoc diem ke tiep thi add vao... đỉnh 1 đến các đỉnh bất kỳ trong đồ thị Ta có kết quả sau Bước Tập N D(2) D(3) D(4) D(5) D(6) 0 {1} (4,1) (2,1)* (∞,1) (∞,1) (∞,1) 1->3 1 {1,3} (1+2,3)* - (10,3) (12,3) (∞,1) 3->2 2 1,3,2 - (8,2)* (12,3) (∞,1) 2->4 3 1,3,2,4 - - (12,3)* (14,4) 3->5 4 1,3,2,4,5 - (14,4)* 4->6 5 1,3,2,4,5,6 - - - - Kết quả của đồ thị sau khi tìm đường đi ngắn... đỉnh đó Giải thuật Khởi tạo tập S chỉ chứa đỉnh ban đầu s; for (mỗi đỉnh v thuộc G) { D[v] = C(s, v); // C(s, v)=vô cùng nếu s và v không nối với nhau } D[s] = 0; while ( (V-S) != Φ ) { Chọn đỉnh u thuộc (V-S) sao cho D[u] ngắn nhất; S = S U {u}; for ( mỗi v thuộc (V-S) ) { if (D[u] + C(u, v) < D[v]) { D[v] = D[u] + C(u, v); } } } II Ví dụ minh họa: Cho đồ thị sau: PHAN KHÁNH NGUYÊN Trang 12 LẬP TRÌNH... va diem khoi tao: %s\n", s); else raw_tail[arc_number] := seq_data[1]; raw_head[arc_number] := seq_data[2]; raw_cost[arc_number] := seq_data[3]; end if; end if; end if; PHAN KHÁNH NGUYÊN Trang 17 LẬP TRÌNH SYMBOLIC end; # validation of data if (result = true) then if (arc_number ArcCount) then printf("Du lieu nhap khong dung: kiem tra lai so canh cua do thi, %d %d\n", arc_number, ArcCount); result... FS_cost[arc_num]; if (testval < dist[j]) then dist[j] := testval; pred[j] := i; end if; end if; end; end; # while (in_S < NodeCount) Proc đọc và kiểm tra danh sách input PHAN KHÁNH NGUYÊN Trang 15 LẬP TRÌNH SYMBOLIC > #################DOC VA KIEM TRA DANH SACH############## loadNetwork := proc (Network_def::list) local n, s, src, all_done, result, first_seq, seq_data, arc_number, raw_tail, raw_head, . 12 ỨNG DỤNG MAPLE VÀO BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT BẰNG DIJKSTRA 12 I.Mô tả giải thuật dijkstra 12 II.Ví dụ minh họa: 12 III .Áp dụng thiết kế chương trình bằng maple để giải quyết bài toán 14 PHẦN. 1,3,2,4,5,6 Kết quả của đồ thị sau khi tìm đường đi ngắn nhất ta có PHAN KHÁNH NGUYÊN Trang 13 LẬP TRÌNH SYMBOLIC III. Áp dụng thiết kế chương trình bằng maple để giải quyết bài toán PHAN KHÁNH. Trang 10 LẬP TRÌNH SYMBOLIC PHAN KHÁNH NGUYÊN Trang 11 LẬP TRÌNH SYMBOLIC PHẦN III ỨNG DỤNG MAPLE VÀO BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT BẰNG DIJKSTRA I. Mô tả giải thuật dijkstra Giải thuật Dijkstra

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

Từ khóa liên quan

Mục lục

  • Phụ lục

  • PHẦN I

  • TỔNG QUAN

  • PHẦN II MỘT SỐ LỆNH THÔNG THƯỜNG

  • 2. Giải phương trình bậc <5

  • 4. Tính giới hạn

  • 5. Trục căn thức ở mẫu

  • 7. Lệnh vẽ đồ thị

  • 8. Đồ thị hàm phần nguyên

  • 10. Ma trận kề

  • 12. Vòng lập for

  • 13. Vòng lập while

  • 15. Đơn giản biểu thức

  • PHẦN III

  • ỨNG DỤNG MAPLE VÀO BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT BẰNG DIJKSTRA

  • I. Mô tả giải thuật dijkstra

  • II. Ví dụ minh họa:

  • III. Áp dụng thiết kế chương trình bằng maple để giải quyết bài toán

  • PHẦN IV

  • KẾT LUẬN

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

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

Tài liệu liên quan