Hình tam giác của ma trận. Ma trận

1. Cho một ma trận xếp hạng. Hãy để chúng tôi giới thiệu các ký hiệu sau đây cho các tiểu chính liên tiếp của ma trận này:

.

Chúng ta hãy giả sử rằng các điều kiện về tính khả thi của thuật toán Gaussian là:

Chúng ta hãy biểu thị bằng ma trận các hệ số của hệ phương trình (18), trong đó hệ phương trình được rút gọn

Phương pháp khử Gaussian. Ma trận có dạng tam giác trên, các phần tử ở hàng đầu tiên được xác định theo công thức (13) và các phần tử dòng cuối cùng tất cả đều bằng 0:

.

Việc chuyển đổi từ ma trận này sang ma trận khác được thực hiện bằng cách sử dụng một số thao tác nhất định loại tiếp theo: hàng thứ () được thêm vào hàng thứ của ma trận, trước đó được nhân với một số nhất định. Thao tác này tương đương với phép nhân ma trận được biến đổi bên trái với ma trận

. (31)

Trong ma trận này, đường chéo chính chứa số 1 và tất cả các phần tử khác, ngoại trừ phần tử , đều bằng 0.

Như vậy

,

trong đó mỗi ma trận có dạng (31) và do đó là ma trận tam giác dưới với các phần tử đường chéo bằng 1.

. (32)

Ma trận sẽ được gọi là ma trận biến đổi của ma trận trong phương pháp khử Gaussian. Cả hai ma trận và , đều được xác định duy nhất bằng cách chỉ định ma trận . Từ (32) suy ra ma trận tam giác dưới có các phần tử đường chéo bằng 1 (xem trang 28).

Vì là ma trận không suy biến nên từ (33) ta tìm được:

Chúng ta biểu diễn ma trận dưới dạng tích của ma trận tam giác dưới và ma trận tam giác trên. Câu hỏi phân tích thành nhân tử của ma trận loại này được làm rõ hoàn toàn bằng định lý sau:

Định lý 1. Bất kỳ ma trận cấp nào trong đó các mắt con thứ nhất liên tiếp khác 0,

, (34)

có thể được biểu diễn dưới dạng tích của ma trận tam giác dưới và ma trận tam giác trên

. (35)

Các phần tử đường chéo đầu tiên của ma trận và có thể được cho giá trị tùy ý, thỏa mãn điều kiện (36).

Xác định các phần tử đường chéo đầu tiên của ma trận và xác định duy nhất các phần tử thuộc cột đầu tiên của ma trận và r hàng đầu tiên của ma trận. Đối với các phần tử này, áp dụng công thức sau:

, (37)

Trong trường hợp ở cột cuối cùng của ma trận, bạn có thể đặt tất cả các phần tử số không khác nhau, và ở các hàng cuối cùng của ma trận, cho tất cả các phần tử giá trị tùy ý hoặc ngược lại, điền các số 0 vào các hàng cuối cùng của ma trận và lấy các cột cuối cùng của ma trận tùy ý.

Bằng chứng. Khả năng biểu diễn ma trận thỏa mãn điều kiện (34) dưới dạng tích (35) đã được chứng minh ở trên [xem (33")]

Bây giờ đặt và là các ma trận tam giác trên và dưới tùy ý có tích bằng . Áp dụng công thức tính lũy thừa thứ của tích hai ma trận, ta tìm được:

Vì là ma trận tam giác trên nên các cột đầu tiên của ma trận chỉ chứa một phần nhỏ khác 0 cấp thứ . Do đó, đẳng thức (38) có thể được viết như sau:

Hãy đặt nó ở đây trước tiên. Sau đó chúng tôi nhận được:

từ đó quan hệ (36) đã theo sau.

Không vi phạm bất đẳng thức (35), chúng ta có thể nhân ma trận bên phải với một ma trận đường chéo đặc biệt tùy ý, đồng thời nhân ma trận bên trái với . Điều này tương đương với việc nhân các cột của ma trận với nhau và các hàng của ma trận với . Do đó, các phần tử đường chéo , , có thể nhận bất kỳ giá trị nào thỏa mãn điều kiện (36).

,

tức là các công thức đầu tiên (37). Các công thức thứ hai (37) cho các phần tử của ma trận được thiết lập hoàn toàn tương tự.

Chúng ta hãy chú ý đến thực tế là khi nhân các ma trận, cả các phần tử của cột cuối cùng của ma trận và các phần tử của các hàng cuối cùng của ma trận đều được nhân với nhau. Chúng ta đã thấy rằng tất cả các phần tử của các hàng cuối cùng của ma trận đều có thể được chọn bằng 0. Khi đó các phần tử của cột cuối cùng của ma trận có thể được chọn tùy ý. Rõ ràng là tích của ma trận sẽ không thay đổi nếu chúng ta lấy các cột cuối cùng của ma trận bằng 0 và các phần tử ở các hàng cuối cùng của ma trận là tùy ý.

Định lý đã được chứng minh.

Một số hệ quả thú vị rút ra từ định lý đã được chứng minh.

Hệ quả 1. Các phần tử của cột đầu tiên và các hàng đầu tiên của ma trận liên hệ với các phần tử của ma trận bằng quan hệ truy hồi:

(41)

Các mối quan hệ (41) trực tiếp suy ra từ đẳng thức ma trận (35); chúng thuận tiện để sử dụng để tính toán thực tế các phần tử của ma trận và .

Hệ quả 2. Nếu là ma trận không suy biến thỏa mãn điều kiện (34) thì trong biểu diễn (35) các ma trận và được xác định duy nhất ngay khi các phần tử đường chéo của các ma trận này được chọn theo điều kiện (36).

Hệ quả 3. Nếu là ma trận đối xứng bậc và

,

ma trận tam giác dưới trong đó ở đâu

2. Giả sử (35) ma trận có các phần tử ở cột cuối cùng bằng 0. Sau đó, bạn có thể đặt:

, , (43)

đâu là ma trận tam giác trên và dưới; Hơn nữa, các phần tử đường chéo đầu tiên của ma trận đều bằng 1, còn các phần tử ở cột cuối cùng của ma trận và các hàng cuối cùng của ma trận được chọn hoàn toàn tùy ý. Thay thế vào (35) biểu thức (43) và sử dụng đẳng thức (36), chúng ta đi đến định lý sau:

Định lý 2. Bất kỳ ma trận xếp hạng nào mà

,

Chúng ta hãy trình bày nó dưới dạng tích của ma trận tam giác dưới, ma trận đường chéo và ma trận tam giác trên:

(44)

, (45)

a , là tùy ý cho ; .

3. Phương pháp khử Gaussian, được áp dụng cho ma trận xếp hạng mà , cho ta hai ma trận: ma trận tam giác dưới có các phần tử đường chéo bằng 1 và ma trận tam giác trên có các phần tử đường chéo đầu tiên bằng nhau , và các dòng cuối cùng chứa đầy số không. - Dạng Gaussian của ma trận, - ma trận biến đổi.

Để tính toán cụ thể các phần tử ma trận, có thể đề xuất kỹ thuật sau.

Chúng ta sẽ thu được một ma trận nếu áp dụng vào ma trận nhận dạng tất cả các phép biến đổi (được xác định bởi ma trận) mà chúng ta đã thực hiện trên ma trận theo thuật toán Gauss (trong trường hợp này, thay vì tích bằng , chúng ta sẽ có tích bằng ) . Do đó, chúng tôi gán ma trận nhận dạng cho ma trận bên phải:

. (46)

Áp dụng tất cả các phép biến đổi của thuật toán Gaussian cho ma trận chữ nhật này, ta thu được ma trận chữ nhật gồm hai ma trận vuông và:

Như vậy, áp dụng thuật toán Gaussian cho ma trận (46) sẽ cho cả ma trận và ma trận .

Nếu là ma trận không số ít, tức là và . Trong trường hợp này, nó suy ra từ (33). Do các ma trận được xác định bằng thuật toán Gauss nên việc tìm ma trận nghịch đảo được rút gọn thành việc xác định và nhân với ., tức là các cột của ma trận, ma trận trùng với , và ma trận trùng với ma trận, và do đó các công thức ( 53) và (54) có dạng

Ma trận tam giác và phương trình đặc trưng

Ma trận vuông trong đó tất cả các phần tử nằm bên dưới hoặc bên trên đường chéo chính đều bằng 0 được gọi là ma trận tam giác. Ma trận tam giác có thể có cấu trúc trên và dưới. Thượng và hình thức thấp hơn có dạng sau:

, .

Ma trận tam giác có một số tính chất thực tế quan trọng:

1) Định thức của ma trận tam giác tương đương với sản phẩm các phần tử đường chéo của nó:

Do đó, ma trận tam giác chỉ là ma trận không số ít nếu tất cả các phần tử trên đường chéo chính của nó khác 0.

2) Tổng và tích của các ma trận tam giác có cùng cấu trúc cũng là ma trận tam giác có cùng cấu trúc.

3) Ma trận tam giác không đơn biến dễ dàng đảo ngược và ma trận nghịch đảo lại có cấu trúc hình tam giác có cùng cấu trúc.

4) Bất kỳ ma trận không số ít nào cũng có thể được rút gọn thành ma trận tam giác bằng cách sử dụng các phép biến đổi cơ bản chỉ trên các hàng hoặc chỉ trên các cột. Ví dụ, hãy xem xét ma trận Hurwitz được biết đến trong lý thuyết ổn định

.

Để lên đỉnh chế độ xem hình tam giác hãy làm như sau các phép biến đổi cơ bản. Từ mỗi phần tử của dòng thứ hai, trừ đi phần tử của dòng đầu tiên phía trên nó, trước đó đã nhân với . Thay vì một chuỗi có các phần tử, chúng ta có một chuỗi có các phần tử trong đó , , , ... vân vân.

Hãy thực hiện các thao tác tương tự trên các dòng cơ bản còn lại. Sau đó, chúng ta trừ đi mỗi phần tử của hàng thứ ba của ma trận đã biến đổi các phần tử của hàng phía trên nó, nhân với , và lặp lại các thao tác tương tự ở các hàng còn lại. Chúng ta sẽ tiếp tục quá trình theo quy trình này cho đến khi bước thứ m chúng ta không nhận được ma trận tam giác trên

.

Những phép biến đổi như vậy về cơ bản tương đương với việc nhân ma trận bên phải (hoặc bên trái) với một số ma trận phụ khác.

Định thức của ma trận Hurwitz

.

Có một định lý về sự phân hủy của bất kỳ ma trận vuông thành tích của hai hình tam giác. Theo định lý này, bất kỳ ma trận vuông nào cũng có thể được biểu diễn dưới dạng tích của ma trận tam giác dưới và ma trận tam giác trên:

,

với điều kiện là các đường chéo nhỏ của nó khác 0:

, , .

Sự phân rã này là duy nhất nếu chúng ta cố định các phần tử đường chéo của một trong các ma trận tam giác (ví dụ: đặt chúng bằng một). Việc phân rã một ma trận vuông bất kỳ thành tích của hai ma trận tam giác với các phần tử đường chéo quy định được sử dụng rộng rãi trong các phương pháp tính toán khi giải các bài toán bằng máy tính.

Biểu diễn duy nhất của một ma trận dưới dạng tích của hai tam giác có thể được khái quát hóa thành ma trận tế bào. Trong những ma trận như vậy, bản thân các phần tử chính là ma trận. Trong trường hợp này, ma trận có thể được phân tách thành tích của các ma trận gần như tam giác trên và dưới.

Định thức của ma trận gần như tam giác bằng tích các ô đường chéo của nó.

Không giống như ma trận đường chéo, phép nhân ma trận tam giác trong trường hợp chung không giao hoán.

Trong các phương pháp tính toán của lý thuyết điều khiển, không chỉ ma trận tam giác mà cả ma trận gần tam giác cũng đóng một vai trò quan trọng. Nhiều phương pháp sử dụng phân rã ma trận làm tích của hai ma trận, một trong số đó có cấu trúc tam giác. Ma trận A được gọi là ma trận gần tam giác phải (trái) hoặc ma trận Hessenberg nếu các phần tử aij của nó thỏa mãn các quan hệ sau:

Ví dụ, ma trận Hessenberg có kích thước gần như tam giác bên phải (4x4) có dạng

Ghi chú tính năng hữu ích ma trận đang được xem xét, được sử dụng trong các phương pháp tính toán:

a) tổng của các ma trận gần như tam giác có cùng cấu trúc sẽ là ma trận tam giác có cùng cấu trúc nhưng tích thì không;

b) Việc xây dựng một đa thức đặc trưng của các ma trận gần như tam giác là kinh tế vì nó đòi hỏi tính toán ít hơn nhiều so với dạng ma trận tùy ý. Số phép nhân là , bổ sung - ;

c) một ma trận gần như tam giác có thể được phân tách thành tích của hai ma trận tam giác và khi phân tích một trong các ma trận sẽ có nhiều hơn cấu trúc đơn giản, cụ thể là sẽ có hai đường chéo.

Ở hiện đại phương pháp kỹ thuật, được nhúng trong các hệ thống thiết kế có sự hỗ trợ của máy tính, biểu diễn nhân của ma trận, ví dụ, biểu diễn QR, được sử dụng rộng rãi. Bản chất của nó là bất kỳ ma trận vuông A nào cũng có thể được biểu diễn dưới dạng tích của các dạng trực giao và gần như tam giác.

Hoặc , (4.4)

trong đó Q là ma trận trực giao; R - phải (trên cùng) hình tam giác; L là hình tam giác bên trái (dưới) của ma trận.

Biểu diễn (4.4) được gọi là phép phân tách QR (trong trường hợp ma trận tam giác thấp hơn là phép phân tách QL) và là duy nhất cho ma trận A.

Thuật toán QR và QL khác nhau rất ít về cơ bản. Việc sử dụng chúng phụ thuộc vào cách sắp xếp các phần tử ma trận. Nếu chúng tập trung ở góc dưới bên phải thì sử dụng thuật toán QL sẽ hiệu quả hơn. Nếu các phần tử ma trận tập trung ở phần trên bên trái thì sử dụng thuật toán QR sẽ phù hợp hơn. Nếu thực hiện đúng trên máy tính, lỗi làm tròn trong nhiều trường hợp không ảnh hưởng lớn đến độ chính xác của phép tính.

Trong chủ đề này, chúng ta sẽ xem xét khái niệm ma trận cũng như các loại ma trận. Vì có rất nhiều thuật ngữ trong chủ đề này nên tôi sẽ thêm bản tóm tắtđể giúp điều hướng vật liệu dễ dàng hơn.

Định nghĩa ma trận và phần tử của nó. Ký hiệu.

Ma trận là một bảng gồm $m$ hàng và $n$ cột. Các phần tử của ma trận có thể là các đối tượng có bản chất hoàn toàn khác: số, biến hoặc, ví dụ, các ma trận khác. Ví dụ: ma trận $\left(\begin(array) (cc) 5 & 3 \\ 0 & -87 \\ 8 & 0 \end(array) \right)$ chứa 3 hàng và 2 cột; các phần tử của nó là số nguyên. Ma trận $\left(\begin(array) (cccc) a & a^9+2 & 9 & \sin x \\ -9 & 3t^2-4 & u-t & 8\end(array) \right)$ gồm 2 hàng và 4 cột.

Các cách khác nhau để viết ma trận: show\hide

Ma trận có thể được viết không chỉ bằng hình tròn mà còn có thể viết bằng dấu ngoặc vuông hoặc dấu ngoặc thẳng kép. Nghĩa là, các mục bên dưới có cùng một ma trận:

$$ \left(\begin(array) (cc) 5 & 3 \\ 0 & -87 \\ 8 & 0 \end(array) \right);\;\; \left[ \begin(array) (cc) 5 & 3 \\ 0 & -87 \\ 8 & 0 \end(array) \right]; \;\; \left \Vert \begin(array) (cc) 5 & 3 \\ 0 & -87 \\ 8 & 0 \end(array) \right \Vert $$

Tích $m\times n$ được gọi là kích thước ma trận. Ví dụ: nếu một ma trận chứa 5 hàng và 3 cột thì chúng ta gọi là ma trận có kích thước $5\times 3$. Ma trận $\left(\begin(array)(cc) 5 & 3\\0 & -87\\8 & ​​​​0\end(array)\right)$ có kích thước $3 \times 2$.

Thông thường ma trận được ký hiệu bằng chữ in hoa bảng chữ cái Latinh: $A$, $B$, $C$, v.v. Ví dụ: $B=\left(\begin(array) (ccc) 5 & 3 \\ 0 & -87 \\ 8 & 0 \end(array) \right)$. Đánh số dòng đi từ trên xuống dưới; cột - từ trái sang phải. Ví dụ: hàng đầu tiên của ma trận $B$ chứa các phần tử 5 và 3, và cột thứ hai chứa các phần tử 3, -87, 0.

Các phần tử của ma trận thường được ký hiệu bằng chữ nhỏ. Ví dụ: các phần tử của ma trận $A$ được ký hiệu là $a_(ij)$. Chỉ số kép $ij$ chứa thông tin về vị trí của phần tử trong ma trận. Số $i$ là số hàng và số $j$ là số cột, tại giao điểm của số đó là phần tử $a_(ij)$. Ví dụ: tại giao điểm của hàng thứ hai và cột thứ năm của ma trận $A=\left(\begin(array) (cccccc) 51 & 37 & -9 & 0 & 9 & 97 \\ 1 & 2 & 3 & 41 & 59 & 6 \ \ -17 & -15 & -13 & -11 & -8 & -5 \\ 52 & 31 & -4 & -1 & 17 & 90 \end(array) \right)$ phần tử $a_(25)= $59:

Theo cách tương tự, tại giao điểm của hàng đầu tiên và cột đầu tiên, chúng ta có phần tử $a_(11)=51$; tại giao điểm của hàng thứ ba và cột thứ hai - phần tử $a_(32)=-15$, v.v. Lưu ý rằng mục $a_(32)$ đọc là “a ba hai”, nhưng không phải là “a ba mươi hai”.

Để viết tắt ma trận $A$, có kích thước là $m\times n$, ký hiệu $A_(m\times n)$ được sử dụng. Bạn có thể viết nó chi tiết hơn một chút:

$$ A_(m\times n)=(a_(ij)) $$

trong đó ký hiệu $(a_(ij))$ biểu thị các phần tử của ma trận $A$. Ở dạng mở rộng hoàn toàn, ma trận $A_(m\times n)=(a_(ij))$ có thể được viết như sau:

$$ A_(m\times n)=\left(\begin(array)(cccc) a_(11) & a_(12) & \ldots & a_(1n) \\ a_(21) & a_(22) & \ldots & a_(2n) \\ \ldots & \ldots & \ldots & \ldots \\ a_(m1) & a_(m2) & \ldots & a_(mn) \end(array) \right) $$

Hãy giới thiệu một thuật ngữ khác - ma trận bằng nhau.

Hai ma trận có cùng kích thước $A_(m\times n)=(a_(ij))$ và $B_(m\times n)=(b_(ij))$ được gọi bình đẳng, nếu các phần tử tương ứng của chúng bằng nhau, tức là $a_(ij)=b_(ij)$ cho tất cả $i=\overline(1,m)$ và $j=\overline(1,n)$.

Giải thích cho mục nhập $i=\overline(1,m)$: show\hide

Ký hiệu "$i=\overline(1,m)$" có nghĩa là tham số $i$ thay đổi từ 1 đến m. Ví dụ: mục $i=\overline(1,5)$ chỉ ra rằng tham số $i$ lấy các giá trị 1, 2, 3, 4, 5.

Vì vậy, để các ma trận bằng nhau phải thỏa mãn hai điều kiện: sự trùng hợp về kích thước và sự bằng nhau của các phần tử tương ứng. Ví dụ: ma trận $A=\left(\begin(array)(cc) 5 & 3\\0 & -87\\8 & ​​​​0\end(array)\right)$ không bằng ma trận $B=\left(\begin(array)(cc) 8 & -9\\0 & -87 \end(array)\right)$ vì ma trận $A$ có kích thước $3\times 2$ và ma trận $B$ có kích thước $2\nhân $2. Ngoài ra, ma trận $A$ không bằng ma trận $C=\left(\begin(array)(cc) 5 & 3\\98 & -87\\8 & ​​​​0\end(array)\right)$ , vì $a_( 21)\neq c_(21)$ (tức là $0\neq 98$). Nhưng đối với ma trận $F=\left(\begin(array)(cc) 5 & 3\\0 & -87\\8 & ​​​​0\end(array)\right)$ chúng ta có thể viết $A= một cách an toàn F$ vì cả kích thước và phần tử tương ứng của ma trận $A$ và $F$ đều trùng nhau.

Ví dụ số 1

Xác định kích thước của ma trận $A=\left(\begin(array) (ccc) -1 & -2 & 1 \\ 5 & 9 & -8 \\ -6 & 8 & 23 \\ 11 & -12 & -5 \ \4 & 0 & -10 \\ \end(array) \right)$. Cho biết các phần tử $a_(12)$, $a_(33)$, $a_(43)$ bằng nhau.

Ma trận này có 5 hàng và 3 cột nên kích thước của nó là $5\times 3$. Bạn cũng có thể sử dụng ký hiệu $A_(5\times 3)$ cho ma trận này.

Phần tử $a_(12)$ nằm ở giao điểm của hàng đầu tiên và cột thứ hai, do đó $a_(12)=-2$. Phần tử $a_(33)$ nằm ở giao điểm của hàng thứ ba và cột thứ ba, do đó $a_(33)=23$. Phần tử $a_(43)$ nằm ở giao điểm của hàng thứ tư và cột thứ ba, do đó $a_(43)=-5$.

Trả lời: $a_(12)=-2$, $a_(33)=23$, $a_(43)=-5$.

Các loại ma trận tùy thuộc vào kích thước của chúng. Các đường chéo chính và phụ. Dấu vết ma trận.

Cho trước một ma trận $A_(m\times n)$. Nếu $m=1$ (ma trận bao gồm một hàng), thì với ma trận này gọi điện hàng ma trận. Nếu $n=1$ (ma trận gồm một cột), thì ma trận như vậy được gọi cột ma trận. Ví dụ: $\left(\begin(array) (ccccc) -1 & -2 & 0 & -9 & 8 \end(array) \right)$ là một ma trận hàng và $\left(\begin(array ) (c) -1 \\ 5 \\ 6 \end(array) \right)$ là ma trận cột.

Nếu đối với ma trận $A_(m\times n)$ điều kiện $m\neq n$ là đúng (tức là số hàng không bằng số cột), thì người ta thường nói rằng $A$ - ma trận chữ nhật. Ví dụ: ma trận $\left(\begin(array) (cccc) -1 & -2 & 0 & 9 \\ 5 & 9 & 5 & 1 \end(array) \right)$ có kích thước $2\times 4 $, những cái đó. gồm 2 hàng và 4 cột. Vì số hàng không bằng số cột nên ma trận này có dạng hình chữ nhật.

Nếu ma trận $A_(m\times n)$ thỏa mãn điều kiện $m=n$ (tức là số hàng bằng số cột), thì $A$ được gọi là ma trận vuông cấp $ n$. Ví dụ: $\left(\begin(array) (cc) -1 & -2 \\ 5 & 9 \end(array) \right)$ là ma trận vuông bậc hai; $\left(\begin(array) (ccc) -1 & -2 & 9 \\ 5 & 9 & 8 \\ 1 & 0 & 4 \end(array) \right)$ là ma trận vuông bậc ba. TRONG cái nhìn tổng quát ma trận vuông $A_(n\times n)$ có thể được viết như sau:

$$ A_(n\times n)=\left(\begin(array)(cccc) a_(11) & a_(12) & \ldots & a_(1n) \\ a_(21) & a_(22) & \ldots & a_(2n) \\ \ldots & \ldots & \ldots & \ldots \\ a_(n1) & a_(n2) & \ldots & a_(nn) \end(array) \right) $$

Các phần tử $a_(11)$, $a_(22)$, $\ldots$, $a_(nn)$ được gọi là bật đường chéo chính ma trận $A_(n\times n)$. Những phần tử này được gọi là các yếu tố đường chéo chính(hoặc chỉ các phần tử đường chéo). Các phần tử $a_(1n)$, $a_(2 \; n-1)$, $\ldots$, $a_(n1)$ đang bật đường chéo bên (phụ); họ được gọi các yếu tố đường chéo bên. Ví dụ: đối với ma trận $C=\left(\begin(array)(cccc)2&-2&9&1\\5&9&8& 0\\1& 0 & 4 & -7 \\ -4 & -9 & 5 & 6\end( array) \right)$ ta có:

Các phần tử $c_(11)=2$, $c_(22)=9$, $c_(33)=4$, $c_(44)=6$ là các phần tử đường chéo chính; các phần tử $c_(14)=1$, $c_(23)=8$, $c_(32)=0$, $c_(41)=-4$ là các phần tử có đường chéo cạnh.

Tổng các phần tử trên đường chéo chính được gọi là theo sau là ma trận và được ký hiệu là $\Tr A$ (hoặc $\Sp A$):

$$ \Tr A=a_(11)+a_(22)+\ldots+a_(nn) $$

Ví dụ: đối với ma trận $C=\left(\begin(array) (cccc) 2 & -2 & 9 & 1\\5 & 9 & 8 & 0\\1 & 0 & 4 & -7\\- 4 & -9 & 5 & 6 \end(array)\right)$ ta có:

$$ \Tr C=2+9+4+6=21. $$

Khái niệm phần tử đường chéo cũng được sử dụng cho ma trận không vuông. Ví dụ: đối với ma trận $B=\left(\begin(array) (ccccc) 2 & -2 & 9 & 1 & 7 \\ 5 & -9 & 8 & 0 & -6 \\ 1 & 0 & 4 & - 7 & -6 \end(array) \right)$ các phần tử đường chéo chính sẽ là $b_(11)=2$, $b_(22)=-9$, $b_(33)=4$.

Các loại ma trận tùy thuộc vào giá trị của các phần tử của chúng.

Nếu tất cả các phần tử của ma trận $A_(m\times n)$ đều bằng 0 thì ma trận đó được gọi là vô giá trị và thường được ký hiệu bằng chữ $O$. Ví dụ: $\left(\begin(array) (cc) 0 & 0 \\ 0 & 0 \\ 0 & 0 \end(array) \right)$, $\left(\begin(array) (ccc) 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end(array) \right)$ - ma trận bằng 0.

Cho ma trận $A_(m\times n)$ có dạng sau:

Sau đó ma trận này được gọi hình thang. Nó có thể không chứa hàng 0, nhưng nếu chúng tồn tại thì chúng nằm ở cuối ma trận. Ở dạng tổng quát hơn, ma trận hình thang có thể được viết như sau:

Một lần nữa, các dòng null ở cuối là không cần thiết. Những thứ kia. Về mặt hình thức, chúng ta có thể phân biệt các điều kiện sau cho ma trận hình thang:

  1. Tất cả các phần tử bên dưới đường chéo chính đều bằng 0.
  2. Tất cả các phần tử từ $a_(11)$ đến $a_(rr)$ nằm trên đường chéo chính không bằng 0: $a_(11)\neq 0, \; a_(22)\neq 0, \ldots, a_(rr)\neq 0$.
  3. Hoặc tất cả các phần tử của hàng $m-r$ cuối cùng đều bằng 0 hoặc $m=r$ (tức là không có hàng nào bằng 0).

Ví dụ về ma trận hình thang:

Hãy chuyển sang định nghĩa sau. Ma trận $A_(m\times n)$ được gọi bước, nếu nó thỏa mãn các điều kiện sau:


Ví dụ, ma trận bước sẽ là:

Để so sánh, ma trận $\left(\begin(array) (cccc) 2 & -2 & 0 & 1\\0 & 0 & 8 & 7\\0 & 0 & 4 & -7\\0 & 0 & 0 & 0 \end(array)\right)$ không phải là cấp bậc vì hàng thứ ba có phần 0 giống như hàng thứ hai. Tức là nguyên tắc “đường càng thấp thì phần 0 càng lớn” bị vi phạm. Hãy để tôi nói thêm rằng có một ma trận hình thang trường hợp đặc biệt ma trận bước.

Hãy chuyển sang định nghĩa tiếp theo. Nếu tất cả các phần tử của ma trận vuông nằm dưới đường chéo chính đều bằng 0 thì ma trận đó được gọi là ma trận tam giác trên. Ví dụ: $\left(\begin(array) (cccc) 2 & -2 & 9 & 1 \\ 0 & 9 & 8 & 0 \\ 0 & 0 & 4 & -7 \\ 0 & 0 & 0 & 6 \end(array) \right)$ là ma trận tam giác trên. Lưu ý rằng định nghĩa của ma trận tam giác trên không nói lên điều gì về giá trị của các phần tử nằm phía trên đường chéo chính hoặc trên đường chéo chính. Chúng có thể bằng 0 hoặc không - không thành vấn đề. Ví dụ: $\left(\begin(array) (ccc) 0 & 0 & 9 \\ 0 & 0 & 0\\ 0 & 0 & 0 \end(array) \right)$ cũng là một ma trận tam giác trên.

Nếu tất cả các phần tử của ma trận vuông nằm phía trên đường chéo chính đều bằng 0 thì ma trận đó được gọi là ma trận tam giác dưới. Ví dụ: $\left(\begin(array) (cccc) 3 & 0 & 0 & 0 \\ -5 & 1 & 0 & 0 \\ 8 & 2 & 1 & 0 \\ 5 & 4 & 0 & 6 \ end(array) \right)$ - ma trận tam giác dưới. Lưu ý rằng định nghĩa của ma trận tam giác dưới không nói lên điều gì về giá trị của các phần tử nằm dưới hoặc trên đường chéo chính. Chúng có thể bằng 0 hoặc không - không thành vấn đề. Ví dụ: $\left(\begin(array) (ccc) -5 & 0 & 0 \\ 0 & 0 & 0\\ 0 & 0 & 9 \end(array) \right)$ và $\left(\ Begin (array) (ccc) 0 & 0 & 0 \\ 0 & 0 & 0\\ 0 & 0 & 0 \end(array) \right)$ cũng là các ma trận tam giác thấp hơn.

Ma trận vuông được gọi là đường chéo, nếu tất cả các phần tử của ma trận này không nằm trên đường chéo chính đều bằng 0. Ví dụ: $\left(\begin(array) (cccc) 3 & 0 & 0 & 0 \\ 0 & -2 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 6 \ kết thúc(mảng)\right)$. Các phần tử trên đường chéo chính có thể là bất kỳ thứ gì (bằng 0 hoặc không) - không thành vấn đề.

Ma trận đường chéo được gọi là đơn, nếu tất cả các phần tử của ma trận này nằm trên đường chéo chính đều bằng 1. Ví dụ: $\left(\begin(array) (cccc) 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end(array)\right)$ - ma trận nhận dạng bậc bốn; $\left(\begin(array) (cc) 1 & 0 \\ 0 & 1 \end(array)\right)$ là ma trận nhận dạng bậc hai.

Trang 2


Ma trận tam giác là ma trận trong đó tất cả các phần tử ở một bên của đường chéo chính hoặc đường chéo phụ đều bằng 0. Định thức của ma trận tam giác là gì?  

Ma trận tam giác là ma trận trong đó tất cả các phần tử ở một bên của đường chéo chính hoặc đường chéo phụ đều bằng 0. Định thức của ma trận tam giác là gì?  

Hoạt động thực thi đột quỵ về phía trước phương pháp Gauss theo các định lý đại số tuyến tính không làm thay đổi giá trị của định thức. Rõ ràng, định thức của ma trận tam giác bằng tích các phần tử đường chéo của nó.  

Ý tưởng trực quan này trong một số trường hợp chính xác biểu thức định lượng. Ví dụ, chúng ta biết (xem (6) từ § 1) rằng định thức của ma trận tam giác (trên hoặc dưới) bằng tích của các phần tử trên đường chéo chính.  

Ma trận tam giác có nhiều tính chất đáng chú ý, do đó chúng được sử dụng rộng rãi trong việc xây dựng hầu hết nhiều phương pháp khác nhau giải các bài toán đại số. Vậy, ví dụ đối với ma trận vuông, tổng và tích của các ma trận tam giác cùng tên là ma trận tam giác cùng tên, định thức của ma trận tam giác bằng tích các phần tử đường chéo, các giá trị riêng của một ma trận tam giác trùng với các phần tử đường chéo của nó thì ma trận tam giác dễ dàng nghịch đảo và nghịch đảo của nó cũng sẽ là tam giác.  

Trước đó đã ghi nhận rằng vị trí ngay lập tứcđịnh thức đòi hỏi một khối lượng tính toán lớn. Đồng thời, định thức của ma trận tam giác được tính toán dễ dàng: nó bằng tích các phần tử đường chéo của nó.  

Càng có nhiều số 0 trong số các phần tử của ma trận A và chúng càng được định vị tốt thì việc tính định thức det A càng dễ dàng. Cách biểu diễn trực quan này trong một số trường hợp tìm thấy một biểu thức định lượng chính xác. Ví dụ, chúng ta biết (xem (6) từ § 1) rằng định thức của ma trận tam giác (trên hoặc dưới) bằng tích của các phần tử trên đường chéo chính.  

Ví dụ, nhân một định thức với một đại lượng vô hướng tương đương với việc nhân các phần tử của một hàng hoặc cột bất kỳ của ma trận với đại lượng vô hướng đó. Từ phương trình (40) và từ thực tế là việc khai triển có thể áp dụng được cho phần bù đại số Tương tự như đối với định thức, định thức của ma trận tam giác bằng tích các phần tử đường chéo của nó.  

Khả năng này xuất phát từ ba tính chất chính của định thức. Việc thêm bội số của chuỗi này vào chuỗi khác không làm thay đổi định thức. Sắp xếp lại hai hàng làm thay đổi dấu của định thức. Định thức của ma trận tam giác chỉ đơn giản là tích các phần tử đường chéo của nó. DECOMP sử dụng thành phần cuối cùng của vectơ phần tử hàng đầu để đặt giá trị 1 ở đó nếu nó được tạo ra số chẵn hoán vị và giá trị là 1 nếu lẻ. Để thu được định thức, giá trị này phải được nhân với tích của các phần tử đường chéo của ma trận đầu ra.  

Nếu ma trận tam giác trên có n 2 phần tử thì khoảng một nửa trong số chúng bằng 0 và không cần lưu trữ chúng một cách rõ ràng. Cụ thể, nếu ta trừ n phần tử đường chéo khỏi tổng của n 2 phần tử thì một nửa số phần tử còn lại bằng 0. Ví dụ: với n=25 có 300 phần tử có giá trị 0:

(n 2 -n)/2 = (25 2 -25)/2=(625-25)/2 = 300

Tổng hoặc hiệu của hai ma trận tam giác A và B có được bằng cách cộng hoặc trừ các phần tử ma trận tương ứng. Ma trận kết quả là hình tam giác.

Phép cộng C = A + B

Phép trừ C = A - B

trong đó C là ma trận tam giác có các phần tử C i, j = A i, j + B i, j.

Phép nhân C = A * B

Ma trận kết quả C là ma trận tam giác có các phần tử C i, j, các giá trị của chúng được tính từ các phần tử hàng i của ma trận A và cột j của ma trận B:

C i , j =(A i ,0 *B 0, j)+ (A i ,1 *B 1, j)+ (A i ,2 *B 2, j)+…+ (A i , n -1 *B n -1,j)

Đối với ma trận vuông tổng quát, định thức là hàm khó tính nhưng tính định thức của ma trận tam giác thì không khó. Chỉ cần lấy tích của các phần tử trên đường chéo.

Lưu trữ ma trận tam giác

Việc sử dụng mảng hai chiều tiêu chuẩn để lưu trữ ma trận tam giác phía trên yêu cầu sử dụng toàn bộ bộ nhớ có kích thước n 2 , mặc dù các số 0 được dự đoán nằm bên dưới đường chéo. Để loại bỏ không gian này, chúng tôi lưu trữ các phần tử từ ma trận tam giác trong mảng một chiều M. Tất cả các phần tử nằm dưới đường chéo chính không được lưu trữ. Bảng 3.1 cho thấy số phần tử được lưu trữ trong mỗi hàng.

Lưu trữ ma trận tam giác

Bảng 1

Thuật toán lưu trữ yêu cầu hàm truy cập phải xác định vị trí trong mảng M của phần tử A i, j. cho j< i элемент A i , j является равным 0 и не сохраняется в М. Для j ³ i функция доступа использует информацию о числе сохраняемых элементов в каждой строке вплоть до строки i. Эта информация может быть вычислена для каждой строки i и сохранена в массиве (rowTable) для использования функцией доступа.

Ví dụ 4.

Cho rằng các phần tử của ma trận tam giác được lưu theo từng hàng trong mảng M, hàm truy cập cho A i, j sử dụng các tham số sau:

Chỉ số i và j,

mảng bảng hàng

Thuật toán truy cập phần tử A i, j như sau:

Nếu j

Nếu j³i thì thu được giá trị của rowTable[i], là số phần tử được lưu trữ trong mảng M, đối với các phần tử lên đến hàng i. Trong hàng i, phần tử i đầu tiên bằng 0 và không được lưu trong M. Phần tử A i, j được đặt trong M+(j-i)].

Ví dụ 5.

Xét ma trận tam giác X từ Ví dụ 3.4:

1.X 0,2 =M=M=M=0

2.X 1.0 chưa được lưu

3.X 1.2 =M+(2-1)]=M=M=1

Lớp học TriMát

Lớp TriMat thực hiện một số phép toán ma trận tam giác. Phép trừ và phép nhân của ma trận tam giác được dành cho bài tập ở cuối chương. Do hạn chế là chúng ta chỉ được sử dụng mảng tĩnh, lớp của chúng ta giới hạn kích thước hàng và cột ở mức 25. Chúng ta sẽ có 300=(25 2 -25)/2 phần tử 0, vì vậy mảng M phải chứa 325 phần tử.

Đặc điểm kỹ thuật lớp TriMat

THÔNG BÁO

#bao gồm

#bao gồm

// số phần tử và hàng tối đa

// ma trận tam giác trên

const int ELEMENTLIMIT = 325;

const int ROWLIMIT = 25;

// thành viên dữ liệu riêng tư

int rowTable; // chỉ số bắt đầu của chuỗi trong M

int n; // kích thước hàng/cột

đôi M;

// hàm tạo với tham số TriMat(int matsize);

// truy cập các phương thức tới các phần tử ma trận

void PutElement(double item, int i, int j);

nhân đôi GetElement(int i, int j) const;

// các phép toán ma trận

TriMat AddMat(const TriMat& A) const;

gấp đôi DelMat(void) const;

// các thao tác I/O ma trận

void ReadMat(void);

void WriteMat(void) const;

// lấy thứ nguyên ma trận

int GetDimension(void) const;

SỰ MIÊU TẢ

Hàm tạo chấp nhận số hàng và số cột của ma trận. Các phương thức PutElement và GetElement lưu trữ và trả về các phần tử của ma trận tam giác trên. GetElement trả về 0 cho các phần tử nằm dưới đường chéo. AddMat trả về tổng ma trận A với đối tượng hiện tại. Phương pháp này không thay đổi giá trị của ma trận hiện tại. Toán tử I/O ReadMat và WriteMat hoạt động trên tất cả các phần tử của ma trận n x n. Bản thân phương thức ReadMat chỉ lưu trữ các phần tử tam giác phía trên của ma trận.

#include trimat.h // bao gồm lớp TriMat

TriMát A (10), B (10), C (10); // ma trận tam giác 10x10

A.ReadMat(); // nhập ma trận A và B

C = A.AddMat(B); // tính C = A + B

C.WriteMat(); // in C

Triển khai lớp TriMat

Hàm tạo khởi tạo thành viên riêng n bằng tham số matsize. Điều này đặt số lượng hàng và cột của ma trận. Tham số tương tự được sử dụng để khởi tạo mảng rowTable, mảng này được sử dụng để truy cập các phần tử ma trận. Nếu kích thước mat vượt quá ROWLIMIT, một thông báo lỗi sẽ xuất hiện và việc thực thi chương trình bị gián đoạn.

// khởi tạo n và rowTable

TriMat::TriMat (kích thước int)

int được lưu trữElements = 0;

// hủy bỏ chương trình nếu matsize lớn hơn ROWLIMIT

nếu (matsize > ROWLIMIT)

cer<< "Превышен размер матрицы" << ROWLIMIT << "x" << ROWLIMIT << endl;

// đặt bàn

vì (int i = 0; tôi< n; i++)

rowTable[i] = các phần tử được lưu trữ;

phần tử được lưu trữ += n - i;

Phương pháp truy cập ma trận. Chìa khóa khi làm việc với ma trận tam giác là khả năng lưu trữ hiệu quả các phần tử khác 0 trong một mảng tuyến tính. Để đạt được hiệu quả này mà vẫn sử dụng các chỉ mục hai chiều i và j thông thường để truy cập một phần tử ma trận, chúng ta cần các hàm PutElement và GetElement để lưu trữ và trả về các phần tử ma trận trong một mảng.

Phương thức GetDimension cung cấp cho khách hàng quyền truy cập vào kích thước của ma trận. Thông tin này có thể được sử dụng để đảm bảo rằng các trình truy cập được truyền các tham số tương ứng với hàng và cột chính xác:

// trả về kích thước ma trận n

int TriMat::GetDimension(void) const

Phương thức PutElement kiểm tra chỉ mục i và j. Nếu j ³ i, chúng ta lưu trữ giá trị dữ liệu trong M bằng cách sử dụng hàm truy cập ma trận cho ma trận tam giác: Nếu i hoặc j không nằm trong phạm vi 0. . (n-1), thì chương trình kết thúc:

// ghi phần tử ma trận vào mảng M

void TriMat::PutElement (mục kép, int i, int j)

// hủy chương trình nếu chỉ mục của phần tử nằm ngoài

// phạm vi chỉ số

nếu ((tôi< 0 || i >= n) || (j< 0 |1 j >= n))

cer<< "PutElement: индекс вне диапазона 0-"<< n-1 << endl;

// tất cả các phần tử nằm dưới đường chéo đều bị bỏ qua nếu (j >= i)

M + j-i] = hạng mục;

Để truy xuất bất kỳ phần tử nào, phương thức GetElement kiểm tra các chỉ số i và j. Nếu i hoặc j không nằm trong phạm vi 0...(n - 1), chương trình sẽ kết thúc. Nếu j

// lấy phần tử ma trận của mảng M

double TriMat::GetElement(int i, int j) const

// hủy bỏ chương trình nếu các chỉ số nằm ngoài phạm vi chỉ mục

nếu ((tôi< 0 || i >= n) || (j< 0 |I j >= n))

cer<< "GetElement: индекс вне диапазона 0-"<< n-1 << endl;

// trả về phần tử nếu nó nằm trên đường chéo

return M + j-i];

// phần tử là 0 nếu nó nằm dưới đường chéo

Đầu vào/đầu ra của các đối tượng ma trận. Theo truyền thống, đầu vào ma trận bao gồm việc nhập dữ liệu theo hàng với tập hợp đầy đủ các giá trị hàng và cột. Trong đối tượng TriMat, ma trận tam giác phía dưới là null và các giá trị không được lưu trữ trong mảng. Tuy nhiên, người dùng được nhắc nhập các giá trị 0 này để giữ lại đầu vào ma trận bình thường.

// tất cả (n x n) phần tử

void TriMat::ReadMat (void)

vì(i = 0; tôi

vì(j = 0; j

// xuất từng phần tử ma trận ra luồng

void TriMat::WriteMat (void) const

// thiết lập chế độ phát hành

cout. setf (ios::fixed) ;

cout.precision(3);

cout.setf (ios::showpoint) ;

với (i = 0; tôi< n; i++)

với (j = 0; j< n; j++)

cout<< setw(7) << GetElement (i,j);

cout<< endl;

Hoạt động ma trận. Lớp TriMat có các phương thức tính tổng của hai ma trận và định thức của một ma trận. Phương thức AddMat lấy một tham số duy nhất, là toán hạng bên phải trong tổng. Đối tượng hiện tại khớp với toán hạng bên trái. Ví dụ: tổng của ma trận tam giác X và Y sử dụng phương thức AddMat trên đối tượng X. Giả sử tổng được lưu trong đối tượng Z. Để tính

Z = X + Y sử dụng toán tử

Z = X.AddMat(Y) ;

Thuật toán cộng hai đối tượng kiểu TriMat trả về một ma trận B mới có các phần tử B i, j = CurrentObjecty i, j + A i, j:

// trả về tổng của hiện tại và ma trận A.

// Đối tượng hiện tại không thay đổi

TriMat TriMat::AddMat (const TriMat& A) const

mục đôi Hiện tại, mụcA;

Trí Mật B(A.n); // B sẽ chứa số lượng cần thiết

với (i = 0; tôi< n; i++) // цикл по строкам

vì (j = i; j< n; j++) // пропускать элементы ниже диагонали

itemCurrent=GetElement i, j);

itemA = A.GetElement(i, j);

B. PutElement(itemCurrent + itemA, i, j);

Phương thức DetMat trả về định thức của đối tượng hiện tại. Giá trị trả về là một số thực là tích của các phần tử đường chéo. Mã hoàn chỉnh để triển khai lớp TriMat có thể được tìm thấy trong ứng dụng phần mềm.