Thông tin và dữ liệu lưu trữ trên kiến trúc tính toán có dạng ma trận. Vì vậy, phía sau hầu hết các tác vụ khoa học, máy học và tính toán là các ma trận với kích thước khác nhau.
Ma trận là những đối tượng toán học nền tảng trong đại số tuyến tính. Bản thân ma trận có một số thuộc tính như kích thước, độ thưa, trị riêng và định thức.
Định thức là một thuộc tính cơ bản của ma trận vuông, đóng vai trò trực tiếp và gián tiếp quan trọng trong các phép toán ma trận như tính khả nghịch, giải hệ phương trình tuyến tính trong kỹ thuật, và các phép biến đổi trong hình học cũng như đồ họa máy tính.
Trong bài viết này, bạn sẽ tìm hiểu về định thức của ma trận vuông, các ứng dụng của nó và một số phương pháp tính bằng tay cũng như với các chương trình Python và R.
Định thức là gì?
Định thức là một hàm ánh xạ ma trận vuông sang một số thực (một giá trị). Trong toán học, định thức của ma trận vuông A được ký hiệu là det(A) hoặc |A|.
Giống như chính toán học, định thức có lịch sử lâu đời bắt nguồn từ các nhà toán học Trung Quốc. Ở Trung Quốc cổ đại, các nhà toán học dùng định thức để giải hệ phương trình tuyến tính (phương pháp của họ giờ đây được gọi là Quy tắc Cramer). Sau này ở châu Âu thế kỷ 16, nhà toán học Cardano đã đưa định thức lên tiền tuyến bằng cách áp dụng chúng vào việc giải hệ phương trình tuyến tính. Tiếp đó, Takakazu (thế kỷ 17), Leibniz (thế kỷ 17), Vandermonde và Cauchy (thế kỷ 18) đã xây dựng nền tảng lý thuyết của định thức trong toán học thuần túy.
Các tính chất của định thức
Mặc dù định thức cần được tính riêng cho mỗi ma trận vuông, chúng có một số tính chất đã biết nói chung và cho một số ma trận cụ thể. Ngoài ra, khi chịu các phép toán toán học nhất định, định thức cũng bộc lộ một số quy luật và tính chất. Một số tính chất quen thuộc của định thức như sau:
Định thức của ma trận đơn vị vuông bằng 1
Ma trận đơn vị có các giá trị 1 trên đường chéo chính và 0 ở các vị trí còn lại.
Hoán đổi hai hàng hoặc hai cột sẽ làm đổi dấu định thức
Chẳng hạn, với ma trận sau, định thức là:
Nếu hoán đổi các hàng, kết quả sẽ đổi dấu.
Định thức của ma trận tam giác bằng tích các phần tử trên đường chéo
Nếu ma trận là tam giác dưới hoặc tam giác trên, để tính định thức, ta chỉ cần nhân các giá trị trên đường chéo chính. Ví dụ, với ma trận vuông tam giác trên sau, định thức được tính bằng cách nhân các giá trị trên đường chéo:
Ta chỉ cần nhân các phần tử đường chéo để tính định thức: det(U)=2×4×6=48
Định thức bất biến theo phép đồng dạng ma trận
Hai ma trận được gọi là đồng dạng nếu chúng xuất phát từ cùng một phép biến đổi tuyến tính nhưng có các cơ sở khác nhau. Nếu hai ma trận đồng dạng, chúng có cùng định thức (và cùng trị riêng, vết, cùng đa thức đặc trưng).
Định thức của tích ma trận bằng tích các định thức của từng ma trận
Ví dụ, định thức riêng lẻ của các ma trận A và B được thể hiện ở đây:
Định thức bất biến khi chuyển vị
Ví dụ, định thức của ma trận A và AT là như nhau (-9).
Các phương pháp tính định thức
Có nhiều phương pháp để tính định thức của một ma trận vuông, như công thức Leibniz, khai triển Laplace và khử Gauss. Việc lựa chọn phương pháp phụ thuộc vào kích thước ma trận và chi phí tính toán. Chúng tôi mô tả một số phương pháp dưới đây:
Công thức Leibniz
Công thức Leibniz để tìm định thức của ma trận vuông phù hợp nhất cho các ma trận nhỏ, đặc biệt khi tính toán thực hiện toàn bộ hoặc một phần bằng tay. Công thức Leibniz để tìm định thức của một ma trận như sau:
Với Sn là tập hợp tất cả các hoán vị của các số 1,2,…,n và sgn(σ) là dấu của hoán vị, bằng +1 nếu hoán vị chẵn và −1 nếu hoán vị lẻ. Hạng tử ai,σ là một phần tử của ma trận A.
Khai triển Laplace
Khai triển Laplace lý tưởng cho các ma trận lớn hơn. Trong khai triển Laplace hay khai triển đồng phức, một ma trận lớn được chia thành các ma trận nhỏ hơn. Sau đó, một sơ đồ liên quan đến định thức (phần phụ) của ma trận nhỏ và đồng phức của nó được thiết lập và lặp theo các hàng hoặc các cột.
Khử Gauss
Bởi vì định thức của ma trận tam giác là tích các phần tử đường chéo, việc đưa ma trận về dạng đường chéo giúp tính định thức hiệu quả hơn. Trong khử Gauss, một loạt phép biến đổi hàng được thực hiện để đưa ma trận đầy đủ về dạng bậc thang hàng hoặc tam giác trên. Khi đó, định thức được tính bằng cách nhân các phần tử đường chéo.
Cách tìm định thức cho các ma trận kích thước khác nhau
Trong các ví dụ sau, chúng ta áp dụng từng phương pháp vừa nêu cho các ma trận có kích thước khác nhau để tìm định thức.
Cách tìm định thức cho ma trận 2x2
Định thức của ma trận vuông 2x2 là dễ nhớ và dễ tính nhất. Nếu ký hiệu ma trận 2x2 A là:
Khi đó det(A) = (a x d) - (b x c). Ví dụ, với ma trận B dưới đây:
Cách tìm định thức cho ma trận 3x3
Mặc dù có công thức tính cho ma trận vuông 3x3, vì mục đích sư phạm, chúng tôi minh họa khai triển Laplace (đồng phức) trong ví dụ này. Chúng ta sẽ tính định thức của ma trận A dưới đây:
Cách tìm định thức cho ma trận 4x4
Giờ chúng ta tận dụng cơ hội để trình bày phương pháp khử Gauss nhằm tính định thức của ma trận 4 x 4 A dưới đây:
Chúng ta sẽ biến đổi ma trận này thành ma trận tam giác trên bằng cách thực hiện các phép biến đổi hàng.
Ta được,
Thêm một phép biến đổi hàng nữa:
Ta được,
Và định thức là tích của các phần tử đường chéo:
Ý nghĩa hình học và đại số
Như đã định nghĩa ở trên, định thức là một hàm ánh xạ ma trận vuông sang một số thực.
Trong hình học, một hình vuông có hai cạnh, tích của chúng là diện tích bề mặt. Và nếu có ba cạnh, ta được thể tích. Giá trị tuyệt đối của định thức ma trận 2 x 2 có thể được hiểu là diện tích hình bình hành được tạo bởi hai cột của ma trận (như các vectơ có hướng), và định thức có dấu của ma trận 3 x 3 có thể được hiểu là thể tích của khối hình hộp xiên (khối rắn ba chiều).
Trong các phép biến đổi đồ họa, như kéo giãn hay co rút một ảnh, định thức của ảnh sau biến đổi cho biết diện tích của ảnh gốc (ma trận) có thay đổi hay không (nguyên lý Cavalieri) sau biến đổi, trong khi các trị riêng cho biết ảnh đã giãn ra hay co lại có kèm thay đổi diện tích hay không.
Định thức cũng có thể cho biết các cột hoặc hàng của một ma trận có là tổ hợp tuyến tính của nhau (dư thừa) hay chúng độc lập tuyến tính, mỗi cột mang thông tin riêng. Nếu định thức của một ma trận khác 0, ta kết luận rằng các cột hoặc hàng của ma trận độc lập tuyến tính. Nếu định thức bằng 0, điều đó cho thấy các cột (hoặc hàng) của ma trận phụ thuộc tuyến tính.
Cuối cùng, định thức cũng được dùng để xây dựng đa thức đặc trưng nhằm tính trị riêng.
Định thức trong Python và R
Mặc dù tính định thức bằng tay là một trải nghiệm học tập quý giá giúp mài giũa kỹ năng và phát triển tư duy toán học, cuối cùng các ràng buộc về thời gian và công sức có thể khiến chúng ta dùng máy tính cầm tay hoặc ngôn ngữ lập trình như Python hay R. Cả Python và R đều cung cấp thư viện, hàm hoặc phương thức để tính định thức của ma trận. Trong các đoạn mã sau, chúng tôi minh họa cách tính định thức của một ma trận bằng Python và R.
Ví dụ Python
Hai gói Python phổ biến để tính định thức của ma trận là Numpy và Sympy (Symbolic Python). Trong đoạn mã dưới đây, chúng tôi cho thấy cách tính định thức bằng thư viện Numpy và Sympy trong Python.
# Computing determinant using Numpyimport numpy as np
matrix = np.array([[1,2],[3,4]])
determinant = np.linalg.det(matrix)print("Determinant:", determinant)# Computing determinant using Sympy# Import the necessary libraryimport sympy as sp
matrix = sp.Matrix([[1,2],[3,4]])
determinant = matrix.det()print("Determinant:", determinant)Được hỗ trợ bởi
Ví dụ R
Tính định thức của một ma trận trong R không cần nạp thêm thư viện. R cơ bản cung cấp sẵn một hàm để tính định thức của ma trận, như thể hiện trong đoạn mã R sau:
Định thức có thể được dùng trực tiếp để giải hệ phương trình tuyến tính bằng Quy tắc Cramer. Theo Quy tắc Cramer, trước tiên ta lập ma trận gồm các hệ số của ẩn trong hệ phương trình và tính định thức của nó. Tiếp theo, với mỗi ẩn, ta tạo một ma trận và tính định thức của ma trận đó. Tỷ số giữa định thức ma trận mới và ma trận ban đầu sẽ là giá trị của ẩn số tương ứng.
Phương trình vi phân
Một phương trình vi phân có thể có nhiều nghiệm (hàm). Để đảm bảo các nghiệm độc lập tuyến tính (duy nhất), ta tính định thức của tập hợp các nghiệm hàm, gọi là Wronskian. Wronskian khác 0 cho biết các hàm/nghiệm độc lập tuyến tính trên khoảng đã cho.
Hình học
Trong hình học, định thức của ma trận 2 x 2 có thể được hiểu là diện tích hình bình hành, và định thức của ma trận 3 x 3 có thể được hiểu là thể tích của một khối rắn (hình hộp xiên). Định thức trong ánh xạ hàm nhiều biến có thể giúp chúng ta hiểu liệu ánh xạ có làm thay đổi diện tích hay thể tích của các hàm hay không thông qua định thức của ma trận Jacobian.
Những điểm chính cần ghi nhớ
Định thức đóng vai trò gián tiếp hơn trong học máy, thống kê và tính toán khoa học. Tuy vậy, hiểu được cách hệ phương trình tuyến tính, phép nghịch đảo ma trận, đồ họa máy tính và phương trình vi phân sử dụng định thức trong quá trình có thể làm sáng tỏ ý nghĩa tinh tế của chúng và lý do cần nắm vững định thức. Lần tới khi bạn gặp lỗi ma trận không khả nghịch, có lẽ bạn sẽ nghĩ đến vai trò của định thức trong hình dạng và tính độc lập tuyến tính của ma trận.
Kết luận
Hy vọng bạn đã thấy được tầm quan trọng của định thức trong việc hiểu hành vi và các phép biến đổi của ma trận. Khóa học Đại số tuyến tính cho Khoa học Dữ liệu bằng R của chúng tôi là bước tiếp theo tuyệt vời để tiếp tục học các kỹ thuật đại số tuyến tính và áp dụng chúng vào quy trình làm việc khoa học dữ liệu.
Tôi được đào tạo bài bản về toán học và thống kê. Tôi có nhiều kinh nghiệm trong mô hình thống kê và các ứng dụng học máy. Ngoài ra, tôi nghiên cứu về toán học của ML.
Thông tin và dữ liệu lưu trữ trên kiến trúc tính toán có dạng ma trận. Vì vậy, phía sau hầu hết các tác vụ khoa học, máy học và tính toán là các ma trận với kích thước khác nhau.
Ma trận là những đối tượng toán học nền tảng trong đại số tuyến tính. Bản thân ma trận có một số thuộc tính như kích thước, độ thưa, trị riêng và định thức.
Định thức là một thuộc tính cơ bản của ma trận vuông, đóng vai trò trực tiếp và gián tiếp quan trọng trong các phép toán ma trận như tính khả nghịch, giải hệ phương trình tuyến tính trong kỹ thuật, và các phép biến đổi trong hình học cũng như đồ họa máy tính.
Trong bài viết này, bạn sẽ tìm hiểu về định thức của ma trận vuông, các ứng dụng của nó và một số phương pháp tính bằng tay cũng như với các chương trình Python và R.
Định thức là gì?
Định thức là một hàm ánh xạ ma trận vuông sang một số thực (một giá trị). Trong toán học, định thức của ma trận vuông A được ký hiệu là det(A) hoặc |A|.
Giống như chính toán học, định thức có lịch sử lâu đời bắt nguồn từ các nhà toán học Trung Quốc. Ở Trung Quốc cổ đại, các nhà toán học dùng định thức để giải hệ phương trình tuyến tính (phương pháp của họ giờ đây được gọi là Quy tắc Cramer). Sau này ở châu Âu thế kỷ 16, nhà toán học Cardano đã đưa định thức lên tiền tuyến bằng cách áp dụng chúng vào việc giải hệ phương trình tuyến tính. Tiếp đó, Takakazu (thế kỷ 17), Leibniz (thế kỷ 17), Vandermonde và Cauchy (thế kỷ 18) đã xây dựng nền tảng lý thuyết của định thức trong toán học thuần túy.
Các tính chất của định thức
Mặc dù định thức cần được tính riêng cho mỗi ma trận vuông, chúng có một số tính chất đã biết nói chung và cho một số ma trận cụ thể. Ngoài ra, khi chịu các phép toán toán học nhất định, định thức cũng bộc lộ một số quy luật và tính chất. Một số tính chất quen thuộc của định thức như sau:
Định thức của ma trận đơn vị vuông bằng 1
Ma trận đơn vị có các giá trị 1 trên đường chéo chính và 0 ở các vị trí còn lại.
Hoán đổi hai hàng hoặc hai cột sẽ làm đổi dấu định thức
Chẳng hạn, với ma trận sau, định thức là:
Nếu hoán đổi các hàng, kết quả sẽ đổi dấu.
Định thức của ma trận tam giác bằng tích các phần tử trên đường chéo
Nếu ma trận là tam giác dưới hoặc tam giác trên, để tính định thức, ta chỉ cần nhân các giá trị trên đường chéo chính. Ví dụ, với ma trận vuông tam giác trên sau, định thức được tính bằng cách nhân các giá trị trên đường chéo:
Ta chỉ cần nhân các phần tử đường chéo để tính định thức: det(U)=2×4×6=48
Định thức bất biến theo phép đồng dạng ma trận
Hai ma trận được gọi là đồng dạng nếu chúng xuất phát từ cùng một phép biến đổi tuyến tính nhưng có các cơ sở khác nhau. Nếu hai ma trận đồng dạng, chúng có cùng định thức (và cùng trị riêng, vết, cùng đa thức đặc trưng).
Định thức của tích ma trận bằng tích các định thức của từng ma trận
Ví dụ, định thức riêng lẻ của các ma trận A và B được thể hiện ở đây:
Định thức bất biến khi chuyển vị
Ví dụ, định thức của ma trận A và AT là như nhau (-9).
Các phương pháp tính định thức
Có nhiều phương pháp để tính định thức của một ma trận vuông, như công thức Leibniz, khai triển Laplace và khử Gauss. Việc lựa chọn phương pháp phụ thuộc vào kích thước ma trận và chi phí tính toán. Chúng tôi mô tả một số phương pháp dưới đây:
Công thức Leibniz
Công thức Leibniz để tìm định thức của ma trận vuông phù hợp nhất cho các ma trận nhỏ, đặc biệt khi tính toán thực hiện toàn bộ hoặc một phần bằng tay. Công thức Leibniz để tìm định thức của một ma trận như sau:
Với Sn là tập hợp tất cả các hoán vị của các số 1,2,…,n và sgn(σ) là dấu của hoán vị, bằng +1 nếu hoán vị chẵn và −1 nếu hoán vị lẻ. Hạng tử ai,σ là một phần tử của ma trận A.
Khai triển Laplace
Khai triển Laplace lý tưởng cho các ma trận lớn hơn. Trong khai triển Laplace hay khai triển đồng phức, một ma trận lớn được chia thành các ma trận nhỏ hơn. Sau đó, một sơ đồ liên quan đến định thức (phần phụ) của ma trận nhỏ và đồng phức của nó được thiết lập và lặp theo các hàng hoặc các cột.
Khử Gauss
Bởi vì định thức của ma trận tam giác là tích các phần tử đường chéo, việc đưa ma trận về dạng đường chéo giúp tính định thức hiệu quả hơn. Trong khử Gauss, một loạt phép biến đổi hàng được thực hiện để đưa ma trận đầy đủ về dạng bậc thang hàng hoặc tam giác trên. Khi đó, định thức được tính bằng cách nhân các phần tử đường chéo.
Cách tìm định thức cho các ma trận kích thước khác nhau
Trong các ví dụ sau, chúng ta áp dụng từng phương pháp vừa nêu cho các ma trận có kích thước khác nhau để tìm định thức.
Cách tìm định thức cho ma trận 2x2
Định thức của ma trận vuông 2x2 là dễ nhớ và dễ tính nhất. Nếu ký hiệu ma trận 2x2 A là:
Khi đó det(A) = (a x d) - (b x c). Ví dụ, với ma trận B dưới đây:
Cách tìm định thức cho ma trận 3x3
Mặc dù có công thức tính cho ma trận vuông 3x3, vì mục đích sư phạm, chúng tôi minh họa khai triển Laplace (đồng phức) trong ví dụ này. Chúng ta sẽ tính định thức của ma trận A dưới đây:
Cách tìm định thức cho ma trận 4x4
Giờ chúng ta tận dụng cơ hội để trình bày phương pháp khử Gauss nhằm tính định thức của ma trận 4 x 4 A dưới đây:
Chúng ta sẽ biến đổi ma trận này thành ma trận tam giác trên bằng cách thực hiện các phép biến đổi hàng.
Ta được,
Thêm một phép biến đổi hàng nữa:
Ta được,
Và định thức là tích của các phần tử đường chéo:
Ý nghĩa hình học và đại số
Như đã định nghĩa ở trên, định thức là một hàm ánh xạ ma trận vuông sang một số thực.
Trong hình học, một hình vuông có hai cạnh, tích của chúng là diện tích bề mặt. Và nếu có ba cạnh, ta được thể tích. Giá trị tuyệt đối của định thức ma trận 2 x 2 có thể được hiểu là diện tích hình bình hành được tạo bởi hai cột của ma trận (như các vectơ có hướng), và định thức có dấu của ma trận 3 x 3 có thể được hiểu là thể tích của khối hình hộp xiên (khối rắn ba chiều).
Trong các phép biến đổi đồ họa, như kéo giãn hay co rút một ảnh, định thức của ảnh sau biến đổi cho biết diện tích của ảnh gốc (ma trận) có thay đổi hay không (nguyên lý Cavalieri) sau biến đổi, trong khi các trị riêng cho biết ảnh đã giãn ra hay co lại có kèm thay đổi diện tích hay không.
Định thức cũng có thể cho biết các cột hoặc hàng của một ma trận có là tổ hợp tuyến tính của nhau (dư thừa) hay chúng độc lập tuyến tính, mỗi cột mang thông tin riêng. Nếu định thức của một ma trận khác 0, ta kết luận rằng các cột hoặc hàng của ma trận độc lập tuyến tính. Nếu định thức bằng 0, điều đó cho thấy các cột (hoặc hàng) của ma trận phụ thuộc tuyến tính.
Cuối cùng, định thức cũng được dùng để xây dựng đa thức đặc trưng nhằm tính trị riêng.
Định thức trong Python và R
Mặc dù tính định thức bằng tay là một trải nghiệm học tập quý giá giúp mài giũa kỹ năng và phát triển tư duy toán học, cuối cùng các ràng buộc về thời gian và công sức có thể khiến chúng ta dùng máy tính cầm tay hoặc ngôn ngữ lập trình như Python hay R. Cả Python và R đều cung cấp thư viện, hàm hoặc phương thức để tính định thức của ma trận. Trong các đoạn mã sau, chúng tôi minh họa cách tính định thức của một ma trận bằng Python và R.
Ví dụ Python
Hai gói Python phổ biến để tính định thức của ma trận là Numpy và Sympy (Symbolic Python). Trong đoạn mã dưới đây, chúng tôi cho thấy cách tính định thức bằng thư viện Numpy và Sympy trong Python.
Ví dụ R
Tính định thức của một ma trận trong R không cần nạp thêm thư viện. R cơ bản cung cấp sẵn một hàm để tính định thức của ma trận, như thể hiện trong đoạn mã R sau:
Ứng dụng của định thức
Hệ tuyến tính
Định thức có thể được dùng trực tiếp để giải hệ phương trình tuyến tính bằng Quy tắc Cramer. Theo Quy tắc Cramer, trước tiên ta lập ma trận gồm các hệ số của ẩn trong hệ phương trình và tính định thức của nó. Tiếp theo, với mỗi ẩn, ta tạo một ma trận và tính định thức của ma trận đó. Tỷ số giữa định thức ma trận mới và ma trận ban đầu sẽ là giá trị của ẩn số tương ứng.
Phương trình vi phân
Một phương trình vi phân có thể có nhiều nghiệm (hàm). Để đảm bảo các nghiệm độc lập tuyến tính (duy nhất), ta tính định thức của tập hợp các nghiệm hàm, gọi là Wronskian. Wronskian khác 0 cho biết các hàm/nghiệm độc lập tuyến tính trên khoảng đã cho.
Hình học
Trong hình học, định thức của ma trận 2 x 2 có thể được hiểu là diện tích hình bình hành, và định thức của ma trận 3 x 3 có thể được hiểu là thể tích của một khối rắn (hình hộp xiên). Định thức trong ánh xạ hàm nhiều biến có thể giúp chúng ta hiểu liệu ánh xạ có làm thay đổi diện tích hay thể tích của các hàm hay không thông qua định thức của ma trận Jacobian.
Những điểm chính cần ghi nhớ
Định thức đóng vai trò gián tiếp hơn trong học máy, thống kê và tính toán khoa học. Tuy vậy, hiểu được cách hệ phương trình tuyến tính, phép nghịch đảo ma trận, đồ họa máy tính và phương trình vi phân sử dụng định thức trong quá trình có thể làm sáng tỏ ý nghĩa tinh tế của chúng và lý do cần nắm vững định thức. Lần tới khi bạn gặp lỗi ma trận không khả nghịch, có lẽ bạn sẽ nghĩ đến vai trò của định thức trong hình dạng và tính độc lập tuyến tính của ma trận.
Kết luận
Hy vọng bạn đã thấy được tầm quan trọng của định thức trong việc hiểu hành vi và các phép biến đổi của ma trận. Khóa học Đại số tuyến tính cho Khoa học Dữ liệu bằng R của chúng tôi là bước tiếp theo tuyệt vời để tiếp tục học các kỹ thuật đại số tuyến tính và áp dụng chúng vào quy trình làm việc khoa học dữ liệu.