路径规划算法中的OBVP原理介绍

1. 前景介绍

例如一个5次多项式表示两点间的轨迹方程
x ( t ) = c 5 t 5 + c 4 t 4 + c 3 t 3 + c 2 t 2 + c 1 t 1 + c 0 x(t)=c_5t^5+c_4t^4+c_3t^3+c_2t^2+c_1t^1+c_0 x(t)=c5t5+c4t4+c3t3+c2t2+c1t1+c0
已知在t=0和t=T时刻,机器人的位置、速度、加速度如下

位置p 速度v 加速度a
t=0 a 0 0
t=T b 0 0

那么求解得:
[ a b 0 0 0 0 ] = [ x ( 0 ) x ( T ) x ′ ( 0 ) x ′ ( T ) x ′ ′ ( 0 ) x ′ ′ ( T ) ] = [ x ( 0 ) x ( T ) v ( 0 ) v ( T ) a ( 0 ) a ( T ) ] = [ 0 0 0 0 0 1 T 5 T 4 T 3 T 2 T 1 0 0 0 0 1 0 5 T 4 4 T 3 3 T 2 2 T 1 0 0 0 0 2 0 0 20 T 3 12 T 2 6 T 2 0 0 ] [ c 5 c 4 c 3 c 2 c 1 c 0 ] \left[ {\begin{matrix} a\\ b\\ 0\\ 0\\ 0\\ 0 \end{matrix}} \right] = \left[ {\begin{matrix} {x(0)}\\ {x(T)}\\ {x'(0)}\\ {x'(T)}\\ {x''(0)}\\ {x''(T)} \end{matrix}} \right] = \left[ {\begin{matrix} {x(0)}\\ {x(T)}\\ {v(0)}\\ {v(T)}\\ {a(0)}\\ {a(T)} \end{matrix}} \right] = \left[ {\begin{matrix} 0&0&0&0&0&1\\ {{T^5}}&{{T^4}}&{{T^3}}&{{T^2}}&T&1\\ 0&0&0&0&1&0\\ {5{T^4}}&{4{T^3}}&{3{T^2}}&{2T}&1&0\\ 0&0&0&2&0&0\\ {20{T^3}}&{12{T^2}}&{6T}&2&0&0 \end{matrix}} \right]\left[ {\begin{matrix} {{c_5}}\\ {{c_4}}\\ {{c_3}}\\ {{c_2}}\\ {{c_1}}\\ {{c_0}} \end{matrix}} \right] ab0000=x(0)x(T)x(0)x(T)x(0)x(T)=x(0)x(T)v(0)v(T)a(0)a(T)=0T505T4020T30T404T3012T20T303T206T0T202T220T1100110000c5c4c3c2c1c0
上面的过程就是BVP(Boundary Value Problem)的解法,但是如果多项式的系数特别多,且机器人的状态变量依旧是位置、速度、加速度等,那么我们会得到很多个满足条件的解,但是我们不知道哪一个解是最优的,因此我们需要OBVP(Optimal Boundary Value Problem)方法。


2. 原理介绍

1:一般最小化目标函数由来两部分组成,final state:最终状态的惩罚项H,transition cost:整个系统的损失G
J = H + G = h ( s ( T ) ) + ∫ 0 T g ( s ( t ) , u ( t ) ) d t J = H + G = h(s(T)) + \int_0^T {g(s(t),u(t))} dt J=H+G=h(s(T))+0Tg(s(t),u(t))dt
其中 s s s为状态变量, u u u为输入变量
2:构建系统的Hamiltonian(哈米而顿)矩阵 H H H和协变量 λ \lambda λ
H ( s , u , λ ) = g ( s , u ) + λ T f ( s , u ) λ = ( λ 1 , λ 2 , λ 3 ) H(s,u,\lambda)=g(s,u)+\lambda ^Tf(s,u)\\ \lambda=(\lambda_1,\lambda_2,\lambda_3) H(s,u,λ)=g(s,u)+λTf(s,u)λ=(λ1,λ2,λ3)
其中 f ( s , u ) f(s,u) f(s,u)为机器人的状态模型(状态方程, s ˙ = f ( s , u ) \dot s=f(s,u) s˙=f(s,u)),协变量的个数等于状态变量的个数。
3:根据Pontrayagin’s 最小值原理(详情参见附录1)得出最优的轨迹 s ∗ s^\ast s和输入 u ∗ u^\ast u,步骤如下
首先,通过Hamiltonian矩阵对协变量进行求导
λ ˙ ( t ) = − ∇ s H ( s ∗ ( t ) , u ∗ ( t ) , λ ( t ) ) \dot \lambda (t) = - {\nabla _s}H({s^*}(t),{u^*}(t),\lambda (t)) λ˙(t)=sH(s(t),u(t),λ(t))
然后,将得到的协变量代入Hamiltonian矩阵中,并且最小化输入变量,得出最优的输入变量
u ∗ ( t ) = arg ⁡ min ⁡ u ( t ) H ( s ∗ ( t ) , u ( t ) , λ ( t ) ) {u^*}(t) = \arg \mathop {\min }\limits_{u(t)} H({s^*}(t),u(t),\lambda (t)) u(t)=argu(t)minH(s(t),u(t),λ(t))
其次,通过将最优输入变量进行积分,则得到最优轨迹的函数表达式 s ∗ s^* s
最后,通过最优变量并结合边界条件,得出最优轨迹 s ∗ s^* s表达式中的参数
λ ( T ) = − ∇ h ( s ∗ ( T ) ) \lambda(T)=- {\nabla}h(s^{*}(T)) λ(T)=h(s(T))


3. 案例说明

对于一个3轴的无人机系统,OBVP的求解过程如下:

3.1 已知量

(1)目标函数:
J ∑ = ∑ k = 1 3 J k , J k = 1 T ∫ 0 T j k ( t ) 2 d t {J_{\sum} } = \sum\limits_{k = 1}^3 {{J_k},{J_k} = \frac{1}{T}\int_0^T {{j_k}{{(t)}^2}dt} } J=k=13Jk,Jk=T10Tjk(t)2dt
由于无人机在 ( x , y , z ) (x,y,z) (x,y,z)三轴上进行运动,故分别对每一轴进行最小化处理。

(2)变量

状态变量 s k = ( p k , v k , a k ) s_k=(p_k,v_k,a_k) sk=(pk,vk,ak),这里为了下面推导方便,隐去k(k表示无人机的三个轴)

输入变量 j k j_k jk,这里为了下面推导方便,隐去k(k表示无人机的三个轴)

(3)系统初值

系统0时刻的状态值 s ( 0 ) = ( p 0 , v 0 , a 0 ) T s(0)=(p_0,v_0,a_0)^T s(0)=(p0,v0,a0)T

T时刻的状态值 s f ( T ) = ( p f , v f , a f ) T s_f(T)=(p_f,v_f,a_f)^T sf(T)=(pf,vf,af)T

(4)系统状态方程
s ˙ = f s ( s , u ) = ( v , a , j ) \dot s=f_s(s,u)=(v,a,j) s˙=fs(s,u)=(v,a,j)

3.2 求解

根据前面的原理描述,最小化目标函数的过程如下

1:确定目标函数 J J J中的 H H H G G G函数
H = { 0 i f s = s ( T ) ∞ o t h e r G = 1 T × j k ( t ) 2 H=\begin {cases} 0 & if &s=s(T) \\ \infty & other \end {cases} \\ G=\frac{1}{T} \times j_k(t)^2 H={0ifothers=s(T)G=T1×jk(t)2

其中H为阶跃函数,表示当时间 t = T t=T t=T时,机器人当前状态必须与设定的状态相同,即位置、速度、加速度要和设置的保持一致,这就导致了目标函数不可导,因此并不能严格的按照Pontrayagin’s 最小值原理进行求解。

2:构建系统的Hamiltonian(哈米而顿)矩阵 H H H和协变量 λ \lambda λ
λ = ( λ 1 , λ 2 , λ 3 ) H ( s , u , λ ) = 1 T j 2 + λ T f s ( s , u ) = 1 T j 2 + λ 1 v + λ 2 a + λ 3 j \quad \lambda=(\lambda_1,\lambda_2,\lambda_3)\\ H(s,u,\lambda)=\frac{1}{T}j^2+\lambda^Tf_s(s,u)\\ \quad \quad \quad \quad \quad \quad \quad=\frac{1}{T}j^2+\lambda_1v+\lambda_2a+\lambda_3j λ=(λ1,λ2,λ3)H(s,u,λ)=T1j2+λTfs(s,u)=T1j2+λ1v+λ2a+λ3j
其中协变量 λ \lambda λ的个数和状态变量个数相同。

3:通过Hamiltonian矩阵对协变量进行求导
λ ˙ ( t ) = − ∇ s H ( s ∗ ( t ) , u ∗ ( t ) , λ ( t ) ) = ( 0 , − λ 1 , − λ 2 ) \dot \lambda (t) = - {\nabla _s}H({s^*}(t),{u^*}(t),\lambda (t))=(0,-\lambda_1,-\lambda_2) λ˙(t)=sH(s(t),u(t),λ(t))=(0,λ1,λ2)
通过常微分方程可得,协变量为
λ ( t ) = [ λ 1 ( t ) λ 2 ( t ) λ 3 ( t ) ] = 1 T [ − 2 α 2 α t + 2 β − α t 2 − 2 β t − 2 γ ] \lambda (t) = \left[ {\begin{matrix} {{\lambda _1}(t)}\\ {{\lambda _2}(t)}\\ {{\lambda _3}(t)} \end{matrix}} \right]=\frac{1}{T}\left[ {\begin{matrix} { - 2\alpha }\\ {2\alpha t + 2\beta }\\ { - \alpha {t^2} - 2\beta t - 2\gamma } \end{matrix}} \right] λ(t)=λ1(t)λ2(t)λ3(t)=T12α2αt+2βαt22βt2γ
其中上式方程中的系数 ( α , β ) (\alpha,\beta) (α,β)均为了方便计算而设计的,大家可以与我不一致。

4:将得到的协变量代入Hamiltonian矩阵中,并且最小化输入变量,得出最优的输入变量
∵ u ∗ ( t ) = j ∗ ( t ) = arg ⁡ min ⁡ j ( t ) H ( s ∗ ( t ) , j ( t ) , λ ( t ) ) ∵ H ( s ∗ ( t ) , j ( t ) , λ ( t ) ) = 1 T j 2 + λ 1 v ∗ + λ 2 a ∗ + λ 3 j ∴ δ H δ j = 2 T j + λ 3 = 0 → j = − T 2 λ 3 → u ∗ = j ∗ = 1 2 α t 2 + β t + γ \because \quad {u^*}(t) = {j^*}(t) = \arg \mathop {\min }\limits_{j(t)} H({s^*}(t),j(t),\lambda (t)) \\ \because \quad H({s^*}(t),j(t),\lambda (t)) = \frac{1}{T}{j^2} + {\lambda _1}{v^*} + {\lambda _2}{a^*} + {\lambda _3}j \\ \therefore \quad \frac{{\delta H}}{{\delta j}} = \frac{2}{T}j + {\lambda _3} = 0 \\ \to \quad j=-\frac{T}{2}\lambda_3 \\ \to \quad u^*=j^*=\frac{1}{2} \alpha t^2+\beta t +\gamma u(t)=j(t)=argj(t)minH(s(t),j(t),λ(t))H(s(t),j(t),λ(t))=T1j2+λ1v+λ2a+λ3jδjδH=T2j+λ3=0j=2Tλ3u=j=21αt2+βt+γ

同时,将最优输入变量代入目标函数中,化简得
J ( T ) = 1 T ∫ 0 T j 2 d t = γ 2 + β γ T 2 + 1 3 β 2 T 2 + 1 3 α γ T 2 + 1 4 α β T 3 + 1 20 α 2 T 4 J(T) = \frac{1}{T}\int_0^T {{j^2}dt} = {\gamma ^2} + \beta \gamma {T^2} + \frac{1}{3}{\beta ^2}{T^2} + \frac{1}{3}\alpha \gamma {T^2} + \frac{1}{4}\alpha \beta {T^3} + \frac{1}{{20}}{\alpha ^2}{T^4} J(T)=T10Tj2dt=γ2+βγT2+31β2T2+31αγT2+41αβT3+201α2T4
5:由于将输入变量 u ∗ o r j ∗ u^*\quad or \quad j^* uorj进行积一次分,则得到最优的加速度 a ∗ a^* a;积两次分,则得到最优的速度 v ∗ v^* v;积三次分,则得到最优的位置 p ∗ p^* p,并结合系统0时刻的初值,可得到最优的轨迹方程 s ∗ s^* s
s ∗ ( t ) = [ p ∗ ( t ) v ∗ ( t ) a ∗ ( t ) ] = [ ∭ u ∗ ( t ) + p 0 ∬ u ∗ ( t ) + v 0 ∫ u ∗ ( t ) + a 0 ] = [ ∫ v ∗ ( t ) + p 0 ∫ a ∗ ( t ) + v 0 ∫ u ∗ ( t ) + a 0 ] {s^*}(t) = \left[ {\begin{matrix} {{p^*}(t)}\\ {{v^*}(t)}\\ {{a^*}(t)} \end{matrix}} \right] = \left[ {\begin{matrix} {\iiint u^*(t)+p_0}\\ {\iint u^*(t)+v_0}\\ {\int {{u^*}(t) + {a_0}} } \end{matrix}} \right] = \left[ {\begin{matrix} {\int {{v^{\rm{*}}}(t) + {p_0}} }\\ {\int {{a^*}(t) + {v_0}} }\\ {\int {{u^*}(t) + {a_0}} } \end{matrix}} \right] s(t)=p(t)v(t)a(t)=u(t)+p0u(t)+v0u(t)+a0=v(t)+p0a(t)+v0u(t)+a0
将最优的输入变量 u ∗ u^* u代入得
s ∗ ( t ) = [ α 120 t 5 + β 24 t 4 + γ 6 t 3 + a 0 2 t 2 + v 0 t + p 0 α 24 t 4 + β 6 t 3 + γ 2 t 2 + a 0 t + v 0 α 6 t 3 + β 2 t 2 + γ t + a 0 ] {s^*}(t) = \left[ {\begin{matrix} {\frac{\alpha }{{120}}{t^5} + \frac{\beta }{{24}}{t^4} + \frac{\gamma }{6}{t^3} + \frac{{{a_0}}}{2}{t^2}{\rm{ + }}{v_0}t{\rm{ + }}{p_0}}\\ {\frac{\alpha }{{24}}{t^4}{\rm{ + }}\frac{\beta }{6}{t^3}{\rm{ + }}\frac{\gamma }{2}{t^2}{\rm{ + }}{a_0}t{\rm{ + }}{v_0}}\\ {\frac{\alpha }{6}{t^3}{\rm{ + }}\frac{\beta }{2}{t^2}{\rm{ + }}\gamma t{\rm{ + }}{a_0}} \end{matrix}} \right] s(t)=120αt5+24βt4+6γt3+2a0t2+v0t+p024αt4+6βt3+2γt2+a0t+v06αt3+2βt2+γt+a0
6:由于目标函数在t=T时刻并不可导,故不能通过Pontrayagin’s 最小值原理中的边界条件直接确定最优轨迹 s ∗ s^* s。的参数 ( α 、 β 、 γ ) (\alpha 、\beta 、\gamma) (αβγ),而通过系统在 t = T t=T t=T时的状态量进行确定。
s ∗ ( T ) = [ α 120 T 5 + β 24 T 4 + γ 6 T 3 + a 0 2 T 2 + v 0 T + p 0 α 24 T 4 + β 6 T 3 + γ 2 T 2 + a 0 T + v 0 α 6 T 3 + β 2 T 2 + γ T + a 0 ] = s f ( T ) = [ p f v f a f ] {s^*}(T) = \left[ {\begin{matrix} {\frac{\alpha }{{120}}{T^5} + \frac{\beta }{{24}}{T^4} + \frac{\gamma }{6}{T^3} + \frac{{{a_0}}}{2}{T^2}{\rm{ + }}{v_0}{\rm{T + }}{p_0}}\\ {\frac{\alpha }{{24}}{T^4}{\rm{ + }}\frac{\beta }{6}{T^3}{\rm{ + }}\frac{\gamma }{2}{T^2}{\rm{ + }}{a_0}{\rm{T + }}{v_0}}\\ {\frac{\alpha }{6}{{\rm{T}}^3}{\rm{ + }}\frac{\beta }{2}{T^2}{\rm{ + }}\gamma T{\rm{ + }}{a_0}} \end{matrix}} \right] = {s_f}(T) = \left[ {\begin{matrix} {{p_f}}\\ {{v_f}}\\ {{a_f}} \end{matrix}} \right] s(T)=120αT5+24βT4+6γT3+2a0T2+v0T+p024αT4+6βT3+2γT2+a0T+v06αT3+2βT2+γT+a0=sf(T)=pfvfaf
化简得
[ 1 120 T 5 1 24 T 4 1 6 T 3 1 24 T 4 1 6 T 3 1 2 T 2 1 6 T 3 1 2 T 2 T ] [ α β γ ] = [ Δ p Δ v Δ a ] 其 中 : [ Δ p Δ v Δ a ] = [ p f − p 0 − 1 2 a 0 T 2 v f − v 0 − a 0 T a f − a 0 ] \left[ {\begin{matrix} {\frac{1}{{120}}{T^5}}&{\frac{1}{{24}}{T^4}}&{\frac{1}{6}{T^3}}\\ {\frac{1}{{24}}{T^4}}&{\frac{1}{6}{T^3}}&{\frac{1}{2}{T^2}}\\ {\frac{1}{6}{T^3}}&{\frac{1}{2}{T^2}}&T \end{matrix}} \right]\left[ {\begin{matrix} \alpha \\ \beta \\ \gamma \end{matrix}} \right] = \left[ {\begin{matrix} {\Delta p}\\ {\Delta v}\\ {\Delta a} \end{matrix}} \right] \\ 其中:\left[ {\begin{matrix} {\Delta p}\\ {\Delta v}\\ {\Delta a} \end{matrix}} \right] = \left[ {\begin{matrix} {{p_f} - {p_0} - \frac{1}{2}{a_0}{T^2}}\\ {{v_f} - {v_0} - {a_0}T}\\ {{a_f} - {a_0}} \end{matrix}} \right] 1201T5241T461T3241T461T321T261T321T2Tαβγ=ΔpΔvΔaΔpΔvΔa=pfp021a0T2vfv0a0Tafa0
因此
[ α β γ ] = 1 T 5 [ 720 − 360 T 60 T 2 − 360 T 168 T 2 − 24 T 3 60 T 2 − 24 T 3 3 T 4 ] [ Δ p Δ v Δ a ] \left[ {\begin{matrix} \alpha \\ \beta \\ \gamma \end{matrix}} \right] = \frac{1}{{{T^5}}}\left[ {\begin{matrix} {720}&{ - 360T}&{60{T^2}}\\ { - 360T}&{168{T^2}}&{ - 24{T^3}}\\ {60{T^2}}&{ - 24{T^3}}&{3{T^4}} \end{matrix}} \right]\left[ {\begin{matrix} {\Delta p}\\ {\Delta v}\\ {\Delta a} \end{matrix}} \right] αβγ=T51720360T60T2360T168T224T360T224T33T4ΔpΔvΔa
7:小结一下

u ∗ = j ∗ = 1 2 α t 2 + β t + γ s ∗ ( t ) = [ α 120 t 5 + β 24 t 4 + γ 6 t 3 + a 0 2 t 2 + v 0 t + p 0 α 24 t 4 + β 6 t 3 + γ 2 t 2 + a 0 t + v 0 α 6 t 3 + β 2 t 2 + γ t + a 0 ] [ α β γ ] = 1 T 5 [ 720 − 360 T 60 T 2 − 360 T 168 T 2 − 24 T 3 60 T 2 − 24 T 3 3 T 4 ] [ Δ p Δ v Δ a ] J ( T ) = 1 T ∫ 0 T j 2 d t = γ 2 + β γ T 2 + 1 3 β 2 T 2 + 1 3 α γ T 2 + 1 4 α β T 3 + 1 20 α 2 T 4 u^*=j^*=\frac{1}{2} \alpha t^2+\beta t +\gamma \\ {s^*}(t) = \left[ {\begin{matrix} {\frac{\alpha }{{120}}{t^5} + \frac{\beta }{{24}}{t^4} + \frac{\gamma }{6}{t^3} + \frac{{{a_0}}}{2}{t^2}{\rm{ + }}{v_0}t{\rm{ + }}{p_0}}\\ {\frac{\alpha }{{24}}{t^4}{\rm{ + }}\frac{\beta }{6}{t^3}{\rm{ + }}\frac{\gamma }{2}{t^2}{\rm{ + }}{a_0}t{\rm{ + }}{v_0}}\\ {\frac{\alpha }{6}{t^3}{\rm{ + }}\frac{\beta }{2}{t^2}{\rm{ + }}\gamma t{\rm{ + }}{a_0}} \end{matrix}} \right] \\ \left[ {\begin{matrix} \alpha \\ \beta \\ \gamma \end{matrix}} \right] = \frac{1}{{{T^5}}}\left[ {\begin{matrix} {720}&{ - 360T}&{60{T^2}}\\ { - 360T}&{168{T^2}}&{ - 24{T^3}}\\ {60{T^2}}&{ - 24{T^3}}&{3{T^4}} \end{matrix}} \right]\left[ {\begin{matrix} {\Delta p}\\ {\Delta v}\\ {\Delta a} \end{matrix}} \right]\\ J(T) = \frac{1}{T}\int_0^T {{j^2}dt} = {\gamma ^2} + \beta \gamma {T^2} + \frac{1}{3}{\beta ^2}{T^2} + \frac{1}{3}\alpha \gamma {T^2} + \frac{1}{4}\alpha \beta {T^3} + \frac{1}{{20}}{\alpha ^2}{T^4} u=j=21αt2+βt+γs(t)=120αt5+24βt4+6γt3+2a0t2+v0t+p024αt4+6βt3+2γt2+a0t+v06αt3+2βt2+γt+a0αβγ=T51720360T60T2360T168T224T360T224T33T4ΔpΔvΔaJ(T)=T10Tj2dt=γ2+βγT2+31β2T2+31αγT2+41αβT3+201α2T4
从上式可看出,目标函数 J J J仅仅关于 T T T的函数,因此对 J J J进行求极值(涉及多项式求根的问题,参见附录2),然后代入上式,进行 u ∗ , s ∗ , [ α , β , γ ] u^*,s^*,[\alpha,\beta,\gamma] u,s,[α,β,γ]等参数的计算。

3.3 边界问题扩展

大家注意到一点,上述的案例中,我们要求无人机必须在 t = T t=T t=T时刻到达 s f = ( p f , v f , a f ) s_f=(p_f,v_f,a_f) sf=(pf,vf,af)状态,因此目标函数中最终状态的惩罚项 H H H
H = { 0 i f s = s ( T ) ∞ o t h e r H=\begin {cases} 0 & if &s=s(T) \\ \infty & other \end {cases} H={0ifothers=s(T)
这就导致了目标函数在最终状态并不可导,使得Pontrayagin’s 最小值原理的边界条件失效,因此需要通过无人机最终状态值进行各参数的确定。
但是在实际过程中,我们可能并不需要机器人在 t = T t=T t=T时刻一定到达 s f s_f sf状态,而是只满足其中一个或者两个条件即可。例如,我们仅仅需要机器人在 T T T时刻到达 p f p_f pf位置,而对它当前的速度和加速度并不关心,即 s f = ( p f , ? , ? ) s_f=(p_f,?,?) sf=(pf,?,?)。此时需要Pontrayagin’s 最小值原理的边界条件帮助我们确定方程的系数。数学表达如下:
λ ( T ) = − ∇ h ( s ∗ ( T ) ) \lambda(T)=- {\nabla}h(s^{*}(T)) λ(T)=h(s(T))
表达式转化如下:
g i v e n s i ( T ) , i ∈ I λ j ( T ) = ∂ h ( s ∗ ( T ) ) ∂ s j , f o r j ≠ i given \quad s_i(T),i \in I \\ {\lambda _j}(T) = \frac{{\partial h({s^*}(T))}}{{\partial {s_j}}},for \quad j \ne i givensi(T),iIλj(T)=sjh(s(T)),forj=i
其中 I I I表示状态变量中已确定的参数,例如 s f = ( p f , ? , ? ) s_f=(p_f,?,?) sf=(pf,?,?)中, I = p f I=p_f I=pf


附录

1.Pontrayagin’s 最小值原理

在这里插入图片描述

2. 多项式求根

通过矩阵特征值求解多项式的根,具体步骤如下

1.多项式方程如下
p ( x ) = c 4 x 4 + c 3 x 3 + c 2 x 2 + c 1 x + c 0 p(x)=c_4x^4+c_3x^3+c_2x^2+c_1x+c_0 p(x)=c4x4+c3x3+c2x2+c1x+c0
2.矩阵的特征值表达式如下
A y = λ y Ay=\lambda y Ay=λy
如果多项式的根为矩阵的特征值,那么
A y = x y Ay=xy Ay=xy
这也就是说存在一个矩阵A和向量y,使得多项式方程化成 A y = x y Ay=xy Ay=xy

3.再次观察上述的多项式
c 4 x 4 + c 3 x 3 + c 2 x 2 + c 1 x + c 0 = 0 → x 4 = − c 3 c 4 x 3 − c 2 c 4 x 2 − c 1 c 4 x − c 0 c 4 ∵ x 3 = 1 × x 3 + 0 × x 2 + 0 × x + 0 ∵ x 2 = 0 × x 3 + 1 × x 2 + 0 × x + 0 ∵ x 1 = 0 × x 3 + 0 × x 2 + 1 × x + 0 ∵ 1 = 0 × x 3 + 0 × x 2 + 0 × x + 1 c_4x^4+c_3x^3+c_2x^2+c_1x+c_0=0 \\ \to x^4=-\frac{c_3}{c_4}x^3-\frac{c_2}{c_4}x^2-\frac{c_1}{c_4}x-\frac{c_0}{c_4}\\ \because x^3=1\times x^3+0\times x^2+0\times x+0\\ \because x^2=0\times x^3+1\times x^2+0\times x+0\\ \because x^1=0\times x^3+0\times x^2+1\times x+0\\ \because 1=0\times x^3+0\times x^2+0\times x+1\\ c4x4+c3x3+c2x2+c1x+c0=0x4=c4c3x3c4c2x2c4c1xc4c0x3=1×x3+0×x2+0×x+0x2=0×x3+1×x2+0×x+0x1=0×x3+0×x2+1×x+01=0×x3+0×x2+0×x+1
y = ( x 3 , x 2 , x , 1 ) T y=(x^3,x^2,x,1)^T y=(x3,x2,x,1)T,那么矩阵 A A A
A = [ − c 3 c 4 − c 2 c 4 − c 1 c 4 − c 0 c 4 1 0 0 0 0 1 0 0 0 0 1 0 ] A = \left[ {\begin{matrix} { - \frac{{{c_3}}}{{{c_4}}}}&{ - \frac{{{c_2}}}{{{c_4}}}}&{ - \frac{{{c_1}}}{{{c_4}}}}&{ - \frac{{{c_0}}}{{{c_4}}}}\\ 1&0&0&0\\ 0&1&0&0\\ 0&0&1&0 \end{matrix}} \right] A=c4c3100c4c2010c4c1001c4c0000

[ − c 3 c 4 − c 2 c 4 − c 1 c 4 − c 0 c 4 1 0 0 0 0 1 0 0 0 0 1 0 ] [ x 3 x 2 x 1 ] = x [ x 3 x 2 x 1 ] \left[ {\begin{matrix} { - \frac{{{c_3}}}{{{c_4}}}}&{ - \frac{{{c_2}}}{{{c_4}}}}&{ - \frac{{{c_1}}}{{{c_4}}}}&{ - \frac{{{c_0}}}{{{c_4}}}}\\ 1&0&0&0\\ 0&1&0&0\\ 0&0&1&0 \end{matrix}} \right]\left[ {\begin{matrix} {{x^3}}\\ {{x^2}}\\ x\\ 1 \end{matrix}} \right] = x\left[ {\begin{matrix} {{x^3}}\\ {{x^2}}\\ x\\ 1 \end{matrix}} \right] c4c3100c4c2010c4c1001c4c0000x3x2x1=xx3x2x1
此时求解A的特征值,就为上述多项式的根。参考:https://blog.csdn.net/yulongshanmuxi/article/details/115612487

注意:码字不易,转载请注明出处,谢谢

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐