当算法遇到线性代数(三):实对称矩阵
实对称矩阵的理论与应用
线性代数系列相关文章(置顶)
1.当算法遇到线性代数(一):二次型和矩阵正定的意义
2.当算法遇到线性代数(二):矩阵特征值的意义
3.当算法遇到线性代数(三):实对称矩阵
4.当算法遇到线性代数(四):奇异值分解(SVD)
引言
在数学、物理、工程以及计算机科学等多个领域,实对称矩阵扮演着不可或缺的角色。它们不仅具有良好的数学性质,还为解决实际问题提供了强有力的工具。本文将详细介绍实对称矩阵的历史背景、定义、关键性质及其广泛的应用场景。
一、背景
实对称矩阵的概念并非由单一人物提出,而是随着线性代数、微分方程和二次型等领域的发展逐渐形成的。19世纪初,卡尔·弗里德里希·高斯(Carl Friedrich Gauss)等数学家的工作为理解这些矩阵奠定了基础。特别是在1825年左右,雅克比(Carl Gustav Jacob Jacobi)引入了特征值和特征向量的概念,并证明了每个实对称矩阵都可以被正交对角化,这一成果极大地促进了后来关于实对称矩阵的研究及其应用的发展。
二、定义
1. 概念回顾
一个 n × n n \times n n×n 的矩阵 A A A 称为实对称矩阵,如果它满足条件:
A = A T A = A^T A=AT
即对于所有的 i , j i, j i,j,有 a i j = a j i a_{ij} = a_{ji} aij=aji,这意味着矩阵中任意元素与其对应的镜像位置上的元素相等。
2. 对角化
我们举一个可以对角化的三阶矩阵的例子。为了确保这个例子中的矩阵是可以对角化的,我们将选择一个具有三个不同特征值的矩阵,这样它将有三个线性独立的特征向量。
例子:对角化一个3x3矩阵
考虑以下3x3矩阵 A A A:
A = [ 6 − 1 0 − 1 7 − 2 0 − 2 8 ] A = \begin{bmatrix} 6 & -1 & 0 \\ -1 & 7 & -2 \\ 0 & -2 & 8 \end{bmatrix} A= 6−10−17−20−28
步骤 1: 求解特征值
为找到特征值,我们需要求解方程 det ( A − λ I ) = 0 \det(A - \lambda I) = 0 det(A−λI)=0,即:
det ( [ 6 − λ − 1 0 − 1 7 − λ − 2 0 − 2 8 − λ ] ) = 0 \det\left( \begin{bmatrix} 6-\lambda & -1 & 0 \\ -1 & 7-\lambda & -2 \\ 0 & -2 & 8-\lambda \end{bmatrix} \right) = 0 det 6−λ−10−17−λ−20−28−λ =0
计算行列式得到特征多项式,并求解之以获得特征值。对于此矩阵,特征值为 λ 1 = 5 \lambda_1 = 5 λ1=5, λ 2 = 6 \lambda_2 = 6 λ2=6, 和 λ 3 = 10 \lambda_3 = 10 λ3=10。
步骤 2: 找到特征向量
对于每个特征值,我们解决相应的齐次线性系统以找到特征向量。
- 对于 λ 1 = 5 \lambda_1 = 5 λ1=5:
( A − 5 I ) v 1 = [ 1 − 1 0 − 1 2 − 2 0 − 2 3 ] v 1 = 0 (A - 5I)\mathbf{v}_1 = \begin{bmatrix} 1 & -1 & 0 \\ -1 & 2 & -2 \\ 0 & -2 & 3 \end{bmatrix}\mathbf{v}_1 = \mathbf{0} (A−5I)v1= 1−10−12−20−23 v1=0
通过行简化或直接求解,可以找到一个对应的特征向量 v 1 = [ 1 1 2 / 3 ] \mathbf{v}_1 = \begin{bmatrix} 1 \\ 1 \\ 2/3 \end{bmatrix} v1= 112/3 或任何它的非零倍数。
- 对于 λ 2 = 6 \lambda_2 = 6 λ2=6:
( A − 6 I ) v 2 = [ 0 − 1 0 − 1 1 − 2 0 − 2 2 ] v 2 = 0 (A - 6I)\mathbf{v}_2 = \begin{bmatrix} 0 & -1 & 0 \\ -1 & 1 & -2 \\ 0 & -2 & 2 \end{bmatrix}\mathbf{v}_2 = \mathbf{0} (A−6I)v2= 0−10−11−20−22 v2=0
求解后,我们得到一个对应的特征向量 v 2 = [ 1 0 1 ] \mathbf{v}_2 = \begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix} v2= 101 。
- 对于 λ 3 = 10 \lambda_3 = 10 λ3=10:
( A − 10 I ) v 3 = [ − 4 − 1 0 − 1 − 3 − 2 0 − 2 − 2 ] v 3 = 0 (A - 10I)\mathbf{v}_3 = \begin{bmatrix} -4 & -1 & 0 \\ -1 & -3 & -2 \\ 0 & -2 & -2 \end{bmatrix}\mathbf{v}_3 = \mathbf{0} (A−10I)v3= −4−10−1−3−20−2−2 v3=0
求解后,我们得到一个对应的特征向量 v 3 = [ 1 − 2 1 ] \mathbf{v}_3 = \begin{bmatrix} 1 \\ -2 \\ 1 \end{bmatrix} v3= 1−21 。
步骤 3: 构建转换矩阵 P P P
将找到的特征向量作为列向量构建转换矩阵 P P P:
P = [ 1 1 1 1 0 − 2 2 / 3 1 1 ] P = \begin{bmatrix} 1 & 1 & 1 \\ 1 & 0 & -2 \\ 2/3 & 1 & 1 \end{bmatrix} P= 112/31011−21
注意,如果需要的话,我们可以对这些向量进行归一化以形成正交矩阵(特别是当原始矩阵是对称时),但在这个例子中我们不需要这样做,因为我们的目标只是对角化。
步骤 4: 对角化
最后,计算 P − 1 A P P^{-1}AP P−1AP,我们应该得到一个对角矩阵 D D D,其对角元素是 A A A 的特征值:
D = P − 1 A P = [ 5 0 0 0 6 0 0 0 10 ] D = P^{-1}AP = \begin{bmatrix} 5 & 0 & 0 \\ 0 & 6 & 0 \\ 0 & 0 & 10 \end{bmatrix} D=P−1AP= 5000600010
通过上述步骤,我们成功地将给定的矩阵 A A A 对角化为 D D D,并且找到了相应的转换矩阵 P P P。这个过程展示了如何对一个拥有足够线性独立特征向量的三阶矩阵进行对角化。请注意,这里的 P P P 并不是正交矩阵,因为我们没有对特征向量进行正交化和归一化处理。在实际应用中,是否需要这样做取决于具体的需求。
3. 正交对角化
下面展示如何将特征向量归一化以形成正交矩阵,并比较不归一化和归一化后对角化的结果。3x3矩阵 A A A 和它的特征值与特征向量。
归一化成正交矩阵
为了创建一个正交矩阵,我们需要对每个特征向量进行归一化,并且在必要时应用Gram-Schmidt过程来确保它们是正交的。但在这个例子中,我们可以通过简单地归一化每个向量来实现这一点,因为原始向量已经是相互正交的(这是由于 A A A 是实对称矩阵)。
归一化后的特征向量为:
- u 1 = v 1 ∥ v 1 ∥ = 1 1 2 + 1 2 + ( 2 / 3 ) 2 [ 1 1 2 / 3 ] = 1 14 / 9 [ 1 1 2 / 3 ] = 9 14 [ 1 1 2 / 3 ] \mathbf{u}_1 = \frac{\mathbf{v}_1}{\|\mathbf{v}_1\|} = \frac{1}{\sqrt{1^2 + 1^2 + (2/3)^2}}\begin{bmatrix} 1 \\ 1 \\ 2/3 \end{bmatrix} = \frac{1}{\sqrt{14/9}}\begin{bmatrix} 1 \\ 1 \\ 2/3 \end{bmatrix} = \sqrt{\frac{9}{14}}\begin{bmatrix} 1 \\ 1 \\ 2/3 \end{bmatrix} u1=∥v1∥v1=12+12+(2/3)21 112/3 =14/91 112/3 =149 112/3
- u 2 = v 2 ∥ v 2 ∥ = 1 1 2 + 0 2 + 1 2 [ 1 0 1 ] = 1 2 [ 1 0 1 ] \mathbf{u}_2 = \frac{\mathbf{v}_2}{\|\mathbf{v}_2\|} = \frac{1}{\sqrt{1^2 + 0^2 + 1^2}}\begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix} = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix} u2=∥v2∥v2=12+02+121 101 =21 101
- u 3 = v 3 ∥ v 3 ∥ = 1 1 2 + ( − 2 ) 2 + 1 2 [ 1 − 2 1 ] = 1 6 [ 1 − 2 1 ] \mathbf{u}_3 = \frac{\mathbf{v}_3}{\|\mathbf{v}_3\|} = \frac{1}{\sqrt{1^2 + (-2)^2 + 1^2}}\begin{bmatrix} 1 \\ -2 \\ 1 \end{bmatrix} = \frac{1}{\sqrt{6}}\begin{bmatrix} 1 \\ -2 \\ 1 \end{bmatrix} u3=∥v3∥v3=12+(−2)2+121 1−21 =61 1−21
因此,正交矩阵 Q Q Q 为:
Q = [ 9 14 1 2 1 6 9 14 0 − 2 6 2 3 9 14 1 2 1 6 ] Q = \begin{bmatrix} \sqrt{\frac{9}{14}} & \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{6}} \\ \sqrt{\frac{9}{14}} & 0 & -\frac{2}{\sqrt{6}} \\ \frac{2}{3}\sqrt{\frac{9}{14}} & \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{6}} \end{bmatrix} Q= 149149321492102161−6261
对于归一化后的正交矩阵 Q Q Q,我们有:
D = Q − 1 A Q = Q T A Q = [ 5 0 0 0 6 0 0 0 10 ] D = Q^{-1}AQ = Q^TAQ = \begin{bmatrix} 5 & 0 & 0 \\ 0 & 6 & 0 \\ 0 & 0 & 10 \end{bmatrix} D=Q−1AQ=QTAQ= 5000600010
这里使用了 Q T = Q − 1 Q^T = Q^{-1} QT=Q−1 的性质,因为 Q Q Q 是正交矩阵。
对角化比较
对于归一化后的正交矩阵 Q Q Q,我们有:
D = Q − 1 A Q = Q T A Q = [ 5 0 0 0 6 0 0 0 10 ] D = Q^{-1}AQ = Q^TAQ = \begin{bmatrix} 5 & 0 & 0 \\ 0 & 6 & 0 \\ 0 & 0 & 10 \end{bmatrix} D=Q−1AQ=QTAQ= 5000600010
这里使用了 Q T = Q − 1 Q^T = Q^{-1} QT=Q−1 的性质,因为 Q Q Q 是正交矩阵。
结论
- 不归一化:在这种情况下,我们得到的 P P P 不是一个正交矩阵, P − 1 ≠ P T P^{-1} \neq P^T P−1=PT,但是 P − 1 A P P^{-1}AP P−1AP 仍然会给出对角矩阵 D D D。
- 归一化成正交矩阵:当我们构建了一个正交矩阵 Q Q Q,我们不仅得到了同样的对角矩阵 D D D,而且可以利用 Q T = Q − 1 Q^T = Q^{-1} QT=Q−1 的性质简化计算。此外,正交矩阵在数值计算中通常更加稳定,因为它们保持了向量长度不变,并且避免了可能的数值误差放大问题。
- 主要区别: P P P 和 Q Q Q 的性质及其逆矩阵的计算方式。在实际应用中,如果不需要额外的正交性特性,那么不归一化可能是更简单的选择;但在需要保持几何关系或数值稳定性的情况下,归一化并构建正交矩阵 Q Q Q 则更为有利。
三、关键性质
实对称矩阵拥有以下重要的特性:
- 特征值都是实数:所有特征值均为实数,这保证了其解的稳定性。
- 存在完整的正交特征向量集:不仅可以找到足够的线性独立的特征向量来构成基底,而且这些特征向量还可以选择成彼此正交的形式。
- 可正交对角化:可以通过一个正交矩阵 P P P 将其实对称矩阵 A A A 对角化,即 P − 1 A P = D P^{-1}AP = D P−1AP=D,其中 D D D 是对角矩阵,且 P − 1 = P T P^{-1} = P^T P−1=PT。
- 半正定或半负定:根据特征值的符号,可以分类为半正定、半负定、正定或负定。
- 谱定理:任何实对称矩阵都可以表示为其特征值和特征向量的组合,即 A = Q Λ Q T A = Q\Lambda Q^T A=QΛQT,其中 Q Q Q 是由特征向量组成的正交矩阵, Λ \Lambda Λ 是由特征值组成的对角矩阵。
四、数学应用
实对称矩阵在纯数学领域也有着广泛而深刻的应用。以下是几个关键的数学应用,包括判定二次型、快速计算等方面:
1. 判定二次型
-
定义与性质:给定一个 n × n n \times n n×n 的实对称矩阵 A A A,它对应于一个二次型 Q ( x ) = x T A x Q(x) = x^T Ax Q(x)=xTAx,其中 x x x 是一个 n n n-维列向量。由于 A A A 是对称的,这个二次型总是可以被表示为一组正交基下的标准形式,即每个变量只出现一次,并且系数是实数。
-
分类:根据特征值的符号,我们可以将二次型分为以下几类:
- 正定(Positive Definite):所有特征值均为正, Q ( x ) > 0 Q(x) > 0 Q(x)>0 对所有非零向量 x x x 成立。
- 负定(Negative Definite):所有特征值均为负, Q ( x ) < 0 Q(x) < 0 Q(x)<0 对所有非零向量 x x x 成立。
- 半正定(Positive Semi-definite):所有特征值非负, Q ( x ) ≥ 0 Q(x) \geq 0 Q(x)≥0 对所有 x x x 成立。
- 半负定(Negative Semi-definite):所有特征值非正, Q ( x ) ≤ 0 Q(x) \leq 0 Q(x)≤0 对所有 x x x 成立。
- 不定(Indefinite):既有正特征值又有负特征值。
-
应用:二次型的分类对于优化理论非常重要,特别是在凸优化中,正定或半正定的二次型确保了问题的凸性,从而保证了全局最优解的存在性和唯一性。
2. 快速计算
-
Cholesky 分解:如果 A A A 是一个正定或半正定的实对称矩阵,则它可以分解为 A = L L T A = LL^T A=LLT,其中 L L L 是下三角矩阵。这种分解方法不仅提高了线性方程组求解的速度,还减少了数值不稳定的风险。
-
QR 分解:尽管 QR 分解不专门针对实对称矩阵,但对于这类矩阵,可以通过 Householder 变换高效地完成 QR 分解,进而用于最小二乘问题、特征值计算等任务。
-
SVD 分解:虽然奇异值分解(SVD)适用于任意矩阵,但当应用于实对称矩阵时,它可以提供额外的简化和稳定性,尤其是在处理低秩近似和数据压缩方面。
3. 矩阵函数计算
- 指数函数和其他解析函数:通过谱定理,可以很容易地计算出实对称矩阵的指数函数或其他解析函数。例如, e A e^A eA 可以表示为 e A = Q e Λ Q T e^A = Qe^\Lambda Q^T eA=QeΛQT,其中 Λ \Lambda Λ 是对角矩阵包含 A A A 的特征值,而 Q Q Q 是对应的正交矩阵。这种方法比直接计算更稳定且更快。
4. 微分几何
- 黎曼流形上的拉普拉斯-贝尔特拉米算子:在微分几何中,研究曲面上的调和函数时会用到拉普拉斯-贝尔特拉米算子,其离散化后的形式往往是一个实对称矩阵。这有助于理解流形上的热扩散过程以及相关的偏微分方程。
5. 代数拓扑
- 同调群与边界算子:在代数拓扑中,链复形的边界算子通常构成实对称矩阵,这对于计算空间的同调群至关重要。这些矩阵帮助我们了解空间的连通性和洞的数量。
6. 组合数学
- 图论中的邻接矩阵与拉普拉斯矩阵:如前所述,无向图的邻接矩阵是实对称的,而图的拉普拉斯矩阵更是如此。它们在图嵌入、网络分析等领域有着重要的应用价值。
7. 数值线性代数
- 预条件共轭梯度法 (PCG):在解决大型稀疏线性系统时,预条件共轭梯度法是一种非常有效的迭代算法,特别适合处理由实对称矩阵描述的问题。选择适当的预条件子可以显著加速收敛速度。
五、其他场景
1. 机器学习与深度学习
- 主成分分析 (PCA): 在降维技术中,协方差矩阵是对称的,通过特征值分解可以获得数据的主要变化方向。
- 支持向量机 (SVM): 核矩阵是实对称且半正定的,确保优化问题是凸的。
- 谱聚类: 使用拉普拉斯矩阵(实对称)进行图嵌入和聚类。
- 推荐系统: 用户-物品评分矩阵在协同过滤中经常被当作稀疏的实对称矩阵处理。
- 图神经网络 (GNNs): 邻接矩阵和节点特征矩阵通常也是实对称矩阵,用于传播规则更新节点表示。
- 正则化方法:如何使用:Lasso 和 Ridge 回归等正则化方法涉及到添加一个惩罚项到损失函数中,这个惩罚项往往涉及模型参数的平方和(Ridge)或者绝对值之和(Lasso)。对于 Ridge 回归,这相当于在 Hessian 矩阵(二阶导数矩阵)上施加了一个额外的实对称矩阵。
- 马尔科夫链与随机游走:转移概率矩阵描述了状态之间的转换几率。如果这个过程是时间可逆的,则转移概率矩阵是对称的。这种对称性简化了许多计算,并有助于理解长期行为。
2. 数值分析与工程计算
- 结构力学: 应力张量和弹性矩阵都是实对称的,这对于分析材料和结构非常重要。
- 振动分析: 系统的质量矩阵和刚度矩阵通常是实对称的,有助于求解模态分析问题。
- 热传导与扩散过程: 扩散系数矩阵通常是实对称的,帮助描述热量或物质如何在空间中扩散。
3. 统计学与经济学
- 协方差矩阵: 在统计建模中,协方差矩阵用来衡量变量之间的线性关系强度,它是实对称的。
- 经济模型: 许多宏观经济模型中的参数矩阵可能表现为实对称形式,如投入产出表。
4. 物理学
- 量子力学: 在量子力学中,哈密顿算符是一个厄米特算符,在有限维度下对应于一个实对称矩阵,其特征值代表系统的能量水平。
五、结论
综上所述,实对称矩阵由于其良好的数学性质和广泛的适用性,在多个学科和技术领域都发挥着重要作用。从理论上讲,它们提供了强有力的工具来理解和解决各种问题;而在实践中,它们则简化了许多复杂的计算任务。无论是作为数据分析的基础,还是构建高效的机器学习算法,实对称矩阵都是不可或缺的一部分。
相关文章:

当算法遇到线性代数(三):实对称矩阵
实对称矩阵的理论与应用 线性代数系列相关文章(置顶) 1.当算法遇到线性代数(一):二次型和矩阵正定的意义 2.当算法遇到线性代数(二):矩阵特征值的意义 3.当算法遇到线性代数&#x…...

WayLand的架构和协议
WayLand的架构和协议 1. Wayland简介 1.1 Wayland是啥?为啥它这么重要? 嘿,你知道吗?有时候咱们用电脑的时候,是不是觉得图形界面有点慢、有点卡?那是因为我们还在用一个叫X Window System (X11)的老伙计…...

STM32学习(十)
I2C模块内部结构 I2C(Inter-Integrated Circuit)模块是一种由Philips公司开发的二线式串行总线协议,用于短距离通信,允许多个设备共享相同的总线。 硬件连接简单:I2C通信仅需要两条总线,即SCL&…...

进阶篇-Day17:JAVA的日志、枚举、类加载器、反射等介绍】
目录 1、日志1.1 日志概念1.2 日志框架(1) Logback框架:(2)配置文件介绍: 2、枚举3、类加载器3.1 类加载器的介绍3.2 类加载器的加载过程:加载、链接、初始化3.3 类加载器的分类3.4 双亲委派模式…...

Java设计模式 —— 【行为型模式】责任链模式(Chain-of-responsibility Pattern) 详解
文章目录 模式介绍优缺点适用场景模式结构案例实现 模式介绍 责任链模式又名职责链模式,它是一种对象行为的设计模式,为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链&…...
C++和Python中负数取余结果的区别
C中的负数取余规则(取模%)规则 在C中,取余运算( % )的结果符号与被除数相同。从数学定义角度看,C遵循的是尽量让商向零取整的规则。例如计算 -7/3,商是 -2 (向零取整)&a…...

rust学习——环境搭建
rust安装:https://kaisery.github.io/trpl-zh-cn/ch01-01-installation.html 1、vscode装插件: toml语法支持 依赖管理 rust语法支持 2、创建demo 3、查看目录 4、执行文件的几种方式: rust安装:https://www.rust-lang.org/z…...

Linux系统中解决端口占用问题
在日常的 Linux 系统管理和开发过程中,端口占用是一个常见且令人头疼的问题。无论是部署新服务、调试应用程序,还是进行系统维护,遇到端口被占用都可能导致服务无法正常启动或运行。本文将详细介绍在 Linux 系统中如何识别和解决端口占用问题…...
现代软件架构设计:14个质量属性的定义、权衡与最佳实践
1. 引言 1.1 技术架构的重要性 技术架构是指导软件系统设计和开发的核心,它定义了系统的高层结构及关键技术选型。一个优秀的技术架构可以提高开发效率、系统稳定性和扩展能力,确保项目成功落地。面对复杂业务场景,技术架构的设计至关重要&…...

【UE5 C++课程系列笔记】25——多线程基础——FGraphEventRef的简单使用
目录 概念 使用示例1 使用示例2 概念 FGraphEventRef 本质上是对一个异步任务或者一组相关异步任务在虚幻引擎任务图系统中的一种引用(reference)。虚幻引擎的任务图系统用于高效地调度和管理各种异步任务,协调它们的执行顺序以及处理任务…...
计算机网络之---信号与编码
信号 在物理层,信号是用来传输比特流的物理量,它可以是电压、电流、光强度等形式,通常通过电缆、光纤或者无线信道等媒介传播。 信号主要分为以下两种类型: 模拟信号(Analog Signal):信号在时间…...
linux下用命令行给串口写数据和读数据
在 Linux 系统中,串口设备(如 /dev/ttyS3)可以通过命令行进行读写操作。您遇到的问题是因为 Bash 解释了命令行中的字符串 “dis vlan\n”,但并没有按预期向串口设备发送数据。你应该将数据通过重定向发送到串口设备。 下面是如何…...
【生物信息】如何使用 h5py 读取 HDF5 格式文件中的数据并将其转换为 NumPy 数组
data_mat h5py.File(args.data_file) x1 np.array(data_mat[X1]) x2 np.array(data_mat[X2]) if not args.no_labels: y np.array(data_mat[Y]) data_mat.close() 这段代码展示了如何使用 h5py 读取 HDF5 格式文件中的数据并将其转换为 NumPy 数组。以下是代码的详细解释&a…...

纯手工(不基于maven的pom.xml、Web容器)连接MySQL数据库的详细过程(Java Web学习笔记)
1 引言 最近读一些Java Web开发类的书籍时,发现书中的连接数据库的过程缺少了一些关键性的过程,这对初学者非常不友好。为此,本文将给出详细的连接MySQL数据库的过程,并且是纯手工,不依赖于pom.xml和Web容器ÿ…...

thingsboard通过mqtt设备连接及数据交互---记录一次问题--1883端口没开,到服务器控制面板中打开安全组1883端口
1,链接不上:原因是1883端口没开,到服务器控制面板中打开安全组1883端口 2,参考链接: https://blog.csdn.net/bujingyun8/article/details/120024788...
联邦学习中的LoRA:FedLoRA
联邦学习中的LoRA:FedLoRA 联邦学习中的LoRA(Low-Rank Adaptation of Large Language Models)是一种用于在联邦学习场景下对大型语言模型进行低秩适应和高效微调的方法。以下是其原理及示例说明: 原理 低秩矩阵分解:在联邦学习中,通常会涉及到对预训练的大型模型进行微…...
PyTorch reshape函数介绍
torch.reshape 是 PyTorch 用于改变张量形状的函数之一。它不会改变张量的数据,而是重新组织其元素以适应新的形状。 reshape 的使用 torch.reshape(input, shape) → Tensorinput:输入张量。shape:新形状,使用整数或 -1 指定各维…...
Linux内核 -- 邮箱子系统之`mbox_controller` 的 `txdone_irq` 用法
Linux Kernel 中 mbox_controller 的 txdone_irq 用法 1. txdone_irq 的作用 txdone_irq 是一个布尔类型字段,用来指示邮件框控制器是否支持通过中断通知传输完成事件。 如果设置为 true: 硬件会在数据传输完成后生成中断。内核中相应的中断处理程序会…...

Linux/Ubuntu/银河麒麟 arm64 飞腾FT2000 下使用 arm64版本 linuxdeployqt 打包Qt程序
文章目录 一、前言二、环境三、准备1、下载Linuxdeployqt源码2、下载Appimagetool-aarch64.AppImage四、编译linuxdeployqt1.配置环境变量2.编译linuxdeployqt五、安装patchelf六、配置Appimagetool七、打包Qt程序重要提示:测试启动应用八、其他九、最后一、前言 因为项目需要…...

Excel | 空格分隔的行怎么导入excel?
准备工作:windows,一个记事本程序和微软的Excel软件。 打开记事本,选中所有内容,按CtrlA全选,然后复制(CtrlC)。 在Excel中,定位到你想粘贴的单元格,按CtrlV进行粘贴。粘贴后,你会在…...

大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...