线性代数的本质(三)——线性方程组

news2024/11/24 18:30:40

文章目录

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

线性方程组

高斯消元法

客观世界最简单的数量关系是均匀变化的关系。在均匀变化问题中,列出的方程组是一次方程组,我们称之为线性方程组(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ˉ= 0111211312127061 1000120011306760 =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= 1000120011306760 1000010000109520 =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= 01121012110012361123 10000100110021001110 10000100110021000010
因此
{ 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 =x3 11100 +x4 21010

非齐次线性方程组的解

对于非齐次线性方程组 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 +x3 321

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1015352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

语音识别算法设计-基于MFCC+DTW算法-Matlab+C代码版本

语音识别算法设计-基于MFCCDTW算法-MatlabC代码&#xff08;全定点加速&#xff09;版本 语音识别算法主要涉及特征提取、统计建模和识别技术等几个关键方面。在此使用MFCCDTW算法的方式给出语音识别的代码&#xff0c;首先进行简单介绍。 Matlab版本代码地址&#xff1a;http…

基于STC15单片机温度光照检测系统-proteus仿真-源程序

一、系统方案 1、本设计采用STC15单片机作为主控器。 2、光敏电阻采集光照值送到液晶1602和串口显示。 3、DS18B20采集温度值&#xff0c;送到液晶1602和串口显示。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 /-----------------------…

Vector 模拟实现

前言 本文将会向您介绍如何模拟实现vector 引入 Vector是一种动态数组&#xff0c;也是C标准库中的容器之一。它提供了一种存储和操作一系列元素的方式&#xff0c;类似于数组&#xff0c;但具有更多的功能和灵活性。 Vector可以存储不同类型的元素&#xff0c;并且可以根据…

关于老项目从JDK8升级到JDK17所需要注意的细节

文章目录 ☀️1.关于老项目从JDK8升级到JDK17所需要注意的细节&#x1f338;1.1.更新JDK&#x1f338;1.2.修改Idea中的JDK版本&#x1f338;1.3.关于修改过程中遇到的异常&#x1f338;1.4.IDEA工具栏操作Maven正常&#xff0c;但使用mvn命令运行就报错 ☀️1.关于老项目从JDK…

烧结金属材料和硬质合金弹性模量的测定

声明 本文是学习GB-T 5166-2023 烧结金属材料和硬质合金弹性模量的测定. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件描述了烧结金属材料和硬质合金弹性模量的测定方法。 本文件适用于采用纵向振动法测定烧结金属材料和硬质合金的动…

Windows 10任务栏点不动了,右下角wifi、音量也都消失了,只剩下个时间

Windows 10任务栏点不动了&#xff0c;右下角wifi、音量也都消失了&#xff0c;只剩下个时间 解决方法图例如下 解决方法 快捷键Ctrlaltdelete&#xff0c;选择任务管理器打开&#xff0c;选择“文件”-“运行新任务”&#xff1a;就会打开运行窗口&#xff0c;输入&#xff1…

动态规划:子序列问题(C++)

动态规划&#xff1a;子序列问题 前言子序列问题1.最长递增子序列&#xff08;中等&#xff09;2.摆动序列&#xff08;中等&#xff09;3.最长递增子序列的个数&#xff08;中等&#xff09;4.最长数对链&#xff08;中等&#xff09;5.最长定差子序列&#xff08;中等&#x…

SQL优化--排序优化(order by)

Using filesort : 通过表的索引或全表扫描&#xff0c;读取满足条件的数据行&#xff0c;然后在排序缓冲区sort buffer中完成排序操作&#xff0c;所有不是通过索引直接返回排序结果的排序都叫 FileSort 排序。 Using index : 通过有序索引顺序扫描直接返回有序数据&#xff0c…

linux驱动开发day6--(epoll实现IO多路复用、信号驱动IO、设备树以及节点和属性解析相关API使用)

一、IO多路复用--epoll实现 1.核心&#xff1a; 红黑树、一张表以及三个接口、 2.实现过程及API 1&#xff09;创建epoll句柄/创建红黑树根节点 int epfdepoll_create(int size--无意义&#xff0c;>0即可)----------成功&#xff1a;返回根节点对应文件描述符&#xf…

计算机二级python基础题刷题笔记(二)

1、等比数列 1、获得用户输入的以逗号分隔的三个数字&#xff0c;记为a,b,c,以a为起始数值&#xff0c;b为前后相邻数的比值&#xff0c;c为数列长度 &#xff0c;产生一个等比数列&#xff0c;将这个数列以逗号分隔的形式输出&#xff0c;最后一个元素输出后无逗号 等比数列公…

匿名管道-

因为父子进程是共享文件描述符的环形队列&#xff0c;只能读一次 会被后面覆盖 /*#include <unistd.h>int pipe(int pipefd[2]);功能&#xff1a;创建一个匿名管道&#xff0c;用于进程间通信参数&#xff1a;int 类型数组 &#xff0c;是传出参数pipefd[0]是管道读端 p…

企业级SpringBoot单体项目模板 ——整合MySQL和Mybatis-plus

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;Springboot、数据库、Git、项目☀️每日 一言&#xff1a;野心是对梦想最好的致敬&#xff01; 上回我们已经成功的创建了一个SpringBoot的单体项目并测试启动并了&#xff0c;但是光有个空架子是…

【独立全开源】点大商城V2-2.5.2 新增 微信小程序隐私协议弹窗

独立全开源版本&#xff1a;点大商城V2小程序公众号模块&#xff0c;版本更新至2.5.2&#xff0c;前端为UNiapp、这个是源码后端开源&#xff0c;购买包更新&#xff0c;包修复、 更新为覆盖升级&#xff0c;源码更新了&#xff1a;新增 微信小程序隐私协议弹窗 测试环境&…

肖sir__mysql之多表练习题__007

已知2张基本表&#xff1a;部门表&#xff1a;dept &#xff08;部门号&#xff0c;部门名称&#xff09;;员工表 emp&#xff08;员工号&#xff0c;员工姓名&#xff0c;年龄&#xff0c;入职时间&#xff0c;收入&#xff0c;部门号&#xff09; 1&#xff1a;dept表中有4条…

C++ Primer 第4章 表达式

C Primer 第4章 表达式 4.1 基础4.1.1 基本概念一、组合运算符和运算对象二、运算对象转换三、重载运算符四、左值和右值 4.1.2 优先级与结合律一、括号无视优先级与结合律二、优先级与结合律有何影响 4.1.3 求值顺序一、求值顺序、优先级、结合律 4.2 算术运算符练习 4.3 逻辑…

图片拖动验证效果(源码)

JS案例图片拖动验证 &#x1f31f;效果展示 &#x1f31f;前置知识 CSS sprite 精灵图 &#x1f31f; 代码实现 页面搭建 距离计算 逻辑部分 随机生成背景图片 计算拖动图块和空缺图块的位置 绑定事件 &#x1f31f;写在最后 &#x1f31f;效果展示 &#x1f31f;…

六、不root不magisk不xposed lsposed frida原生修改定位

前言常用风控APP检测1.Aida64检测2.momo检测3.微霸检测4.cellular-z检测 厂商测试总结 前言 不root不戴面具 不xposed lsposed frida&#xff0c;不分身&#xff0c;不多开&#xff0c;最完美的原生修改定位。 常用风控APP检测 先看效果再说原理&#xff0c;先过一遍环境 1.Ai…

mysql内连接与外连接详解

内连接与外连接 内连接外连接 在数据库中&#xff0c;连接操作是一种把两个或者多个表的记录组合在一起的操作&#xff0c;常用的有内连接&#xff08;Inner Join&#xff09;、外连接&#xff08;Outer Join&#xff09;等。 内连接 内连接&#xff08;Inner Join&#xff0…

STM32 Cubemx 通用定时器 General-Purpose Timers同步

文章目录 前言简介cubemx配置 前言 持续学习stm32中… 简介 通用定时器是一个16位的计数器&#xff0c;支持向上up、向下down与中心对称up-down三种模式。可以用于测量信号脉宽&#xff08;输入捕捉&#xff09;&#xff0c;输出一定的波形&#xff08;比较输出与PWM输出&am…

mysql 日志总结

mysql 根据日志的功能&#xff0c;分6种 慢查询日志&#xff1a;记录所有执行时间超过 long_query_time 的所有查询&#xff0c;方便我们对查询进行优化通用查询日志&#xff1a;记录所有连接的起始时间和终止时间&#xff0c;以及连接发送给数据库服务器的所有指令&#xff0…