矩阵求逆的几种方式

矩阵求逆的几种方式(以二阶为例)

在这里插入图片描述

矩阵求逆的方法有多种,以下是常用的几种方式总结:

1. 行列式公式法

这是最常见的方法,适用于 2 × 2 2 \times 2 2×2矩阵。
对于矩阵:
Φ = [ a b c d ] , \Phi = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, Φ=[acbd],
其逆矩阵为:
Φ − 1 = 1 det ( Φ ) [ d − b − c a ] , \Phi^{-1} = \frac{1}{\text{det}(\Phi)} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix}, Φ1=det(Φ)1[dcba],
前提是行列式 det ( Φ ) = a d − b c ≠ 0 \text{det}(\Phi) = ad - bc \neq 0 det(Φ)=adbc=0

2. 伴随矩阵法

适用于任意 n × n n \times n n×n矩阵,特别是在符号化计算中常用。
步骤

  1. 计算矩阵的代数余子式,构造伴随矩阵 adj ( Φ ) \text{adj}(\Phi) adj(Φ)
  2. 使用公式:
    Φ − 1 = 1 det ( Φ ) ⋅ adj ( Φ ) . \Phi^{-1} = \frac{1}{\text{det}(\Phi)} \cdot \text{adj}(\Phi). Φ1=det(Φ)1adj(Φ).
    对于 2 × 2 2 \times 2 2×2矩阵:
    adj ( Φ ) = [ d − b − c a ] . \text{adj}(\Phi) = \begin{bmatrix} d & -b \\ -c & a \end{bmatrix}. adj(Φ)=[dcba].

以下是** 2 × 2 2 \times 2 2×2矩阵伴随矩阵**的推导过程:

2.1. 伴随矩阵定义

给定矩阵:
Φ = [ a b c d ] , \Phi = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, Φ=[acbd],
伴随矩阵 adj ( Φ ) \text{adj}(\Phi) adj(Φ) Φ \Phi Φ的代数余子式矩阵的转置。

2.2. 求代数余子式

代数余子式 A i j A_{ij} Aij定义为:
A i j = ( − 1 ) i + j ⋅ M i j , A_{ij} = (-1)^{i+j} \cdot M_{ij}, Aij=(1)i+jMij,
其中 M i j M_{ij} Mij是去掉矩阵 Φ \Phi Φ i i i行、第 j j j列后得到的余矩阵的行列式。

对于 2 × 2 2 \times 2 2×2矩阵 Φ \Phi Φ,每个代数余子式计算如下:

  1. 计算 A 11 A_{11} A11
    A 11 = ( − 1 ) 1 + 1 ⋅ det [ d ] = 1 ⋅ d = d . A_{11} = (-1)^{1+1} \cdot \text{det}\begin{bmatrix} d \end{bmatrix} = 1 \cdot d = d. A11=(1)1+1det[d]=1d=d.

  2. 计算 A 12 A_{12} A12
    A 12 = ( − 1 ) 1 + 2 ⋅ det [ c ] = − 1 ⋅ c = − c . A_{12} = (-1)^{1+2} \cdot \text{det}\begin{bmatrix} c \end{bmatrix} = -1 \cdot c = -c. A12=(1)1+2det[c]=1c=c.

  3. 计算 A 21 A_{21} A21
    A 21 = ( − 1 ) 2 + 1 ⋅ det [ b ] = − 1 ⋅ b = − b . A_{21} = (-1)^{2+1} \cdot \text{det}\begin{bmatrix} b \end{bmatrix} = -1 \cdot b = -b. A21=(1)2+1det[b]=1b=b.

  4. 计算 A 22 A_{22} A22
    A 22 = ( − 1 ) 2 + 2 ⋅ det [ a ] = 1 ⋅ a = a . A_{22} = (-1)^{2+2} \cdot \text{det}\begin{bmatrix} a \end{bmatrix} = 1 \cdot a = a. A22=(1)2+2det[a]=1a=a.

2.3. 构造代数余子式矩阵

将上述代数余子式按原矩阵 Φ \Phi Φ的顺序排列,得到代数余子式矩阵:
代数余子式矩阵 = [ A 11 A 12 A 21 A 22 ] = [ d − c − b a ] . \text{代数余子式矩阵} = \begin{bmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{bmatrix} =\begin{bmatrix} d & -c \\ -b & a \end{bmatrix}. 代数余子式矩阵=[A11A21A12A22]=[dbca].

2.4. 求伴随矩阵

伴随矩阵是代数余子式矩阵的转置:
adj ( Φ ) = [ d − c − b a ] T = [ d − b − c a ] . \text{adj}(\Phi) = \begin{bmatrix} d & -c \\ -b & a\end{bmatrix}^T= \begin{bmatrix} d & -b \\ -c & a \end{bmatrix}. adj(Φ)=[dbca]T=[dcba].

因此对于 2 × 2 2 \times 2 2×2矩阵:
Φ = [ a b c d ] , \Phi = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, Φ=[acbd],
其伴随矩阵为:
adj ( Φ ) = [ d − b − c a ] . \text{adj}(\Phi) = \begin{bmatrix} d & -b \\ -c & a \end{bmatrix}. adj(Φ)=[dcba].

3. 初等行变换法(高斯-约旦消元法)

通过将矩阵扩展为一个分块矩阵:
[ Φ ∣ I ] , [\Phi | I], [Φ∣I],
然后对左边矩阵执行初等行变换,直到其变成单位矩阵 I I I,右侧的矩阵就是逆矩阵 Φ − 1 \Phi^{-1} Φ1
以下是利用高斯-约旦消元法求矩阵逆矩阵的详细步骤(以 2 × 2 2 \times 2 2×2矩阵为例):

3.1. 问题描述

给定一个 2 × 2 2 \times 2 2×2矩阵:
Φ = [ a b c d ] , \Phi = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, Φ=[acbd],
目标是通过初等行变换计算其逆矩阵 Φ − 1 \Phi^{-1} Φ1

3.2. 扩展增广矩阵

Φ \Phi Φ扩展为增广矩阵:
[ Φ ∣ I ] = [ a b 1 0 c d 0 1 ] . [\Phi | I] = \begin{bmatrix} a & b & 1 & 0 \\ c & d & 0 & 1 \end{bmatrix}. [Φ∣I]=[acbd1001].

目标是通过行变换将左侧矩阵变成单位矩阵 I I I,右侧变成逆矩阵 Φ − 1 \Phi^{-1} Φ1

3.3 高斯-约旦消元法步骤
步骤 1:将 [ 1 , 1 ] [1,1] [1,1]位置元素变为1(主元化)

通过行变换使 a a a变为1。若 a ≠ 0 a \neq 0 a=0,直接将第1行除以 a a a
R 1 → R 1 a , R_1 \to \frac{R_1}{a}, R1aR1,
增广矩阵变为:
[ 1 b a 1 a 0 c d 0 1 ] . \begin{bmatrix} 1 & \frac{b}{a} & \frac{1}{a} & 0 \\ c & d & 0 & 1 \end{bmatrix}. [1cabda1001].

步骤 2:消去第2行的第1列元素

将第2行的第1列元素 c c c消为0:
R 2 → R 2 − c ⋅ R 1 , R_2 \to R_2 - c \cdot R_1, R2R2cR1,
增广矩阵变为:
[ 1 b a 1 a 0 0 d − b c a − c a 1 ] . \begin{bmatrix} 1 & \frac{b}{a} & \frac{1}{a} & 0 \\ 0 & d - \frac{bc}{a} & -\frac{c}{a} & 1 \end{bmatrix}. [10abdabca1ac01].

步骤 3:将 [ 2 , 2 ] [2,2] [2,2]位置元素变为1(主元化)

通过行变换使 d − b c a d - \frac{bc}{a} dabc变为1。若 d − b c a ≠ 0 d - \frac{bc}{a} \neq 0 dabc=0,将第2行除以该值:
R 2 → R 2 d − b c a , R_2 \to \frac{R_2}{d - \frac{bc}{a}}, R2dabcR2,
增广矩阵变为:
[ 1 b a 1 a 0 0 1 − c a ( d − b c a ) 1 d − b c a ] . \begin{bmatrix} 1 & \frac{b}{a} & \frac{1}{a} & 0 \\ 0 & 1 & \frac{-c}{a(d - \frac{bc}{a})} & \frac{1}{d - \frac{bc}{a}} \end{bmatrix}. [10ab1a1a(dabc)c0dabc1].

步骤 4:消去第1行的第2列元素

将第1行的第2列元素 b a \frac{b}{a} ab消为0:
R 1 → R 1 − b a ⋅ R 2 , R_1 \to R_1 - \frac{b}{a} \cdot R_2, R1R1abR2,
增广矩阵变为:
[ 1 0 d det ( Φ ) − b det ( Φ ) 0 1 − c det ( Φ ) a det ( Φ ) ] , \begin{bmatrix} 1 & 0 & \frac{d}{\text{det}(\Phi)} & \frac{-b}{\text{det}(\Phi)} \\ 0 & 1 & \frac{-c}{\text{det}(\Phi)} & \frac{a}{\text{det}(\Phi)} \end{bmatrix}, [1001det(Φ)ddet(Φ)cdet(Φ)bdet(Φ)a],
其中 det ( Φ ) = a d − b c \text{det}(\Phi) = ad - bc det(Φ)=adbc

最终,左侧已变成单位矩阵 I I I,右侧即为逆矩阵 Φ − 1 \Phi^{-1} Φ1
Φ − 1 = 1 det ( Φ ) [ d − b − c a ] , \Phi^{-1} = \frac{1}{\text{det}(\Phi)} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix}, Φ1=det(Φ)1[dcba],
前提是 det ( Φ ) ≠ 0 \text{det}(\Phi) \neq 0 det(Φ)=0

4. 数值计算法(如LU分解法)

对于数值计算,通过矩阵分解技术(如LU分解)来求解逆矩阵:

  1. 将矩阵分解为 Φ = L U \Phi = LU Φ=LU的形式;
  2. 分别解两个三角方程,最终获得逆矩阵。
    此方法更适合大规模矩阵的计算,但对于 2 × 2 2 \times 2 2×2矩阵意义有限。

以下是利用LU分解法求逆矩阵的详细步骤:

4.1. 问题描述

给定一个 2 × 2 2 \times 2 2×2矩阵:
Φ = [ a b c d ] \Phi = \begin{bmatrix} a & b \\ c & d \end{bmatrix} Φ=[acbd]

目标是通过LU分解计算其逆矩阵 Φ − 1 \Phi^{-1} Φ1

4.2. LU分解概念

LU分解将矩阵 Φ \Phi Φ分解为下列形式:
Φ = L U , \Phi = LU, Φ=LU,
其中:

  • L L L为下三角矩阵,主对角线元素为1;
  • U U U为上三角矩阵。

对于 2 × 2 2 \times 2 2×2矩阵,分解过程如下:
L = [ 1 0 l 21 1 ] , U = [ u 11 u 12 0 u 22 ] . L = \begin{bmatrix} 1 & 0 \\ l_{21} & 1 \end{bmatrix}, \quad U = \begin{bmatrix} u_{11} & u_{12} \\ 0 & u_{22} \end{bmatrix}. L=[1l2101],U=[u110u12u22].

4.3. LU分解步骤
步骤 1:初始化

假设 Φ = L U \Phi = LU Φ=LU,则有:
[ a b c d ] = [ 1 0 l 21 1 ] [ u 11 u 12 0 u 22 ] . \begin{bmatrix} a & b \\ c & d \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ l_{21} & 1 \end{bmatrix} \begin{bmatrix} u_{11} & u_{12} \\ 0 & u_{22} \end{bmatrix}. [acbd]=[1l2101][u110u12u22].
通过矩阵乘法,得到:
[ a b c d ] = [ u 11 u 12 l 21 u 11 l 21 u 12 + u 22 ] . \begin{bmatrix} a & b \\ c & d \end{bmatrix} = \begin{bmatrix} u_{11} & u_{12} \\ l_{21} u_{11} & l_{21} u_{12} + u_{22} \end{bmatrix}. [acbd]=[u11l21u11u12l21u12+u22].

步骤 2:逐元素比较,确定 L L L U U U的元素
  1. 比较 [ 1 , 1 ] [1,1] [1,1]位置元素:
    u 11 = a . u_{11} = a. u11=a.
  2. 比较 [ 1 , 2 ] [1,2] [1,2]位置元素:
    u 12 = b . u_{12} = b. u12=b.
  3. 比较 [ 2 , 1 ] [2,1] [2,1]位置元素:
    l 21 = c u 11 = c a . l_{21} = \frac{c}{u_{11}} = \frac{c}{a}. l21=u11c=ac.
  4. 比较 [ 2 , 2 ] [2,2] [2,2]位置元素:
    u 22 = d − l 21 u 12 = d − c a ⋅ b . u_{22} = d - l_{21} u_{12} = d - \frac{c}{a} \cdot b. u22=dl21u12=dacb.

最终得到:
L = [ 1 0 c a 1 ] , U = [ a b 0 d − b c a ] . L = \begin{bmatrix} 1 & 0 \\ \frac{c}{a} & 1 \end{bmatrix}, \quad U = \begin{bmatrix} a & b \\ 0 & d - \frac{bc}{a} \end{bmatrix}. L=[1ac01],U=[a0bdabc].

4. 求逆矩阵 Φ − 1 \Phi^{-1} Φ1

LU分解完成后,通过分块求逆的方式得到结果。

步骤 1:解 L Y = I LY = I LY=I(前向替代)

Φ − 1 \Phi^{-1} Φ1分为两部分:
L Y = [ 1 0 c a 1 ] [ y 11 y 12 y 21 y 22 ] = [ 1 0 0 1 ] . LY = \begin{bmatrix} 1 & 0 \\ \frac{c}{a} & 1 \end{bmatrix} \begin{bmatrix} y_{11} & y_{12} \\ y_{21} & y_{22} \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}. LY=[1ac01][y11y21y12y22]=[1001].
逐行解得:

  1. 第1行:
    y 11 = 1 , y 12 = 0. y_{11} = 1, \quad y_{12} = 0. y11=1,y12=0.
  2. 第2行:
    y 21 = − c a , y 22 = 1. y_{21} = -\frac{c}{a}, \quad y_{22} = 1. y21=ac,y22=1.

因此:
Y = [ 1 0 − c a 1 ] . Y = \begin{bmatrix} 1 & 0 \\ -\frac{c}{a} & 1 \end{bmatrix}. Y=[1ac01].

步骤 2:解 U Z = Y UZ = Y UZ=Y(后向替代)

[ a b 0 d − b c a ] [ z 11 z 12 z 21 z 22 ] = [ 1 0 − c a 1 ] . \begin{bmatrix} a & b \\ 0 & d - \frac{bc}{a} \end{bmatrix} \begin{bmatrix} z_{11} & z_{12} \\ z_{21} & z_{22} \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ -\frac{c}{a} & 1 \end{bmatrix}. [a0bdabc][z11z21z12z22]=[1ac01].
逐行解得:

  1. 第2行:
    z 21 = − c a d − b c a = − c a d − b c , z 22 = 1 d − b c a = a a d − b c . z_{21} = \frac{-\frac{c}{a}}{d - \frac{bc}{a}} = \frac{-c}{ad - bc}, \quad z_{22} = \frac{1}{d - \frac{bc}{a}} = \frac{a}{ad - bc}. z21=dabcac=adbcc,z22=dabc1=adbca.
  2. 第1行:
    z 11 = 1 − b ⋅ z 21 a = d a d − b c , z 12 = 0 − b ⋅ z 22 a = − b a d − b c . z_{11} = \frac{1 - b \cdot z_{21}}{a} = \frac{d}{ad - bc}, \quad z_{12} = \frac{0 - b \cdot z_{22}}{a} = \frac{-b}{ad - bc}. z11=a1bz21=adbcd,z12=a0bz22=adbcb.

最终得到:
Z = [ d a d − b c − b a d − b c − c a d − b c a a d − b c ] . Z = \begin{bmatrix} \frac{d}{ad - bc} & \frac{-b}{ad - bc} \\ \frac{-c}{ad - bc} & \frac{a}{ad - bc} \end{bmatrix}. Z=[adbcdadbccadbcbadbca].

因此,逆矩阵为:
Φ − 1 = Z = 1 det ( Φ ) [ d − b − c a ] . \Phi^{-1} = Z = \frac{1}{\text{det}(\Phi)} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix}. Φ1=Z=det(Φ)1[dcba].

LU分解法通过矩阵分解简化了求解逆矩阵的过程,特别是对于高维矩阵,通过分解后的前向替代和后向替代显著提高了计算效率。

5. 符号化工具或计算机软件

如使用数学软件(Matlab、NumPy)直接调用内置函数:

  • NumPy: np.linalg.inv(Phi)
  • Matlab: inv(Phi)

这类方法内部可能实现了上述的数值算法,适合工程计算。

6. 定义验证法

利用逆矩阵的定义 Φ Φ − 1 = I \Phi \Phi^{-1} = I ΦΦ1=I,通过代数方程的形式验证或构造满足该条件的矩阵。
例如,对于简单的 2 × 2 2 \times 2 2×2矩阵,可以手动解联立方程组获得逆矩阵。

6.1. 问题描述

给定一个 2 × 2 2 \times 2 2×2矩阵:
Φ = [ a b c d ] , \Phi = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, Φ=[acbd],
我们要求矩阵 Φ \Phi Φ的逆矩阵 Φ − 1 \Phi^{-1} Φ1,并利用定义 Φ Φ − 1 = I \Phi \Phi^{-1} = I ΦΦ1=I来求解。

我们假设 Φ − 1 \Phi^{-1} Φ1为:
Φ − 1 = [ x y z w ] . \Phi^{-1} = \begin{bmatrix} x & y \\ z & w \end{bmatrix}. Φ1=[xzyw].

6.2. 利用矩阵乘法公式

根据定义 Φ Φ − 1 = I \Phi \Phi^{-1} = I ΦΦ1=I,我们可以写出方程:
[ a b c d ] [ x y z w ] = [ 1 0 0 1 ] . \begin{bmatrix} a & b \\ c & d \end{bmatrix} \begin{bmatrix} x & y \\ z & w \end{bmatrix} =\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}. [acbd][xzyw]=[1001].

进行矩阵乘法,得到:
[ a x + b z a y + b w c x + d z c y + d w ] = [ 1 0 0 1 ] . \begin{bmatrix} ax + bz & ay + bw \\ cx + dz & cy + dw \end{bmatrix} =\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}. [ax+bzcx+dzay+bwcy+dw]=[1001].

6.3. 通过逐元素比较构造方程

从上面的等式中,我们得到以下4个方程:

  1. 第一行第一列:
    a x + b z = 1. ax + bz = 1. ax+bz=1.

  2. 第一行第二列:
    a y + b w = 0. ay + bw = 0. ay+bw=0.

  3. 第二行第一列:
    c x + d z = 0. cx + dz = 0. cx+dz=0.

  4. 第二行第二列:
    c y + d w = 1. cy + dw = 1. cy+dw=1.

这些方程构成了一个线性方程组,接下来我们解这个方程组。

6.4. 解联立方程组

为了得到 x , y , z , w x, y, z, w x,y,z,w的值,我们可以按照以下步骤进行解算。

步骤 1:解第3个方程

从第3个方程:
c x + d z = 0 , cx + dz = 0, cx+dz=0,
解得:
z = − c d x . z = -\frac{c}{d}x. z=dcx.

步骤 2:代入第1个方程

z = − c d x z = -\frac{c}{d}x z=dcx代入第1个方程:
a x + b ( − c d x ) = 1 , ax + b\left(-\frac{c}{d}x\right) = 1, ax+b(dcx)=1,
得到:
a x − b c d x = 1. ax - \frac{bc}{d}x = 1. axdbcx=1.
提取 x x x,得到:
x ( a − b c d ) = 1. x\left(a - \frac{bc}{d}\right) = 1. x(adbc)=1.
因此:
x = d a d − b c . x = \frac{d}{ad - bc}. x=adbcd.

步骤 3:解第4个方程

从第4个方程:
c y + d w = 1 , cy + dw = 1, cy+dw=1,
解得:
w = 1 − c y d . w = \frac{1 - cy}{d}. w=d1cy.

步骤 4:代入第2个方程

w = 1 − c y d w = \frac{1 - cy}{d} w=d1cy代入第2个方程:
a y + b ( 1 − c y d ) = 0 , ay + b\left(\frac{1 - cy}{d}\right) = 0, ay+b(d1cy)=0,
得到:
a y + b ( 1 − c y ) d = 0 , ay + \frac{b(1 - cy)}{d} = 0, ay+db(1cy)=0,
整理后:
a y + b d − b c d y = 0. ay + \frac{b}{d} - \frac{bc}{d}y = 0. ay+dbdbcy=0.
提取 y y y,得到:
y ( a − b c d ) = − b d . y\left(a - \frac{bc}{d}\right) = -\frac{b}{d}. y(adbc)=db.
因此:
y = − b a d − b c . y = \frac{-b}{ad - bc}. y=adbcb.

步骤 5:解 w w w

y = − b a d − b c y = \frac{-b}{ad - bc} y=adbcb代入 w = 1 − c y d w = \frac{1 - cy}{d} w=d1cy
w = 1 − c ( − b a d − b c ) d = d a d − b c . w = \frac{1 - c\left(\frac{-b}{ad - bc}\right)}{d} = \frac{d}{ad - bc}. w=d1c(adbcb)=adbcd.

#3## 6.5. 最终结果
通过以上步骤,我们得到了 Φ − 1 \Phi^{-1} Φ1的各个元素:
Φ − 1 = [ d a d − b c − b a d − b c − c a d − b c a a d − b c ] . \Phi^{-1} = \begin{bmatrix} \frac{d}{ad - bc} & \frac{-b}{ad - bc} \\ \frac{-c}{ad - bc} & \frac{a}{ad - bc} \end{bmatrix}. Φ1=[adbcdadbccadbcbadbca].
利用逆矩阵的定义 Φ Φ − 1 = I \Phi \Phi^{-1} = I ΦΦ1=I,我们通过构造并解联立方程组的方法成功求得了 2 × 2 2 \times 2 2×2矩阵的逆矩阵。该方法虽然手动推导较为繁琐,但对于理解逆矩阵的性质和计算过程具有重要的理论意义。

7. 比较总结

方法特点适用场景
行列式公式法直接计算,简单明了小规模矩阵
伴随矩阵法适用于符号化求解,但计算代数余子式较繁琐手动推导或符号化运算
初等行变换法理论基础强,操作灵活理论学习与推导
数值计算法效率高,适合大矩阵工程计算与编程实现
符号化工具或函数快捷简洁,依赖工具实际工程问题求解
定义验证法基础方法,计算量较大理论验证与构造

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【优选算法篇】:深入浅出位运算--性能优化的利器

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:优选算法篇–CSDN博客 文章目录 一.位运算一.位运算概述二.常见的位运算操作符三.常见的位运…

每日十题八股-2025年1月12日

1.为什么四次挥手之后要等2MSL? 2.服务端出现大量的timewait有哪些原因? 3.TCP和UDP区别是什么? 4.TCP为什么可靠传输 5.怎么用udp实现http? 6.tcp粘包怎么解决? 7.TCP的拥塞控制介绍一下? 8.描述一下打开百度首页后发生的网络过…

微信小程序——创建滑动颜色条

在微信小程序中,你可以使用 slider 组件来创建一个颜色滑动条。以下是一个简单的示例,展示了如何实现一个颜色滑动条,该滑动条会根据滑动位置改变背景颜色。 步骤一:创建小程序项目 首先,使用微信开发者工具创建一个新…

嵌入式Linux之文件IO

一、标准IO库 1.1 打开/关闭文件 fopen 新建 fopen_test.c&#xff0c;写入以下内容&#xff1a; #include <stdio.h> int main() {/* 打开文件函数&#xff1a;FILE *fopen (const char *__restrict __filename,const char *__restrict __modes)参数&#xff1a;c…

HTML5实现好看的端午节网页源码

HTML5实现好看的端午节网页源码 前言一、设计来源1.1 网站首页界面1.2 登录注册界面1.3 端午节由来界面1.4 端午节习俗界面1.5 端午节文化界面1.6 端午节美食界面1.7 端午节故事界面1.8 端午节民谣界面1.9 联系我们界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 H…

【2024年华为OD机试】(A卷,100分)- 单词倒序(Java JS PythonC/C++)

一、问题描述 题目描述 输入单行英文句子&#xff0c;里面包含英文字母&#xff0c;空格以及,.?三种标点符号&#xff0c;请将句子内每个单词进行倒序&#xff0c;并输出倒序后的语句。 输入描述 输入字符串S&#xff0c;S的长度 1 ≤ N ≤ 100 输出描述 输出倒序后的字…

插入实体自增主键太长,mybatis-plaus自增主键

1、问题 spring-boot整合mybtais执行insert语句时&#xff0c;主键id为长文本数据。 2、分析问题 1)数据库主键是否自增 2&#xff09;数据库主键的种子值设置的多少 3、解决问题 1&#xff09;数据库主键设置的时自增 3&#xff09;种子值是1 所以排查是数据库的问题 4、继…

Java高频面试之SE-11

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本牛马baby今天又来了&#xff01;哈哈哈哈哈嗝&#x1f436; Java中是引用传递还是值传递&#xff1f; 在 Java 中&#xff0c;方法参数传递是通过 值传递 的方式实现的&#xff0c;但这可能会引起一…

Proser:升级为简易的通讯调试助手软件

我本来打算将Proser定位为一个直观的协议编辑、发送端模拟软件&#xff0c;像下面这样。 但是按耐不住升级的心理&#xff0c;硬生生的把即时收发整合了进去&#xff0c;就像这样&#xff01; 不过&#xff0c;目前针对即时收发还没有发送历史、批量发送等功能&#xff0c;…

php 使用simplexml_load_string转换xml数据格式失败

本文介绍如何使用php函数解析xml数据为数组。 <?php$a <xml><ToUserName><![CDATA[ww8b77afac71336111]]></ToUserName><FromUserName><![CDATA[sys]]></FromUserName><CreateTime>1736328669</CreateTime><Ms…

计算机视觉算法实战——打电话行为检测

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​​​ ​​​​​​​​​​​​​​​ ​​​​​​ ​ 1. 引言✨✨ 随着智能手机的普及&#xff0c;打电话行为检测成为了计算机视…

SpringBoot日常:集成Kafka

文章目录 1、pom.xml文件2、application.yml3、生产者配置类4、消费者配置类5、消息订阅6、生产者发送消息7、测试发送消息 本章内容主要介绍如何在springboot项目对kafka进行整合&#xff0c;最终能达到的效果就是能够在项目中通过配置相关的kafka配置&#xff0c;就能进行消息…

HTTPS SSL/TLS 工作流程

目录 一、HTTP/HTTPS 简介1、HTTP协议相关内容2、HTTPS协议3、HTTP版本差异&#xff1a; 二、HTTPS 协议工作流程解析1. 客户端请求 SSL 握手2. 服务端接收 SSL 握手连接3. TLS 握手中的密钥协商4. HTTP 数据的加密与解密5. 安全性保障 三、HTTPS 协议的相关知识拓展1. TLS 与 …

Ubuntu中使用miniconda安装R和R包devtools

安装devtools环境包 sudo apt-get install gfortran -y sudo apt-get install build-essential -y sudo apt-get install libxt-dev -y sudo apt-get install libcurl4-openssl-dev -y sudo apt-get install libxml2.6-dev -y sudo apt-get install libssl-dev -y sudo apt-g…

解决SpringBoot无法使用JDK8问题

解决SpringBoot无法使用JDK8问题 现状解决方案 现状 使用idea创建springboot项目无法选择java8。原因是23年11月的spring更新后就明确了不在支持java8版本的项目创建&#xff0c;但是目前为止很多公司开发还在用java8&#xff0c;导致会有问题的产生。 解决方案 使用idea创…

八、系统托盘与配置面板

没有人会把你变得越来越好&#xff0c;时间和经历只是陪衬。 支撑你变得越来越好的&#xff0c;是你自己坚强的意志、修养、品行、以及不断的反思和经验。 人生最好的贵人&#xff0c;就是努力向上的自己。 一、系统托盘 1、资源文件夹 新建资源文件夹&#xff0c;我们需要把…

IntelliJ IDEA中Maven项目的配置、创建与导入全攻略

大家好&#xff0c;我是袁庭新。 IntelliJ IDEA是当前最流行的Java IDE&#xff08;集成开发环境&#xff09;之一&#xff0c;也是业界公认最好用的Java开发工具之一。IntelliJ IDEA支持Maven的全部功能&#xff0c;通过它我们可以很轻松地实现创建Maven项目、导入Maven项目、…

Element-plus、Element-ui之Tree 树形控件回显Bug问题。

需求&#xff1a;提交时&#xff0c;需要把选中状态和半选中状态 的数据id提交。如图所示&#xff1a; 数据回显时&#xff0c;会出现代码如下&#xff1a; <template><el-tree ref"treeRef" :data"tree" show-checkbox node-key"id" …

C语言#define定义宏

目录 一、什么是宏以及宏的声明方式 1.宏常量&#xff1a; 2.宏函数&#xff1a; 二、宏的替换原则 三、宏设计的易犯错误 ERROR1&#xff1a;尾部加分号&#xff08;当然有些特定需要加了分号&#xff0c;这里说明一般情况&#xff09; ERROR2&#xff1a;宏函数定义时&…

第33 章 - ES 实战篇 - MySQL 与 Elasticsearch 的一致性问题

思维导图 0. 前言 MySQL 与 Elasticsearch 一致性问题是老生常谈了。网上有太多关于这方面的文章了&#xff0c;但是千篇一律&#xff0c;看了跟没看没有太大区别。 在生产中&#xff0c;我们往往会通过 DTS 工具将 binlog 导入到 Kafka&#xff0c;再通过 Kafka 消费 binlog&…