趋近智
本课程已归档: 现已推出包含更新教学大纲和改进内容的新版本。
方阵、单位矩阵和零矩阵等基本类型显现出在方阵中某些结构模式,这些模式在计算中特别有用。我们来看看对角矩阵和三角矩阵。
对角矩阵是一种方阵,其主对角线 以外 的所有元素都为零。主对角线上的元素可以是任何值,包括零。
对角矩阵和三角矩阵是方阵的特定类型,它们具有独特的结构模式。这些模式能够简化线性代数中的大量计算和分析过程。理解这些特殊矩阵形式,有助于掌握高效方法,同时与在单位矩阵和零矩阵等基本矩阵中观察到的性质相呼应。
这是一个 3×3 的例子:
D=7000−20003请注意,只有元素 a11、a22 和 a33(主对角线)可能不是零。我们之前见到的单位矩阵 I 是对角矩阵的一种特殊情况,其所有对角线元素都恰好为1。
对角矩阵在计算上很方便。处理对角矩阵时,许多运算会大大简化。
使用NumPy创建对角矩阵
NumPy提供了方便的 np.diag() 函数。此函数有两种行为模式:
np.diag(),它会创建一个方阵,将这些元素放在主对角线上,其他位置为零。np.diag(),它会 提取 主对角线元素,并将其作为一维数组返回。我们来看看如何创建一个对角矩阵:
import numpy as np
# 从对角线元素列表创建对角矩阵
diag_elements = [4, -1, 6]
D = np.diag(diag_elements)
print("对角线元素:", diag_elements)
print("结果对角矩阵 D:\n", D)
Output:
Diagonal elements: [4, -1, 6]
Resulting diagonal matrix D:
[[ 4 0 0]
[ 0 -1 0]
[ 0 0 6]]
现在,我们从一个现有矩阵中提取对角线:
# 一个示例矩阵
A = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
# 提取主对角线
diagonal_of_A = np.diag(A)
print("原始矩阵 A:\n", A)
print("提取出的对角线:", diagonal_of_A)
Output:
Original matrix A:
[[1 2 3]
[4 5 6]
[7 8 9]]
Extracted diagonal: [1 5 9]
三角矩阵是方阵,其所有零元素要么在主对角线上方,要么在主对角线下方。它们有两种类型:
上三角矩阵其所有非零元素都在主对角线上方或主对角线上。主对角线 下方 的所有元素都为零。形式上,对于矩阵 U,如果 i>j,则 uij=0。
例子:
U=100250369反之,下三角矩阵其所有非零元素都在主对角线下方或主对角线上。主对角线 上方 的所有元素都为零。形式上,对于矩阵 L,如果 i<j,则 lij=0。
例子:
L=147058009结构可视化
“上”和“下”的名称源于非零元素形成三角形的形状。
对角矩阵、上三角矩阵和下三角矩阵的 3×3 结构。彩色单元格表示可能非零的元素;“0”表示必须为零的元素。
使用NumPy处理三角矩阵
NumPy提供了函数来从现有矩阵中提取这些三角部分:
np.triu() (上三角):返回矩阵的副本,其中主对角线下方元素置零。np.tril() (下三角):返回矩阵的副本,其中主对角线上方元素置零。# 使用之前的矩阵 A
A = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
# 获取上三角部分(包括对角线)
upper_A = np.triu(A)
# 获取下三角部分(包括对角线)
lower_A = np.tril(A)
print("原始矩阵 A:\n", A)
print("\n矩阵 A 的上三角部分:\n", upper_A)
print("\n矩阵 A 的下三角部分:\n", lower_A)
Output:
Original matrix A:
[[1 2 3]
[4 5 6]
[7 8 9]]
Upper triangular part of A:
[[1 2 3]
[0 5 6]
[0 0 9]]
Lower triangular part of A:
[[1 0 0]
[4 5 0]
[7 8 9]]
np.triu() 和 np.tril() 都可以接受一个可选的第二个参数 k。如果 k=0(默认值),它使用主对角线。如果 k=1,它指的是主对角线上方的对角线;如果 k=-1,它指的是主对角线下方对角线,以此类推。这让您可以根据不同的对角线将元素置零。
对角矩阵和三角矩阵可能看起来是特例,但它们在线性代数算法中经常出现,尤其是在求解线性方程组时以及将矩阵分解为更简单组成部分(矩阵分解)的技术中。辨认这些结构对于理解更高级的矩阵运算很有帮助。
这部分内容有帮助吗?
numpy.diag - NumPy Documentation, NumPy Developers, 2023 - 解释np.diag函数创建和提取对角矩阵功能的官方文档。numpy.triu and numpy.tril - NumPy Documentation, NumPy Developers, 2023 - 详细说明np.triu和np.tril函数获取上三角和下三角矩阵用法的官方文档。© 2026 ApX Machine Learning用心打造