1. Trang chủ
  2. » Tất cả

Lập trình symbolic với ứng dụng giải toàn rời rạc nâng cao bằng maple

35 1 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 248,5 KB

Nội dung

Mục Lục Báo cáo chuyên đề Lập trình Symbolic và ứng dụng GVHD PGS TS Đỗ Văn Nhơn Mục Lục 2LỜI CẢM ƠN 3CHƯƠNG I GIẢI BÀI TOÁN BẰNG MAPLE 3I GIỚI THIỆU 4II SƠ LƯỢC VỀ LẬP TRÌNH TRÊN MAPLE 42 1 Các lệnh[.]

Báo cáo chuyên đề: Lập trình Symbolic ứng dụng GVHD: PGS TS Đỗ Văn Nhơn Mục Lục LỜI CẢM ƠN CHƯƠNG I: GIẢI BÀI TOÁN BẰNG MAPLE .3 I GIỚI THIỆU II SƠ LƯỢC VỀ LẬP TRÌNH TRÊN MAPLE 2.1 Các lệnh lập trình 2.2 Giới thiệu lập trình Maplet Maple 13 CHƯƠNG II: MỘT SỐ PHÉP TOÁN RỜI RẠC BIỂU DIỄN BẰNG MAPLE 17 I Một số phép biến đổi ma trận 17 1.1 Phép biến đổi dòng 17 1.2 Phép biến đổi cột .17 1.3 Ví dụ 18 1.4 Kiểm tra ma trận 18 1.5 Phép toán ma trận .19 1.6 Tìm hàm đặc trưng 20 1.7 Lược đồ trực giao Gram – Schmidt 22 CHƯƠNG III: GIAI BÀI TOÁN RỜI RẠC NÂNG CAO BẰNG MAPLE 24 Cây 24 Biểu diễn ma trận .25 Các toán đường .28 TÀI LIỆU THAM KHẢO .37 Page Báo cáo chuyên đề: Lập trình Symbolic ứng dụng GVHD: PGS TS Đỗ Văn Nhơn LỜI CẢM ƠN Trước tiên, em xin gửi lời cảm ơn chân thành tới PGS - TS Đỗ Văn Nhơn tận tình hướng dẫn, giảng dạy truyền đạt kiến thức tảng cho chúng em mơn học:"Lập trình Symbolic ứng dụng", có gợi ý giúp em hồn thành đề tài: " Lập trình Symbolic với ứng dụng giải tốn rời rạc nâng cao MAPLE" Em xin gửi lời cảm ơn chân thành tới thầy cô giáo 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 đỡ giảng dạy cho chúng em môn học vừa qua Trong thời gian vừa qua em cố gắng nhiều để hoàn thành tốt môn học Song chắn kết nghiên cứu khơng tránh khỏi thiếu sót, em kính mong nhận bảo góp ý quý thầy cô bạn Em xin chân thành cám ơn! Page Báo cáo chuyên đề: Lập trình Symbolic ứng dụng GVHD: PGS TS Đỗ Văn Nhơn CHƯƠNG I: GIẢI BÀI TOÁN BẰNG MAPLE I GIỚI THIỆU Như biết, năm gần đây, với phát triển Công nghệ thông tin (CNTT), nhiều phần mềm hỗ trợ cho việc tính tốn xuất ngày hoàn thiện Tại nước ta, chưa trở thành trạng phổ biến, nhiều trường Đại học Cao đẳng, nhiều cô giáo, thầy giáo thực “một cách tự phát” việc sử dụng CNTT nói chung phần mềm tính tốn nói riêng việc giảng dạy Toán Nhiều người sử dụng phần mềm STATA, SPSS để xử lý số liệu thống kê, EVIEWS, MFIT để xử lý số liệu toán Kinh tế lượng, MATHEMATICA, MATLAB, MAPLE tốn Tốn cao cấp, Tốn tài Việc sử dụng phần mềm tính tốn đặt cho nhà quản lý giáo dục, cô giáo, thầy giáo vấn đề cấp thiết sử dụng chúng công tác đổi phương pháp dạy học Toán trường Đại học, Cao đẳng Phổ thông Qua kinh nghiệm thực tế, thấy việc sử dụng phần mềm để xử lý số liệu tỏ rõ tính hiệu việc đổi cách dạy học số mơn học Tốn Chẳng hạn, trường Đại học quản lý kinh doanh, mơn Tốn kinh tế gồm hai phần: Mơ hình tốn Kinh tế lượng Mỗi phần chiếm đơn vị học trình Chúng tơi dành tiết (hơn nửa đơn vị học trình) cho việc thực hành phần mềm Mơ hình tốn dành trọn đơn vị học trình thực hành phần mềm MFIT cho Kinh tế lượng máy tính Điểm thi mơn Tốn kinh tế chia 50% cho Bài thi trắc nghiệm máy Mơ hình tốn, 50% cho Bài tập lớn Kinh tế lượng mà sinh viên phải tự thu thập liệu, xử lý liệu máy tính đưa kết luận theo yêu cầu đề đặt Tuy nhiên, cách làm đòi hỏi trường phải có đủ số lượng máy tính phịng máy, để sinh viên thực tập người máy, với số tiết thực hành 23 tiết tổng số 90 tiết dành cho môn học Phải khó khăn muốn áp dụng rộng rãi CNTT vào việc dạy học trường Đại học nay? Một vấn đề gây nhiều tranh luận quanh việc sử dụng số phần mềm khác MATLAB, MATHEMATICA, MAPLE… việc dạy học mơn Tốn cao cấp Các câu hỏi thường đặt là: Nên hay khơng nên sử dụng chúng? Nếu sử dụng sử dụng đến mức nhằm mục đích gì? Các phần mềm nêu ngồi việc tính tốn số, cịn có khả mạnh tính tốn ký hiệu (symbolic) Khơng phải phần mềm tính tốn cộng 2a với 3a cho kết 5a, hay lấy đạo hàm biểu thức giải tích Trong EXCEL, ta tính ma trận nghịch đảo ma trận không suy biến với phần tử số, song với phần tử chữ máy khơng làm việc Page Báo cáo chuyên đề: Lập trình Symbolic ứng dụng GVHD: PGS TS Đỗ Văn Nhơn Trong khuôn khổ báo cáo này, xin đề cập đến phần mềm mà khai thác MAPLE Cho đến cuối năm 2012, thị trường nước ta có phiên MAPLE 16 Theo chúng tơi, MAPLE đủ đáp ứng cho tính tốn số ký hiệu Kinh nghiệm cho biết tất đối tượng cán sinh viên tỏ hào hứng tiếp nhận công cụ Đồng thời nhận thức sinh viên nâng cao lên nhiều Phần mềm Maple công cụ hỗ trợ cho việc giảng dạy, tính tốn lập trình để hỗ trợ tốn giảng dạy trường học Đây phần mềm thiết kế riêng cho việc hỗ trợ tính tốn, giúp cho việc tính tốn cách nhanh hiệu quả, mang lại kết thật xác Thơng qua 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 với cơng cụ hỗ trợ tính tốn ưu việt II SƠ LƯỢC VỀ LẬP TRÌNH TRÊN MAPLE 2.1 Các lệnh lập trình 2.1.1 Vịng lặp While a Cú pháp While od; b Chức Vòng lặp while cho phép lặp chuỗi câu lệnh od mà điều kiện condition (tức biểu thức điều kiện cho giá trị true) Điều kiện condition kiểm tra đầu vịng lặp, thỏa mãn (giá trị đúng) câu lệnh bên thực hiện, sau lại tiếp tục kiểm tra điều kiện condition điều kiện khơng cịn thỏa mãn nữa.Vịng lặp while thường sử dụng số lần lặp hay chuỗi biểu thức không xác định rõ, đồng thời ta muốn biểu thức cần lặp điều kiện cịn thỏa mãn Điều kiện condition vòng lặp phải biểu thức boolean, tức giá trị sai, khơng sinh lỗi Page Báo cáo chuyên đề: Lập trình Symbolic ứng dụng GVHD: PGS TS Đỗ Văn Nhơn Trong trường hợp muốn khỏi vịng lặp từ vịng lặp, ta thực cách dùng câu lệnh RETURN, break quit Chú ý vịng lặp while- do- od; khơng bắt buộc phải nằm nhiều dòng lệnh người ta thường viết nhiều dòng để câu lệnh dễ đọc dễ hiểu Vòng lặp While cho phép lặp chuỗi câu lệnh nằm od mà điều kiện 2.1.2 Vòng lặp for a Cú pháp for name from start by change to finish statement sequence od; Hoặc dạng phát biểu khác: for name in expression statement sequence od; b Chức Vòng lặp for dùng để lặp chuỗi biểu thức đặt od, lần lặp tưng ứng với giá trị phân biệt biến số name đứng sau từ khoá for Ban đầu, giá trị start gán cho biến số Nếu giá trị biến name nhỏ hay giá trị finish chuỗi lệnh nằm od thực hiện, sau biến name gán giá trị cách cộng thêm vào giá trị change (name:=name+change) Sau đó, biến name so sánh với finish để định xem việc thực chuỗi lệnh có tiếp tục khơng Q trình so sánh biến số name thực chuỗi lệnh lặp liên tiếp giá trị biến name lớn giá trị finish Giá trị cuối biến name giá trị vượt finish Chú ý Nếu từ khóa from start by change bị bỏ qua mặc định from by dùng Page Báo cáo chuyên đề: Lập trình Symbolic ứng dụng GVHD: PGS TS Đỗ Văn Nhơn Vòng lặp for- in- do- od thực việc lặp với giá trị mà biến số name lấy từ biểu thức expression cho Chẳng hạn vòng lặp sử dụng hiệu mà giá trị biến name phần tử tập hợp danh sách Trong trường hợp muốn khỏi từ vịng lặp, ta dùng câu lệnh break, quit, RETURN giống vòng lặp while 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 cặp dấu ngoặc đứng lệnh tuỳ chọn Thí dụ: biểu thức | statement | cho biết statement câu lệnh tuỳ chọn) b Chức Nếu bạn muốn dãy biểu thức thực điều kiện thoả mãn dãy biểu thức khác thực trái lại dùng câu lệnh if- then- else- fi Trong câu lệnh trên, điều kiện condition chuỗi biểu thức đứng sau then thực hiện, trái lại điều kiện condition sau từ khoá elif kiểm tra, chuỗi lệnh tương ứng sau then thực hiện, tiếp tục điều kiện condition khơng thỏa mãn, biểu thức sau lệnh else thực Lưu ý cấu trúc lệnh (tuỳ chọn) elif then lặp lại với số lần tuỳ ý Từ khoá elif dạng viết tắt else if Các biểu thức điều kiện condition sử dụng câu lệnh if phải tạo thành từ bất đẳng thức, đẳng thức (các phép toán quan hệ), biến số, phép tốn logic, hàm có giá trị trả lại giá trị logic Nếu trái lại gây lỗi 2.1.4 Lệnh break Page Báo cáo chuyên đề: Lập trình Symbolic ứng dụng GVHD: PGS TS Đỗ Văn Nhơn a Cú pháp break b Chức Trong lúc vòng lặp while/for thực hiện, lệnh break gọi chương trình khỏi vòng lặp while/for tận mà có chứa lệnh break (vì có nhiều vịng lặp while/for lồng nhau) Một ví dụ điển hình việc sử dụng lệnh break trình tìm kiếm search, rõ ràng bạn muốn dừng trình quét lại bạn tìm thấy đối tượng cần tìm Khi đó, thời điểm tìm thấy, bạn dùng lệnh break để nhảy khỏi vịng lặp tìm kiếm Trước lệnh break thường có câu lệnh điều kiện if then Nếu lệnh break dùng ngồi vịng lặp while/for sinh lỗi Chú ý: break khơng phải từ khố (từ dành riêng cho Maple), ta gán giá trị cho biến có tên break mà không sinh lỗi (mặc dù điều không nên) 2.1.5 Lệnh next a Cú pháp Next b Chức Cũng giống câu lệnh break, lệnh next thực vòng lặp while/for với mục đích bỏ qua số lệnh bên vòng lặp để nhảy qua lần lặp Khi gặp lệnh next vịng lặp, chương trình bỏ qua lệnh vòng lặp tận chứa next gặp từ khoá xác định kết thúc vòng lặp (ở lệnh od) Đến vòng lặp tiếp tục nhảy qua lần lặp (nếu có thể) cách tăng số kiểm tra điều kiện để định xem có nên thực vòng lặp Page Báo cáo chuyên đề: Lập trình Symbolic ứng dụng GVHD: PGS TS Đỗ Văn Nhơn Lệnh next sinh lỗi gọi ngồi vịng lặp while/for Tương tự break, next khơng phải từ khóa, ta hồn tồn gán cho next giá trị (xem next biến) Ngay trước lệnh next thường câu lệnh điều kiện if then 2.1.6 Sử dụng hàm RETURN, ERROR Hàm RETURN sử dụng giá trị hàm trước khỏi chu trình Nếu khơng có lệnh RETURN, chu trình tự động cho kết phép tính cuối chu trình Hàm ERROR sử dụng để đưa thơng điệp lỗi hình từ bên chu trình 2.1.7 Cách thiết lập chu trình a Giới thiệu Maple ngơn ngữ lập trình hướng chu trình (procedure) Chúng ta làm việc với Maple hai chế độ khác nhau: Chế độ tương tác trực tiếp thông qua việc nhập lệnh đơn lẻ dấu nhắc lệnh Maple nhận kết lệnh Chế độ chu trình thực cách đóng gói dãy lệnh xử lí cơng việc vào chu trình (procedure) nhất, sau ta cần gọi chu trình Maple tự động thực lệnh có chu trình cách sau trả lại kết cuối Maple chứa lượng lớn hàm tạo sẵn đáp ứng cho u cầu tính tốn khác nhiều lĩnh vực Các hàm lưu trữ gói chu trình (package) người sử dụng dễ dàng gọi đến cần thiết Tuy nhiên, người dùng Maple tự tạo cho riêng gói chu trình trao đổi dùng chung gói chu trình đấy, phục vụ cho cơng việc mang tính đặc thù riêng Các khái niệm cần phải nắm vững để tạo chu trình (procedure) là:  Cấu trúc proc() end; với khai báo cấu trúc (global, local, option, )  Các cấu trúc liệu hàm có liên quan (dãy-sequence, tập hợp-set, danh sách-list, mảng-array, bảng-table) Page Báo cáo chuyên đề: Lập trình Symbolic ứng dụng GVHD: PGS TS Đỗ Văn Nhơn  Các hàm lập trình (đã nêu trên) hàm liên quan đến việc xử lí liệu (eval, evalf, subs, map, convert, ) b Khai báo chu trình Lời gọi khai báo chu trình: procedure_name:=proc(parameter_sequence) [local local_sequence] [global global_sequence] [options options_sequence] statements_sequence; end; Giải thích khai báo: parameter_name: Là dãy kí hiệu, ngăn cách dấu phẩy, chứa tên tham biến truyền cho chu trình local_sequence: Là dãy tên khai báo biến cục chu trình, có giá trị sử dụng phạm vi chu trình xét (local sử dụng để khai báo cho biến sử dụng bên chu trình) global_sequen: Dãy tên biến tồn cục có giá trị sử dụng bên ngồi chu trình options_sequence: Dãy tuỳ chọn cho chu trình statements_sequence: Dãy câu lệnh người lập trình đưa vào c Tham biến Tham biến (parameter) biến đặt hai dấu ngoặc biểu thức proc( ) Tham biến dùng để nhận liệu truyền cho chu trình gọi chu trình Ví dụ ta khai báo chu trình tính tổng số [tong:=proc(x,y) x+y; end.] gọi chu trình để tính tổng hai số 10 ta phải truyền liệu cho tham biến (cho x nhận giá trị 10, y nhận giá trị 5), tức dấu nhắc lệnh ta phải viết tong(10, 5); sau thực chu trình trả lại kết 15 Page Báo cáo chuyên đề: Lập trình Symbolic ứng dụng GVHD: PGS TS Đỗ Văn Nhơn Tham biến có tính cục bộ: chúng sử dụng bên chu trình khai báo, bên ngồi chu trình chúng khơng mang ý nghĩa Kiểu tham biến khai báo trực tiếp d Phạm vi biến Biến toàn cục:  Biến toàn cục khai báo sau từ khố global khai báo chu trình  Biến toàn cục khai báo bên chu trình, có phạm vi giá trị tồn chương trình, tức bên ngồi phạm vi chu trình mà khai báo Biến cục bộ:  Biến cục khai báo sau từ khố local khai báo chu trình  Biến cục có giá trị bên chu trình mà khai báo Ngồi chu trình khơng mang ý nghĩa Tham biến:  Cũng giống biến cục bộ, tham biến có giá trị bên phạm vi chu trình mà khai báo Sau chu trình kết thúc, chúng khơng giá trị  Tham biến sử dụng để trả lại kết quả, ngôn ngữ lập trình truyền thống Ngồi ra, Maple có hàm có khả trả lại nhiều giá trị Ta gộp giá trị vào danh sách để trả lại phần tử e Định giá biến Page 10 ... thức tảng cho chúng em mơn học: "Lập trình Symbolic ứng dụng" , có gợi ý giúp em hồn thành đề tài: " Lập trình Symbolic với ứng dụng giải toán rời rạc nâng cao MAPLE" Em xin gửi lời cảm ơn chân... traperror(), Maple tự động xoá giá trị cũ có bốn lần tính tốn trước 2.2 Giới thiệu lập trình Maplet Maple 2.2.1 Các ứng dụng Maplets gì? Một ứng dụng Maplet chương trình với giao diện đồ họa người sử dụng. .. đối tượng Maplet biểu diễn Page 13 Báo cáo chuyên đề: Lập trình Symbolic ứng dụng GVHD: PGS TS Đỗ Văn Nhơn 2.2.3 Cách tạo ứng dụng Maplets Có hai cách để tạo ứng dụng Maplets: - Sử dụng Maplets

Ngày đăng: 26/02/2023, 21:39

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w