本文的所涉及的知识点,如果有相关知识盲区,请参考:
微分方程通杀篇
如何区分线性系统与非线性系统
本文是观看B站视频【工程数学基础】2_线性化_泰勒级数_泰勒公式所作的笔记。
线 性 化 都 符 合 叠 加 原 理 。 \color{red}线性化都符合叠加原理。 线性化都符合叠加原理。
x ˙ = f ( x ) \dot{x}=f(x) x˙=f(x)
{ ( 1 ) x 1 , x 2 是 解 ; ( 2 ) x 3 = k 1 x 1 + k 2 x 2 , ( k 1 , k 2 是 常 数 ) ( 3 ) x 3 是 解 。 \begin{cases} (1) x_1,x_2是解;\\\\ (2)x_3=k_1x_1+k_2x_2, (k_1,k_2是常数)\\\\ (3)x_3是解。 \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧(1)x1,x2是解;(2)x3=k1x1+k2x2,(k1,k2是常数)(3)x3是解。
一个系统如果符合上面的三个条件,那么他就是线性系统。
例如:
x ¨ + 2 x ˙ + 2 x = 0 \color{red}\ddot{x}+2\dot{x}+\sqrt{2}x=0 x¨+2x˙+2x=0 是线性系统
x ¨ + 2 x ˙ + 2 x 2 = 0 \color{red}\ddot{x}+2\dot{x}+\sqrt{2}x^2=0 x¨+2x˙+2x2=0 ,由于有平方项,所以不是线性系统
x ¨ + s i n ( x ˙ ) + 2 x = 0 \color{red}\ddot{x}+sin{(\dot{x}})+\sqrt{2}x=0 x¨+sin(x˙)+2x=0 由于有正弦项,所以不是线性系统。
线性系统是没有截距的,线性系统要满足比例性和叠加性。
1.使用泰勒级数 线性化:
泰勒级数展开式如下:
f ( x ) = f ( x 0 ) + f ′ ( x 0 ) 1 ! ( x − x 0 ) + f ′ ′ ( x 0 ) 2 ! ( x − x 0 ) 2 + . . . + f ( n ) ( x 0 ) n ! ( x − x 0 ) n \color{red}f(x)=f(x_0)+\frac{f'(x_0)}{1!}(x-x_0)+\frac{f''(x_0)}{2!}(x-x_0)^2+...+\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n f(x)=f(x0)+1!f′(x0)(x−x0)+2!f′′(x0)(x−x0)2+...+n!f(n)(x0)(x−x0)n
x 0 x_0 x0是任取的一点,泰勒级数,就是在这一点附近展开。
如果 ( x − x 0 ) \color{red}(x-x_0) (x−x0)趋近于0,那么 ( x − x 0 ) 2 \color{red}(x-x_0)^2 (x−x0)2以及 ( x − x 0 ) n \color{red}(x-x_0)^n (x−x0)n都趋近于0,
那么就有:
f ( x ) = f ( x 0 ) + f ′ ( x 0 ) 1 ! ( x − x 0 ) \color{red}f(x)=f(x_0)+\frac{f'(x_0)}{1!}(x-x_0) f(x)=f(x0)+1!f′(x0)(x−x0)
上式中, x 0 x_0 x0、 f ( x 0 ) f(x_0) f(x0)和 f ′ ( x 0 ) f'(x_0) f′(x0)都是常数,因此,上式可以展开并写成如下形式:
f ( x ) = 常 数 k 1 + 常 数 k 2 ( x − 常 数 x 0 ) = k 1 + k 2 ( x − x 0 ) = k 1 + k 2 x − k 2 x 0 = k x + b f(x)=常数k_1+常数k_2(x-常数x_0)\\=k_1+k_2(x-x_0)\\=k1+k_2x-k_2x_0\\=kx+b f(x)=常数k1+常数k2(x−常数x0)=k1+k2(x−x0)=k1+k2x−k2x0=kx+b
即: f ( x ) = k x + b \color{red}f(x)=kx+b f(x)=kx+b
这样就把 f ( x ) \color{red}f(x) f(x)线性化了。
注意,这里只是把 f ( x ) \color{red}f(x) f(x)线性化了,并非说 f ( x ) \color{red}f(x) f(x)是线性系统,它有截距b,不满足叠加原理。
2.泰勒级数线性化 实例:
例如
: f ( x ) = s i n ( x ) \color{red}f(x)=sin(x) f(x)=sin(x)
把 f ( x ) f(x) f(x)在 x 0 x_0 x0 处展开,得到
f ( x ) = s i n ( x 0 ) + c o s ( x 0 ) ( x − x 0 ) \color{red}f(x)=sin(x_0)+cos(x_0)(x-x_0) f(x)=sin(x0)+cos(x0)(x−x0)
当 x 0 = 0 x_0=0 x0=0时,
f ( x ) = 0 + ( x − 0 ) = x f(x)=0+(x-0)=x f(x)=0+(x−0)=x
此时,如果
- 1.如果取 x = π 6 x=\frac{\pi}{6} x=6π, 那么实际值 f ( π 6 ) = s i n ( π 6 ) = 0.5 f(\frac{\pi}{6})=sin(\frac{\pi}{6})=0.5 f(6π)=sin(6π)=0.5
泰勒展开式求得的近似值: π 6 = 3.14 6 = 0.52 \frac{\pi}{6}=\frac{3.14}{6}=0.52 6π=63.14=0.52
误差: 0.52 − 0.5 0.5 ∗ 100 % = 4 % \frac{0.52-0.5}{0.5}*100\%=\color{red}4\% 0.50.52−0.5∗100%=4% - 2.如果取 x = π 4 x=\frac{\pi}{4} x=4π, 那么实际值 f ( π 4 ) = s i n ( π 4 ) = 0.707 f(\frac{\pi}{4})=sin(\frac{\pi}{4})=0.707 f(4π)=sin(4π)=0.707
泰勒展开式求得的近似值: π 4 = 3.14 4 = 0.785 \frac{\pi}{4}=\frac{3.14}{4}=0.785 4π=43.14=0.785
误差: 0.785 − 0.707 0.707 ∗ 100 % = 11 % \frac{0.785-0.707}{0.707}*100\%=\color{red}11\% 0.7070.785−0.707∗100%=11%
上面的两种情况都是 f ( x ) f(x) f(x)在 x 0 = 0 x_0=0 x0=0处泰勒级数展开,由于忽略了后面的很多级数 ( x − x 0 ) n \color{red}(x-x_0)^n (x−x0)n,所以是有误差的。并且,由于 π 6 \color{red}\frac{\pi}{6} 6π比 π 4 \color{red}\frac{\pi}{4} 4π更接近0,因此,当 x = π 6 \color{red}x=\frac{\pi}{6} x=6π时, f ( x ) \color{red}f(x) f(x)的取值相对更准确。
你可以想象一下,你把 f ( x ) f(x) f(x)在 x 0 = 0 x_0=0 x0=0处泰勒展开,那么 x = 0.1 x=0.1 x=0.1时用泰勒级数求得的近似值 f ( 0.1 ) f(0.1) f(0.1)当然比 x = 1 x=1 x=1时用泰勒级数求得的近似值 f ( 1 ) f(1) f(1)更加准确。
结论:
线 性 化 是 在 某 一 点 附 近 的 线 性 化 , 并 不 是 全 局 的 线 性 化 。 \color{red}线性化是在某一点附近的线性化,并不是全局的线性化。 线性化是在某一点附近的线性化,并不是全局的线性化。
x ¨ + x ˙ + 1 x = 1 (1) \color{red}\ddot{x}+\dot{x}+\frac{1}{x}=1 \tag{1} x¨+x˙+x1=1(1)
把上式在平衡点附近线性化。
平衡点就是 x x x所有的微分都为0的点:
x ¨ = x ˙ = 0 (2) \color{red}\ddot{x}=\dot{x}=0 \tag{2} x¨=x˙=0(2)
3.一维空间的情况:
如果 x \color{red}x x 是一维的话,(2)化简为 1 x = 1 \frac{1}{x}=1 x1=1
解得 x = 1 \color{red}x=1 x=1
所以平衡点就是 x 0 = 1 \color{red}x_0=1 x0=1的这个点。
(zhz:线性化应该可以任意选择在某一点进行。选在平衡点线性化可以消除常数项,构造标准的状态方程。)
要在 x 0 = 1 \color{red}x_0=1 x0=1附近线性化:
那么在 x 0 = 1 \color{red}x_0=1 x0=1的邻域内的一点,用 x δ = x 0 + x d \color{red}x_{\delta}=x_0+x_d xδ=x0+xd 表示, 其中 x d \color{red}x_d xd 是一个很小的值。
(zhz:我们之所以要整出来一个 x δ \color{red}x_{\delta} xδ是因为 x \color{red}x x符号已经被占用了,为避免混淆,才用 x δ \color{red}x_{\delta} xδ代替我们一直用到的 x \color{red}x x表示。)
把 x δ = x 0 + x d \color{red}x_{\delta}=x_0+xd xδ=x0+xd 代入(1)式,得到
x δ ¨ + x δ ˙ + 1 x δ = 1 (3) \color{red}\ddot{x_{\delta}}+\dot{x_{\delta}}+\frac{1}{x_{\delta}}=1 \tag{3} xδ¨+xδ˙+xδ1=1(3)
我们先对里面的非线性项 1 x δ \color{red}\frac{1}{x_{\delta}} xδ1进行线性化,即
f ( x δ ) = 1 x δ (4) f(x_{\delta})=\frac{1}{x_{\delta}} \tag{4} f(xδ)=xδ1(4)
在 x δ = x 0 x_{\delta}=x_0 xδ=x0处进行泰勒展开
f ( x δ ) = f ( x 0 ) + f ′ ( x 0 ) ( x δ − x 0 ) (5) f(x_{\delta})=f(x_0)+f'(x_0)(x_{\delta}-x_0) \tag{5} f(xδ)=f(x0)+f′(x0)(xδ−x0)(5)
f ′ ( x 0 ) f'(x_0) f′(x0)求解: ( 1 x δ ) ′ = − 1 x δ 2 (\frac{1}{x_{\delta}})'=-\frac{1}{x_{\delta}^2} (xδ1)′=−xδ21 , 代入(5)式,得到:
1 x δ = 1 x 0 + − 1 x 0 2 x d \frac{1}{x_{\delta}}=\frac{1}{x_0}+\frac{-1}{x_0^2}x_d xδ1=x01+x02−1xd
把 x 0 = 1 x_0=1 x0=1代入上式,得到
1 x δ = 1 − x d (6) \color{red}\frac{1}{x_{\delta}}=1-x_d \tag{6} xδ1=1−xd(6)
上式就是把非线性项 1 x δ \color{red}\frac{1}{x_{\delta}} xδ1进行线性化的结果。
由于 x δ = x 0 + x d \color{red}x_{\delta}=x_0+x_d xδ=x0+xd ,所以有:
{ x δ ¨ = x 0 ¨ + x d ¨ x δ ˙ = x 0 ˙ + x d ˙ \color{red} \begin{cases} \ddot{x_{\delta}}=\ddot{x_0}+\ddot{x_d}\\ \\ \dot{x_{\delta}}=\dot{x_0}+\dot{x_d}\\ \end{cases} ⎩⎪⎨⎪⎧xδ¨=x0¨+xd¨xδ˙=x0˙+xd˙
又因为 x 0 x_0 x0是常数,所以
{ x δ ¨ = x d ¨ x δ ˙ = x d ˙ \color{red} \begin{cases} \ddot{x_{\delta}}=\ddot{x_d} \\ \\ \dot{x_{\delta}}=\dot{x_d} \\ \end{cases} ⎩⎪⎨⎪⎧xδ¨=xd¨xδ˙=xd˙
把上面两个化简结果代入(3)式 x δ ¨ + x δ ˙ + 1 x δ = 1 \color{red}\ddot{x_{\delta}}+\dot{x_{\delta}}+\frac{1}{x_{\delta}}=1 xδ¨+xδ˙+xδ1=1,得到:
x d ¨ + x d ˙ + 1 x δ = 1 (7) \ddot{x_d}+\dot{x_d}+\frac{1}{x_{\delta}}=1 \tag{7} xd¨+xd˙+xδ1=1(7)
由于 1 x δ \color{red}\frac{1}{x_{\delta}} xδ1线性化后的结果为(6)式 1 x δ = 1 − x d \color{red}\frac{1}{x_{\delta}}=1-x_d xδ1=1−xd, 代入(7)式:得到
x d ¨ + x d ˙ + ( 1 − x d ) = 1 \ddot{x_d}+\dot{x_d}+(1-x_d)=1 xd¨+xd˙+(1−xd)=1
化简得到:
x d ¨ + x d ˙ − x d = 0 (8) \color{red}\ddot{x_d}+\dot{x_d}-x_d=0 \tag{8} xd¨+xd˙−xd=0(8)
上式就是线性化后的结果。
3.二维空间的情况:
上面讲了 x \color{red}x x 为一维的情况,这里来分析 x \color{red}x x 为二维的情况:
{ x ˙ 1 = f 1 ( x 1 , x 2 ) x ˙ 2 = f 2 ( x 1 , x 2 ) (AAA) \begin{cases} \dot x_1=f_1(x_1,x_2)\\ \dot x_2=f_2(x_1,x_2) \end{cases} \tag{AAA} { x˙1=f1(x1,x2)x˙2=f2(x1,x2)(AAA)
zhz:那么在平衡点 x 0 \color{red}x_0 x0的邻域内的一点,用 x δ = x 0 + x d \color{red}x_{\delta}=x_0+x_d xδ=x0+xd 表示, 其中 x d \color{red}x_d xd 是一个很小的值:
x d = [ x 1 d x 2 d ] \color{red}x_d=\begin{bmatrix} {x_1}_d\\\\ {x_2}_d\end{bmatrix} xd=⎣⎡x1dx2d⎦⎤
zhz:下面的分析为什么直接是 x d x_d xd了,而不是和一维一样,分析 x δ \color{red}x_{\delta} xδ ???
它在平衡点 x 0 \color{red}x_0 x0 附近可以表示为:
[ x ˙ 1 d x ˙ 2 d ] = [ ∂ f 1 ∂ x 1 ∂ f 1 ∂ x 2 ∂ f 2 ∂ x 1 ∂ f 2 ∂ x 2 ] ∣ x = x 0 ∗ [ x 1 d x 2 d ] (BBB) \begin{bmatrix} {\dot x_1}_d\\ {\dot x_2}_d\end{bmatrix}=\begin{bmatrix} \frac{\partial{f_1}}{\partial{x_1} }& \frac{\partial{f_1}}{\partial{x_2}} \\\\ \frac{\partial{f_2}}{\partial{x_1}}&\frac{\partial{f_2}}{\partial{x_2}}\end{bmatrix}_{|x=x_0}*\begin{bmatrix} {x_1}_d\\ {x_2}_d\end{bmatrix} \tag{BBB} [x˙1dx˙2d]=⎣⎡∂x1∂f1∂x1∂f2∂x2∂f1∂x2∂f2⎦⎤∣x=x0∗[x1dx2d](BBB)
令:
{ x 1 = x x 2 = x ˙ \color{red} \begin{cases} {x_1}=x \\ \\ {x_2}=\dot{x} \\ \end{cases} ⎩⎪⎨⎪⎧x1=xx2=x˙
(zhz:为什么要令 x 1 = x \color{red}{x_1}=x x1=x ?)
那么就有:
{ x 1 ˙ = x 2 x 2 ˙ = x ¨ (9) \color{red} \begin{cases} \dot {x_1}=x_2 \\ \\ \dot {x_2}=\ddot{x} \tag{9} \\ \end{cases} ⎩⎪⎨⎪⎧x1˙=x2x2˙=x¨(9)
回看前面的(1)式,即: x ¨ + x ˙ + 1 x = 1 \color{red}\ddot{x}+\dot{x}+\frac{1}{x}=1 x¨+x˙+x1=1
把(1)式代入(9)的第二个式子,又由于 x 1 = x \color{red}{x_1}=x x1=x, 所以:
x 2 ˙ = x ¨ = 1 − 1 x − x ˙ = 1 − 1 x 1 − x 2 ˙ \dot {x_2}=\ddot{x}=1-\frac{1}{x}-\dot{x}\\ =1-\frac{1}{x_1}-\dot{x_2} x2˙=x¨=1−x1−x˙=1−x11−x2˙
因此:
{ x 1 ˙ = x 2 x 2 ˙ = 1 − 1 x 1 − x 2 (10) \color{red} \begin{cases} \dot {x_1}=x_2 \\ \\ \dot {x_2}=1-\frac{1}{x_1}-x_2 \tag{10} \\ \end{cases} ⎩⎪⎨⎪⎧x1˙=x2x2˙=1−x11−x2(10)
回看前面分析,平衡点就是 x \color{red}x x所有的微分都为 0 \color{red}0 0 的点,前面的(2)式即
x ¨ = x ˙ = 0 \color{red}\ddot{x}=\dot{x}=0 x¨=x˙=0, 所以就有:
{ x 1 ˙ = 0 x 2 ˙ = 0 (11) \color{red} \begin{cases} \dot {x_1}=0 \\ \\ \dot {x_2}=0 \tag{11} \\ \end{cases} ⎩⎪⎨⎪⎧x1˙=0x2˙=0(11)
因此,平衡点 x 0 = ( x 1 , 0 , x 2 , 0 ) \color{red} x_0=(x_{1,0}, x_{2,0}) x0=(x1,0,x2,0) 为:
{ x 1 , 0 = 1 x 2 , 0 = 0 (12) \color{red} \begin{cases} {x_{1,0}}=1 \\ \\ {x_{2,0}}=0 \tag{12} \\ \end{cases} ⎩⎪⎨⎪⎧x1,0=1x2,0=0(12)
由(10)式和(AAA)式,可得到:
{ f 1 = x 2 f 2 = 1 − 1 x 1 − x 2 (13) \color{red} \begin{cases} {f_1}=x_2 \\ \\ {f_2}=1-\frac{1}{x_1}-x_2 \\ \end{cases} \tag{13} ⎩⎪⎨⎪⎧f1=x2f2=1−x11−x2(13)
把上面的 f 1 , f 2 f_1,f_2 f1,f2 代入前面的(BBB)式:
[ x ˙ 1 d x ˙ 2 d ] = [ ∂ f 1 ∂ x 1 ∂ f 1 ∂ x 2 ∂ f 2 ∂ x 1 ∂ f 2 ∂ x 2 ] ∣ x = x 0 ∗ [ x 1 d x 2 d ] (BBB) \begin{bmatrix} {\dot x_1}_d\\ {\dot x_2}_d\end{bmatrix}=\begin{bmatrix} \frac{\partial{f_1}}{\partial{x_1} }& \frac{\partial{f_1}}{\partial{x_2}} \\\\ \frac{\partial{f_2}}{\partial{x_1}}&\frac{\partial{f_2}}{\partial{x_2}}\end{bmatrix}_{|x=x_0}*\begin{bmatrix} {x_1}_d\\ {x_2}_d\end{bmatrix} \tag{BBB} [x˙1dx˙2d]=⎣⎡∂x1∂f1∂x1∂f2∂x2∂f1∂x2∂f2⎦⎤∣x=x0∗[x1dx2d](BBB)
并且把求解得到的平衡点(12)式的结果代入,就得到:
[ x ˙ 1 d x ˙ 2 d ] = [ 0 1 1 − 1 ] ∗ [ x 1 d x 2 d ] (14) \color{red}\begin{bmatrix} {\dot x_1}_d\\ \\{\dot x_2}_d\end{bmatrix}=\begin{bmatrix} 0&1\\\\ 1&-1\end{bmatrix}*\begin{bmatrix} {x_1}_d\\\\ {x_2}_d\end{bmatrix} \tag{14} ⎣⎡x˙1dx˙2d⎦⎤=⎣⎡011−1⎦⎤∗⎣⎡x1dx2d⎦⎤(14)
把上式的第二项列出来,即:
x ˙ 2 d = x 1 d − x 2 d (15) \color{red} {\dot x_2}_d= {x_1}_d- {x_2}_d\tag{15} x˙2d=x1d−x2d(15)
上式带回去还原为:
x ¨ d = x d − x ˙ d (16) \color{red} {\ddot x_d}= x_d- \dot x_d \tag{16} x¨d=xd−x˙d(16)
等式右边全部移到左边,就得到了和一维情况(8)式一样的最终结果:
x d ¨ + x d ˙ − x d = 0 \color{red}\ddot{x_d}+\dot{x_d}-x_d=0 xd¨+xd˙−xd=0