最小二乘法系统辨识小结
文章目录
- 一.常用随机系统模型
- 1.时间序列模型
- 2.方程误差模型
- 3.输出误差模型
- 二.辨识模型
- 三. 最小二乘基本原理
- 四.最小二乘估计的统计特性
- 1.无偏性定理
- 2.估计误差协方差定理
- 3.噪声方差估计定理
- 五.常用的各类最小二乘辨识算法
- 1.递推最小二乘辨识
- 2.带遗忘因子最小二乘系统辨识
- 3.新息与残差之间的关系
- 4.有限数据窗最小二乘系统辨识
- 5.带遗忘因子的有限数据窗最小二乘算法
吴爱国.系统辨识讲义
丁峰.系统辨识新论
最近看完了系统辨识课程的讲义,总结一下讲义上的内容:
系统辨识分为系统结构辨识和系统参数辨识。课程的内容是系统参数的辨识,即假设系统结构已知。
辨识的四要素:输入输出数据,模型集,准则函数,优化方法。
课程中模型的结构已知,实际的辨识中会存在多个可能的模型结构,构成待辨识的模型集。
A(z)=1+a1z−1+a2z−2+.....+anaz−naA(z)=1+a_1z^{-1}+a_2z^{-2}+.....+a_{n_a}z^{-n_a}A(z)=1+a1z−1+a2z−2+.....+anaz−naB(z)=b1z−1+b2z−2+.....+bnbz−nbB(z)=b_1z^{-1}+b_2z^{-2}+.....+b_{n_b}z^{-n_b}B(z)=b1z−1+b2z−2+.....+bnbz−nbC(z)=1+c1z−1+c2z−2+.....+cncz−ncC(z)=1+c_1z^{-1}+c_2z^{-2}+.....+c_{n_c}z^{-n_c}C(z)=1+c1z−1+c2z−2+.....+cncz−ncD(z)=1+d1z−1+d2z−2+.....+dndz−ndD(z)=1+d_1z^{-1}+d_2z^{-2}+.....+d_{n_d}z^{-n_d}D(z)=1+d1z−1+d2z−2+.....+dndz−ndF(z)=1+f1z−1+f2z−2+.....+fnfz−nfF(z)=1+f_1z^{-1}+f_2z^{-2}+.....+f_{n_f}z^{-n_f}F(z)=1+f1z−1+f2z−2+.....+fnfz−nf
随机白噪声 v(t)v(t)v(t),E(v(t))=0E(v(t))=0E(v(t))=0,D(v(t))=σ2D(v(t))=\sigma^2D(v(t))=σ2
一.常用随机系统模型
常用的辨识模型有以下几类:
1.时间序列模型
(1)自回归模型(AR)A(z)y(t)=v(t)A(z)y(t)=v(t)A(z)y(t)=v(t)
该模型表示当前值是过去值的组合。
(2)滑动平均模型(MA)y(t)=D(z)v(t)y(t)=D(z)v(t)y(t)=D(z)v(t)
当前值是过去白噪声的组合。
(3)滑动平均自回归模型(ARMA)A(z)y(t)=D(z)v(t)A(z)y(t)=D(z)v(t)A(z)y(t)=D(z)v(t)
(4)确定性模型(ARMA)A(z)y(t)=B(z)u(t)A(z)y(t)=B(z)u(t)A(z)y(t)=B(z)u(t)
2.方程误差模型
误差是指描述输入和输出之间的差分方程的误差.
(1)受控自回归模型(ARX)A(z)y(t)=B(z)u(t)+v(t)A(z)y(t)=B(z)u(t)+v(t)A(z)y(t)=B(z)u(t)+v(t)
(2)受控自回归滑动平均模型(ARMAX)A(z)y(t)=B(z)u(t)+D(z)v(t)A(z)y(t)=B(z)u(t)+D(z)v(t)A(z)y(t)=B(z)u(t)+D(z)v(t)
(3)受控ARAR模型(ARARX)A(z)y(t)=B(z)u(t)+v(t)/C(z)A(z)y(t)=B(z)u(t)+v(t)/C(z)A(z)y(t)=B(z)u(t)+v(t)/C(z)
(4)受控ARARMA模型(ARARMAX)A(z)y(t)=B(z)u(t)+D(z)C(z)v(t)A(z)y(t)=B(z)u(t)+\frac{D(z)}{C(z)}v(t)A(z)y(t)=B(z)u(t)+C(z)D(z)v(t)
3.输出误差模型
(1)输出误差模型(OE)y(t)=B(z)A(z)u(t)+v(t)y(t)=\frac{B(z)}{A(z)}u(t)+v(t)y(t)=A(z)B(z)u(t)+v(t)
(2)输出误差滑动平均模型(OEMA)y(t)=B(z)A(z)u(t)+D(z)v(t)y(t)=\frac{B(z)}{A(z)}u(t)+D(z)v(t)y(t)=A(z)B(z)u(t)+D(z)v(t)
(3)输出误差自回归模型(OEAR)y(t)=B(z)A(z)u(t)+1C(z)v(t)y(t)=\frac{B(z)}{A(z)}u(t)+\frac{1}{C(z)}v(t)y(t)=A(z)B(z)u(t)+C(z)1v(t)
(4)输出误差自回归滑动平均模型(OEARMA)y(t)=B(z)A(z)u(t)+D(z)C(z)v(t)y(t)=\frac{B(z)}{A(z)}u(t)+\frac{D(z)}{C(z)}v(t)y(t)=A(z)B(z)u(t)+C(z)D(z)v(t)
二.辨识模型
为了辨识系统参数,一般把系统的参数写成一个参数向量形式,输入输出写成一个信息向量形式,就得到系统的辨识模型,也称为辨识表达式.一般单输入单输出线性参数系统的辨识模型可以表达为:y(t)=φT(t)θ+v(t)y(t)=\varphi^T(t)\theta+v(t)y(t)=φT(t)θ+v(t)
三. 最小二乘基本原理
以一个典型的受控自回归模型为例:
设系统的模型为y(t)+a1y(t−1)+a−2y(t−2)=b1u(t)+b2u(t−1)+v(t)y(t)+a_1y(t-1)+a-2y(t-2)=b_1u(t)+b_2u(t-1)+v(t)y(t)+a1y(t−1)+a−2y(t−2)=b1u(t)+b2u(t−1)+v(t)
将其写为如下的形式:y(t)=−a1y(t−1)−a2y(t−2)+b1u(t)+b2u(t−1)+v(t)y(t)=-a_1y(t-1)-a_2y(t-2)+b_1u(t)+b_2u(t-1)+v(t)y(t)=−a1y(t−1)−a2y(t−2)+b1u(t)+b2u(t−1)+v(t)
设观测的数据长度为t,对这个模型有:y(3)=−a1y(2)−a2y(1)+b1u(3)+b2u(2)+v(3)y(3)=-a_1y(2)-a_2y(1)+b_1u(3)+b_2u(2)+v(3)y(3)=−a1y(2)−a2y(1)+b1u(3)+b2u(2)+v(3)y(4)=−a1y(3)−a2y(2)+b1u(4)+b2u(3)+v(4)y(4)=-a_1y(3)-a_2y(2)+b_1u(4)+b_2u(3)+v(4)y(4)=−a1y(3)−a2y(2)+b1u(4)+b2u(3)+v(4).............................................y(t)=−a1y(t−1)−a2y(t−2)+b1u(t)+b2u(t−1)+v(t)y(t)=-a_1y(t-1)-a_2y(t-2)+b_1u(t)+b_2u(t-1)+v(t)y(t)=−a1y(t−1)−a2y(t−2)+b1u(t)+b2u(t−1)+v(t)
令Y=[y(3),y(4)....y(t)]TY=[y(3),y(4)....y(t)]^TY=[y(3),y(4)....y(t)]TφT(i)=[−y(i−1),−y(i−2),u(i),u(i−1)]\varphi^T(i)=[-y(i-1),-y(i-2),u(i),u(i-1)]φT(i)=[−y(i−1),−y(i−2),u(i),u(i−1)]θ=[a1,a2,b1,b2]\theta=[a_1,a_2,b_1,b_2]θ=[a1,a2,b1,b2]H=[φ(3),φ(4),.....φ(t)]TH=[\varphi(3),\varphi(4),.....\varphi(t)]^TH=[φ(3),φ(4),.....φ(t)]TV=[v(3),v(4)....v(t)]TV=[v(3),v(4)....v(t)]^TV=[v(3),v(4)....v(t)]T
我们可以得到:Y=Hθ+VY=H\theta+VY=Hθ+V
令准则函数为J(θ)=(Y−Hθ)T(Y−Hθ)J(\theta)=(Y-H\theta)^T(Y-H\theta)J(θ)=(Y−Hθ)T(Y−Hθ)
JJJ对θ\thetaθ求偏导,并令其偏导数为零.得到θ\thetaθ的估计值θLS=(HTH)−1HTY\theta_{LS}=(H^TH)^{-1}H^TYθLS=(HTH)−1HTY
四.最小二乘估计的统计特性
1.无偏性定理
已知θ\thetaθ的最小二乘估计θLS=(HTH)−1HTY\theta_{LS}=(H^TH)^{-1}H^TYθLS=(HTH)−1HTY,辨识模型可以写成:Y=Hθ+WY=H\theta+WY=Hθ+W,WWW代表任意形式的噪声.在这里先不考虑WWW中未知参数的辨识,只考虑与输入和输出(可测)有关的待估计参数.
则θLS\theta_{LS}θLS的数学期望E(θLS)=E[(HTH)−1HTY]E(\theta_{LS})=E[(H^TH)^{-1}H^TY]E(θLS)=E[(HTH)−1HTY]=E[(HTH)−1HT(Hθ+W)]θ=E[(H^TH)^{-1}H^T(H\theta+W)]\theta=E[(HTH)−1HT(Hθ+W)]θ=E[θ+(HTH)−1HTW]=E[\theta+(H^TH)^{-1}H^TW]=E[θ+(HTH)−1HTW]=θ+E[(HTH)−1HTW]=\theta+E[(H^TH)^{-1}H^TW]=θ+E[(HTH)−1HTW]其中(HTH)−1HT为常数(H^TH)^{-1}H^T为常数(HTH)−1HT为常数,所以E(θLS)=θ+(HTH)−1HTE[W]E(\theta_{LS})=\theta+(H^TH)^{-1}H^TE[W]E(θLS)=θ+(HTH)−1HTE[W]当WWW为白噪声,则E(θLS)=θE(\theta_{LS})=\thetaE(θLS)=θ.E(θLS)E(\theta_{LS})E(θLS)为θ\thetaθ的无偏估计.
或当噪声向量WWW的均值为0,且与HHH无关时,E(θLS)E(\theta_{LS})E(θLS)为θ\thetaθ的无偏估计.
2.估计误差协方差定理
对一个系统Y=Hθ+WY=H\theta+WY=Hθ+W,设噪声向量WWW的均值为零,协方差矩阵cov[W]=Rvcov[W]=R_vcov[W]=Rv,且WWW与HHH相互独立,则参数估计误差θLS~=θLS−θ\tilde{\theta_{LS}}=\theta_{LS}-\thetaθLS~=θLS−θ的协方差矩阵为cov[θLS~]=E[(HTH)−1HTRvH(HTH)−1]cov[\tilde{\theta_{LS}}]=E[(H^TH)^{-1}H^TR_vH(H^TH)^{-1}]cov[θLS~]=E[(HTH)−1HTRvH(HTH)−1]
cov[θLS~]=σ2E[(HTH)−1]cov[\tilde{\theta_{LS}}]=\sigma^2E[(H^TH)^{-1}]cov[θLS~]=σ2E[(HTH)−1]
如果WWW是一白噪声序列,且其方差为σ2\sigma^2σ2,则cov[θLS~]=σ2E[(HTH)−1]cov[\tilde{\theta_{LS}}]=\sigma^2E[(H^TH)^{-1}]cov[θLS~]=σ2E[(HTH)−1]
3.噪声方差估计定理
对一个系统Y=Hθ+WY=H\theta+WY=Hθ+W,设WWW和HHH是统计独立的零均值白噪声向量,WWW的分量为零均值白噪声向量v(t)v(t)v(t),则v(t)的方差σ2\sigma^2σ2的估计为:σ2^=J[θLS~]t−n,t充分大时\hat{\sigma^2}=\frac{J[\tilde{\theta_{LS}}]}{t-n},t充分大时σ2^=t−nJ[θLS~],t充分大时其中n:=dimθ=θ的维数n:=dim\theta=\theta的维数n:=dimθ=θ的维数
五.常用的各类最小二乘辨识算法
1.递推最小二乘辨识
适用模型
受控自回归模型(ARX):A(z)y(t)=B(z)u(t)+v(t)A(z)y(t)=B(z)u(t)+v(t)A(z)y(t)=B(z)u(t)+v(t)
将上述模型写为辨识模型的形式:Y=Hθ+WY=H\theta+WY=Hθ+W
递推最小二乘的算法如下:θ^(t)=θ^(t−1)+L(t)[y(t)−φT(t)θ^(t−1)]\hat\theta(t)=\hat\theta(t-1)+L(t)[y(t)-\varphi^T(t)\hat\theta(t-1)]θ^(t)=θ^(t−1)+L(t)[y(t)−φT(t)θ^(t−1)]L(t)=P(t−1)φ(t)1+φT(t)P(t−1)φ(t)L(t)=\frac{P(t-1)\varphi(t)}{1+\varphi^T(t)P(t-1)\varphi(t)}L(t)=1+φT(t)P(t−1)φ(t)P(t−1)φ(t)P(t)=[I−L(t)φT(t)]P(t−1),P(0)=p0IP(t)=[I-L(t)\varphi^T(t)]P(t-1),P(0)=p_0IP(t)=[I−L(t)φT(t)]P(t−1),P(0)=p0Iφ(t)=[−y(t−1),−y(t−2)....,−y(t−na),u(t−1),u(t−2),.....u(t−nb)]\varphi(t)=[-y(t-1) ,-y(t-2)....,-y(t-n_a),u(t-1),u(t-2),.....u(t-n_b)]φ(t)=[−y(t−1),−y(t−2)....,−y(t−na),u(t−1),u(t−2),.....u(t−nb)]
计算顺序如下:
P(0)−>L(1)−>θ^(1)−>P(1)−>L(1)−>θ^(2)−>.....P(0)->L(1)->\hat\theta(1)->P(1)->L(1)->\hat\theta(2)->.....P(0)−>L(1)−>θ^(1)−>P(1)−>L(1)−>θ^(2)−>.....
其中P(0)一般取10610^6106数量级.
2.带遗忘因子最小二乘系统辨识
适用模型
受控自回归模型(ARX):A(z)y(t)=B(z)u(t)+v(t)A(z)y(t)=B(z)u(t)+v(t)A(z)y(t)=B(z)u(t)+v(t)
将上述模型写为辨识模型的形式:Y=Hθ+WY=H\theta+WY=Hθ+W.
算法如下:
θ^(t)=θ^(t−1)+L(t)[y(t)−φT(t)θ^(t−1)]\hat\theta(t)=\hat\theta(t-1)+L(t)[y(t)-\varphi^T(t)\hat\theta(t-1)]θ^(t)=θ^(t−1)+L(t)[y(t)−φT(t)θ^(t−1)]L(t)=P(t−1)φ(t)λ+φT(t)P(t−1)φ(t)L(t)=\frac{P(t-1)\varphi(t)}{\lambda+\varphi^T(t)P(t-1)\varphi(t)}L(t)=λ+φT(t)P(t−1)φ(t)P(t−1)φ(t)P(t)=1λ[I−L(t)φT(t)]P(t−1),P(0)=p0IP(t)=\frac{1}{\lambda}[I-L(t)\varphi^T(t)]P(t-1),P(0)=p_0IP(t)=λ1[I−L(t)φT(t)]P(t−1),P(0)=p0I
λ\lambdaλ一般取0.9~1,当λ\lambdaλ取1时即为标准最小二乘算法.
3.新息与残差之间的关系
新息:e(t)=y(t)−φT(t)θ^(t−1)e(t)=y(t)-\varphi^T(t)\hat\theta(t-1)e(t)=y(t)−φT(t)θ^(t−1)
残差:ε(t)=y(t)−φT(t)θ^(t)\varepsilon(t)=y(t)-\varphi^T(t)\hat\theta(t)ε(t)=y(t)−φT(t)θ^(t)
e(t)=[1+1λφT(t)θ^(t)]ε(t)e(t)=[1+\frac{1}{\lambda}\varphi^T(t)\hat\theta(t)]\varepsilon(t)e(t)=[1+λ1φT(t)θ^(t)]ε(t)
4.有限数据窗最小二乘系统辨识
适用模型
受控自回归模型(ARX):A(z)y(t)=B(z)u(t)+v(t)A(z)y(t)=B(z)u(t)+v(t)A(z)y(t)=B(z)u(t)+v(t)
将上述模型写为辨识模型的形式:Y=Hθ+WY=H\theta+WY=Hθ+W.
算法如下:
θ^(t)=θ^(t−1)+P(t)[φ(t),−φ(t−p)][y(t)−φT(t)θ^(t−1),y(t−p)−φT(t−p)θ^(t−1)]T\hat\theta(t)=\hat\theta(t-1)+P(t)[\varphi(t),-\varphi(t-p)][y(t)-\varphi^T(t)\hat\theta(t-1),y(t-p)-\varphi^T(t-p)\hat\theta(t-1)]^Tθ^(t)=θ^(t−1)+P(t)[φ(t),−φ(t−p)][y(t)−φT(t)θ^(t−1),y(t−p)−φT(t−p)θ^(t−1)]TQ(t)=P(t−1)−P(t−1)φ(t)φT(t)P(t−1)1+φT(t)P(t−1)φ(t)Q(t)=P(t-1)-\frac{P(t-1)\varphi(t)\varphi^T(t)P(t-1)}{1+\varphi^T(t)P(t-1)\varphi(t)}Q(t)=P(t−1)−1+φT(t)P(t−1)φ(t)P(t−1)φ(t)φT(t)P(t−1)P(t)=Q(t)+Q(t)φ(t−p)φT(t−p)Q(t)1−φT(t−p)Q(t)φ(t−p)P(t)=Q(t)+\frac{Q(t)\varphi(t-p)\varphi^T(t-p)Q(t)}{1-\varphi^T(t-p)Q(t)\varphi(t-p)}P(t)=Q(t)+1−φT(t−p)Q(t)φ(t−p)Q(t)φ(t−p)φT(t−p)Q(t)
5.带遗忘因子的有限数据窗最小二乘算法
适用模型
受控自回归模型(ARX):A(z)y(t)=B(z)u(t)+v(t)A(z)y(t)=B(z)u(t)+v(t)A(z)y(t)=B(z)u(t)+v(t)
将上述模型写为辨识模型的形式:Y=Hθ+WY=H\theta+WY=Hθ+W.
θ^(t)=α(t−1)+P(t)φ(t)[y(t)−φT(t)α(t−1)]\hat\theta(t)=\alpha(t-1)+P(t)\varphi(t)[y(t)-\varphi^T(t)\alpha(t-1)]θ^(t)=α(t−1)+P(t)φ(t)[y(t)−φT(t)α(t−1)]P(t)=1λ[Pα(t−1)−Pα(t−1)φ(t)φT(t)Pα(t−1)λ+φT(t)Pα(t−1)φ(t)]P(t)=\frac{1}{\lambda}[P_{\alpha}(t-1)-\frac{P_{\alpha}(t-1)\varphi(t)\varphi^T(t)P_\alpha(t-1)}{\lambda+\varphi^T(t)P_{\alpha}(t-1)\varphi(t)}]P(t)=λ1[Pα(t−1)−λ+φT(t)Pα(t−1)φ(t)Pα(t−1)φ(t)φT(t)Pα(t−1)]α(t−1)=θ^(t−1)−λp−1Pα(t−1)φ(t−p)[y(t)−φT(t−p)θ^(t−1)]\alpha(t-1)=\hat\theta(t-1)-\lambda^{p-1}P_{\alpha}(t-1)\varphi(t-p)[y(t)-\varphi^T(t-p)\hat\theta(t-1)]α(t−1)=θ^(t−1)−λp−1Pα(t−1)φ(t−p)[y(t)−φT(t−p)θ^(t−1)]Pα(t−1)=P(t−1)+Pα(t−1)φ(t−p)φT(t−p)Pα(t−1)λ−1−φT(t−p)Pα(t−1)φ(t−p)P_{\alpha}(t-1)=P(t-1)+\frac{P_{\alpha}(t-1)\varphi(t-p)\varphi^T(t-p)P_\alpha(t-1)}{\lambda^{-1}-\varphi^T(t-p)P_{\alpha}(t-1)\varphi(t-p)}Pα(t−1)=P(t−1)+λ−1−φT(t−p)Pα(t−1)φ(t−p)Pα(t−1)φ(t−p)φT(t−p)Pα(t−1)
最小二乘法系统辨识小结相关推荐
- matlab非线性系统频域标识,基于MATLAB的最小二乘法系统辨识与仿真
第 29卷 第 2期 许昌学院学报 Vol. 29. No. 2 2010年 3月 JOURNAL OF XUCHANG UN IVERSITY Mar. 2010 收稿日期: 2008 - 10 - ...
- 【系统辨识】最小二乘法
系统辨识的基本原理 由于系统辨识建模的方法是利用试验数据来确定数学模型,因此,这种方法就是针对已经存在的实际系统来建立数学模型.通过试验可以获得系统的输入输出数据,这些数据能够反映出系统的动态特性,所 ...
- 计算机解决最小二乘法的过程,最小二乘法小结.doc
最小二乘法小结 最小二乘法原理 1. 介绍部分 最小二乘法是获得物理参数唯一值的标准方法,具体是通过这些参数或者在已知数学模型中与这些参数相关的参数的多余观测值来求得. 最小二乘法最早是由高斯提出,用 ...
- 系统辨识的最小二乘法原理及其算法实现
1.原理 2.最小二乘法算法 3.最小二乘法递推算法 4.例题(Matlab实现) clc,clear;close all; rng(1) %下面是系统的真实参数 a1 = -1.3;a2 = 0.7 ...
- 系统辨识(六):最小二乘法的修正算法
最小二乘法的修正算法主要包括: 广义最小二乘法(Generalized Least Squares Method,简称GLS) 辅助变量法(Instrumental Variable Method,简 ...
- 机器学习(1): 线性回归——最小二乘法 小结
目录 1 最小二乘法简介 2 最小二乘法历史 3 基本形式 4 一元线性回归 5 多元线性回归 参考资料 1 最小二乘法简介 最小二乘法(Least square method,又称最小平方法)是一种 ...
- 基于神经网络的系统辨识,神经网络与图像识别
系统辨识的方法 经典的系统辨识方法的发展已经比较成熟和完善,他包括阶跃响应法.脉冲响应法.频率响应法.相关分析法.谱分析法.最小二乘法和极大似然法等. 其中最小二乘法(LS)是一种经典的和最基本的,也 ...
- matlab最小二乘法参数辨识,基于最小二乘法的MATLAB辨识仿真实验
<工业控制计算机>2013 年第 26 卷第 7 期基于最小二乘法的 MATLAB 辨识仿真实验 崔秀美 刘文杰 陈 澄 (苏州大学机电工程学院,江苏 苏州 215021) Experim ...
- matlab 系统辨识工具箱,MATLAB系统辨识工具箱的应用.ppt
MATLAB系统辨识工具箱的应用 MATLAB系统辨识工具箱的应用 1.系统的表示方法 下图标出了基本的输入输出结构,其中: 输入信号: 输出信号: 假设方框中的系统为线性系统,可以得出输入输出信号的 ...
- 六、张正友标定法小结
六.张正友标定法小结 这一博文,是玉米后补上的.因为觉得前面用了三篇博文来描述张氏标定法,略显散乱.在这里总结一下,使条理清晰一点.另外关于张氏标定所得参数也还有两点需要澄清.下面这个总结,其实也是在 ...
最新文章
- [WPF Bug清单]之(6)——Button的IsCancel属性失效
- 小爱同学app安卓版_这一届的小爱Play,居然连喵都敢撩……
- 日是这一年的等几天Java代码_java中计算指定日期是一年的第几天的方法
- java 内存泄露 书籍_java虚拟机内存溢出和泄漏实例
- [jQuery基础] jQuery核心函数和工具方法
- 总结ThinkPHP使用技巧经验分享(三)
- 判断文件夹存在_Excel VBA之FSO-2.3文件夹的移动
- 开培训会没人来,是正常的
- Java生成32位UUID
- win10电脑上计算机图标怎么删除,Win10删除此电脑多余软件图标的详细方法
- 基于基本面因子的量化交易模型解析
- 异常 未解决 dubbo 打包 使用将所有的文件打在一个包内 会报错误
- 超市库存管理java sql_超市仓库管理系统的设计与实现(MySQL)
- ps css圆形路径文字,ps圆形路径文字怎么做
- uni-app表情包实现
- 创意:物品定位智能标签
- macpro如何清理磁盘空间_Mac系统空间占用太大,如何清理磁盘空间
- BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding
- Android调用摄像头--农民伯伯原文
- ACMoi蓝桥杯刷题网站推荐
热门文章
- SPSS统计分析与行业应用案例详解
- 如何做好产品路标规划?这篇文章告诉你答案
- java 正则表达式 html,java正则表达式语法大全
- 数学建模模板(让你也能写论文的模板)
- 适配器模式(Adapter模式)
- 报表工具对比评论汇总,选型看这一篇就够了---------报表工具对比软文最全的收集汇总帖子
- android 1s,android 与 小米1S刷机学习
- 入门PCB设计AD9学习笔记10-11 PCB板的3D建模
- Python cx_Oracle执行的sql字符串拼接含分号导致报“ORA-01756“引号内的字符串没有正确结束
- TDD (test driver development)测试驱动开发