1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tính toán ma trận vuông trên Maple

22 776 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 22
Dung lượng 2,36 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  BÀI THU HOẠCH MÔN: LẬP TRÌNH SYMBOLIC Đề tài: Tính toán ma trận vuông trên Maple Giảng viên hướng dẫn : PGS. TS ĐỖ VĂN NHƠN Học viên thực hiện : NGUYỄN THỊ DIỆU ANH MSHV : CH1101064 TP HCM, tháng 1 năm 2013 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple LỜI NÓI ĐẦU Môn học lập trình Symbolic đã cho tôi được tiếp cận một hướng lập trình mới, phù hợp trong việc phát triển các ứng dụng hỗ trợ tính toán yêu cầu về độ chính xác cao và làm việc với biểu thức. Bài thu hoạch này nằm trong giới hạn tìm hiểu về bộ môn, ứng dụng công cụ Maple 16 để xây dựng một chương trình hỗ trợ tính toán với phạm vi nhỏ. Tôi lựa chọn tính toán trên các đối tượng ma trận vì kiểu dữ liệu này khó tổ chức ở các ngôn ngữ lập trình khác, đồng thời thao tác xử lý ma trận được ứng dụng rộng rãi, nhất là trong lĩnh vực đại số tuyến tính. Các phép toán tổ chức trên ma trận thường phức tạp, công cụ maple đã hỗ trợ mạnh mẽ với những kiểu dữ liệu được xây dựng sẵn. Từ bài thu hoạch này tôi hy vọng sẽ phát triển thêm các hướng nghiên cứu về lập trình tính toán. Chân thành cảm ơn PGS. Đỗ Văn Nhơn đã tận tình chỉ dẫn giảng dạy những kiến thức nền tảng cho tôi có cơ hội tìm hiểu và nghiên cứu các lĩnh vực này. Đồng cảm ơn quý thầy cô quản lý phòng đào tạo sau đại học, trường đại học CNTT đã tạo mọi điều kiện tốt nhất để chúng tôi học tập. Trân trọng! Nguyễn Thị Diệu Anh (T.01 - 2013) Page 2 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple MỤC LỤC LỜI NÓI ĐẦU 2 I. GIỚI THIỆU MAPLE 4 1. Giới thiệu 4 2. Tính toán trong Maple 5 3. Sử dụng Maplet Builder thiết kế giao diện 10 II. TÍNH TOÁN TRÊN MA TRẬN VUÔNG 14 1. Mô tả bài toán 14 2. Cấu trúc dữ liệu 15 3. Giải quyết vấn đề 15 4. Demo chương trình 18 KẾT LUẬN 21 TÀI LIỆU THAM KHẢO 22 Nguyễn Thị Diệu Anh (T.01 - 2013) Page 3 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple I. MAPLE 1. Giới thiệu MAPLE là phần mềm cho phép thực hiện các tính toán số chính xác và tính toán trên các biểu thức đại số. Đây là công cụ mạnh và ứng dụng rộng rãi trong các lĩnh vực tính toán như số học, toán 2D, 3D, vật lý, hóa học, … Maple còn tương thích với ASP.NET, JAVA … vì thế người lập trình có thể tùy chọn để phát triển các phần mềm tính toán. Trong những ngôn ngữ lập trình thông thường, tính toán với những số chính xác gặp nhiều khó khăn trong việc tổ chức dữ liệu và lưu trữ trong bộ nhớ, Maple xây dựng sẵn các kiểu dữ liệu với độ chính xác cao: VD: > > Ngoài ra, Maple còn hỗ trợ những thành phần liên quan đến tính toán như đồ thị, ma trận, tính toán biểu thức, đại số tuyến tính, đối tượng 3 chiều … Nguyễn Thị Diệu Anh (T.01 - 2013) Page 4 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple 2. Tính toán cơ bản trong Maple a. Tính toán số học Maple cho phép tính toán số học như sau: - Các tính toán số học cơ bản: +, -, *, / > - Lũy thừa: ^, giai thừa: ! > - Logarit: ln(x), log[a](b), exp(x) > > - Hàm lượng giác: sin(x), cos(x), tan(x), cot(x),… > - Tính toán với độ chính xác Cú pháp 1: evalf (bieu_thuc) - tính toán chính xác giá trị của biểu thức và biểu diễn kết quả với mặc dịnh là 10 chữ số. > Cú pháp 2: evalf (bieu_thuc, k) - tính toán chính xác giá trị của biểu thức và biểu diễn kết quả với k chữ số. > Nguyễn Thị Diệu Anh (T.01 - 2013) Page 5 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple - Thao tác với các số nguyên tố ifactor(n) : Phân tích một số n thành thừa số nguyên tố isprime(n) : Kiểm tra một số n có phải là số nguyên tố không? nextprime(n) : Tìm số nguyên tố đứng sau một số n cho truớc prevprime(n) : Tìm số nguyên tố đứng truớc một số n cho truớc gcd(a,b) : Tìm uớc số chung lớn nhất của 2 số nguyên duong a, b lcm(a,b) : Tìm bội số chung nhỏ nhất của 2 số nguyên duong a, b irem(a,b) : Tìm số du khi chia a cho b iquo(a,b) : Tìm thuong nguyên khi chia a cho b - Giải phương trình nghiệm nguyên: lệnh isolve Cú pháp 1: isolve (phuong_trinh/he_phuong_trinh); Cú pháp 2: isolve (phuong_trinh/he_phuong_trinh, <danh_sach_tham_so>); - Giải công thức truy hồi, dãy số: lệnh rsolve Cú pháp: rsolve (pt/he_pt_truy_hoi, ten_day_so); - Tính tổng: sum (bieu_thuc_tinh_tong, bien:=gia_tri_dau gia_tri_cuoi); Sum (bieu_thuc_tinh_tong, bien:=gia_tri_dau gia_tri_cuoi); //Tính công thức - Tính tích: product (bieu_thuc_tinh_tich, bien:=gia_tri_dau gia_tri_cuoi); Product (bieu_thuc_tinh_tich, bien:=gia_tri_dau gia_tri_cuoi); //Tính đa thức b. Thao tác biểu thức đại số - Khai triển biểu thức đại số Cú pháp: expand (bieu_thuc_dai_so); > > Nguyễn Thị Diệu Anh (T.01 - 2013) Page 6 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple - Phân tích thừa số chung: factor (bieu_thuc_dai_so) - > - Đơn giản biểu thức đại số: simplify (bieu_thuc_dai_so) - Tối giản phân thức: nomal(phan_thuc) - > - > - > - Thay giá trị cho biến vào biểu thức: subs (bien=gia_tri, bieu_thuc) - Định nghĩa hàm số Ten_ham := bien → bieu_thuc_ham so; Ten_ham := unapply (bieu_thuc, bien); - Giải phương trình, bất phương trình Cú pháp: solve (phuong_trinh, {bien_1, bien_2, …}); Solve (phuong_trinh_1, phuong_trinh_2, , {danh_sach_bien}); Solve (bat_phuong_trinh, {danh_sach_bien}); Solve (bpt_1, bpt_2, …, {danh_sach_bien}); - > - > - > c. Đồ thị Khởi tạo các hàm vẽ đồ thị: > Nguyễn Thị Diệu Anh (T.01 - 2013) Page 7 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple > - Vẽ đồ thị hàm thông thường plot (ham_can_ve, x=gt_dau gt_cuoi, y=gt_dau gt_cuoi, cac_tuy_chon); > Nguyễn Thị Diệu Anh (T.01 - 2013) Page 8 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple - Vẽ nhiều đồ thị trên cùng một hệ trục plot ([ham_1,ham_2], x=gt_dau gt_cuoi, y=gt_dau gt_cuoi, cac_tuy_chon); > d. Hình học giải tích - Khởi tạo các gói tính toán hình học giải tích, hình học không gian - > - > - Định nghĩa điểm: point (ten_diem, hoanh_do, tung_do, cao_do); - Hiển thị tọa độ điểm: coordinates (ten_diem); - Xác định trung điểm: midpoint (ten_trung_diem, diem_1, diem_2); a. Nguyễn Thị Diệu Anh (T.01 - 2013) Page 9 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple 3. Sử dụng Maplet Builder thiết kế giao diện Maplet Builder là công cụ trong Maple để người lập trình thiết kế giao diện. Đường dẫn: Tools/ Assistants/ Maplet Builder Cửa sổ làm việc của Maplet Builder như trên. Phía bên trái chứa các đối tượng form, phía bên phải chứa các thuộc tính của đối tượng và các phương thức, màn hình ở giữa để cho người dùng thực hiện thiết kế. Các đối tượng form: - Thẻ Body chứa các đối tượng: Button, TextField, Textbox, Label, Plotter, CheckBox, ComboBox, ListBox, MathMLEditor, MathMLViewer, Slider, RadioButton, Table… Thẻ này chứa những đối tượng cơ bản để nhập thông tin vào và xuất thông tin ra. Trong đó có một số đối tượng quan trọng như: • Table : lưu trữ bảng • TextField, TextBox : nhập và xuất dữ liệu • MathMLViewer : hiển thị công thức toán học • Plotter : Hiển thị đồ thị • Slider : Trục số học - Thẻ Command chứa các lệnh thực hiện trên form: • CloseWindow : đóng cửa sổ làm việc • Evaluate : thực hiện hàm tính toán • RunDialog : mở hộp thoại • RunWindow : chạy chương trình Nguyễn Thị Diệu Anh (T.01 - 2013) Page 10 [...]... diện trong Maple, có thể dùng lệnh Cấu trúc một maplet như sau: Nguyễn Thị Diệu Anh (T.01 - 2013) Page 12 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple > > > Ví dụ: Thiết kế maplet tính tích phân: > II TÍNH TOÁN TRÊN MA TRẬN VUÔNG 1 Mô tả bài toán Nguyễn Thị Diệu Anh (T.01 - 2013) Page 13 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple Bài toán cho... nhập vào một ma trận vuông (n,n) với n= 1 5 Sau khi nhập vào, hiển thị ma trận lên MathMLView Thực hiện các phép toán với ma trận: - Tính hạng ma trận - Định thức ma trận - Đa thức đặc trưng - Giá trị riêng - Vector riêng - Lũy thừa bậc n với n nhập vào từ bàn phím - Ma trận nghịch đảo - Đa thức tối tiểu - Tính hàm ma trận với hàm số nhập vào - Ma trận dạng Jordan Kết quả trả về hiển thị trên MathMLView... Gọi Maplet Giao diện chương trình Nhập phần tử cho ma trận Để tính lũy thừa, click button Lũy thừa và nhập bậc cần tính Nguyễn Thị Diệu Anh (T.01 - 2013) Page 18 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple Nhập bậc tính lũy thừa Kết quả sau khi thực hiện phép tính toán Nguyễn Thị Diệu Anh (T.01 - 2013) Page 19 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông. .. ma trận Nguyễn Thị Diệu Anh (T.01 - 2013) Page 14 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple L : danh sách các phần tử của ma trận > Dữ liệu sau khi tính toán là các kết quả trả về của hàm số, của thủ tục dưới dạng các số nguyên, biểu thức đại số, đa thức theo … và được hiển thị trên MathMLView 3 Giải quyết vấn đề Sử dụng gói LinearAlgebra của Maple hỗ trợ tính toán trên. .. được định nghĩa như sau: Thủ tục hàm theo ma trận cho phép người dùng nhập hàm số vào và xuất kết quả tính toán trên ma trận Thủ tục HamMT() được định nghĩa như sau: 4 Demo chương trình Nguyễn Thị Diệu Anh (T.01 - 2013) Page 17 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple B1 Gọi gói lập trình form B2: Gọi gói tính toán trên ma trận B3: Gọi thủ tục Nhap(): B4: Gọi thủ tục... trong thuộc tính Evaluate của Button - Tính hạng ma trận: Rank (A) - Tính định thức ma trận: Determinant(A) - Tính đa thức đặc trưng: CharacteristicPolynomia(A, lambda) - Tính giá trị riêng: Eigenvalues (A) - Tính vector riêng: Eigenvectors (A) - Đa thức tối tiểu: MinimalPolynomial(A, lambda) - Ma trận dạng Jordan: JordanForm(A) Đối với phép toán tính lũy thừa, ma trận nghịch đảo và hàm theo ma trận ta... Cấu trúc thủ tục trong Maple được định nghĩa như sau: Nguyễn Thị Diệu Anh (T.01 - 2013) Page 16 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple Thủ tục lũy thừa của ma trận A cho phép người dùng nhập vào bậc n của lũy thừa, sau đó tính toán A^n Thủ tục Lthua() được viết như sau: > Thủ tục tính ma trận nghịch đảo cho phép bắt lỗi trong trường hợp ma trận suy biến Thủ tục Mtnghich()... Các phép toán trên ma trận được ứng dụng để giải quyết các bài toán đại số tuyến tính, giải các phương trình và hệ phương trình có dạng như sau: A*x = b //b là vector vế bên phải của phương trình A*x = B //B là ma trận vế bên phải của phương trình 2 Tổ chức cấu trúc dữ liệu Kiểu dữ liệu được dùng để tính toán trên ma trận là matrix Cấu trúc như sau: > matrix(m, n, L) với m : số dòng của ma trận n :... ma trận: > Nhập ma trận đầu vào: sử dụng phương thức trong thủ tục Nhap() > Sau khi gọi phương thức, một cửa sổ hiện ra cho người dùng nhập các giá trị của ma trận A và hiển thị biểu thức tương ứng với các biến Thủ tục Nhap( ) được định nghĩa như sau: Nguyễn Thị Diệu Anh (T.01 - 2013) Page 15 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple Những phép toán sau đây trên ma trận. .. Anh (T.01 - 2013) Page 21 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple TÀI LIỆU THAM KHẢO [1] Bài giảng lập trình Symbolic – PGS TS Đỗ Văn Nhơn - 2012 [2] Giáo trình giới thiệu Maple – Nguồn: Internet [3] Sử dụng Maple để dạy toán – Nguyễn Chánh Tú, ĐH SP Huế [4] http://maplevn2008.wordpress.com [5] www.maplesoft.com/support/help/ Nguyễn Thị Diệu Anh (T.01 - 2013) Page . – Tính toán ma trận vuông với Maple MỤC LỤC LỜI NÓI ĐẦU 2 I. GIỚI THIỆU MAPLE 4 1. Giới thiệu 4 2. Tính toán trong Maple 5 3. Sử dụng Maplet Builder thiết kế giao diện 10 II. TÍNH TOÁN TRÊN MA. kế maplet tính tích phân: > II. TÍNH TOÁN TRÊN MA TRẬN VUÔNG 1.Mô tả bài toán Nguyễn Thị Diệu Anh (T.01 - 2013) Page 13 Bài thu hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple Bài. hoạch môn: Lập trình Symbolic – Tính toán ma trận vuông với Maple I. MAPLE 1. Giới thiệu MAPLE là phần mềm cho phép thực hiện các tính toán số chính xác và tính toán trên các biểu thức đại số. Đây

Ngày đăng: 10/04/2015, 08:27

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w