线性代数的本质(三)

news/2024/7/24 6:15:29 标签: 线性代数

文章目录

  • 线性方程组
    • 高斯消元法
    • 初等行变换
    • 线性方程组的解
    • 向量方程
    • 齐次线性方程组的解
    • 非齐次线性方程组的解

线性方程组

高斯消元法

客观世界最简单的数量关系是均匀变化的关系。在均匀变化问题中,列出的方程组是一次方程组,我们称之为线性方程组(Linear system of equations)。 n n n元线性方程组的一般形式为
{ a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n = b 2 ⋯ ⋯ a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n = b m \begin{cases} a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=b_1 \\ a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2 \\ \cdots\quad\cdots \\ a_{m1}x_1+a_{m2}x_2+\cdots+a_{mn}x_n=b_m \end{cases} a11x1+a12x2++a1nxn=b1a21x1+a22x2++a2nxn=b2am1x1+am2x2++amnxn=bm
如果存在 n n n个常数 x 1 = s 1 , x 2 = s 2 , ⋯   , x n = s n x_1=s_1,x_2=s_2,\cdots,x_n=s_n x1=s1,x2=s2,,xn=sn 满足线性方程组的所有方程,则称为线性方程组的一个(solution)。方程组的所有解组成的集合称为这个方程组的解集

解线性方程组的一般方法,是把方程组用一个更容易解的等价方程组 (即有相同解集的方程组)代替。用来化简线性方程组的三种基本变换是:

(1) 互换两个方程的位置;
(2) 把某一个方程的所有项乘以一个非零常数;
(3) 把某一个方程加上另一个方程的常数倍;

以上三种变换称为高斯消元法(Gaussian Elimination)。

例如,解方程组
{ 2 x 2 −    x 3 = 7 x 1 +   x 2 + 2 x 3 = 0 x 1 +   x 2 −    x 3 = − 6 x 1 + 3 x 2 − 2 x 3 = 1 \begin{cases} \begin{alignedat}{4} &\quad 2x_2&-\ \ x_3 &= 7 \\ x_1&+\ x_2&+2x_3& = 0 \\ x_1&+\ x_2&-\ \ x_3& = -6 \\ x_1&+3x_2&-2x_3&=1 \end{alignedat} \end{cases} x1x1x12x2+ x2+ x2+3x2  x3+2x3  x32x3=7=0=6=1
经过基本变换把线性方程组化成阶梯形方程组
{ x 1 + x 2 − x 3 = − 6 2 x 2 − x 3 = 7 3 x 3 = 6 0 = 0 \begin{cases} \begin{alignedat}{4} x_1&+x_2&-x_3& = -6 \\ &\quad 2x_2&-x_3 &= 7 \\ &\quad &\quad 3x_3& = 6 \\ &\quad &\quad 0& = 0 \end{alignedat} \end{cases} x1+x22x2x3x33x30=6=7=6=0
还可以进一步变换为简化阶梯形方程组
{ x 1 = − 9 x 2 = 5 x 3 = 2 0 = 0 \begin{cases} x_1 & & &=-9 \\ & x_2 & & = 5 \\ & & x_3& = 2 \\ & & 0& = 0 \end{cases} x1x2x30=9=5=2=0
上面的简单例子代表了用消元法解线性方程组的一般方法和计算格式。

初等行变换

根据矩阵与向量的乘法定义,线性方程组可写为矩阵形式
A x = b A\mathbf x=\mathbf b Ax=b
其中
A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ] , x = [ x 1 x 2 ⋮ x n ] , b = [ b 1 b 2 ⋮ b n ] A=\begin{bmatrix} a_{11}&a_{12}&\cdots&a_{1n} \\ a_{21}&a_{22}&\cdots&a_{2n} \\ \vdots&\vdots&\ddots&\vdots \\ a_{m1}&a_{m2}&\cdots&a_{mn} \\ \end{bmatrix},\quad \mathbf x=\begin{bmatrix} x_1\\x_2\\\vdots\\x_n \end{bmatrix},\quad \mathbf b=\begin{bmatrix} b_1\\b_2\\\vdots\\b_n \end{bmatrix} A=a11a21am1a12a22am2a1na2namn,x=x1x2xn,b=b1b2bn
矩阵 A A A 称为系数矩阵 x \mathbf x x未知数向量 b \mathbf b b常数向量

从上节求解线性方程组的过程中,不难发现,只是对线性方程组的系数和常数项进行了运算。因此,线性方程组可以用它的系数和常数项来求解。

为求解方便,把常数向量添加到系数矩阵最后一列,构成的矩阵
A ˉ = [ A ∣ b ] = [ a 11 ⋯ a 1 n b 1 a 21 ⋯ a 2 n b 2 ⋮ ⋮ ⋱ ⋮ a m 1 ⋯ a m n b m ] \bar A=[A\mid b]=\begin{bmatrix}\begin{array}{ccc:c} a_{11}&\cdots&a_{1n}&b_1 \\ a_{21}&\cdots&a_{2n}&b_2 \\ \vdots&\vdots&\ddots&\vdots \\ a_{m1}&\cdots&a_{mn}&b_m \\ \end{array}\end{bmatrix} Aˉ=[Ab]=a11a21am1a1na2namnb1b2bm
称为方程组的增广矩阵(augmented matrix)。

初等行变换:上节所讲的三种基本变换对应于矩阵的下列变换:

(1) 行互换变换:对调矩阵的第 i i i行和第 j j j行 ,记为 r i ↔ r j r_i\lrarr r_j rirj
(2) 行倍乘变换:矩阵的第 i i i行乘以非零常数 k k k,记为 k r i kr_i kri
(3) 行倍加变换:将第 j j j行的元素倍加到第 i i i行,记作 r i + k r j r_i+kr_j ri+krj

称为矩阵的初等行变换(elementary row transformation)。

矩阵消元法:在解线性方程组时,把它的增广矩阵经过初等行变换化成行阶梯形矩阵,写出相应的阶梯形方程组 ,进行求解;或者一直化成简化行阶梯形矩阵,写出它表示的简化阶梯形方程组,从而立即得出解。

上节例子中,增广矩阵经过初等行变换可简化为
A ˉ = [ 0 2 − 1 7 1 1 2 0 1 1 − 1 − 6 1 3 − 2 1 ] → [ 1 1 − 1 − 6 0 2 − 1 7 0 0 3 6 0 0 0 0 ] = B 1 \bar A=\begin{bmatrix}\begin{array}{ccc:c} 0 & 2 & -1 & 7 \\ 1 & 1 & 2 & 0\\ 1 & 1 & -1 & -6 \\ 1 & 3 & -2 & 1 \end{array}\end{bmatrix}\to \begin{bmatrix}\begin{array}{ccc:c} 1 & 1 & -1 & -6 \\ 0 & 2 & -1 & 7\\ 0 & 0 & 3 & 6 \\ 0 & 0 & 0 & 0 \end{array}\end{bmatrix}=B_1 Aˉ=01112113121270611000120011306760=B1
称形如 B 1 B_1 B1 的矩阵为行阶梯形矩阵(Row Echelon Form,REF)。其特点是:

(1) 若有零行(元素全为零的行),零行均在非零行的下方;
(2) 非零行第一个非零元素(称为主元,pivot)以下的元素全为零。

使用初等行变换对行阶梯形矩阵进一步化简
B 1 = [ 1 1 − 1 − 6 0 2 − 1 7 0 0 3 6 0 0 0 0 ] → [ 1 0 0 − 9 0 1 0 5 0 0 1 2 0 0 0 0 ] = B 2 B_1=\begin{bmatrix}\begin{array}{ccc:c} 1 & 1 & -1 & -6 \\ 0 & 2 & -1 & 7\\ 0 & 0 & 3 & 6 \\ 0 & 0 & 0 & 0 \end{array}\end{bmatrix}\to\begin{bmatrix}\begin{array}{ccc:c} 1 & 0 & 0 & -9 \\ 0 & 1 & 0 & 5\\ 0 & 0 & 1 & 2 \\ 0 & 0 & 0 & 0 \end{array}\end{bmatrix}=B_2 B1=10001200113067601000010000109520=B2
称形如 B 2 B_2 B2 的矩阵为简化行阶梯形矩阵(Reduced Row Echelon Form,RREF)。其特点是:

(1) 每个非零行主元都是1;
(2) 主元所在列的其他元素都是零。

通过简化行阶梯形矩阵,我们可以直接写出解 x 1 = − 9 , x 2 = 5 , x 3 = 2 x_1=-9,x_2=5,x_3=2 x1=9,x2=5,x3=2

使用矩阵消元法,我们可以知道任何矩阵都可以经过有限次初等行变换化成行阶梯形矩阵,任何矩阵也可进一步化成简化行阶梯形矩阵

从最后的简化行阶梯形矩阵可以直接写出一般解,但注意把自由变量的系数变号移到等式右边。

线性方程组的解

假设某方程组的增广矩阵行已变换为阶梯形矩阵
[ 1 0 − 5 1 0 1 1 4 0 0 0 0 ] \begin{bmatrix}\begin{array}{ccc:c} 1 & 0 & -5 & 1 \\ 0 & 1 & 1 & 4\\ 0 & 0 & 0 & 0 \end{array}\end{bmatrix} 100010510140
对应的线性方程组是
{ x 1 − 5 x 3 = 1   x 2 + x 3 = 4 0 = 0 \begin{cases} \begin{alignedat}{4} x_1&&-5x_3& = 1 \\ &\quad\ x_2&+x_3 &= 4 \\ &\quad &\quad 0& =0 \end{alignedat} \end{cases} x1 x25x3+x30=1=4=0
方程组的解可显示表示为 x 1 = 1 + 5 x 3 ,   x 2 = 4 − x 3 x_1=1+5x_3,\ x_2=4-x_3 x1=1+5x3, x2=4x3 ,显然有无穷多组解。

n n n 元线性方程组的增广矩阵化成行阶梯形矩阵后,若有 r r r 个非零行,则行阶梯形矩阵有 r r r 个主元。以主元为系数的末知量称为主变量,剩下的 n − r n-r nr 个未知量称为自由变量,其值可任取。

假设某方程组的增广矩阵行已变换为阶梯形矩阵
[ 2 − 3 2 1 0 1 − 4 8 0 0 0 15 ] \begin{bmatrix}\begin{array}{ccc:c} 2 & -3 & 2 & 1 \\ 0 & 1 & -4 & 8\\ 0 & 0 & 0 & 15 \end{array}\end{bmatrix} 2003102401815
对应的线性方程组是
{ 2 x 1 − 3 x 2 + 2 x 3 = 1   x 2 − 4 x 3 = 8 0 = 15 \begin{cases} \begin{alignedat}{4} 2x_1&-3x_2&+2x_3& = 1 \\ &\quad\ x_2&-4x_3 &= 8 \\ &\quad &\quad 0& = 15 \end{alignedat} \end{cases} 2x13x2 x2+2x34x30=1=8=15
这个阶梯形方程组显然是矛盾的,故原方程组无解。

解的情况:线性方程组有解的充要条件是增广矩阵的增广列不是主元列,即行阶梯形方程组不包含矛盾方程。若线性方程组有解,则解有两种情况:(1) 当没有自由变量时,有唯 一解;(2) 当有自由变量是,有无穷多解。

向量方程

应用向量加法和数乘运算,线性方程组 A x = b A\mathbf x=\mathbf b Ax=b 可以写成向量方程
x 1 a 1 + x 2 a 2 + ⋯ + x n a n = b x_1\mathbf a_1+x_2\mathbf a_2+\cdots+x_n\mathbf a_n=\mathbf b x1a1+x2a2++xnan=b
其中 a 1 , a 2 , ⋯   , a n \mathbf a_1,\mathbf a_2,\cdots,\mathbf a_n a1,a2,,an 为系数矩阵 A A A 的列向量组, b \mathbf b b 为常数向量。它的一组解 s = ( x 1 , x 2 , ⋯   , x n ) T s=(x_1,x_2,\cdots,x_n)^T s=(x1,x2,,xn)T 称为方程组的解向量

例如,方程组
{ 2 x 1 − x 2 + x 3 = 4 4 x 1 + 2 x 2 − x 3 = − 1 \begin{cases} \begin{alignedat}{4} 2x_1&-x_2&+x_3& = 4 \\ 4x_1&+2x_2&-x_3& = -1 \end{alignedat} \end{cases} {2x14x1x2+2x2+x3x3=4=1
可以表述为
[ 2 4 ] x 1 + [ − 1 2 ] x 2 + [ 1 − 1 ] x 3 = [ 4 − 1 ] \begin{bmatrix}2\\4\end{bmatrix}x_1+ \begin{bmatrix}-1\\2\end{bmatrix}x_2+ \begin{bmatrix}1\\-1\end{bmatrix}x_3= \begin{bmatrix}4\\-1\end{bmatrix} [24]x1+[12]x2+[11]x3=[41]
既然可表示为向量的形式,那么就可以从向量的角度分析。向量方程是否有解的问题等价于判断常数向量 b \mathbf b b 能否由系数矩阵列向量组线性表示,即向量 b \mathbf b b 是否属于系数矩阵的列空间 col  A = span { a 1 , a 2 , ⋯   , a n } \text{col }A=\text{span}\{\mathbf a_1,\mathbf a_2,\cdots,\mathbf a_n\} col A=span{a1,a2,,an}

结论:方程 A x = b A\mathbf x=\mathbf b Ax=b有解的充要条件是 b \mathbf b b A A A 的各列的线性组合。

以线性变换的角度理解,希望找出未知向量 x \mathbf x x ,使得该向量在线性变换 A A A 的作用下变成已知向量 b \mathbf b b。因此,我们可以从逆变换的角度获得未知向量。显然,如果变换后维度压缩,方程不一定有解。即列空间的维度低于未知向量维度。

齐次线性方程组的解

常数项都为零的线性方程组 A x = 0 A\mathbf{x}=0 Ax=0 称为齐次线性方程组。向量方程为
x 1 a 1 + x 2 a 2 + ⋯ + x n a n = 0 x_1\mathbf a_1+x_2\mathbf a_2+\cdots+x_n\mathbf a_n=0 x1a1+x2a2++xnan=0

齐次线性方程组显然有一组解
x 1 = x 2 = ⋯ = x n = 0 x_1=x_2=\cdots=x_n=0 x1=x2==xn=0
这组解称为零解平凡解。除此之外的其他解称为非零解非平凡解

方程 A m × n x = 0 A_{m\times n}\mathbf{x}=0 Am×nx=0 有非零解等价于 A A A 的列向量组线性相关,即 rank ( A ) < n \text{rank}(A)<n rank(A)<n

齐次线性方程组的解有如下性质

  1. 如果 s 1 , s 2 s_1,s_2 s1,s2 是齐次线性方程组的两个解向量,则 s 1 + s 2 s_1+s_2 s1+s2 也是方程组的解向量。
  2. 如果 s s s 是齐次线性方程组的解向量,则对任意常数 k k k k s ks ks 也是方程组的解向量。

这两条性质只要直接代入向量方程进行验证就可以。

显然,系数矩阵为 A A A 的齐次线性方程组的解集
ker ⁡ A = { x ∣ A x = 0 } \ker A=\{\mathbf x|A\mathbf{x}=0\} kerA={xAx=0}
满足向量空间的条件, 称为零空间(nullspace)或(kernel)。解空间的一组基 s 1 , s 2 , ⋯   , s n − r s_1,s_2,\cdots,s_{n-r} s1,s2,,snr 称为该方程组的基础解系零空间的维数即为自由变量的个数

如果能找到基础解系,就能描述整个解空间。

定理

  1. 方程 A m × n x = 0 A_{m\times n}\mathbf{x}=0 Am×nx=0 有非零解的充要条件是 rank ( A ) < n \text{rank}(A)<n rank(A)<n
  2. 方程 A m × n x = 0 A_{m\times n}\mathbf{x}=0 Am×nx=0 基础解系中自由变量的个数等于 n − rank ( A ) n-\text{rank}(A) nrank(A)
  3. A A A 是向量空间 V V V 内的线性变换

dim ⁡ V = dim ⁡ ( range  A ) + dim ⁡ ( ker ⁡ A ) \dim V=\dim(\text{range }A)+\dim(\ker A) dimV=dim(range A)+dim(kerA)

可以用系数矩阵的初等行变换来求基础解系。

示例:求下列齐次线性方程组的解集。
{ x 2 − x 3 + x 4 − x 5 = 0 x 1 + x 3 + 2 x 4 − x 5 = 0 x 1 + x 2 + 3 x 4 − 2 x 5 = 0 2 x 1 + 2 x 2 + 6 x 4 − 3 x 5 = 0 \begin{cases} x_2-x_3+x_4-x_5=0 \\ x_1+x_3+2x_4-x_5=0 \\ x_1+x_2+3x_4-2x_5=0 \\ 2x_1+2x_2+6x_4-3x_5=0 \end{cases} x2x3+x4x5=0x1+x3+2x4x5=0x1+x2+3x42x5=02x1+2x2+6x43x5=0
解:先做矩阵消元法获得阶梯形矩阵和简化阶梯形矩阵
A = [ 0 1 − 1 1 − 1 1 0 1 2 − 1 1 1 0 3 − 2 2 2 0 6 − 3 ] → [ 1 0 1 2 − 1 0 1 − 1 1 − 1 0 0 0 0 1 0 0 0 0 0 ] → [ 1 0 1 2 0 0 1 − 1 1 0 0 0 0 0 1 0 0 0 0 0 ] A=\begin{bmatrix} 0&1&-1&1&-1 \\ 1&0&1&2&-1 \\ 1&1&0&3&-2 \\ 2&2&0&6&-3 \end{bmatrix}\to \begin{bmatrix} 1&0&1&2&-1 \\ 0&1&-1&1&-1 \\ 0&0&0&0&1 \\ 0&0&0&0&0 \end{bmatrix}\to \begin{bmatrix} 1&0&1&2&0 \\ 0&1&-1&1&0 \\ 0&0&0&0&1 \\ 0&0&0&0&0 \end{bmatrix} A=011210121100123611231000010011002100111010000100110021000010
因此
{ x 1 = − x 3 − 2 x 4 x 2 = x 3 − x 4 x 5 = 0 \begin{cases} x_1=-x_3-2x_4 \\ x_2=x_3-x_4 \\ x_5=0 \end{cases} x1=x32x4x2=x3x4x5=0
可写为解向量的形式
[ x 1 x 2 x 3 x 4 x 5 ] = x 3 [ − 1 1 1 0 0 ] + x 4 [ − 2 − 1 0 1 0 ] \begin{bmatrix}x_1 \\ x_2 \\ x_3 \\ x_4 \\ x_5\end{bmatrix}= x_3\begin{bmatrix}-1 \\ 1 \\ 1 \\ 0 \\ 0\end{bmatrix} +x_4\begin{bmatrix}-2\\-1\\0\\1\\0\end{bmatrix} x1x2x3x4x5=x311100+x421010

非齐次线性方程组的解

对于非齐次线性方程组 A x = 0 A\mathbf{x}=0 Ax=0 。判断向量方程 x 1 a 1 + x 2 a 2 + ⋯ + x n a n = b x_1\mathbf a_1+x_2\mathbf a_2+\cdots+x_n\mathbf a_n=\mathbf b x1a1+x2a2++xnan=b 是否有解,等价于判断常数向量 b \mathbf b b 是否属于 span { a 1 , a 2 , ⋯   , a n } \text{span}\{\mathbf a_1,\mathbf a_2,\cdots,\mathbf a_n\} span{a1,a2,,an}

判别定理:线性方程组有解的充要条件是其系数矩阵 A A A与增广矩阵 A ˉ \bar A Aˉ的秩相等 rank ( A ) = rank ( A ˉ ) \text{rank}(A)=\text{rank}(\bar A) rank(A)=rank(Aˉ)

通俗理解就是,变换后的阶梯形方程组不存在 0 = b 0=b 0=b 的矛盾方程。

解的结构:设 n n n 元非齐次线性方程组 rank ( A ) = rank ( A ˉ ) \text{rank}(A)=\text{rank}(\bar A) rank(A)=rank(Aˉ)

(1) 若 rank ( A ) = n \text{rank}(A)=n rank(A)=n,方程组有唯一解;
(2) 若 rank ( A ) < n \text{rank}(A)<n rank(A)<n,方程组有无穷多解。

非齐次线性方程组 A x = b A\mathbf x=\mathbf b Ax=b 对应的齐次线性方程组 A x = 0 A\mathbf x=0 Ax=0 称为导出方程组。解的关系:

  1. A x = b A\mathbf x=\mathbf b Ax=b 的任意两个解向量之差是 A x = 0 A\mathbf x=0 Ax=0 的一个解向量;
  2. A x = b A\mathbf x=\mathbf b Ax=b 的通解是其任一解向量与 A x = b A\mathbf x=\mathbf b Ax=b 通解之和。

如下图

请添加图片描述

示例:求下列线性方程组的全部解

{ x 1 + 4 x 2 − 5 x 3 = 0 2 x 1 − x 2 + 8 x 3 = 9 \begin{cases} \begin{alignedat}{4} x_1&+4x_2&-5x_3& = 0 \\ 2x_1&-x_2&+8x_3& = 9 \end{alignedat} \end{cases} {x12x1+4x2x25x3+8x3=0=9
解:对方程组的增广矩阵做初等行变换获得阶梯形矩阵和简化阶梯形矩阵
A ˉ = [ 1 4 − 5 0 2 − 1 8 9 ] → [ 1 4 − 5 0 0 − 9 18 9 ] → [ 1 0 3 4 0 1 − 2 1 ] \bar A=\begin{bmatrix}\begin{array}{ccc:c} 1&4&-5&0 \\ 2&-1&8&9 \end{array}\end{bmatrix}\to \begin{bmatrix}\begin{array}{ccc:c} 1&4&-5&0 \\ 0&-9&18&9 \end{array}\end{bmatrix}\to \begin{bmatrix}\begin{array}{ccc:c} 1&0&3&4 \\ 0&1&-2&1 \end{array}\end{bmatrix} Aˉ=[12415809][104951809][10013241]
因此
{ x 1 = 4 − 3 x 3 x 2 = 1 + 2 x 3 \begin{cases} x_1=4-3x_3 \\ x_2=1+2x_3 \end{cases} {x1=43x3x2=1+2x3
解向量的形式为
[ x 1 x 2 x 3 ] = [ 4 1 0 ] + x 3 [ − 3 2 1 ] \begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}= \begin{bmatrix}4\\1\\0\end{bmatrix} +x_3\begin{bmatrix}-3 \\ 2 \\ 1 \end{bmatrix} x1x2x3=410+x3321


http://www.niftyadmin.cn/n/5023079.html

相关文章

【海思SS626 | 开发环境】VMware17安装Ubuntu 18.04.6

目录 一、下载 Ubuntu 18.04.6 LTS二、VMware17创建虚拟机三、安装Ubuntu18.04LTS四、安装其他软件五、总结 一、下载 Ubuntu 18.04.6 LTS 问题&#xff1a;为什么要下载 Ubuntu18.04.6 LTS 而不是使用最新的&#xff0c;或者其他Linux发行版&#xff1f; 答&#xff1a;在ss6…

如何构建一个简单的前端框架

先让我来解释一下什么是前端框架。所谓的前端框架&#xff0c;就是一种能够让我们避免去写常规的HTML和JavaScript代码 <p id"cool-para"></p> <script>const coolPara Test;const el document.getElementById(cool-para);el.innerText coolPa…

aruco码DICT几乘几是啥含义,aruco.getPredefinedDictionary

dictionary aruco.getPredefinedDictionary(aruco.DICT_5X5_100) aruco.DICT_5X5_100中的5X5和100表示: - 5X5:表示ArUco标记是5x5像素大小的正方形格子组成。 - 100:表示这个字典包含100个不同的ArUco标记。aruco代码字典中包含多个不同的二进制marker,每个marker由一系列…

NFTScan 正式上线 TON NFTScan 浏览器!

2023 年 9 月 12 号&#xff0c;NFTScan 团队正式对外发布了 TON NFTScan 基础设施&#xff0c;将为 TON 生态的 NFT 开发者和用户提供简洁高效的 NFT 数据搜索查询服务。NFTScan 作为全球领先的 NFT 数据基础设施服务商&#xff0c;TON 是继 Bitcoin、Ethereum、BNBChain、Pol…

Anomalib实战之一:自定义数据集

Anomalib支持多种格式的数据集&#xff0c;包括MVTec AD和BeanTech等最先进的异常检测基准数据集。对于希望在自定义数据集上使用该库的用户&#xff0c;anomalib还提供了一个Folder datamodule&#xff0c;可以从文件系统的文件夹中加载数据集。本文的目的是使用Folder datamo…

第二十五章 Classes - 基于数据类型的属性

文章目录 第二十五章 Classes - 基于数据类型的属性基于数据类型的属性数据类型类覆盖数据类型类的参数使用其他属性方法 第二十五章 Classes - 基于数据类型的属性 基于数据类型的属性 当定义属性并将其类型指定为数据类型类时&#xff0c;可以使用特殊选项来定义和使用该属…

《使用 Helm 管理 Kubernetes 应用程序的最佳实践》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…

构建优秀的测试自动化框架的10大关键点

自动化测试框架的设计和实现对于提高测试效率和质量起着至关重要的作用。经过多年实践探索&#xff0c;我认为一个优秀可靠的测试自动化框架应该具备以下几个关键点: 充分考虑框架的可扩展性 典型的方式是核心框架处理通用逻辑&#xff0c;而测试用例类继承核心框架&#xff0…