Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
232,5 KB
Nội dung
Báo cáo chuyên đề: LậptrìnhSymbolic và ứng dụng. GVHD: PGS. TS. Đỗ Văn Nhơn Mục Lục Mục Lục 1 LỜI CẢM ƠN 1 CHƯƠNG I: GIẢI BÀI TOÁNBẰNGMAPLE 2 I. GIỚI THIỆU 2 II. SƠ LƯỢC VỀ LẬPTRÌNH TRÊN MAPLE 4 2.1. Các lệnh lậptrình cơ bản 4 2.2. Giới thiệu lậptrình Maplet trong Maple 13 CHƯƠNG II: MỘT SỐ PHÉP TOÁNRỜIRẠC BIỂU DIỄN BẰNGMAPLE 16 I. Một số phép biến đổi trên ma trận 16 1.1. Phép biến đổi trên dòng 16 1.2. Phép biến đổi trên cột 16 1.3. Ví dụ 16 1.4. Kiểm tra ma trận 17 1.5. Phép toán trên ma trận 18 1.6. Tìm hàm đặc trưng 19 1.7. Lược đồ trực giao Gram – Schmidt 20 TÀI LIỆU THAM KHẢO 35 LỜI CẢM ƠN Trước tiên, em xin gửi lời cảm ơn chân thành nhất tới PGS - TS. Đỗ Văn Nhơn đã tận tình hướng dẫn, giảng dạy truyền đạt những kiến thức nền tảng cơ bản cho chúng em về môn học:"Lập trìnhSymbolic và ứng dụng", và có những gợi ý giúp em hoàn thành đề tài: "Lập trìnhSymbolicvớiứngdụnggiảitoánrời HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 1 Báo cáo chuyên đề: LậptrìnhSymbolic và ứng dụng. GVHD: PGS. TS. Đỗ Văn Nhơn rạcnângcaobằng MAPLE" Em xin được gửi lời cảm ơn chân thành tới các thầy cô giáo trong khoa Công nghệ thông tin - Trường đại học Công nghệ thông tin- Đai học QG.TPHCM đã tần tình giúp đỡ và giảng dạy cho chúng em trong những môn học vừa qua. Trong thời gian vừa qua mặc dù em đã cố gắng rất nhiều để hoàn thành tốt môn học. Song chắc chắn kết quả nghiên cứu sẽ không tránh khỏi những thiếu sót, vì vậy em kính mong nhận được sự chỉ bảo và góp ý của quý thầy cô và các bạn. Em xin chân thành cám ơn! Hà Nội, tháng 02 năm 2013 Học viên thực hiện Bùi Hữu Tiến - CH1102010 CHƯƠNG I: GIẢI BÀI TOÁNBẰNG MAPLE. I. GIỚI THIỆU. Như chúng ta đã biết, trong những năm gần đây, với sự phát triển của Công nghệ thông tin (CNTT), nhiều phần mềm hỗ trợ cho việc tính toán đã xuất hiện và càng ngày càng được hoàn thiện. Tại nước ta, mặc dù chưa trở thành một hiện trạng phổ biến, nhưng trong rất nhiều trường Đại học và Cao đẳng, nhiều cô giáo, HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 2 Báo cáo chuyên đề: LậptrìnhSymbolic và ứng dụng. GVHD: PGS. TS. Đỗ Văn Nhơn thầy giáo đã thực hiện “một cách tự phát” việc sử dụng CNTT nói chung và phần mềm tính toán nói riêng trong việc giảng dạy Toán. Nhiều người đã sử dụng phần mềm STATA, SPSS để xử lý các số liệu thống kê, EVIEWS, MFIT để xử lý các số liệu trong các bài toán Kinh tế lượng, MATHEMATICA, MATLAB, MAPLE trong các bài toán về Toáncao cấp, Toán tài chính. Việc sử dụng các phần mềm tính toán đã đặt ra cho các nhà quản lý giáo dục, các cô giáo, thầy giáo một vấn đề cấp thiết là sử dụng chúng như thế nào trong công tác đổi mới phương pháp dạy và học Toán ở các trường Đại học, Cao đẳng và Phổ thông. Qua kinh nghiệm thực tế, chúng tôi thấy rằng việc sử dụng các phần mềm để xử lý các số liệu đã tỏ rõ tính hiệu quả trong việc đổi mới cách dạy và học một số môn học Toán. Chẳng hạn, tại trường Đại học quản lý kinh doanh, môn Toán kinh tế gồm hai phần: Mô hình toán và Kinh tế lượng. Mỗi phần chiếm 3 đơn vị học trình. Chúng tôi đã dành 8 tiết (hơn nửa đơn vị học trình) cho việc thực hành phần mềm về Mô hình toán và dành trọn 1 đơn vị học trình thực hành phần mềm MFIT cho Kinh tế lượng trên máy tính. Điểm thi môn Toán kinh tế chia 50% cho Bài thi trắc nghiệm trên máy về Mô hình toán, và 50% cho Bài tập lớn về Kinh tế lượng mà sinh viên phải tự thu thập dữ liệu, xử lý dữ liệu trên máy tính và đưa ra các kết luận theo từng yêu cầu của đề bài đặt ra. Tuy nhiên, một cách làm như vậy đòi hỏi trường phải có đủ một số lượng máy tính và phòng máy, để sinh viên có thể thực tập mỗi người một máy, với số tiết thực hành 23 tiết trên tổng số 90 tiết dành cho môn học này. Phải chăng đó cũng là một trong những khó khăn khi muốn áp dụng rộng rãi CNTT vào việc dạy và học ở các trường Đại học của chúng ta hiện nay? Một vấn đề còn đang gây nhiều tranh luận quanh việc sử dụng một số phần mềm khác như MATLAB, MATHEMATICA, MAPLE… trong việc dạy và học môn Toáncao cấp. Các câu hỏi thường đặt ra là: Nên hay không nên sử dụng chúng? Nếu sử dụng thì sử dụng đến mức nào và nhằm mục đích gì? Các phần mềm nêu trên ngoài việc tính toán trên số, còn có một khả năng rất mạnh là tính toán trên ký hiệu (symbolic). Không phải phần mềm tính toán nào cũng có thể cộng 2a với 3a cho kết quả 5a, hay lấy đạo hàm một biểu thức giải tích. Trong EXCEL, ta có thể tính được ma trận nghịch đảo của một ma trận không suy biến với các phần tử là các số, song với các phần tử bằng chữ thì máy không làm được việc đó. Trong khuôn khổ báo cáo này, chúng tôi xin đề cập đến một trong các phần mềm mà chúng tôi đang khai thác là MAPLE. Cho đến cuối năm 2012, trên thị trường nước ta đã có phiên bản MAPLE 16. Theo chúng tôi, MAPLE đủ đáp ứng cho các tính toán trên số và trên các ký hiệu. Kinh nghiệm cho biết tất cả các đối tượng cán bộ và sinh viên đó đều tỏ ra hào hứng khi tiếp nhận một công cụ mới. Đồng thời nhận thức của sinh viên được nângcao lên rất nhiều. HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 3 Báo cáo chuyên đề: LậptrìnhSymbolic và ứng dụng. GVHD: PGS. TS. Đỗ Văn Nhơn Phần mềm Maple là một trong những công cụ hỗ trợ cho việc giảng dạy, tính toán và cũng có thể lậptrình để hỗ trợ các bài toán giảng dạy nào đó trong trường học. Đây là phần mềm được thiết kế riêng cho việc hỗ trợ tính toán, nó giúp cho việc tính toán một cách nhanh hơn và hiệu quả, mang lại những kết quả thật chính xác. Thông qua đó có thể giúp cho học sinh sinh viên tiếp cận với phương pháp nghiên cứu khoa học mới với nhưng công cụ hỗ trợ tính toán rất ưu việt. II. SƠ LƯỢC VỀ LẬPTRÌNH TRÊN MAPLE. 2.1. Các lệnh lậptrình cơ bản. 2.1.1. Vòng lặp While. a. Cú pháp. While <điều kiện> do <dãy lệnh> od; b. Chức năng. Vòng lặp while cho phép lặp chuỗi các câu lệnh giữa do và od khi mà điều kiện condition vẫn còn đúng (tức là biểu thức điều kiện cho giá trị true). Điều kiện condition được kiểm tra ngay tại đầu mỗi vòng lặp, nếu nó thỏa mãn (giá trị của nó là đúng) thì các câu lệnh bên trong được thực hiện, sau đó lại tiếp tục kiểm tra điều kiện condition cho đến khi điều kiện không còn thỏa mãn nữa.Vòng lặp while thường được sử dụng khi số lần lặp một hay một chuỗi biểu thức là không xác định rõ, đồng thời ta muốn các biểu thức đó cần được lặp trong khi một điều kiện nào đó còn được thỏa mãn. Điều kiện condition trong vòng lặp phải là một biểu thức boolean, tức là giá trị của nó chỉ có thể là đúng hoặc sai, nếu không thì sẽ sinh ra lỗi. Trong trường hợp muốn thoát ra khỏi vòng lặp ngay từ trong giữa vòng lặp, ta có thể thực hiện bằng cách dùng câu lệnh RETURN, break hoặc quit. Chú ý rằng vòng lặp while- do- od; không bắt buộc phải nằm trên nhiều dòng lệnh nhưng người ta thường viết trên nhiều dòng để câu lệnh dễ đọc và dễ hiểu hơn. Vòng lặp While cho phép lặp chuỗi các câu lệnh nằm giữa do và HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 4 Báo cáo chuyên đề: LậptrìnhSymbolic và ứng dụng. GVHD: PGS. TS. Đỗ Văn Nhơn od khi mà điều kiện vẫn còn đúng. 2.1.2. Vòng lặp for. a. Cú pháp. for name from start by change to finish do statement sequence od; Hoặc dạng phát biểu khác: for name in expression do statement sequence od; b. Chức năng. Vòng lặp for được dùng để lặp một chuỗi các biểu thức được đặt giữa do và od, mỗi lần lặp tưng ứngvới một giá trị phân biệt của biến chỉ số name đứng sau từ khoá for. Ban đầu, giá trị start được gán cho biến chỉ số. Nếu giá trị của biến name nhỏ hơn hay bằng giá trị finish thì chuỗi lệnh nằm giữa do và od được thực hiện, sau đó biến name được gán giá trị tiếp theo bằng cách cộng thêm vào nó giá trị change (name:=name+change). Sau đó, biến name được so sánh với finish để quyết định xem việc thực hiện chuỗi lệnh có được tiếp tục nữa không. Quá trình so sánh biến chỉ số name và thực hiện chuỗi lệnh được lặp liên tiếp cho đến khi giá trị của biến name lớn hơn giá trị finish. Giá trị cuối cùng của biến name sẽ là giá trị vượt quá finish đầu tiên. Chú ý. Nếu các từ khóa from start hoặc by change bị bỏ qua thì mặc định from 1 và by 1 được dùng. Vòng lặp for- in- do- od thực hiện việc lặpvới mỗi giá trị mà biến chỉ số name lấy từ biểu thức expression đã cho. Chẳng hạn vòng lặp này được sử dụng hiệu quả khi mà giá trị của biến name là một phần tử của một tập hợp hoặc danh sách. Trong trường hợp muốn thoát khỏi từ giữa vòng lặp, ta có thể dùng các câu lệnh break, quit, RETURN giống như trong vòng lặp while. HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 5 Báo cáo chuyên đề: LậptrìnhSymbolic và ứng dụng. GVHD: PGS. TS. Đỗ Văn Nhơn 2.1.3. Lệnh điều kiện if. a. Cú pháp. if condition then statement sequence | elif condition then statement sequence | | else statement sequence | fi; (Ghi chú: Các câu lệnh trong cặp dấu ngoặc đứng là các lệnh tuỳ chọn. Thí dụ: biểu thức | statement | cho biết rằng statement là một câu lệnh tuỳ chọn). b. Chức năng. Nếu bạn muốn 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 khác được thực hiện nếu trái lại thì có thể dùng câu lệnh if- then- else- fi. Trong câu lệnh trên, nếu điều kiện condition là đúng thì chuỗi biểu thức đứng sau then được thực hiện, nếu trái lại thì điều kiện condition sau từ khoá elif sẽ được kiểm tra, nếu nó đúng thì chuỗi lệnh tương ứng sau then được thực hiện, cứ tiếp tục cho đến khi các điều kiện condition đều không thỏa mãn, thì các biểu thức sau lệnh else được thực hiện. Lưu ý rằng cấu trúc lệnh (tuỳ chọn) elif then được lặp lại với số lần tuỳ ý. Từ khoá elif là dạng viết tắt của else if. Các biểu thức điều kiện condition được sử dụng trong câu lệnh if phải được tạo thành từ các bất đẳng thức, các đẳng thức (các phép toán quan hệ), các biến số, các phép toán logic, các hàm có giá trị trả lại là giá trị logic. Nếu trái lại thì sẽ gây ra lỗi. 2.1.4. Lệnh break. a. Cú pháp. break b. Chức năng. 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 HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 6 Báo cáo chuyên đề: LậptrìnhSymbolic và ứng dụng. GVHD: PGS. TS. Đỗ Văn Nhơn (vì cũng có thể có nhiều vòng lặp while/for được lồng nhau). Một ví dụ khá điển hình trong việc sử dụng lệnh break là trong quá trình tìm kiếm search, rõ ràng là bạn sẽ muốn dừng quá trình quét lại ngay khi bạn tìm thấy đối tượng cần tìm. Khi đó, ngay tại thời điểm tìm thấy, bạn dùng lệnh break để nhảy ra khỏi vòng lặp tìm kiếm. 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. 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). 2.1.5. Lệnh next. a. Cú pháp. Next. b. Chức năng. 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 2.1.6. Sử dụng các hàm RETURN, ERROR. Hàm RETURN được sử dụng để cho giá trị hàm trước khi thoát HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 7 Báo cáo chuyên đề: LậptrìnhSymbolic và ứng dụng. GVHD: PGS. TS. Đỗ Văn Nhơn 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. 2.1.7. Cách thiết lập chu trình. a. Giới thiệu. Maple là một ngôn ngữ lậptrình hướng chu trình (procedure). Chúng ta có thể làm việc vớiMaplebằng hai chế độ khác nhau: Chế độ tương tác trực tiếp thông qua việc nhập từng lệnh đơn lẻ ngay tại dấu nhắc lệnh của Maple và nhận được ngay kết quả của lệnh đó. Chế độ chu trình được thực hiện bằng cách đóng gói một dãy các lệnh xử lí cùng một công việc vào trong một chu trình (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 nhiên, người dùngMaple có thể tự tạo cho riêng mình những gói chu trình cũng như có thể trao đổi dùng chung những gói chu trình nào đấy, phục vụ cho công việc mang tính đặc thù riêng của mình. Các khái niệm cơ bản cần phải nắm vững để tạo ra một chu trình (procedure) là: Cấu trúc proc() end; cùng với các khai báo trong cấu trúc này (global, local, option, ). Các cấu trúc dữ liệu và các hàm có liên quan (dãy-sequence, tập hợp-set, danh sách-list, mảng-array, bảng-table). Các hàm lậptrình cơ bản (đã nêu ở trên) và các hàm liên quan đến việc xử lí dữ liệu (eval, evalf, subs, map, convert, ). b. Khai báo chu trình. Lời gọi khai báo một chu trình: procedure_name:=proc(parameter_sequence) [local local_sequence] [global global_sequence] [options options_sequence] statements_sequence; end; HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 8 Báo cáo chuyên đề: LậptrìnhSymbolic và ứng dụng. GVHD: PGS. TS. Đỗ Văn Nhơn Giải thích các khai báo: parameter_name: Là một dãy các kí hiệu, ngăn cách nhau bởi các dấu phẩy, chứa tên các tham biến truyền cho chu trình. local_sequence: Là một dãy các tên được khai báo là biến cục bộ trong chu 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). global_sequen: 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. options_sequence: Dãy các tuỳ chọn cho một chu trình. statements_sequence: Dãy các câu lệnh do người lậptrình đưa vào. c. Tham biến. Tham biến (parameter) là các biến được đặt giữa hai dấu ngoặc trong biểu thức proc( ). Tham biến được dùng để nhận dữ liệu truyền cho chu trình khi gọi chu trình đó. Ví dụ ta có thể khai báo chu trình tính tổng của 2 số [tong:=proc(x,y) x+y; end.] thì khi gọi chu trình này để tính tổng của hai số 10 và 5 ta phải truyền các dữ liệu này cho các tham biến (cho x nhận giá trị là 10, y nhận giá trị là 5), tức là tại dấu nhắc lệnh ta phải viết tong(10, 5); và sau khi thực hiện chu trình trả lại kết quả là 15. Tham biến có tính cục bộ: chúng chỉ được sử dụng bên trong chu trình đã được khai báo, bên ngoài chu trình này chúng không mang ý nghĩa gì. Kiểu của tham biến có thể được khai báo trực tiếp. d. Phạm vi các biến. Biến toàn cục: Biến toàn cục được khai báo sau từ khoá global trong khai báo chu trình. HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 9 Báo cáo chuyên đề: LậptrìnhSymbolic và ứng dụng. GVHD: PGS. TS. Đỗ Văn Nhơn Biến toàn cục được khai báo bên trong một chu trình, nhưng có phạm vi giá trị trong toàn bộ chương trình, tức là bên ngoài phạm vi của chu trình mà nó được khai báo trong đó. Biến cục bộ: Biến cục bộ được khai báo sau từ khoá 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ì. 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ậptrình truyền thống. Ngoài ra, do Maple có những hàm có khả năng trả lại nhiều hơn một giá trị. Ta có thể gộp các giá trị này vào một danh sách để trả lại như một phần tử. e. Định giá các biến. Định giá tên hàm và tham biến: Như đã đề cập trước đây, các tên biến trong một biểu thức được Maple định giá trước khi thực hiện các phép tính trên chúng. Đối với việc thực hiện các hàm cũng tương tự như vậy. Trước tiên là tên chu trình được định giá. Sau đó lần lượt đến các đối số trong danh sách các đối số truyền cho chu trình (được định giá từ trái 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. Định giá biến cục bộ và biến toàn cục: Các biến cục bộ và tham biến truyền cho chu trình được định giá một cấp (định giá một lần), HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 10 [...]... của lỗi đầu tiên gặp phải khi tính toán biểu thức đó Nếu không có lỗi, hàm traperror() trả lại kết quả tính toán biểu thức Mỗi lần gọi đến hàm traperror(), Maple tự động xoá đi giá trị cũ có trong bốn lần tính toán trước 2.2 Giới thiệu lậptrình Maplet trong Maple 2.2.1 Các ứngdụng Maplets là gì? Một ứngdụng Maplet đó là một chương trìnhvới giao diện đồ họa người sử dụng (GUI – graphical user interface)... tạo một ứngdụng Maplet, thí dụ: windows, buttons, and check boxes Layout: bố trí, một cách bố trí sẽ xác định các đối tượng trong Maplet sẽ được biểu diễn như thế nào 2.2.3 Cách tạo các ứngdụng Maplets Có hai cách để tạo các ứngdụng Maplets: - Sử dụng Maplets package (syntax-based) - Sử dụng Maplet builder (GUI-based) 2.2.4 Maplets Package Maplets pakage bao gồm tập hợp các lệnh (command) sử dụng để... tra lại kết quả với hàm của Maple: > LinearAlgebra[GramSchmidt]([,,]); HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 21 Báo cáo chuyên đề: LậptrìnhSymbolic và ứngdụng GVHD: PGS TS Đỗ Văn Nhơn CHƯƠNG III: GIAI BÀI TOÁNRỜIRẠCNÂNGCAOBẰNGMAPLE 1 Cây 1.1 Định nghĩa Cây là một đồ thị liên thông không có chu trình 1.2 Cây khung ngắn nhất 1.2.1 Thuật toán Kruskal Trong Maple chúng ta... diễn các ứngdụng Maplet Maplets pakage được phân thành các gói lệnh con (subpakage): Elements, Tools, Utilities, Examples HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 13 Báo cáo chuyên đề: Lập trìnhSymbolic và ứngdụng GVHD: PGS TS Đỗ Văn Nhơn Cấu trúc của một maplet >with(Maplets[]): # khai báo subpakage MyMaplet:=Maplet( [ [], [], … [] ]): #Ứng dụng có... CH1102010 Page 15 Báo cáo chuyên đề: Lập trìnhSymbolic và ứngdụng GVHD: PGS TS Đỗ Văn Nhơn CHƯƠNG II: MỘT SỐ PHÉP TOÁNRỜIRẠC BIỂU DIỄN BẰNGMAPLE I Một số phép biến đổi trên ma trận 1.1 Phép biến đổi trên dòng - Nhân hàng i của ma trận A với số x RowOperation(A,i,x); - Hoán vị 2 hàng i và j RowOperation(A,[i,j]); - Bổ sung vào hàng i, hàng j sau khi nhận hàng j với x RowOperation(A,[i,j],x); - Chú... cáo chuyên đề: Lập trìnhSymbolic và ứngdụng GVHD: PGS TS Đỗ Văn Nhơn >PrimsAlgorithm(G,'w',animate) >w 7 1.2.2 Thuật toán Prim Trong Maple chúng ta có thể tìm cây khung có trọng số nhỏ nhất bằng thuật toán Kruskal, sử dụng hàm sau đây: • PrimsAlgorithm(G,w,animate) Trong đó, các đối số được dùng tương tự như trong hàm KruskalsAlgorithm 2 Biểu diễn bằng ma trận a Ma trận liên kết Trong Maple chúng ta... {1,2,…,n} Ma trận khoảng cách của G là ma trận D = (Dij) với 0 Dij = ω (i , j ) ∞ if i = j if (i,j) ∈ E if (i,j) ∉ E 3.1.1 Thuật toán Dijkstra Trong Maple ta có thể tìm đường đi ngắn nhất bằng thuật toán Dijkstra, bằng cách sử dụng các lệnh sau đây : HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 26 Báo cáo chuyên đề: Lập trìnhSymbolic và ứngdụng d DijkstrasAlgorithm(G, s, t) e GVHD: PGS TS Đỗ Văn... cáo chuyên đề: LậptrìnhSymbolic và ứngdụng GVHD: PGS TS Đỗ Văn Nhơn Vertices(G)/2 ==> it’s not hamiltonian” false HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 34 Báo cáo chuyên đề: Lập trìnhSymbolic và ứngdụng GVHD: PGS TS Đỗ Văn Nhơn TÀI LIỆU THAM KHẢO [1] Các bài giảng của Thầy PGS TS Đỗ Văn Nhơn, Trường Đại học Công nghệ thông tin, 2012 [2] TS Đỗ Văn Nhơn, 1996, Giải đề trên mạng tính toán, Luận văn... [[1,3],2] > DijkstrasAlgorithm(G,4,6) [[4,5,6],2] > DijkstrasAlgorithm(G,1,6) [[ ],∞] 3.1.2 Thuật toán BFS Trong Maple ta có thể tìm đường đi ngắn nhất bằng thuật toán duyệt theo chiều rộng (BFS), bằng cách sử dụng lệnh sau đây : HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 28 Báo cáo chuyên đề: LậptrìnhSymbolic và ứngdụng GVHD: PGS TS Đỗ Văn Nhơn c ShortestPath(G,u,v) Trong đó : G là một đồ thị; u,v là các... 'C']); > A = P^(-1) B P; 1.5 Phép toán trên ma trận with(LinearAlgebra); > A:=RandomMatrix(4); - sử dụng phép khử Gausse (đưa về dạng tam giác) > GaussianElimination(A); - đưa về dạng tam giác rút gọn > ReducedRowEchelonForm(A); - ứngdụng để giải hệ Ax=b > A:=RandomMatrix(4); HVTH: BÙI HỮU TIẾN - MHV: CH1102010 Page 18 Báo cáo chuyên đề: LậptrìnhSymbolic và ứngdụng GVHD: PGS TS Đỗ Văn Nhơn b:=RandomVector(4); . học:" ;Lập trình Symbolic và ứng dụng& quot;, và có những gợi ý giúp em hoàn thành đề tài: " ;Lập trình Symbolic với ứng dụng giải toán rời HVTH:. LẬP TRÌNH TRÊN MAPLE 4 2.1. Các lệnh lập trình cơ bản 4 2.2. Giới thiệu lập trình Maplet trong Maple 13 CHƯƠNG II: MỘT SỐ PHÉP TOÁN RỜI RẠC BIỂU DIỄN BẰNG