深蓝学院《从零开始手写VIO》作业三

  • 深蓝学院《从零开始手写VIO》作业三
    • 1. 代码修改
    • 2. 公式推导
    • 3. 公式证明:

深蓝学院《从零开始手写VIO》作业三

1. 代码修改

样例代码给出了使用 LM 算法来估计曲线 y = exp(ax2 + bx + c)参数 a, b, c 的完整过程。
1 请绘制样例代码中 LM 阻尼因子 µ 随着迭代变化的曲线图
2 将曲线函数改成 y = ax2 + bx + c,请修改样例代码中残差计算,雅克比计算等函数,完成曲线参数估计。
3 如果有实现其他阻尼因子更新策略可加分(选做)

(1)阻尼因子随着迭代变化的曲线图如下:

(2)代码修改如下:
残差计算:

    virtual void ComputeResidual() override{Vec3 abc = verticies_[0]->Parameters();  // 估计的参数residual_(0) = abc(0)*x_*x_ + abc(1)*x_ + abc(2) - y_;}

雅克比计算:

    virtual void ComputeJacobians() override{Vec3 abc = verticies_[0]->Parameters();Eigen::Matrix<double, 1, 3> jaco_abc;  // 误差为1维,状态量 3 个,所以是 1x3 的雅克比矩阵jaco_abc << x_ * x_, x_ , 1;jacobians_[0] = jaco_abc;}

计算结果如下(为了达到良好的迭代效果,将数据点从100个调整到1000个):

Test CurveFitting start...
iter: 0 , chi= 3.21386e+06 , Lambda= 19.95
iter: 1 , chi= 974.658 , Lambda= 6.65001
iter: 2 , chi= 973.881 , Lambda= 2.21667
iter: 3 , chi= 973.88 , Lambda= 1.47778
problem solve cost: 35.4232 msmakeHessian cost: 26.0736 ms
-------After optimization, we got these parameters :
0.999588   2.0063 0.968786
-------ground truth:
1.0,  2.0,  1.0

(3)尝试阻尼因子更新策略如下:if ρ>0μ:=μ∗max⁡{13,1−(2ρ−1)3};ν:=2else μ:=μ∗ν;ν:=2∗ν\begin{array}{l}{\text { if } \rho>0} \\ {\qquad \mu :=\mu * \max \left\{\frac{1}{3}, 1-(2 \rho-1)^{3}\right\} ; \quad \nu :=2} \\ {\text { else }} \\ {\qquad \mu :=\mu * \nu ; \quad \nu :=2 * \nu}\end{array}  if ρ>0μ:=μ∗max{31​,1−(2ρ−1)3};ν:=2 else μ:=μ∗ν;ν:=2∗ν​
修改阻尼因子更新代码如下:

bool Problem::IsGoodStepInLM() {double scale = 0;scale = delta_x_.transpose() * (currentLambda_ * delta_x_ + b_);scale += 1e-3;    // make sure it's non-zero :)// recompute residuals after update state// 统计所有的残差double tempChi = 0.0;for (auto edge: edges_) {edge.second->ComputeResidual();tempChi += edge.second->Chi2();}double rho = (currentChi_ - tempChi) / scale;if (rho > 0.75 && isfinite(tempChi))   // last step was good, 误差在下降{currentLambda_ *= 1/3;currentChi_ = tempChi;return true;} else {currentLambda_ *= 2;currentChi_ = tempChi;return false;}
}

结果如下:

Test CurveFitting start...
iter: 0 , chi= 3.21386e+06 , Lambda= 19.95
iter: 1 , chi= 974.658 , Lambda= 0
iter: 2 , chi= 973.88 , Lambda= 0
problem solve cost: 27.2341 msmakeHessian cost: 20.6501 ms
-------After optimization, we got these parameters :
0.999589  2.00628 0.968821
-------ground truth:
1.0,  2.0,  1.0

2. 公式推导

公式推导,根据课程知识,完成 F, G 中如下两项的推导过程:
f15=∂αbibk+1∂δbkg=−14(Rbibk+1[(abk+1−bka)]×δt2)(−δt)\mathbf{f}_{15}=\frac{\partial \boldsymbol{\alpha}_{b_{i} b_{k+1}}}{\partial \delta \mathbf{b}_{k}^{g}}=-\frac{1}{4}\left(\mathbf{R}_{b_{i} b_{k+1}}\left[\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right)\right]_{ \times} \delta t^{2}\right)(-\delta t) f15​=∂δbkg​∂αbi​bk+1​​​=−41​(Rbi​bk+1​​[(abk+1​−bka​)]×​δt2)(−δt)g12=∂αbibk+1∂nkg=−14(Rbibk+1[(abk+1−bka)]×δt2)(12δt)\mathbf{g}_{12}=\frac{\partial \boldsymbol{\alpha}_{b_{i} b_{k+1}}}{\partial \mathbf{n}_{k}^{g}}=-\frac{1}{4}\left(\mathbf{R}_{b_{i} b_{k+1}}\left[\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right)\right]_{ \times} \delta t^{2}\right)\left(\frac{1}{2} \delta t\right) g12​=∂nkg​∂αbi​bk+1​​​=−41​(Rbi​bk+1​​[(abk+1​−bka​)]×​δt2)(21​δt)

说明:这里的公式推导约定保持和PPT中的一样的,比如求导公式:∂xa∂δθ=lim⁡δθ→0Rabexp⁡([[δθ]x)xb−Rabxbδθ\frac{\partial \mathbf{x}_{a}}{\partial \delta \boldsymbol{\theta}}=\lim _{\delta \theta \rightarrow 0} \frac{\mathbf{R}_{a b} \exp \left(\left[[\delta \boldsymbol{\theta}]_{\mathrm{x}}\right) \mathbf{x}_{b}-\mathbf{R}_{a b} \mathbf{x}_{b}\right.}{\delta \boldsymbol{\theta}} ∂δθ∂xa​​=δθ→0lim​δθRab​exp([[δθ]x​)xb​−Rab​xb​​后续直接简写为∂xa∂δθ=∂Rabexp⁡([δθ]×)xb∂δθ\frac{\partial \mathbf{x}_{a}}{\partial \delta \boldsymbol{\theta}}=\frac{\partial \mathbf{R}_{a b} \exp \left([\delta \boldsymbol{\theta}]_{ \times}\right) \mathbf{x}_{b}}{\partial \delta \boldsymbol{\theta}} ∂δθ∂xa​​=∂δθ∂Rab​exp([δθ]×​)xb​​

下面开始推导

(1)公式f15\mathbf{f}_{15}f15​推导如下:αbibk+1=αbibk+βbibkδt+12aδt2\boldsymbol{\alpha}_{b_{i} b_{k+1}}=\boldsymbol{\alpha}_{b_{i} b_{k}}+\boldsymbol{\beta}_{b_{i} b_{k}} \delta t+\frac{1}{2} \mathbf{a} \delta t^{2} αbi​bk+1​​=αbi​bk​​+βbi​bk​​δt+21​aδt2其中a=12(qbibk(abk−bka)+qbibk+1(abk+1−bka))=12(qbibk(abk−bka)+qbibk⊗[112ωδt](abk+1−bka))\begin{aligned} \mathbf{a}&=\frac{1}{2}\left(\mathbf{q}_{b_{i} b_{k}}\left(\mathbf{a}^{b_{k}}-\mathbf{b}_{k}^{a}\right)+\mathbf{q}_{b_{i} b_{k+1}}\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right)\right) \\&=\frac{1}{2}\left(\mathbf{q}_{b_{i} b_{k}}\left(\mathbf{a}^{b_{k}}-\mathbf{b}_{k}^{a}\right)+\mathbf{q}_{b_{i} b_{k}}\otimes\left[\begin{array}{c}{1} \\ {\frac{1}{2} \omega \delta t}\end{array}\right]\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right)\right) \end{aligned} a​=21​(qbi​bk​​(abk​−bka​)+qbi​bk+1​​(abk+1​−bka​))=21​(qbi​bk​​(abk​−bka​)+qbi​bk​​⊗[121​ωδt​](abk+1​−bka​))​其中δbkg\delta \mathbf{b}_{k}^{g}δbkg​只和12ωδt\frac{1}{2} \omega \delta t21​ωδt这一项有关,因此f15\mathbf{f}_{15}f15​的推导可以进行如下简化:f15=∂αbibk+1∂δbkg=∂14qbibk⊗[112ωδt]⊗[1−12δbkgδt](abk+1−bka)δt2∂δbkg=14∂Rbibk+1exp⁡([−δbkgδt]×)(abk+1−bka)δt2∂δbkg=14∂Rbibk+1(I+[−δbkgδt]×)(abk+1−bka)δt2∂δbkg=14∂−Rbibk+1([(abk+1−bka)δt2]×)(−δbkgδt)∂δbkg=−14(Rbibk+1[(abk+1−bka)]×δt2)(−δt)\begin{aligned} \mathbf{f}_{15}&=\frac{\partial \boldsymbol{\alpha}_{b_{i} b_{k+1}}}{\partial \delta \mathbf{b}_{k}^{g}} \\&=\frac{\partial \frac{1}{4} \mathbf{q}_{b_{i} b_{k}} \otimes\left[\begin{array}{c}{1} \\ {\frac{1}{2} \boldsymbol{\omega} \delta t}\end{array}\right] \otimes\left[\begin{array}{c}{1} \\ {-\frac{1}{2} \delta \mathbf{b}_{k}^{g} \delta t}\end{array}\right]\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right) \delta t^{2}}{\partial \delta \mathbf{b}_{k}^{g}} \\&=\frac{1}{4} \frac{\partial \mathbf{R}_{b_{i} b_{k+1}} \exp \left(\left[-\delta \mathbf{b}_{k}^{g} \delta t\right]_{ \times}\right)\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right) \delta t^{2}}{\partial \delta \mathbf{b}_{k}^{g}} \\&=\frac{1}{4} \frac{\partial \mathbf{R}_{b_{i} b_{k+1}}\left(\mathbf{I}+\left[-\delta \mathbf{b}_{k}^{g} \delta t\right]_{ \times}\right)\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right) \delta t^{2}}{\partial \delta \mathbf{b}_{k}^{g}} \\&=\frac{1}{4} \frac{\partial-\mathbf{R}_{b_{i} b_{k+1}}\left(\left[\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right) \delta t^{2}\right]_{ \times}\right)\left(-\delta \mathbf{b}_{k}^{g} \delta t\right)}{\partial \delta \mathbf{b}_{k}^{g}} \\&=-\frac{1}{4}\left(\mathbf{R}_{b_{i} b_{k+1}}\left[\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right)\right]_{ \times} \delta t^{2}\right)(-\delta t) \end{aligned} f15​​=∂δbkg​∂αbi​bk+1​​​=∂δbkg​∂41​qbi​bk​​⊗[121​ωδt​]⊗[1−21​δbkg​δt​](abk+1​−bka​)δt2​=41​∂δbkg​∂Rbi​bk+1​​exp([−δbkg​δt]×​)(abk+1​−bka​)δt2​=41​∂δbkg​∂Rbi​bk+1​​(I+[−δbkg​δt]×​)(abk+1​−bka​)δt2​=41​∂δbkg​∂−Rbi​bk+1​​([(abk+1​−bka​)δt2]×​)(−δbkg​δt)​=−41​(Rbi​bk+1​​[(abk+1​−bka​)]×​δt2)(−δt)​

(2)公式g12\mathbf{g}_{12}g12​推导如下:
g12\mathbf{g}_{12}g12​和f15\mathbf{f}_{15}f15​的推导是类似的
αbibk+1=αbibk+βbibkδt+12aδt2\boldsymbol{\alpha}_{b_{i} b_{k+1}}=\boldsymbol{\alpha}_{b_{i} b_{k}}+\boldsymbol{\beta}_{b_{i} b_{k}} \delta t+\frac{1}{2} \mathbf{a} \delta t^{2} αbi​bk+1​​=αbi​bk​​+βbi​bk​​δt+21​aδt2其中a=12(qbibk(abk−bka)+qbibk+1(abk+1−bka))=12(qbibk(abk−bka)+qbibk⊗[112ωδt](abk+1−bka))\begin{aligned} \mathbf{a}&=\frac{1}{2}\left(\mathbf{q}_{b_{i} b_{k}}\left(\mathbf{a}^{b_{k}}-\mathbf{b}_{k}^{a}\right)+\mathbf{q}_{b_{i} b_{k+1}}\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right)\right) \\&=\frac{1}{2}\left(\mathbf{q}_{b_{i} b_{k}}\left(\mathbf{a}^{b_{k}}-\mathbf{b}_{k}^{a}\right)+\mathbf{q}_{b_{i} b_{k}}\otimes\left[\begin{array}{c}{1} \\ {\frac{1}{2} \omega \delta t}\end{array}\right]\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right)\right) \end{aligned} a​=21​(qbi​bk​​(abk​−bka​)+qbi​bk+1​​(abk+1​−bka​))=21​(qbi​bk​​(abk​−bka​)+qbi​bk​​⊗[121​ωδt​](abk+1​−bka​))​其中ω=12((ωbk+nkg−bkg)+(ωbk+1+nk+1g−bkg))\omega=\frac{1}{2}\left(\left(\boldsymbol{\omega}^{b_{k}}+\mathbf{n}_{k}^{g}-\mathbf{b}_{k}^{g}\right)+\left(\boldsymbol{\omega}^{b_{k+1}}+\mathbf{n}_{k+1}^{g}-\mathbf{b}_{k}^{g}\right)\right) ω=21​((ωbk​+nkg​−bkg​)+(ωbk+1​+nk+1g​−bkg​))因此nkg\mathbf{n}_{k}^{g}nkg​只和12ωδt\frac{1}{2} \omega \delta t21​ωδt这一项有关,同理:f15=∂αbibk+1∂δbkg=∂14qbibk⊗[112ωδt]⊗[112(12δnkg)δt](abk+1−bka)δt2∂δnkg=14∂Rbibk+1exp⁡([12δnkgδt]×)(abk+1−bka)δt2∂δnkg=14∂Rbibk+1(I+[12δnkgδt]×)(abk+1−bka)δt2∂δnkg=14∂−Rbibk+1([(abk+1−bka)δt2]×)(12δnkgδt)∂δnkg=−14(Rbibk+1[(abk+1−bka)]×δt2)(12δt)\begin{aligned} \mathbf{f}_{15}&=\frac{\partial \boldsymbol{\alpha}_{b_{i} b_{k+1}}}{\partial \delta \mathbf{b}_{k}^{g}} \\&=\frac{\partial \frac{1}{4} \mathbf{q}_{b_{i} b_{k}} \otimes\left[\begin{array}{c}{1} \\ {\frac{1}{2} \boldsymbol{\omega} \delta t}\end{array}\right] \otimes\left[\begin{array}{c}{1} \\ {\frac{1}{2} (\frac{1}{2}\delta \mathbf{n}_{k}^{g} )\delta t}\end{array}\right]\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right) \delta t^{2}}{\partial \delta \mathbf{n}_{k}^{g}} \\&=\frac{1}{4} \frac{\partial \mathbf{R}_{b_{i} b_{k+1}} \exp \left(\left[\frac{1}{2}\delta \mathbf{n}_{k}^{g} \delta t\right]_{ \times}\right)\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right) \delta t^{2}}{\partial \delta \mathbf{n}_{k}^{g}} \\&=\frac{1}{4} \frac{\partial \mathbf{R}_{b_{i} b_{k+1}}\left(\mathbf{I}+\left[\frac{1}{2}\delta\mathbf{n}_{k}^{g} \delta t\right]_{ \times}\right)\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right) \delta t^{2}}{\partial \delta\mathbf{n}_{k}^{g}} \\&=\frac{1}{4} \frac{\partial-\mathbf{R}_{b_{i} b_{k+1}}\left(\left[\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right) \delta t^{2}\right]_{ \times}\right)\left(\frac{1}{2}\delta \mathbf{n}_{k}^{g} \delta t\right)}{\partial \delta \mathbf{n}_{k}^{g}} \\&=-\frac{1}{4}\left(\mathbf{R}_{b_{i} b_{k+1}}\left[\left(\mathbf{a}^{b_{k+1}}-\mathbf{b}_{k}^{a}\right)\right]_{ \times} \delta t^{2}\right)(\frac{1}{2}\delta t) \end{aligned} f15​​=∂δbkg​∂αbi​bk+1​​​=∂δnkg​∂41​qbi​bk​​⊗[121​ωδt​]⊗[121​(21​δnkg​)δt​](abk+1​−bka​)δt2​=41​∂δnkg​∂Rbi​bk+1​​exp([21​δnkg​δt]×​)(abk+1​−bka​)δt2​=41​∂δnkg​∂Rbi​bk+1​​(I+[21​δnkg​δt]×​)(abk+1​−bka​)δt2​=41​∂δnkg​∂−Rbi​bk+1​​([(abk+1​−bka​)δt2]×​)(21​δnkg​δt)​=−41​(Rbi​bk+1​​[(abk+1​−bka​)]×​δt2)(21​δt)​

3. 公式证明:

证明公式:Δxlm=−∑j=1nvj⊤F′⊤λj+μvj\Delta \mathbf{x}_{\mathrm{lm}}=-\sum_{j=1}^{n} \frac{\mathbf{v}_{j}^{\top} \mathbf{F}^{\prime \top}}{\lambda_{j}+\mu} \mathbf{v}_{j} Δxlm​=−j=1∑n​λj​+μvj⊤​F′⊤​vj​

证明主要是利用正规矩阵的谱分解性质,LM公式如下:(J⊤J+μI)Δxlm=−J⊤f\left(\mathbf{J}^{\top} \mathbf{J}+\mu \mathbf{I}\right) \Delta \mathbf{x}_{\mathrm{lm}}=-\mathbf{J}^{\top} \mathbf{f} (J⊤J+μI)Δxlm​=−J⊤f对J⊤J\mathbf{J}^{\top} \mathbf{J}J⊤J进行特征值分解,并加以变换:(VΛV⊤+μI)Δxlm=−F′⊤\left(\mathbf{V} \mathbf{\Lambda} \mathbf{V}^{\top}+\mu \mathbf{I}\right) \Delta \mathbf{x}_{\mathrm{lm}}=-\mathbf{F'}^{\top} (VΛV⊤+μI)Δxlm​=−F′⊤V(Λ+μI)V⊤Δxlm=−F′⊤\mathbf{V}\left( \mathbf{\Lambda} +\mu \mathbf{I}\right)\mathbf{V}^{\top} \Delta \mathbf{x}_{\mathrm{lm}}=-\mathbf{F'}^{\top} V(Λ+μI)V⊤Δxlm​=−F′⊤Δxlm=−V(Λ+μI)−1V⊤F′⊤\Delta \mathbf{x}_{\mathrm{lm}}=-\mathbf{V}\left( \mathbf{\Lambda} +\mu \mathbf{I}\right)^{-1}\mathbf{V}^{\top} \mathbf{F'}^{\top} Δxlm​=−V(Λ+μI)−1V⊤F′⊤根据正规矩阵的谱分解有:Δxlm=−∑j=1nvjvj⊤λj+μF′⊤\Delta \mathbf{x}_{\mathrm{lm}}=-\sum_{j=1}^{n} \frac{\mathbf{v}_{j}\mathbf{v}_{j}^{\top} }{\lambda_{j}+\mu} \mathbf{F}^{\prime \top} Δxlm​=−j=1∑n​λj​+μvj​vj⊤​​F′⊤根据矩阵的结合率可以直接过得结果:Δx1m=−∑j=1nvj⊤F′⊤λj+μvj\Delta \mathbf{x}_{1 \mathrm{m}}=-\sum_{j=1}^{n} \frac{\mathbf{v}_{j}^{\top} \mathbf{F}^{\prime \top}}{\lambda_{j}+\mu} \mathbf{v}_{j} Δx1m​=−j=1∑n​λj​+μvj⊤​F′⊤​vj​

深蓝学院《从零开始手写VIO》作业三相关推荐

  1. 从零开始手写VIO第三章作业(含关键点细节及思维过程)

    文章目录 前言·与同主题博文的不同 1.代码修改 1.1阻尼因子 µ 随着迭代变化的曲线图 1.2完成曲线y = ax^2^ + bx + c的参数估计 1.3实现其他更优秀的阻尼因子策略 2.公式推 ...

  2. 深蓝学院《从零开始手写VIO》作业七

    深蓝学院<从零开始手写VIO>作业七 深蓝学院<从零开始手写VIO>作业七 深蓝学院<从零开始手写VIO>作业七 将第二讲中的仿真数据(视觉特征,imu数据)接入V ...

  3. 深蓝学院《从零开始手写VIO》作业六

    深蓝学院<从零开始手写VIO>作业五 深蓝学院<从零开始手写VIO>作业六 1. 证明题 2. 代码题 深蓝学院<从零开始手写VIO>作业六 1. 证明题 证明Dy ...

  4. 深蓝学院《从零开始手写VIO》作业五

    深蓝学院<从零开始手写VIO>作业五 1. 完成Bundle Adjustment求解器 2. 完成测试函数 3. 论文总结 1. 完成Bundle Adjustment求解器 完成单目 ...

  5. 深蓝学院《从零开始手写VIO》作业一

    深蓝学院<从零开始手写VIO>作业一 深蓝学院<从零开始手写VIO>作业一 1. VIO文献阅读 1.1 视觉与IMU进行融合之后有何优势? 1.2 有哪些常见的视觉+IMU融 ...

  6. 深蓝学院《从零开始手写VIO》作业四

    深蓝学院<从零开始手写VIO>作业四 深蓝学院<从零开始手写VIO>作业四 1. 信息矩阵分析 2. Bundle Adjustment信息矩阵的计算 深蓝学院<从零开始 ...

  7. 《视觉SLAM进阶:从零开始手写VIO》第三讲 基于优化的IMU预积分与视觉信息融合 作业

    <视觉SLAM进阶:从零开始手写VIO>第三讲 基于优化的IMU预积分与视觉信息融合 作业 文章目录 <视觉SLAM进阶:从零开始手写VIO>第三讲 基于优化的IMU预积分与视 ...

  8. 《视觉SLAM进阶:从零开始手写VIO》第二讲作业-IMU仿真、MU imu_utils标定

    <视觉SLAM进阶:从零开始手写VIO>第二讲作业-IMU仿真.MU imu_utils标定 作业题目: 1 仿真代码解析 仿真代码地址:https://github.com/HeYiji ...

  9. 《视觉SLAM进阶:从零开始手写VIO》第一讲作业

    目录 1 视觉与IMU融合之后有何优势? 2 有哪些常见的视觉+IMU融合方案?有没有工业界应用的例子? 3 在学术界,VIO研究有哪些新进展?有没有将学习方法应用到VIO的例子? 4 四元数和李代数 ...

最新文章

  1. New LINQ CTP!
  2. Angular中ngCookies模块介绍
  3. Android 一s个相对完整的自动升级功能实现代码
  4. python爬虫外贸客户_python 爬虫抓取亚马逊数据
  5. 读人、看人、做人(图)
  6. 手动抛出异常_(七)异常处理
  7. 【重点 递归 动态规划 正则表达式匹配】LeetCode 10. Regular Expression Matching
  8. error Code:410 Error Message:appid and openid not match 威富通技术支持,兴业银行微信支付接入支持
  9. dnf强化卷代码_dnf强化卷叫什么名字?
  10. 2022年更新正大杯市场调查与分析大赛现场答辩问题总结注意事项和PPT板块资料经验分享
  11. Python搭建BT资源搜索站
  12. IT界最伟大的十位人物
  13. Ubuntu RTL8821ce网卡驱动
  14. 离散数学之数理逻辑——第2章 命题逻辑等值演算
  15. GM(1,1)灰色预测模型
  16. fast虚拟服务器ip地址设置,迅捷路由器静态ip怎么设置_迅捷固定IP地址怎么设置?-192路由网...
  17. thinkphp 添加图片 文字 水印生成带二维码的小程序推广海报
  18. LitePal数据库的基本操作
  19. 学生学籍信息管理系统设计c语言,c语言学籍信息管理系统设计
  20. Calibre与netlist后仿网表的仿真。

热门文章

  1. 透彻,在SpringBoot项目中使用Netty实现远程调用
  2. Springboot mybatis逆向工程org.springframework.beans.factory.BeanCreationException: Error creating bean错误
  3. Android中绘制圆形和圆角图片
  4. grouping Function
  5. 交叉熵损失函数和focal loss_理解熵、交叉熵和交叉熵损失
  6. clear linux 图形界面,Clear Linux准备迁移到GNOME 3.36,放弃其桌面自定义设置
  7. 嵌入式 linux 程序不能运行,嵌入式Linux中在开发板上/usr/bin目录下不能运行自己交叉编译的程序...
  8. 常见 Serverless 架构模式
  9. SpringCloud 应用在 Kubernetes 上的最佳实践 — 诊断(线上联调)
  10. python使用tkinter可以在多个操作系统_在tkinter GUI中使用多个窗口