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

Sử dụng phần mềm Maple để giải quyết các vấn đề trên ma trận và ứng dụng vào giải hệ phương trình đại số tuyến tính

18 4,4K 33

Đ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 18
Dung lượng 220 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TRƯỜNG ĐẠI HỌC SƯ PHẠM HUẾKHOA TOÁN SỬ DỤNG PHẦN MỀM MAPLE ĐỂ GIẢI QUYẾT CÁC VẤN ĐỀ TRÊN MA TRẬN VÀ ỨNG DỤNG VÀO GIẢI HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH Giảng viên hướng dẫn Lớp toán 3B -

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM HUẾ

KHOA TOÁN

SỬ DỤNG PHẦN MỀM MAPLE ĐỂ GIẢI QUYẾT CÁC VẤN ĐỀ TRÊN MA TRẬN VÀ ỨNG DỤNG VÀO GIẢI HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH

Giảng viên hướng dẫn Lớp toán 3B - nhóm 09

Nguyễn Như Thứ Phan Quốc Luân Lương Ngọc Tuấn

Huế, ngày 20 tháng 9 năm 2013

Trang 2

MỤC LỤC

LỜI NÓI ĐẦU 1

I Giới thiệu về phần mềm maple 2

1 Maple 2

2 Ứng dụng chương trình Maple đối với một số vấn đề của đại số tuyến tính 3

II Các phép toán đại số trên ma trận và vectơ 3

1 Một số lệnh tạo ma trận cấp m×n 3

2 Các phép tính trên ma trận và vectơ 4

2.1 So sánh hai ma trận 4

2.2 Tổng hai ma trận 5

2.3 Tích của hai ma trận 5

3 Tìm vết của ma trận (tổng các phần tử thuộc đường chéo chính) 6

4 Tạo ma trận con từ một ma trận cho trước 7

5 Trích một dòng, cột của ma trận 7

6 Hoán vị dòng, cột của một ma trận 8

7 Tìm ma trận chuyển vị 8

8 Tìm ma trận liên hợp 9

9 Tìm ma trận đặc trưng 9

10 Tìm đa thức đặc trưng của một ma trận 9

11 Biến đổi ma trận về dạng bậc thang 9

12 Phép khử Gauss-Jordan 10

13 Tìm vectơ riêng của ma trận A 11

14 Tìm giá trị riêng của ma trận A 11

15 Tìm hạng của ma trận A 12

17 Tìm ma trận nghịch đảo của ma trận A 12

18 Biến đổi ma trận về dạng tam giác 13

III Giải phương trình đại số tuyến tính 13

1 Lập hệ phương trình tuyến tính từ các hệ số của ma trận 13

2 Giải hệ phương trình đại số tuyến tính 14

IV Kết luận 16

V Tài liệu tham khảo 16

Trang 3

LỜI NÓI ĐẦU

Từ khi nền toán học hình thành và phát triển cho đến nay thì việc nghiên cứu các vấn đề toán học luôn thu hút nhiều nhà toán học cũng như những người có lòng đam mê đối với toán học, chẳng hạn như việc giải một bài toán nào đó.Tuy nhiên, vấn đề đặt ra là tìm ra cách thức nào hiệu quả và nhanh chóng để đi đến kết quả cụ thể và dễ hiểu cho bạn đọc Bên cạnh những cách thức tính toán cổ điển lâu nay thì cùng với sự phát triến của khoa học thì việc giải quyết các vấn đề toán học cũng phát triến với nhiều cách thức thuận tiện mà hiệu quả

Cũng chính vì lí do đó nhóm chúng tôi đã thực hiện đề tài ” Sử dụng phần mềm Maple để thực hiện các phép toán đại số trên ma trận va ứng dụng vào giải hệ phương trình đại số tuyến tính ” là một trong những cách để giải một bài toán về hệ phương trình đại số tuyến tính Đề tài giúp chúng ta sử dụng phần mềm maple để thực hiên các thao tác về ma trận như: tìm hạng, tìm ma trận khả nghịch, tìm đa thức đặc trưng,…và ứng dụng để giải hệ phương trình đại số tuyến tính

Trong lúc thực hiện đề tài không thể tránh khỏi những sai sót vì vậy mong bạn đọc góp ý, xin cảm ơn

Trang 4

I Giới thiệu về phần mềm maple:

1 Maple:

Là một phần mềm Toán học do Đại Học Tổng HợpWaterloo(Canada) xây dựng và đưa vào sử dụng năm 1985 Sau nhiều lần cải tiến và phát triển qua nhiều phiên bản khác nhau và ngày càng được hoàn thiện Maple chạy trên tất cả các hệ điều hành, có trình trợ giúp rất dễ sử dụng Từ phiên bản 7, Maple 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 phổ thông và đại học Ưu điểm đó khiến ngày càng

có nhiều nước trên thế giới lựa chọn sử dụng Maple trong dạy-học toán tương tác trước đòi hỏi của thực tiễn và sự phát triển của giáo dục

- Chức năng chính của Maple:

• Thực hiện các tính toán với khối lượng lớn, với thời gian nhanh và độ chính xác cao

• Sử dụng các gói chuyên dụng của Maple để giải quyết các bài toán cụ thể như: vẽ đồ thị (gói plots), hình học giải tích (gói geometry), đại số tuyến tính (gói linalg), Giải tích (gói student), phương trình vi phân(gói DEtools), lý thuyết số (gói numtheory), Dữ liệu rời rạc (gói DiscreteTransforms),

• Thiết kế các đối tượng 3 chiều;

• Minh họa hình học thuận tiện gồm: vẽ đồ thị tĩnh và động của các đường và mặt được cho bởi các hàm tùy ý trong nhiều hệ tọa độ khác nhau;

• Tính toán trên các biểu thức đại số;

• Có thể thực hiệc đượ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;

• Ngôn ngữ lập trình đơn giản và mạnh mẽ, có khả năng tương tác với các ngôn ngữ lập trình khác;

• Một công cụ biên soạn giáo án và bài giảng điện tử, thích hợp với các lớp học tương tác trực tiếp;

• Một công cụ hữu ích cho học sinh và sinh viên trong việc tự học;

• Và các vấn đề khác

Trang 5

- Bạn có thể dễ dàng tìm được các phiên bản của maple và giáo trình hướng dẫn sử dụng tai trang: www.maplesoft.com

Các bạn có thể download maple 9.5

tại: http://www.mediafire.com/?dvqp1r94szor4c9

2 Ứng dụng chương trình Maple đối với một số vấn đề của đại số tuyến tính:

- Chương trình Maple cho phép ta tính định thức ma trận, giải hệ phương trình tuyến tính Ngoài ra, Maple còn cho phép ta tìm ra giá trị riêng, vectơ riêng, đa thức đặc trưng, tìm dạng chính tắc của ma trận và tính rất nhiều ma trận đặc biệt như Hilbert, Toeplitz , v.v…

- Các lệnh của đại số tuyến tính được cài sẵn trong gói công cụ linalg

do đó trước khi sử dụng ta phải nạp gói công cụ này vào trong bộ nhớ bằng lệnh:

>with(linalg):

- Trong phạm vi phụ lục này sẽ giới thiệu đôi nét về ứng dụng của chương trình Maple trong một số phép toán đại số trên ma trận và vectơ, cũng như việc giải một hệ phương trình tuyến tính đơn giản Để biết thêm các ứng dụng khác của chương trình Maple, sinh viên có thể tham khảo ở các tài liệu khác

II Các phép toán đại số trên ma trận và vectơ:

1 Một số lệnh tạo ma trận cấp m×n:

 Cú pháp:

>matrix(m, n, L);

Trong đó:

+ L: Bảng liệt kê các phần tử của ma trận theo thứ tự từ trái sang phải

và từ trên xuống dưới

+ L [[ ,a a11 12 , ,a1n],[a a21 , 22 , ,a2n], ,[a m1 ,a m2 , ,a mn]]

+ Trong trường hợp L được xác định bởi các phần tử cụ thể thì ta có thể

bỏ qua các chỉ số m, n

Trang 6

Ví dụ: Tạo ma trận 3 dòng, 4 cột sau (m = 3, n = 4)

>matrix(3,4,[[1,2,1,2],[3,5,4,6],[3,4,0,2]]);

hoặc bỏ chỉ số hàng, cột

>matrix([[1,2,1,2],[3,5,4,6],[3,4,0,2]]);

Được kết quả:

1 2 1 2

3 5 4 6

3 4 0 2

Ngoài ra, tạo ma trận cấp mxn với các phần tử của ma trận là các giá trị hàm của f xác định trên các chỉ số hàng và cột của ma trận, ta thực hiện như sau:

Ví dụ: Tạo ma trận

(1,1) (1, 2) (2,1) (2, 2)

C

 

>C:=matrix(2,2,f);

Để tạo ma trận bằng lệnh tạo mảng, thì ta sử dụng cú pháp:

array(1 m,1 n,L) với L là các phần tử của ma trận

Ví dụ:

>A:=array(1 3,1 2,[1,2],[2,6],[4,23]]);

1 2 : 2 6

4 23

A

 

 

 

 

 

2 Các phép tính trên ma trận và vectơ:

2.1 So sánh hai ma trận:

Để so sánh hai ma trận A và B có cùng số hàng và số cột ta dùng lệnh sau: equal(A, B);

Ví dụ:

>A:=matrix([[1,2],[3,4]]);

>B:=matrix(2,2,[1,2],[3,4]]);

equal(A,B);

Trang 7

Ta được kết quả

1 2 :

3 4

1 2 :

3 4

A B true

 

 

 

 

 

 

2.2 Tổng hai ma trận:

- Dùng lệnh đánh giá evalm để tính tổng của hai ma trận

 Cú pháp: >evalm(expr)

Trong đó expr là biểu thức tổng, hiệu, tích của các ma trận

Ví dụ: Tính tổng các ma trận sau:

>restart:

>with(linalg):

C:=matrix([[2,3],[4,7]]);

E:=matrix([[1,a],[9,1]]);

F:=matrix([[b,0],[1,0]]);

2 3

:

4 7

 

1

:

9 1

a

E  

 

0

:

1 0

b

 

>evalm(C+E);

3 3

13 8

a

 

 

 

>evalm(C+2*E-F);

4 3 2

21 9

 

2.3 Tích của hai ma trận:

Có thể dùng một trong hai hàm sau:

>Multiply(A,B,…): Nhân các ma trận A, B, … với nhau

Trang 8

>evalm(A&*B&*C…): Nhân các ma trận A, B, C với nhau bằng lệnh đánh giá evalm

Khi đó, máy sẽ thực hiện phép nhân này từ trái sang phải

Ví dụ: Nhân hai ma trận sau đây:

: [3, 4]

1 : 2

B   

 

Ta thực hiện như sau:

>A:=array([3,4]);

>B:=array([1,2]);

>evalm(B&*A);

Ta được kết quả:

A: = [3, 4]

B:=[1,2]

11

Hoặc khi dùng lệnh multiply

>multiply(A,B);

11

 Chú ý : Khi nhân và tính tổng cùng một lúc bằng lệnh lượng giá, thì máy sẽ thực hiện theo thứ tự nhân trước rồi cộng trừ sau

3 Tìm vết của ma trận (tổng các phần tử thuộc đường chéo chính):

 Cú pháp: > trace (T) với T là ma trận

Ví dụ:

TÌm vết của ma trận sau:

>A:=matrix(2,2,[1,2,4,a]);

1 2

:

4

A

a

 

 

 

>trace(A);

1+ a

Trang 9

4 Tạo ma trận con từ một ma trận cho trước:

 Cú pháp:

submatrix(A, Rrange, Crange);

submatrix(A,RList,CList);

Trong đó:

+ A là ma trận cho trước,

+Rrange, Crange: Khoảng chỉ số dòng, cột

+Rlist, Clist: Danh sách chỉ số dòng, cột

Ví dụ: Tạo ma trận con P từ ma trận A

>with(linalg);

A:=matrix(2,3,[8,2,5,2,0,3]);

8 2 5

:

2 0 3

 

>P:=submatrix(A,1 2,2 3);

2 5

:

0 3

P  

 

>P:=submatrix(A,[1,2],[1]);

8

:

2

P   

 

5 Trích một dòng, cột của ma trận:

 Cú pháp:

 row(A, i): Trích dòng thứ i của ma trận A

 row(A, i k): Trích từ dòng i đến dòng k của ma trận A

 col(A, i): Trích từ cột thứ i của ma trận A

 col(A, i k): Trích từ cột thứ i đến cột thứ k của ma trận A Trong đó:

- A là ma trận

- i, k là các chỉ số nguyên

Ví dụ:

>A:=matrix(3,3,[2,2,5,9,8,5,2,7,2]);

Trang 10

2 2 5

: 9 8 5

2 7 2

A

 

>u:=row(A,3);

u:=[2, 7, 2]

>v:=row(A,1 3);

v:=[2, 2, 5],[9,8,5],[2,7,2]

6 Hoán vị dòng, cột của một ma trận

 Cú pháp:

swaprow(A, r1, r2): Hoán vị 02 dòng r1 và r2 của ma trận A swapcol(A, c1, c2): Hoán vị 02 cột c1 và c2 của ma trận A

Ví dụ:

>A:=matrix(3,3,[2,2,5,9,8,5,2,7,2]);

2 2 5

: 9 8 5

2 7 2

A

>B:=swaprow(A, 2, 3);

2 7 2

: 9 8 5

2 2 5

B

7 Tìm ma trận chuyển vị:

 Cú pháp: transpose (A);

Ví dụ:

>A:=matrix(3,3,[2,2,5,9,8,5,2,7,2]);

2 2 5

: 9 8 5

2 7 2

A

>B:=transpose(A);

2 9 2

: 2 8 7

5 5 2

B

 

Trang 11

8 Tìm ma trận liên hợp:

 Cú pháp: adjoint(A);

Ví dụ: Tìm ma trận liên hợp của ma trận A

>A:=matrix(2,2,[5,1,2,3]);

5 1

:

2 3

A  

 

>adjoint(A);

3 1

2 5

 

 

 

9 Tìm ma trận đặc trưng:

 Cú pháp: charmat(C, x) Tìm ma trận đặc trưng của ma trận C trình bày kết quả theo biến x

Ví dụ:

>C:=matrix(3,3,[2,2,3,2,3,4,5,0,9]);

2 2 3

: 2 3 4

5 0 9

C

>charmat(C,lambda);

2 2 3

  

    

10 Tìm đa thức đặc trưng của một ma trận:

 Cú pháp: charpoly(C, x) Tìm đa thức đặc trưng của ma trận C trình bày kết quả theo biến x

Ví dụ:

Tìm đa thức đặc trưng của ma trận C ở trên:

>charpoly(C, lambda);

     

11 Biến đổi ma trận về dạng bậc thang:

 Cú pháp:

Trang 12

>rref(A);

Ví dụ:

>with(linalg);

>A:=matrix(3,4,[2,1,3,2,3,5,2,1,1,2,3,5]);

2 1 3 2

3 5 2 1

1 2 3 5

A

>rref(A);

20

1 0 0

9

7

0 1 0

9

17

0 0 1

9

12 Phép khử Gauss-Jordan:

 Cú pháp:

>with(linalg);

>gaussjord(A, r);

Trong đó:

- A là ma trận cần biến đổi

- r cho biết hạng của ma trận

Ví dụ:

>with(linalg);

>A:=matrix(3,4,[2,1,3,2,3,5,2,1,1,2,3,5]);

2 1 3 2

: 3 5 2 1

1 2 3 5

A

>gaussjord(A, r);

Trang 13

1 0 0

9

7

0 1 0

9

17

0 0 1

9

>r;

3

13 Tìm vectơ riêng của ma trận A:

 Cú pháp:

>with(linalg);

>eigenvectors(A);

Ví dụ:

>A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);

1 3 3

: 3 5 3

6 6 4

A

 

  

>v:=[eigenvectors(A)];

v:=

14 Tìm giá trị riêng của ma trận A:

 Cú pháp:

>with(linalg);

>eigenvalues(A);

Ví dụ:

>A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);

1 3 3

: 3 5 3

6 6 4

A

 

  

>e:=eigenvalues(A);

e:=4,-2, 2

Trang 14

15 Tìm hạng của ma trận A:

 Cú pháp:

>With(linalg);

>rank(A);

Ví dụ:

>A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);

1 3 3

: 3 5 3

6 6 4

A

 

  

>rank(A);

3

16 Tính định thức của ma trận A:

 Cú pháp:

>With(linalg);

>det(A);

Ví dụ:

>A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);

1 3 3

: 3 5 3

6 6 4

A

 

  

>det(A);

16

17 Tìm ma trận nghịch đảo của ma trận A:

 Cú pháp:

>with(linalg);

>Inverse(A);

Ví dụ:

>A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);

1 3 3

: 3 5 3

6 6 4

A

 

  

Trang 15

18 Biến đổi ma trận về dạng tam giác:

 Cú pháp:

>with(linalg);

>gausselim(A,r,d);

Trong đó:

- A là ma trận vuông,

- r, d là các tham số cho biết hạng và định thức của A (có hoặc không)

Ví dụ:

>with(linalg);

>A:=matrix(3,3,[1,-3,3,3,-5,3,6,-6,4]);

1 3 3

: 3 5 3

6 6 4

A

  

  

>B:=gausselim(A,’r’,’d’);

>r;

3

>d;

16

III Giải phương trình đại số tuyến tính:

1 Lập hệ phương trình tuyến tính từ các hệ số của ma trận:

 Cú pháp:

Trang 16

>geneqns(A,vars,b);

Trong đó:

- A: là ma trận,

- Vars: Tên các biến của hệ phương trình,

- b: Vectơ phải của hệ

Ví dụ:

>with(linalg);

>A:=matrix(3,3,[3,1,0,3,1,1,1,3,5]);

b:=array([2,9,2]);

3 1 0

: 3 1 1

1 3 5

A

b:= [2, 9, 2]

>geneqns(A,[x,y,z],b);

2 Giải hệ phương trình đại số tuyến tính:

Phương trình đại số tuyến tính có dạng Ax = b có nhiều phương pháp giải khác nhau thông qua các phép biến đổi Cú pháp lệnh trực tiếp giải hệ phương trình đại số tuyến tính là:

>linsolve(A, b);

Trong đó:

+ A: ma trận xác định vế trái của hệ phương trình;

+ b: Vectơ xác định vế phải

Ví dụ: Giải hệ phương trình:

>with(linalg);

>A:=matrix(3,3,[3,1,0,3,1,1,1,3,5]);

b:=array([2,9,2]);

2 5

3

9 3

2 3

z y

x

z y x

y x

Trang 17

3 1 0

: 3 1 1

1 3 5

A

 

b:= [2, 9, 2]

>geneqns(A,[x,y,z],b);

>linsolve(A,b);

Vậy nghiệm của hệ là: x = 39/8; y = -101/8; z = 7

Trang 18

IV Kết luận

Qua những ví dụ trên về ứng dụng của phần mềm Maple đối với việc giải quyết một số vấn đề của đại số tuyến tính, đặc biệt là việc vận dụng phần mềm Maple vào việc giải các hệ phương trình đại số tuyến tính một cách rất hiệu quả như vậy chúng ta thấy được đây là một phần mềm rất tiện ích và thuận tiện cho việc giải toán, vì vậy chúng ta cần sử dụng một cách thuần thục phần mềm này vào việc giải toán không chỉ giải hệ phương trình mà còn nhiều ứng dụng khác nữa Có thể nói đây là một phương tiện rất cần thiết cho mỗi một học sinh và sinh viên

V Tài liệu tham khảo

- http://www.maplesoft.com

- http://www.mediafire.com/?dvqp1r94szor4c9

- Tài liệu ứng dụng chương trình Maple đối với một số vấn đề của đại

số tuyến tính

Ngày đăng: 25/01/2015, 16:54

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w