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

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.. LỜI NÓI ĐẦUMôn học lập trình Symbo

Trang 1

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

Trang 2

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ántrê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ếnthứ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 ơnquý 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ềukiện tốt nhất để chúng tôi học tập

Trân trọng!

Trang 3

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

Trang 4

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êncá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ínhtoá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ặpnhiề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ẵncác kiểu dữ liệu với độ chính xác cao:

Trang 5

2. Tính toán cơ bản trong Maple

Trang 6

- 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);

>

>

Trang 7

- 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)

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});

Trang 8

>

- 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);

>

Trang 9

- Đị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

Trang 10

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 Đườngdẫ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 tinvà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

Trang 11

• SetOption : thiết lập tùy chọn

• Shutdown : thoát chương trình

- Thẻ Layout chứa các thiết kế trên khung giao diện

- Thẻ Toolbar chứa các thiết kế trên Toolbar

- Thẻ Menu chứa các đối tượng thuộc loại Menu

- Thẻ Dialog chứa các đối tượng Dialog

- Thẻ Other chứa một số đối tượng khác như Font, Image, Return, ReturnItem,Argument, Button Group

Ví dụ: Thiết kế chương trình vẽ đồ thị nhập vào từ TextBox:

Form thiết kế trên Maplet Builder như sau:

- Đối tượng Plotter ở Boxrow1 để hiển thị đồ thị

- Label: Mời nhập hàm số

- TextBox : Người dùng nhập hàm số

- Button Vẽ đồ thị để thực hiện và Button Close để đóng chương trình

Trang 12

- Trong sự kiện clickButton, nhập hàm vẽ đồ thị trong Evaluate:

- Để chạy chương trình: File/run

Để thiết kế giao diện trong Maple, có thể dùng lệnh Cấu trúc một maplet như sau:

Trang 13

II TÍNH TOÁN TRÊN MA TRẬN VUÔNG

1.Mô tả bài toán

Trang 14

Bài toán cho phép người dùng nhập vào một ma trận vuông (n,n) với n= 1 5 Saukhi 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:

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

Trang 15

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

Trang 16

Những phép toán sau đây trên ma trận sử dụng các phương thức được định nghĩatrong gói LinearAlgebra Các phương thức này được gọi trong thuộc tính Evaluate củaButton

- 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 dùng cácthủ tục Cấu trúc thủ tục trong Maple được định nghĩa như sau:

Trang 17

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:

Trang 18

B1 Gọi gói lập trình form

B2: Gọi gói tính toán trên ma trận

Trang 19

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

Trang 20

Kết quả ma trận nghịch đảo

Kết quả đa thức đặc trưng

Trang 21

IV KẾT LUẬN

Phạm vi đề tài này còn hạn chế, chưa phát triển được việc giải các phương trình và

hệ phương trình với tham số là ma trận Tuy nhiên, với những kiến thức thu được sau khitìm hiểu về lập trình Symbolic và Maple, tôi sẽ cố gắng để tìm hiểu sâu hơn, đưa vàonhững hệ thống ứng dụng thực tế Rất mong nhận được sự đóng góp ý kiến của PGS TS

Đỗ Văn Nhơn và các bạn học lớp cao học khóa 6

Trân trọng!

Trang 22

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/

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