Greiner 经典力学(多体系统和哈密顿力学)第十二章 学习笔记(Rotation About a Point)

第十二章 学习笔记(Rotation About a Point)

上一章是绕定轴转动,这章是绕定点转动。这一章明显上难度了。

12.1 Tensor of Inertia

在正式的公式推导之前,我们先复习一个矢量公式,下面推导时会用到这个公式:
A × ( B × C ) = ( A ⋅ C ) B − ( A ⋅ B ) C \mathbf A \times (\mathbf B \times \mathbf C) = (\mathbf A \cdot\mathbf C) \mathbf B - (\mathbf A \cdot \mathbf B) \mathbf C A×(B×C)=(AC)B(AB)C

首先计算刚体绕定点转动时的角动量。
L = ∑ m i ( r i × v i ) = ∑ m i ( r i × ( ω × r i ) ) = ∑ m i ( ( r i ⋅ r i ) ω − ( r i ⋅ ω ) r i ) = ∑ m i ( x i 2 + y i 2 + z i 2 ) ( ω x ω y ω z ) − ( x i ω x + y i ω y + z i ω z ) ( x i y i z i ) \begin{aligned} \mathbf L &= \sum m_i (\mathbf r_i \times \mathbf v_i) \\ &= \sum m_i (\mathbf r_i \times (\mathbf \omega \times \mathbf r_i)) \\ &= \sum m_i \left((\mathbf r_i \cdot \mathbf r_i) \mathbf \omega -(\mathbf r_i \cdot \mathbf \omega) \mathbf r_i\right)\\ &= \sum m_i (x_i^2+y_i^2+z_i^2) \begin{pmatrix} \omega_x \\ \omega_y \\ \omega_z\end{pmatrix} - (x_i \omega_x + y_i \omega_y + z_i \omega_z)\begin{pmatrix} x_i \\ y_i \\ z_i\end{pmatrix} \end{aligned} L=mi(ri×vi)=mi(ri×(ω×ri))=mi((riri)ω(riω)ri)=mi(xi2+yi2+zi2) ωxωyωz (xiωx+yiωy+ziωz) xiyizi
写成分量形式:
L x = ∑ m i ( x i 2 + y i 2 + z i 2 ) ω x − ( x i ω x + y i ω y + z i ω z ) x i = ∑ m i ( y i 2 + z i 2 ) ω x − x i y i ω y − x i z i ω z \begin{aligned} L_x &= \sum m_i (x_i^2+y_i^2+z_i^2) \omega_x - (x_i \omega_x + y_i \omega_y + z_i \omega_z) x_i\\ &=\sum m_i (y_i^2+z_i^2) \omega_x - x_i y_i \omega_y -x_i z_i \omega_z\\ \end{aligned} \\ Lx=mi(xi2+yi2+zi2)ωx(xiωx+yiωy+ziωz)xi=mi(yi2+zi2)ωxxiyiωyxiziωz

L y = ∑ m i ( x i 2 + y i 2 + z i 2 ) ω y − ( x i ω x + y i ω y + z i ω z ) y i = ∑ m i ( x i 2 + z i 2 ) ω y − y i x i ω x − y i z i ω z \begin{aligned} L_y &= \sum m_i (x_i^2+y_i^2+z_i^2) \omega_y - (x_i \omega_x + y_i \omega_y + z_i \omega_z) y_i\\ &= \sum m_i (x_i^2+z_i^2) \omega_y - y_i x_i \omega_x - y_i z_i \omega_z \\ \end{aligned} Ly=mi(xi2+yi2+zi2)ωy(xiωx+yiωy+ziωz)yi=mi(xi2+zi2)ωyyixiωxyiziωz

L z = ∑ m i ( x i 2 + y i 2 + z i 2 ) ω z − ( x i ω x + y i ω y + z i ω z ) z i = ∑ m i ( x i 2 + y i 2 ) ω z − x i z i ω x − y i z i ω y \begin{aligned} L_z &= \sum m_i (x_i^2+y_i^2+z_i^2) \omega_z - (x_i \omega_x + y_i \omega_y + z_i \omega_z) z_i\\ &= \sum m_i (x_i^2+y_i^2) \omega_z - x_i z_i \omega_x - y_i z_i \omega_y \\ \end{aligned} Lz=mi(xi2+yi2+zi2)ωz(xiωx+yiωy+ziωz)zi=mi(xi2+yi2)ωzxiziωxyiziωy

写成矩阵形式:
Θ = ( ∑ m i ( y i 2 + z i 2 ) − ∑ m i x i y i − ∑ m i x i z i − ∑ m i x i y i ∑ m i ( x i 2 + z i 2 ) − ∑ m i y i z i − ∑ m i x i z i − ∑ m i y i z i ∑ m i ( x i 2 + y i 2 ) ) L = Θ ^ ⋅ ω \Theta = \begin{pmatrix}\sum m_i (y_i^2+z_i^2) & -\sum m_i x_i y_i& -\sum m_i x_i z_i\\ -\sum m_i x_i y_i& \sum m_i (x_i^2+z_i^2)& -\sum m_i y_i z_i\\ -\sum m_i x_i z_i& -\sum m_i y_i z_i& \sum m_i (x_i^2+y_i^2)\\ \end{pmatrix} \\ \mathbf L = \hat\Theta \cdot \omega Θ= mi(yi2+zi2)mixiyimixizimixiyimi(xi2+zi2)miyizimixizimiyizimi(xi2+yi2) L=Θ^ω
上面式子中的 Θ ^ \hat\Theta Θ^ 就是这章的主角 惯性张量。

12.2 Kinetic Energy of a Rotating Rigid Body

这里推导定轴转动时的转动能。首先还是先补充一个矢量公式:
A ⋅ ( B × C ) = B ⋅ ( C × A ) = C ⋅ ( A × B ) \mathbf A \cdot (\mathbf B \times \mathbf C) = \mathbf B \cdot (\mathbf C \times \mathbf A) = \mathbf C \cdot (\mathbf A \times \mathbf B) A(B×C)=B(C×A)=C(A×B)
有了这个矢量公式就可以开始下面的推导了。
T = 1 2 ∑ m i v i 2 = 1 2 ∑ m i ( v i ⋅ ( ω × r i ) ) = 1 2 ∑ m i ( ω ⋅ ( r i × v i ) ) = 1 2 ω ⋅ ∑ m i ( r i × v i ) = 1 2 ω ⋅ L = 1 2 ω T ⋅ Θ ^ ⋅ ω \begin{aligned} T &= \frac{1}{2}\sum m_i \mathbf v_i^2 \\ &= \frac{1}{2} \sum m_i (\mathbf v_i \cdot (\omega \times \mathbf r_i))\\ &= \frac{1}{2} \sum m_i (\omega \cdot (\mathbf r_i \times \mathbf v_i) ) \\ &= \frac{1}{2} \omega \cdot \sum m_i (\mathbf r_i \times \mathbf v_i) \\ &= \frac{1}{2} \omega \cdot \mathbf L \\ &= \frac{1}{2} \omega^T \cdot \hat\Theta \cdot \omega \end{aligned} T=21mivi2=21mi(vi(ω×ri))=21mi(ω(ri×vi))=21ωmi(ri×vi)=21ωL=21ωTΘ^ω

12.3 The Principal Axes of Inertia (惯量主轴)

12.4 Existence and Orthogonality of the Principal Axes

12.5 Transformation of the Tensor of Inertia

这三个小节 Greiner 写作顺序不太好。个人认为应该先讲 12.5 节,然后是12.3 最后是12.4。另外,现在的大学生都学过线性代数,对矩阵的相似变换有足够的了解。利用矩阵可以简化推导过程。

下面就按照我自己的理解来推导。

通过选取合适的坐标系,我们可以让转动惯量张量成为对角矩阵。

首先回忆一下坐标变换。在一个坐标系下的单位矢量记为 ( e 1 , e 2 , e 3 ) (\mathbf e_1, \mathbf e_2, \mathbf e_3) (e1,e2,e3)。相对坐标原点做一个旋转之后单位矢量变为 ( e 1 ′ , e 2 ′ , e 3 ′ ) (\mathbf e'_1, \mathbf e'_2, \mathbf e'_3) (e1,e2,e3)。 两套坐标系的关系可以用下面的式子来表示。
e 1 ′ = a 11 e 1 + a 12 e 2 + a 13 e 3 e 2 ′ = a 21 e 1 + a 22 e 2 + a 23 e 3 e 3 ′ = a 31 e 1 + a 32 e 2 + a 33 e 3 \mathbf e'_1 = a_{11} \mathbf e_1 + a_{12} \mathbf e_2 + a_{13} \mathbf e_3 \\ \mathbf e'_2 = a_{21} \mathbf e_1 + a_{22} \mathbf e_2 + a_{23} \mathbf e_3 \\ \mathbf e'_3 = a_{31} \mathbf e_1 + a_{32} \mathbf e_2 + a_{33} \mathbf e_3 e1=a11e1+a12e2+a13e3e2=a21e1+a22e2+a23e3e3=a31e1+a32e2+a33e3
或者写为矩阵形式:
( e 1 ′ e 2 ′ e 3 ′ ) = A ( e 1 e 2 e 3 ) \begin{pmatrix}\mathbf e'_1 \\\mathbf e'_2 \\\mathbf e'_3 \end{pmatrix} = \mathbf A \begin{pmatrix}\mathbf e_1 \\\mathbf e_2 \\\mathbf e_3 \end{pmatrix} e1e2e3 =A e1e2e3
一个矢量 x x x ,在 e \mathbf e e 坐标系下的分量为 ( x 1 , x 2 , x 3 ) (x_1, x_2, x_3) (x1,x2,x3),在 e ′ \mathbf e' e 坐标系下的分量为 ( x 1 ′ , x ’ 2 , x 3 ′ ) (x'_1, x’_2, x'_3) (x1,x2,x3)
x = x 1 e 1 + x 2 e 2 + x 3 e 3 = x 1 ′ e 1 ′ + x 2 ′ e 2 ′ + x 3 ′ e 3 ′ = x 1 ′ ( a 11 e 1 + a 12 e 2 + a 13 e 3 ) + x 2 ′ ( a 21 e 1 + a 22 e 2 + a 23 e 3 ) + x 3 ′ ( a 31 e 1 + a 32 e 2 + a 33 e 3 ) = ( x 1 ′ a 11 + x 2 ′ a 21 + x 3 ′ a 31 ) e 1 + ( x 1 ′ a 12 + x 2 ′ a 22 + x 3 ′ a 32 ) e 2 + ( x 1 ′ a 13 + x 2 ′ a 23 + x 3 ′ a 33 ) e 3 \begin{aligned} \mathbf x &= x_1 \mathbf e_1 + x_2 \mathbf e_2 + x_3 \mathbf e_3 \\ &= x'_1 \mathbf e'_1 + x'_2 \mathbf e'_2 + x'_3 \mathbf e'_3 \\ &= x'_1 (a_{11} \mathbf e_1 + a_{12} \mathbf e_2 + a_{13} \mathbf e_3) + x'_2 (a_{21} \mathbf e_1 + a_{22} \mathbf e_2 + a_{23} \mathbf e_3) + x'_3 (a_{31} \mathbf e_1 + a_{32} \mathbf e_2 + a_{33} \mathbf e_3)\\ &= (x'_1 a_{11} + x'_2 a_{21} + x'_3 a_{31}) \mathbf e_1 + (x'_1 a_{12} + x'_2 a_{22} + x'_3 a_{32}) \mathbf e_2 + (x'_1 a_{13} + x'_2 a_{23} + x'_3 a_{33}) \mathbf e_3 \end{aligned} x=x1e1+x2e2+x3e3=x1e1+x2e2+x3e3=x1(a11e1+a12e2+a13e3)+x2(a21e1+a22e2+a23e3)+x3(a31e1+a32e2+a33e3)=(x1a11+x2a21+x3a31)e1+(x1a12+x2a22+x3a32)e2+(x1a13+x2a23+x3a33)e3
写成矩阵形式:
( x 1 x 2 x 3 ) = ( a 11 a 21 a 31 a 12 a 22 a 32 a 13 a 23 a 33 ) ( x 1 ′ x 2 ′ x 3 ′ ) \begin{pmatrix} x_1 \\x_2 \\x_3\end{pmatrix} = \begin{pmatrix} a_{11} & a_{21} &a_{31} \\ a_{12} & a_{22} & a_{32}\\ a_{13} & a_{23} & a_{33}\end{pmatrix} \begin{pmatrix} x'_1 \\x'_2 \\x'_3\end{pmatrix}\\ x1x2x3 = a11a12a13a21a22a23a31a32a33 x1x2x3
和上面比较一下,可以看出:
x = A T x ′ x ′ = A x \mathbf x = \mathbf A^T \mathbf x' \\ \mathbf x' = \mathbf A \mathbf x x=ATxx=Ax
可以看出,坐标变换矩阵和基矢的变换矩阵是相同的。另外我们还知道 A \mathbf A A 是实对称矩阵, ∣ A ∣ = 1 , A T = A − 1 |\mathbf A| = 1, \mathbf A^T = \mathbf A^{-1} A=1,AT=A1。关于 A \mathbf A A 的这些特性在随便一本线性代数的教科书里都有,这里就不详细推导了。

L = Θ ^ ⋅ ω \mathbf L = \hat\Theta \cdot \omega L=Θ^ω 这个公式在一个坐标系下成立,对这个坐标系做个旋转之后也必须成立。在旋转后的坐标系下, ω , L \omega ,\mathbf L ωL 成为了 ω ′ , L ′ \omega' ,\mathbf L' ωL。他们之间的关系如下:
ω = A T ⋅ ω ′ L = A T ⋅ L ′ \omega= \mathbf A^T \cdot\omega' \\ \mathbf L = \mathbf A^T \cdot \mathbf L' ω=ATωL=ATL
带入角动量的公式:
L = Θ ^ ⋅ ω A T ⋅ L ′ = Θ ^ A T ⋅ ω ′ L ′ = A Θ ^ A T ⋅ ω ′ = A Θ ^ A − 1 ⋅ ω ′ \mathbf L = \hat\Theta \cdot \omega \\ \mathbf A^T \cdot \mathbf L' = \hat\Theta \mathbf A^T \cdot\omega' \\ \mathbf L' = \mathbf A \hat\Theta \mathbf A^T \cdot\omega' =\mathbf A \hat\Theta \mathbf A^{-1} \cdot\omega' L=Θ^ωATL=Θ^ATωL=AΘ^ATω=AΘ^A1ω
因此我们就推导出了二阶张量的坐标变换公式:
Θ ^ ′ = A Θ ^ A − 1 \hat \Theta' = \mathbf A \hat \Theta \mathbf A^{-1} Θ^=AΘ^A1
上面这个变换公式在线性代数教科书里称为相似变换。通过相似变换我们可以把一个实对称矩阵化为对角矩阵。也就是
Θ ^ ′ = ( Θ 1 0 0 0 Θ 2 0 0 0 Θ 3 ) \hat \Theta' = \begin{pmatrix} \Theta_1 & 0 &0 \\ 0 & \Theta_2 & 0\\ 0 & 0 & \Theta_3\end{pmatrix} Θ^= Θ1000Θ2000Θ3
那么角动量和转动动能的表达式都会变得很简单:
( L 1 L 2 L 3 ) = ( Θ 1 ω 1 Θ 2 ω 2 Θ 3 ω 3 ) \begin{pmatrix} L_1 \\L_2 \\L_3\end{pmatrix} = \begin{pmatrix}\Theta_1 \omega_1 \\\Theta_2 \omega_2 \\ \Theta_3 \omega_3 \end{pmatrix} L1L2L3 = Θ1ω1Θ2ω2Θ3ω3

T = 1 2 ω T ⋅ Θ ^ ′ ⋅ ω = 1 2 ( Θ 1 ω 1 2 + Θ 2 ω 2 2 + Θ 3 ω 3 2 ) T = \frac{1}{2} \omega^T \cdot \hat \Theta' \cdot \omega = \frac{1}{2} (\Theta_1 \omega_1^2 + \Theta_2 \omega_2^2 + \Theta_3 \omega_3^2) T=21ωTΘ^ω=21(Θ1ω12+Θ2ω22+Θ3ω32)

另外,我们还知道 Θ i \Theta_i Θi 其实就是矩阵 Θ ^ \hat \Theta Θ^ 的三个特征值。
Θ ^ ⋅ ω = λ ω ( Θ ^ − λ I ) ω = 0 \hat \Theta \cdot \omega = \lambda \omega \\ (\hat \Theta - \lambda \mathbf I ) \omega = 0 Θ^ω=λω(Θ^λI)ω=0
12.4 节就是在证明 Θ ^ \hat \Theta Θ^ 有三个实数的特征向量。书上给的证明有点繁琐,其实用矩阵运算,利用 Θ ^ \hat \Theta Θ^ 是实对称矩阵这么一个条件,可以很容易证明出来。下面的证明中,我们用 A ˉ \bar A Aˉ 表示对 A A A 取复共轭。
ω ‾ T ⋅ Θ ^ ⋅ ω = ω ‾ T ⋅ Θ ^ ⋅ ω = ω ‾ T ⋅ Θ ^ T ‾ ⋅ ω = ω T ⋅ Θ ^ T ‾ ⋅ ω = ( Θ ^ ⋅ ω ) T ‾ ⋅ ω = ( λ ⋅ ω ) T ‾ ⋅ ω = λ ‾ ⋅ ω T ‾ ⋅ ω \begin{aligned} \overline\omega^T \cdot \hat \Theta \cdot \omega &= \overline\omega^T \cdot \hat \Theta \cdot\omega \\ & = \overline\omega^T \cdot \overline{\hat \Theta^T} \cdot\omega\\ & = \overline{\omega^T \cdot \hat \Theta^T} \cdot\omega\\ & = \overline{(\hat \Theta \cdot \omega)^T} \cdot\omega \\ & = \overline{(\lambda \cdot \omega)^T} \cdot\omega \\ & = \overline{\lambda}\cdot \overline{\omega^T} \cdot\omega \\ \end{aligned} ωTΘ^ω=ωTΘ^ω=ωTΘ^Tω=ωTΘ^Tω=(Θ^ω)Tω=(λω)Tω=λωTω
另一方面:
ω ‾ T ⋅ Θ ^ ⋅ ω = ω ‾ T ⋅ λ ⋅ ω = λ ⋅ ω T ‾ ⋅ ω \begin{aligned} \overline\omega^T \cdot \hat \Theta \cdot \omega &= \overline\omega^T \cdot \lambda\cdot\omega \\ & = \lambda \cdot\overline{\omega^T} \cdot\omega \end{aligned} ωTΘ^ω=ωTλω=λωTω
所以有:
λ ‾ ⋅ ω T ‾ ⋅ ω = λ ⋅ ω T ‾ ⋅ ω ( λ ‾ − λ ) ω T ‾ ⋅ ω = 0 λ ‾ − λ = 0 \overline\lambda \cdot\overline{\omega^T} \cdot\omega =\lambda \cdot\overline{\omega^T} \cdot\omega\\ (\overline\lambda - \lambda ) \ \overline{\omega^T} \cdot\omega = 0\\ \overline\lambda - \lambda = 0 λωTω=λωTω(λλ) ωTω=0λλ=0
上面这个证明要比书上写的简单一些。至少是没有那么多让人眼花缭乱的上标、下标了。

至此,本章还剩下最后一个问题。就是我们已知 Θ ^ \hat \Theta Θ^ 之后如何去求某个方向上的转动惯量。

设单位方向向量为 n = ( n 1 , n 2 , n 3 ) \mathbf n = (n_1, n_2, n_3) n=(n1,n2,n3)。那么这个方向上的角速度可以表示为:
ω ⃗ = ω ⋅ n L = ω Θ ^ ⋅ n L n = n T ⋅ L = ω n T ⋅ Θ ^ ⋅ n \vec \omega = \omega \cdot \mathbf n \\ \mathbf L = \omega \hat \Theta \cdot \mathbf n \\ \mathbf L_n = \mathbf n^T \cdot \mathbf L = \omega \ \mathbf n^T \cdot \hat \Theta \cdot \mathbf n ω =ωnL=ωΘ^nLn=nTL=ω nTΘ^n
从上面的式子我们就能看出来某个方向 n \mathbf n n上的 转动惯量为 Θ n = n T ⋅ Θ ^ ⋅ n \Theta_n = \mathbf n^T \cdot \hat \Theta \cdot \mathbf n Θn=nTΘ^n

12.7 Ellipsoid of Inertia

从上面我们已经知道:
Θ n = n T ⋅ Θ ^ ⋅ n \Theta_n = \mathbf n^T \cdot \hat \Theta \cdot \mathbf n Θn=nTΘ^n
这个其实就是线性代数里面讨论的二次型问题。3维空间上的二次型就是个椭球体。

ϱ = n / Θ n \varrho = \mathbf n / \sqrt{\Theta_n} ϱ=n/Θn ,那么有 n = Θ n ϱ \mathbf n = \sqrt{\Theta_n} \varrho n=Θn ϱ
Θ n = Θ n ( ϱ x ϱ y ϱ z ) ⋅ Θ ⋅ Θ n ( ϱ x ϱ y ϱ z ) \Theta_n = \sqrt{\Theta_n} \begin{pmatrix} \varrho_x &\varrho_y &\varrho_z \end{pmatrix} \cdot \Theta \cdot \sqrt{\Theta_n} \begin{pmatrix} \varrho_x \\ \varrho_y \\\varrho_z \end{pmatrix} Θn=Θn (ϱxϱyϱz)ΘΘn ϱxϱyϱz
也就是:
1 = ( ϱ x ϱ y ϱ z ) ⋅ ( Θ x x Θ x y Θ x z Θ y x Θ y y Θ y z Θ z x Θ z y Θ z z ) ⋅ ( ϱ x ϱ y ϱ z ) 1 = \begin{pmatrix} \varrho_x &\varrho_y &\varrho_z \end{pmatrix} \cdot \begin{pmatrix} \Theta_{xx} &\Theta_{xy} &\Theta_{xz} \\ \Theta_{yx} &\Theta_{yy} &\Theta_{yz}\\ \Theta_{zx} &\Theta_{zy} &\Theta_{zz} \end{pmatrix} \cdot \begin{pmatrix} \varrho_x \\ \varrho_y \\\varrho_z \end{pmatrix} 1=(ϱxϱyϱz) ΘxxΘyxΘzxΘxyΘyyΘzyΘxzΘyzΘzz ϱxϱyϱz
展开之后得到:
Θ x x ϱ x 2 + Θ y y ϱ y 2 + Θ z z ϱ z 2 + 2 Θ x y ϱ x ϱ y + 2 Θ y z ϱ y ϱ z + 2 Θ x z ϱ x ϱ z = 1 \Theta_{xx} \varrho_x^2 + \Theta_{yy} \varrho_y^2 + \Theta_{zz} \varrho_z^2 +2 \Theta_{xy} \varrho_x \varrho_y + 2 \Theta_{yz} \varrho_y \varrho_z + 2 \Theta_{xz} \varrho_x \varrho_z = 1 Θxxϱx2+Θyyϱy2+Θzzϱz2+2Θxyϱxϱy+2Θyzϱyϱz+2Θxzϱxϱz=1
至此,这章的知识点就全都写完了。下一章将讨论各种陀螺问题,脱落问题算是古典力学最有趣的问题吧。

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

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

相关文章

注意力机制的目的:理解语义;编码器嵌入高纬空间计算;注意力得分“得到S*V”;解码器掩码和交叉注意力层用于训练;最终的编码器和输出实现大模型

目录 注意力机制的目的:理解语义中的它是小白兔 词编码器嵌入高纬空间 计算注意力得分“得到S*V” 权重QKV:连接权重 训练阶段使用解码器:翻译后的语句 解码器掩码和交叉注意力层用于训练 最终的编码器和输出实现大模型 Transformer模型中,QKV QKV的作用 举例说明…

纯前端实现在线预览excel文件(插件: LuckyExcel、Luckysheet)

概述 在实际开发中,遇到需要在线预览各种文件的需求,最近遇到在线预览excel文件的需求,在此记录一下!本文主要功能实现,用于插件 LuckyExcel ,Luckysheet!废话不多说,上代码&#xf…

WPF自定义翻页控件

XAML文件如下&#xff1a; <UserControlx:Class"CTMVVMDemo.View.UserControls.DataPager"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://s…

Linux中.NET读取excel组件,不会出现The type initializer for ‘Gdip‘ threw an exception异常

组件&#xff0c;可通过nuget安装&#xff0c;直接搜名字&#xff1a; ExcelDataReader using ConsoleAppReadFileData.Model; using ExcelDataReader; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Task…

qt QColorDialog详解

1、概述 QColorDialog是Qt框架中的一个对话框类&#xff0c;专门用于让用户选择颜色。它提供了一个标准的颜色选择界面&#xff0c;其中包括基本的颜色选择器&#xff08;如调色板和颜色轮&#xff09;、自定义颜色输入区域以及预定义颜色列表。QColorDialog支持RGB、HSV和十六…

使用Python实现音频降噪

在音频处理领域&#xff0c;背景噪声是一个常见的问题。为了提高音频的质量&#xff0c;我们需要对音频进行降噪处理。本文将介绍如何使用 Python 实现音频降噪。 依赖库安装 在开始之前&#xff0c;我们需要安装以下依赖库&#xff1a; pydub&#xff1a;用于音频文件的读取…

【WRF模拟】全过程总结:WPS预处理及WRF运行

【WRF模拟】全过程总结:WPS预处理及WRF运行 1 数据准备1.1 嵌套域设置(Customize domain)-基于QGis中gis4wrf插件1.2 静态地理数据1.2.1 叶面积指数LAI和植被覆盖度Fpar(月尺度)1.2.2 地面反照率(月尺度)1.2.3 土地利用类型+不透水面积1.2.4 数据处理:geotiff→tiff(W…

【react】Redux基础用法

1. Redux基础用法 Redux 是一个用于 JavaScript 应用的状态管理库&#xff0c;它不依赖于任何 UI库&#xff0c;但常用于与 React 框架配合使用。它提供了一种集中式的状态管理方式&#xff0c;将应用的所有状态保存在一个单一的全局 Store&#xff08;存储&#xff09;中&…

DevCheck Pro手机硬件检测工具v5.33

前言 DevCheck Pro是一款手机硬件和操作系统信息检测查看工具&#xff0c;该软件的功能非常强大&#xff0c;为用户提供了系统、硬件、应用程序、相机、网络、电池等一系列信息查看功能 安装环境 [名称]&#xff1a;DevCheckPro [版本]&#xff1a;5.33 [大小]&a…

Docker的轻量级可视化工具Portainer

docker目录 1 Portainer官方链接2 是什么&#xff1f;3 下载安装4 跑通一次5 后记 1 Portainer官方链接 这里给出portainer的官方链接&#xff1a;https://www.portainer.io/ portainer安装的官方链接&#xff1a;https://docs.portainer.io/start/install-ce/server/docker/l…

IoTDB 与 HBase 对比详解:架构、功能与性能

五大方向&#xff0c;洞悉 IoTDB 与 HBase 的详尽对比&#xff01; 在物联网&#xff08;IoT&#xff09;领域&#xff0c;数据的采集、存储和分析是确保系统高效运行和决策准确的重要环节。随着物联网设备数量的增加和数据量的爆炸式增长&#xff0c;开发者和决策者们需要选择…

【c++丨STL】vector模拟实现

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;C、STL 目录 前言 一、vector底层刨析 二、模拟实现 1. 属性、迭代器以及函数声明 2. 功能实现 交换两个容器的内容 构造函数 拷贝构造 赋值重载 析构…

C++中类的默认成员函数

默认成员函数 1.构造函数2.析构函数3.拷贝构造函数4.赋值运算符重载4.1运算符重载4.2赋值运算符重载 #mermaid-svg-oipiwg9stvONvYK0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-oipiwg9stvONvYK0 .error-icon{f…

数据编排与ETL有什么关系?

数据编排作为近期比较有热度的一个话题&#xff0c;讨论度比较高&#xff0c;同时数据编排的出现也暗示着数字化进程的自动化发展。在谈及数据编排时&#xff0c;通常也会谈到ETL&#xff0c;这两个东西有相似点也有不同点。 数据编排和ETL&#xff08;提取、转换、加载&#x…

【SpringCloud】SpringBoot集成Swagger 常用Swagger注解

概述&#xff1a;SpringBoot集成Swagger 常用Swagger注解 导语 相信无论是前端还是后端开发&#xff0c;都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力&#xff0c;经常来不及更新。其实无论是前…

革命性AI搜索引擎!ChatGPT最新功能发布,无广告更智能!

文章目录 零、前言一、ChatGPT最新AI搜索引擎功能操作指导实战1:搜索新闻实战2:搜索天气实战3:搜索体育消息 二、感受 零、前言 大人&#xff0c;时代变了。 最强 AI 助力下的无广告搜索引擎终于问世。我们期待已久的这一刻终于到来了&#xff0c;从今天起&#xff0c;ChatGPT…

基于 CMSIS-PACK 移植Bootloader

基于 CMSIS-PACK 移植 1.准备工作 准备一份基础的裸机源码 (可通过 STM32CubeMx 可视化软件创建也可按照工程项目所需文档手动创建) 工程&#xff0c;如一份 stm32 包含一个支持 printf 的串口初始化代码。 2.安装Pack包 在 MDK 中部署 **MicroBoot **的第一步是获取对应的…

苍穹外卖day09超出配送范围前端不提示问题

同学们在写苍穹外卖项目day09时调用了百度地图api来判断用户地址是否超出配送范围&#xff0c; 但是在黑马官方的课程或资料中&#xff0c;出现这样的问题时只会向用户端的控制台报错并不会提醒用户 如下图&#xff1a; 解决方法&#xff1a; 其实解决方法很简单只需要找到向…

嵌入式linux中PWM控制与实现

大家好,今天主要给大家分享一下,如何使用linux系统里面的PWM的功能,可以控制对应电机的转速。 第一:PWM驱动基本简介 PWM就是脉冲宽度调制。 PWM信号有两个关键术语:频率和占空比,频率指的是开关的速度。占空比就是一个周期内高电平和低电平时间的比例,一个周期内高电…

CUDA系统学习之一软件堆栈架构

一、CPU与GPU体系架构 计算单元分布 CPU: 少量强大的ALU(算术逻辑单元)&#xff0c;通常4-8个核心GPU: 大量小型ALU&#xff0c;成百上千个计算核心特点&#xff1a;GPU更适合并行计算&#xff0c;可以同时处理大量数据控制单元(Control) CPU: 较大的控制单元&#xff0c;复杂的…