Định thức ma trận Máy tính

Phân tích theo:
0
0
0
0
Định dạng số
Bình luận giải pháp
Không có mô tả (chỉ hiển thị kết quả)

a

b

c

d

x

y

z

clear

i

Randomize

313131313135151515151583137
2
2510
=Solve

  Cách tìm định thức bằng Montante (Thuật toán Bareiss)

Phương pháp Montante (còn được gọi là Thuật toán Bareiss) là một biến thể bảo tồn số nguyên của khử Gauss. Ở mỗi bước, phần tử trục của lần lặp trước chia chính xác các giá trị mới, giữ mỗi kết quả trung gian là số nguyên. Định thức là phần tử trục cuối cùng.

  Ví dụ Montante (Bareiss) (5×5)

Viết ma trận ban đầu
A
:
A
=
3
1
2
0
1
1
4
1
2
0
2
0
5
1
2
0
2
1
3
1
1
1
0
2
4
Khử ma trận
A
thành dạng bậc thang theo phương pháp Montante (thuật toán Bareiss), và sau đó phần tử cuối cùng trên đường chéo chính sẽ bằng định thức của ma trận
A
;
1)
Dòng chứa phần tử trục quay được ghi lại trong ma trận tiếp theo mà không thay đổi;
2)
Viết 0 vào tất cả các phần tử của cột chứa phần tử trục quay, ngoại trừ chính phần tử trục quay;
3)
Để tìm các phần tử chưa biết, hãy sử dụng công thức sau:
a
(k+1)
i,j
=
a
(k)
i,j
·
p
0
k+1
a
(k)
k+1,j
·
a
(k)
i,k+1
p
0
k
// trong đó
a
a là một phần tử của ma trận A;
p
p là phần tử trục quay hiện tại;
2
Lặp lại lần 1
A0
=
3
1
2
0
1
1
4
1
2
0
2
0
5
1
2
0
2
1
3
1
1
1
0
2
4
Trong lần lặp đầu tiên, phần tử trục quay trước đó luôn bằng 1:
p0
=
1
;
Phần tử trục quay hiện tại bằng phần tử của ma trận trước đó (
A0
) với các chỉ số
1
,
1
:
p1
=
a0
0
1,1
=
3
;
Tính toán ma trận tiếp theo (
A1
) dựa trên ma trận trước đó (
A0
);
Dòng chứa phần tử trục quay được ghi lại trong ma trận tiếp theo mà không thay đổi;
Viết 0 vào tất cả các phần tử của cột chứa phần tử trục quay, ngoại trừ chính phần tử trục quay;
Viết ma trận ban đầu
A1
và đánh dấu các phần tử cần tìm làm chưa biết:
A1
=
3
0
0
0
0
1
x
x
x
x
2
x
x
x
x
0
x
x
x
x
1
x
x
x
x
Để tìm các phần tử chưa biết, hãy sử dụng công thức sau:
a1
0
i,j
=
a0
0
i,j
*
p1
-
a0
0
1,j
*
a0
0
i,1
p0
;
Trong đó:
p0
là phần tử trục quay trước đó;
p1
là phần tử trục quay hiện tại;
a0
là phần tử của ma trận trước đó, được tính toán trong lần lặp trước;
a1
là phần tử của ma trận tiếp theo, được tính toán trong lần lặp hiện tại;
i
là số hàng;
j
là số cột;
Ɐ(
i, j
)
∈ {2, 3, 4, 5} × {2, 3, 4, 5}
A1
=
3
0
0
0
0
1
11
1
6
-1
2
-2
11
3
4
0
6
3
9
3
1
2
-2
6
11
a1
0
2,2
=
a0
0
2,2
*
p1
-
a0
0
1,2
*
a0
0
2,1
p0
=
4
*
3
-
1
*
1
1
=
11
;
a1
0
2,3
=
a0
0
2,3
*
p1
-
a0
0
1,3
*
a0
0
2,1
p0
=
0
*
3
-
2
*
1
1
=
-2
;
a1
0
2,4
=
a0
0
2,4
*
p1
-
a0
0
1,4
*
a0
0
2,1
p0
=
2
*
3
-
0
*
1
1
=
6
;
a1
0
2,5
=
a0
0
2,5
*
p1
-
a0
0
1,5
*
a0
0
2,1
p0
=
1
*
3
-
1
*
1
1
=
2
;
a1
0
3,2
=
a0
0
3,2
*
p1
-
a0
0
1,2
*
a0
0
3,1
p0
=
1
*
3
-
1
*
2
1
=
1
;
a1
0
3,3
=
a0
0
3,3
*
p1
-
a0
0
1,3
*
a0
0
3,1
p0
=
5
*
3
-
2
*
2
1
=
11
;
a1
0
3,4
=
a0
0
3,4
*
p1
-
a0
0
1,4
*
a0
0
3,1
p0
=
1
*
3
-
0
*
2
1
=
3
;
a1
0
3,5
=
a0
0
3,5
*
p1
-
a0
0
1,5
*
a0
0
3,1
p0
=
0
*
3
-
1
*
2
1
=
-2
;
a1
0
4,2
=
a0
0
4,2
*
p1
-
a0
0
1,2
*
a0
0
4,1
p0
=
2
*
3
-
1
*
0
1
=
6
;
a1
0
4,3
=
a0
0
4,3
*
p1
-
a0
0
1,3
*
a0
0
4,1
p0
=
1
*
3
-
2
*
0
1
=
3
;
a1
0
4,4
=
a0
0
4,4
*
p1
-
a0
0
1,4
*
a0
0
4,1
p0
=
3
*
3
-
0
*
0
1
=
9
;
a1
0
4,5
=
a0
0
4,5
*
p1
-
a0
0
1,5
*
a0
0
4,1
p0
=
2
*
3
-
1
*
0
1
=
6
;
a1
0
5,2
=
a0
0
5,2
*
p1
-
a0
0
1,2
*
a0
0
5,1
p0
=
0
*
3
-
1
*
1
1
=
-1
;
a1
0
5,3
=
a0
0
5,3
*
p1
-
a0
0
1,3
*
a0
0
5,1
p0
=
2
*
3
-
2
*
1
1
=
4
;
a1
0
5,4
=
a0
0
5,4
*
p1
-
a0
0
1,4
*
a0
0
5,1
p0
=
1
*
3
-
0
*
1
1
=
3
;
a1
0
5,5
=
a0
0
5,5
*
p1
-
a0
0
1,5
*
a0
0
5,1
p0
=
4
*
3
-
1
*
1
1
=
11
;
Ẩn mô tả
3
Lặp lại lần 2
Phần tử trục quay hiện tại bằng phần tử của ma trận trước đó (
A1
) với các chỉ số
2
,
2
:
p2
=
a1
0
2,2
=
11
;
Tính toán ma trận tiếp theo (
A2
) dựa trên ma trận trước đó (
A1
);
Dòng chứa phần tử trục quay được ghi lại trong ma trận tiếp theo mà không thay đổi;
Viết 0 vào tất cả các phần tử của cột chứa phần tử trục quay, ngoại trừ chính phần tử trục quay;
Thay thế tất cả các phần tử trục quay trước đó bằng
p2
;
Viết ma trận ban đầu
A2
và đánh dấu các phần tử cần tìm làm chưa biết:
A2
=
11
0
0
0
0
0
11
0
0
0
x
-2
x
x
x
x
6
x
x
x
x
2
x
x
x
Để tìm các phần tử chưa biết, hãy sử dụng công thức sau:
a2
0
i,j
=
a1
0
i,j
*
p2
-
a1
0
2,j
*
a1
0
i,2
p1
;
Trong đó:
p1
là phần tử trục quay trước đó;
p2
là phần tử trục quay hiện tại;
a1
là phần tử của ma trận trước đó, được tính toán trong lần lặp trước;
a2
là phần tử của ma trận tiếp theo, được tính toán trong lần lặp hiện tại;
i
là số hàng;
j
là số cột;
Ɐ(
i, j
)
∈ {1, 3, 4, 5} × {3, 4, 5}
A2
=
11
0
0
0
0
0
11
0
0
0
8
-2
41
15
14
-2
6
9
21
13
3
2
-8
18
41
a2
0
1,3
=
a1
0
1,3
*
p2
-
a1
0
2,3
*
a1
0
1,2
p1
=
2
*
11
-
-2
*
1
3
=
8
;
a2
0
1,4
=
a1
0
1,4
*
p2
-
a1
0
2,4
*
a1
0
1,2
p1
=
0
*
11
-
6
*
1
3
=
-2
;
a2
0
1,5
=
a1
0
1,5
*
p2
-
a1
0
2,5
*
a1
0
1,2
p1
=
1
*
11
-
2
*
1
3
=
3
;
a2
0
3,3
=
a1
0
3,3
*
p2
-
a1
0
2,3
*
a1
0
3,2
p1
=
11
*
11
-
-2
*
1
3
=
41
;
a2
0
3,4
=
a1
0
3,4
*
p2
-
a1
0
2,4
*
a1
0
3,2
p1
=
3
*
11
-
6
*
1
3
=
9
;
a2
0
3,5
=
a1
0
3,5
*
p2
-
a1
0
2,5
*
a1
0
3,2
p1
=
-2
*
11
-
2
*
1
3
=
-8
;
a2
0
4,3
=
a1
0
4,3
*
p2
-
a1
0
2,3
*
a1
0
4,2
p1
=
3
*
11
-
-2
*
6
3
=
15
;
a2
0
4,4
=
a1
0
4,4
*
p2
-
a1
0
2,4
*
a1
0
4,2
p1
=
9
*
11
-
6
*
6
3
=
21
;
a2
0
4,5
=
a1
0
4,5
*
p2
-
a1
0
2,5
*
a1
0
4,2
p1
=
6
*
11
-
2
*
6
3
=
18
;
a2
0
5,3
=
a1
0
5,3
*
p2
-
a1
0
2,3
*
a1
0
5,2
p1
=
4
*
11
-
-2
*
-1
3
=
14
;
a2
0
5,4
=
a1
0
5,4
*
p2
-
a1
0
2,4
*
a1
0
5,2
p1
=
3
*
11
-
6
*
-1
3
=
13
;
a2
0
5,5
=
a1
0
5,5
*
p2
-
a1
0
2,5
*
a1
0
5,2
p1
=
11
*
11
-
2
*
-1
3
=
41
;
Ẩn mô tả
4
Lặp lại lần 3
Phần tử trục quay hiện tại bằng phần tử của ma trận trước đó (
A2
) với các chỉ số
3
,
3
:
p3
=
a2
0
3,3
=
41
;
Tính toán ma trận tiếp theo (
A3
) dựa trên ma trận trước đó (
A2
);
Dòng chứa phần tử trục quay được ghi lại trong ma trận tiếp theo mà không thay đổi;
Viết 0 vào tất cả các phần tử của cột chứa phần tử trục quay, ngoại trừ chính phần tử trục quay;
Thay thế tất cả các phần tử trục quay trước đó bằng
p3
;
Viết ma trận ban đầu
A3
và đánh dấu các phần tử cần tìm làm chưa biết:
A3
=
41
0
0
0
0
0
41
0
0
0
0
0
41
0
0
x
x
9
x
x
x
x
-8
x
x
Để tìm các phần tử chưa biết, hãy sử dụng công thức sau:
a3
0
i,j
=
a2
0
i,j
*
p3
-
a2
0
3,j
*
a2
0
i,3
p2
;
Trong đó:
p2
là phần tử trục quay trước đó;
p3
là phần tử trục quay hiện tại;
a2
là phần tử của ma trận trước đó, được tính toán trong lần lặp trước;
a3
là phần tử của ma trận tiếp theo, được tính toán trong lần lặp hiện tại;
i
là số hàng;
j
là số cột;
Ɐ(
i, j
)
∈ {1, 2, 4, 5} × {4, 5}
A3
=
41
0
0
0
0
0
41
0
0
0
0
0
41
0
0
-14
24
9
66
37
17
6
-8
78
163
a3
0
1,4
=
a2
0
1,4
*
p3
-
a2
0
3,4
*
a2
0
1,3
p2
=
-2
*
41
-
9
*
8
11
=
-14
;
a3
0
1,5
=
a2
0
1,5
*
p3
-
a2
0
3,5
*
a2
0
1,3
p2
=
3
*
41
-
-8
*
8
11
=
17
;
a3
0
2,4
=
a2
0
2,4
*
p3
-
a2
0
3,4
*
a2
0
2,3
p2
=
6
*
41
-
9
*
-2
11
=
24
;
a3
0
2,5
=
a2
0
2,5
*
p3
-
a2
0
3,5
*
a2
0
2,3
p2
=
2
*
41
-
-8
*
-2
11
=
6
;
a3
0
4,4
=
a2
0
4,4
*
p3
-
a2
0
3,4
*
a2
0
4,3
p2
=
21
*
41
-
9
*
15
11
=
66
;
a3
0
4,5
=
a2
0
4,5
*
p3
-
a2
0
3,5
*
a2
0
4,3
p2
=
18
*
41
-
-8
*
15
11
=
78
;
a3
0
5,4
=
a2
0
5,4
*
p3
-
a2
0
3,4
*
a2
0
5,3
p2
=
13
*
41
-
9
*
14
11
=
37
;
a3
0
5,5
=
a2
0
5,5
*
p3
-
a2
0
3,5
*
a2
0
5,3
p2
=
41
*
41
-
-8
*
14
11
=
163
;
Ẩn mô tả
5
Lặp lại lần 4
Phần tử trục quay hiện tại bằng phần tử của ma trận trước đó (
A3
) với các chỉ số
4
,
4
:
p4
=
a3
0
4,4
=
66
;
Tính toán ma trận tiếp theo (
A4
) dựa trên ma trận trước đó (
A3
);
Dòng chứa phần tử trục quay được ghi lại trong ma trận tiếp theo mà không thay đổi;
Viết 0 vào tất cả các phần tử của cột chứa phần tử trục quay, ngoại trừ chính phần tử trục quay;
Thay thế tất cả các phần tử trục quay trước đó bằng
p4
;
Viết ma trận ban đầu
A4
và đánh dấu các phần tử cần tìm làm chưa biết:
A4
=
66
0
0
0
0
0
66
0
0
0
0
0
66
0
0
0
0
0
66
0
x
x
x
78
x
Để tìm các phần tử chưa biết, hãy sử dụng công thức sau:
a4
0
i,j
=
a3
0
i,j
*
p4
-
a3
0
4,j
*
a3
0
i,4
p3
;
Trong đó:
p3
là phần tử trục quay trước đó;
p4
là phần tử trục quay hiện tại;
a3
là phần tử của ma trận trước đó, được tính toán trong lần lặp trước;
a4
là phần tử của ma trận tiếp theo, được tính toán trong lần lặp hiện tại;
i
là số hàng;
j
là số cột;
Ɐ(
i, j
)
∈ {1, 2, 3, 5} × {5}
A4
=
66
0
0
0
0
0
66
0
0
0
0
0
66
0
0
0
0
0
66
0
54
-36
-30
78
192
a4
0
1,5
=
a3
0
1,5
*
p4
-
a3
0
4,5
*
a3
0
1,4
p3
=
17
*
66
-
78
*
-14
41
=
54
;
a4
0
2,5
=
a3
0
2,5
*
p4
-
a3
0
4,5
*
a3
0
2,4
p3
=
6
*
66
-
78
*
24
41
=
-36
;
a4
0
3,5
=
a3
0
3,5
*
p4
-
a3
0
4,5
*
a3
0
3,4
p3
=
-8
*
66
-
78
*
9
41
=
-30
;
a4
0
5,5
=
a3
0
5,5
*
p4
-
a3
0
4,5
*
a3
0
5,4
p3
=
163
*
66
-
78
*
37
41
=
192
;
Ẩn mô tả
6
Lặp lại lần 5
Phần tử trục quay hiện tại bằng phần tử của ma trận trước đó (
A4
) với các chỉ số
5
,
5
:
p5
=
a4
0
5,5
=
192
;
Tính toán ma trận tiếp theo (
A5
) dựa trên ma trận trước đó (
A4
);
Dòng chứa phần tử trục quay được ghi lại trong ma trận tiếp theo mà không thay đổi;
Viết 0 vào tất cả các phần tử của cột chứa phần tử trục quay, ngoại trừ chính phần tử trục quay;
Thay thế tất cả các phần tử trục quay trước đó bằng
p5
;
Viết ma trận ban đầu
A5
và đánh dấu các phần tử cần tìm làm chưa biết:
A5
=
192
0
0
0
0
0
192
0
0
0
0
0
192
0
0
0
0
0
192
0
0
0
0
0
192
Như chúng ta có thể thấy, không có phần tử chưa biết, điều đó có nghĩa là việc tính toán ma trận
A5
đã hoàn thành.
7
Định thức ma trận
det(
A
) =
A3
0
5,5
=
192
;
Answer
det(A)
det(
A
) =
192
;
Kích thước5×5Phương phápMontante (thuật toán Bareiss)

  Nguồn