优化控制理论学习笔记——从“狄多女王的问题”到使用变分法进行泛函求解

引子

古罗马诗人维吉尔(Virgil)在他的诗集《埃涅阿斯纪》(Aeneas)中讲述了一个故事:

迦太基的女王狄多,曾经为了躲避其兄皮格马利翁的追捕,从推罗城逃至北非,当她上岸后,与当地酋长进行了一笔交易:买下一块牛皮能够容纳的全部土地。随后她选了一头牛,将牛皮切成细丝再连接起来,沿着地中海的海岸线围出了一个半圆形王国,取名叫作Byrsa,意为牛皮,之后又在其中建立了迦太基城。

这个故事告诉我们,狄多女王的数学不错,明白定周长的图形中,圆形面积最大这个道理。然而在我们的认知中,一般只会将圆形和与其等周长的长方形、正方形等图案进行面积比较,使用的都是较为固定的面积公式。那么对于没有面积公式的任意图形,如何严格证明其面积小于与其等周长的圆形。或者说,如何严格证明沿着半圆的边长轨迹前进与横轴围成的图形面积最大。
如何计算任意形状图形的面积?
要解决这个问题,我们首先把它用数学的语言描述出来,其中涉及两个关键的指标——面积和周长,感谢牛顿等前人数学家,他们经过努力后,已经把这两个公式定义写出来了,分别是:
S = ∫ a b f ( x ) d x L = ∫ a b 1 + [ f ′ ( x ) ] 2 d x S=\int_a^b f(x) {\rm d}x\\ L=\int_a^b \sqrt{1+[f'(x)]^2} {\rm d}x S=abf(x)dxL=ab1+[f(x)]2 dx现在我们可以利用这两个公式,把问题转化成数学语言来描述,即变成一个函数求极值问题:
max ⁡   J = ∫ a b f ( x ) d x s .   t .   ∫ a b 1 + f ′ ( x ) d x = L \max \ J=\int_a^b f(x) {\rm d}x\\ s.\ t. \ \int_a^b \sqrt{1+f'(x)} {\rm d}x=L max J=abf(x)dxs. t. ab1+f(x) dx=L然而需要注意的是,与一般的函数求极值问题不同,这里的自变量 f ( x ) f(x) f(x)不是一个具体的数值,而是一个函数,或者说是一个表示图形轨迹的点序列,由此该问题进入了一个新的领域——泛函求解。

泛函介绍

泛函(functional),是函数的函数,推广开来说,就是一种从函数空间的映射,例如 x x x f ( x ) f(x) f(x)都是数值的矢量集合,而 J J J是一个标量值。为了对泛函进行求解,使用基于欧拉-拉格朗日方程(E-L方程)的变分法。

对于泛函
S = ∫ x 1 x 2 L ( f ( x ) , f ′ ( x ) , x ) d x S=\int_{x_1}^{x_2} L(f(x),f'(x),x) {\rm {d} }x S=x1x2L(f(x),f(x),x)dx(中间的推导省略了,相关资料非常丰富)
存在
∂ L ∂ g − d d x ∂ L ∂ g ′ = 0 g = arg max ⁡ f ( x ) S  或  g = arg min ⁡ f ( x ) S \frac{\partial L}{\partial g}-\frac{\rm d}{{\rm{d}}x} \frac{\partial L}{\partial g'}=0\\ g=\argmax_{f(x)} S \ 或\ g=\argmin_{f(x)} S gLdxdgL=0g=f(x)argmaxS  g=f(x)argminS其中的 g g g表示泛函 S S S取到极值时的 f ( x ) f(x) f(x)取值,这里也隐藏了一个条件,就是泛函必然存在极值,才能使用E-L公式求解,如果是在空间内找到了泛函的极值点,只要是极点无所谓到底是极大值还是极小值,求解方法都一样。

求解方法

基于E-L方程,主要的求解方法可以分为两类:拉格朗日形式和汉密尔顿形式(庞特里亚金原则),二者在构造问题的方法上略有不同,我们分别用两种方法求解一下定周长图形中圆形面积最大证明问题。

Lagrangian formalism

拉格朗日形式的问题描述如下:
max ⁡ ∫ a b F ( f ( t ) , f ′ ( t ) , t ) d t s . t .   ∫ a b G ( f ( t ) , f ′ ( t ) , t ) d t = 0 \max \int_a^b F(f(t),f'(t),t) {\rm d}t\\ s.t.\ \int_a^b {\bf G}(f(t),f'(t),t) {\rm d}t=0\\ maxabF(f(t),f(t),t)dts.t. abG(f(t),f(t),t)dt=0不同的情况下, G G G可以是单个函数或多个约束函数的集合向量,根据条件构建以下函数:
y = f ( t ) u = y ′ = f ′ ( t ) G ( y , y ′ , t ) = 1 + [ f ′ ( t ) ] 2 = 1 + u 2 { x ˙ 1 = y ′ = u x ˙ 2 = G ( y , y ′ , t ) = 1 + u 2 y=f(t)\\ u=y'=f'(t)\\ G(y,y',t)=\sqrt{1+[f'(t)]^2}=\sqrt{1+u^2}\\ \begin{cases} \dot{x}_1=y'=u\\ \dot{x}_2=G(y,y',t)=\sqrt{1+u^2}\\ \end{cases} y=f(t)u=y=f(t)G(y,y,t)=1+[f(t)]2 =1+u2 {x˙1=y=ux˙2=G(y,y,t)=1+u2 其中 u u u, y y y, y ′ y' y都是关于t的函数, u u u的最优值就是我们最终希望得到的解。
写出其拉格朗日形式:
{ L = y + λ T g g 1 = x ˙ 1 − u g 2 = x ˙ 2 − 1 + u 2 \begin{cases} L=y+\lambda^T {\bf g}\\ g_1=\dot{x}_1-u\\ g_2=\dot{x}_2-\sqrt{1+u^2} \end{cases} L=y+λTgg1=x˙1ug2=x˙21+u2 由于约束有两个,所以函数 g g g有两个, λ \lambda λ也是两个取值,整理可得:
L = y + λ T g = x 1 + [ λ 1 λ 2 ] [ x ˙ 1 − u x ˙ 2 − 1 + u 2 ] = x 1 + λ 1 ( x ˙ 1 − u ) + λ 2 ( x ˙ 2 − 1 + u 2 ) L=y+\lambda^T {\bf g}=x_1+ \begin{bmatrix} \lambda_1 & \lambda_2 \end{bmatrix} \begin{bmatrix} \dot{x}_1-u \\ \dot{x}_2-\sqrt{1+u^2} \end{bmatrix}=x_1+\lambda_1( \dot{x}_1-u)+\lambda_2 ( \dot{x}_2-\sqrt{1+u^2} ) L=y+λTg=x1+[λ1λ2][x˙1ux˙21+u2 ]=x1+λ1(x˙1u)+λ2(x˙21+u2 )套用E-L公式:
{ ∂ L ∂ u − d d t ∂ L ∂ u ′ = ∂ L ∂ u = − λ 1 − λ 2 u 1 + u 2 = 0 ∂ L ∂ x 1 − d d t ∂ L ∂ x ˙ 1 = 1 − λ ˙ 1 = 0 ∂ L ∂ x 2 − d d t ∂ L ∂ x ˙ 2 = 0 − λ ˙ 2 = 0 \begin{cases} \frac{\partial L}{\partial u}-\frac{\rm d}{{\rm{d}}t} \frac{\partial L}{\partial u'}=\frac{\partial L}{\partial u}=-\lambda_1-\lambda_2\frac{u}{\sqrt {1+u^2}}=0\\ \frac{\partial L}{\partial x_1}-\frac{\rm d}{{\rm{d}}t} \frac{\partial L}{\partial \dot{x}_1}=1-\dot{\lambda}_1=0\\ \frac{\partial L}{\partial x_2}-\frac{\rm d}{{\rm{d}}t} \frac{\partial L}{\partial \dot{x}_2}=0-\dot{\lambda}_2=0\\ \end{cases} uLdtduL=uL=λ1λ21+u2 u=0x1Ldtdx˙1L=1λ˙1=0x2Ldtdx˙2L=0λ˙2=0整理可得:
{ λ 1 = t + C 1 λ 2 = C 2 u = λ 1 2 λ 2 2 − λ 1 2 \begin{cases} {\lambda}_1=t+C_1\\ {\lambda}_2=C_2\\ u=\frac{\lambda_1^2}{\lambda_2^2-\lambda_1^2} \end{cases} λ1=t+C1λ2=C2u=λ22λ12λ12考虑到边界情况,与横轴围成图案的轨迹必须在起始点和终止点与横轴相连( y = 0 y=0 y=0),将边界条件带入:
{ x 1 ( a ) = ∫ u d t ∣ t = a = 0 x 1 ( b ) = ∫ u d t ∣ t = b = 0 x 2 ( a ) = ∫ 1 + u 2 d t ∣ t = a = 0 x 2 ( b ) = ∫ 1 + u 2 d t ∣ t = b = L \begin{cases} x_1(a)=\int u {\rm d}t \vert_{t=a}=0\\ x_1(b)=\int u {\rm d}t \vert_{t=b}=0\\ x_2(a)=\int \sqrt{1+u^2}{\rm d}t \vert_{t=a}=0\\ x_2(b)=\int \sqrt{1+u^2}{\rm d}t \vert_{t=b}=L \end{cases} x1(a)=udtt=a=0x1(b)=udtt=b=0x2(a)=1+u2 dtt=a=0x2(b)=1+u2 dtt=b=L u u u t t t, C 1 C_1 C1 C 2 C_2 C2来表示,解出参数取值即可获得 u ( t ) u(t) u(t)的函数表达式,它应该是一个半圆形曲线的导数方程。

Hamiltonian formalism (Pontryagain principle)

汉密尔顿形式描述与拉格朗日形式相同,但是它不需要构造动态方程的变量(例如 x ˙ 1 \dot{x}_1 x˙1 x ˙ 2 \dot{x}_2 x˙2),针对这道题,约束就少了一个。其形式可写为:
g = 1 + ( y ′ ) 2 H = y + λ g = y + λ 1 + ( y ′ ) 2 g=\sqrt{1+(y')^2}\\ H=y+\lambda g=y+\lambda\sqrt{1+(y')^2}\\ g=1+(y)2 H=y+λg=y+λ1+(y)2 套用E-L公式:
∂ H ∂ y − d d t ∂ H ∂ y ′ = 1 − d d t ( λ y ′ 1 + ( y ′ ) 2 ) = 0 \frac{\partial H}{\partial y}-\frac{\rm d}{{\rm{d}}t} \frac{\partial H}{\partial y'}=1-\frac{\rm d}{{\rm d}t}(\frac{\lambda y'}{\sqrt{1+(y')^2}})=0\\ yHdtdyH=1dtd(1+(y)2 λy)=0 u = y ′ u=y' u=y,整理一下写出微分方程:
1 = d d t ( λ y ′ 1 + ( y ′ ) 2 ) = d d t ( λ u 1 + u 2 )    ⟹    t + C 1 = λ u 1 + u 2    ⟹    u = t + C 1 λ 2 − ( t + C 1 ) 2 1=\frac{\rm d}{{\rm d}t}(\frac{\lambda y'}{\sqrt{1+(y')^2}})=\frac{\rm d}{{\rm d}t}(\frac{\lambda u}{\sqrt{1+u^2}})\\ \implies t+C_1=\frac{\lambda u}{\sqrt{1+u^2}}\\ \implies u=\frac{t+C_1}{\sqrt{\lambda^2-(t+C_1)^2}}\\ 1=dtd(1+(y)2 λy)=dtd(1+u2 λu)t+C1=1+u2 λuu=λ2(t+C1)2 t+C1代入边界条件:
{ f ( a ) = ∫ u d t ∣ t = a = 0 f ( b ) = ∫ u d t ∣ t = b = 0 ∫ a b 1 + u 2 d t = L \begin{cases} f(a)=\int u {\rm d}t \vert_{t=a}=0\\ f(b)=\int u {\rm d}t \vert_{t=b}=0\\ \int_a^b \sqrt{1+u^2}{\rm d}t=L\\ \end{cases} f(a)=udtt=a=0f(b)=udtt=b=0ab1+u2 dt=L解出 λ \lambda λ C 1 C_1 C1即可。
即使不解出具体的参数值,也可以整理公式:
y = ∫ u d t = ∫ t + C 1 λ 2 − ( t + C 1 ) 2 d t = − λ 2 − ( t + C 1 ) 2 + C 2    ⟹    ( y − C 2 ) 2 + ( t + C 1 ) 2 = λ 2 y=\int u {\rm d}t=\int \frac{t+C_1}{\sqrt{\lambda^2-(t+C_1)^2}} {\rm d}t=-\sqrt{\lambda^2-(t+C_1)^2}+C2\\ \implies (y-C_2)^2+(t+C_1)^2=\lambda^2 y=udt=λ2(t+C1)2 t+C1dt=λ2(t+C1)2 +C2(yC2)2+(t+C1)2=λ2 C 1 C_1 C1 C 2 C_2 C2 λ \lambda λ都是常数的时候, t t t y y y构成的图形是一个圆形。

总结

看起来很好理解,但实际上,并不是那么容易解出,以汉密尔顿形式举例:
∫ a b 1 + u 2 d t = ∫ a b λ λ 2 − ( t + C 1 ) 2 d t = ∫ a + C 1 b + C 1 λ λ 2 − t 2 d t = ∫ a + C 1 λ b + C 1 λ λ 1 − t 2 d t   = λ arcsin ⁡ t ∣ a + C 1 λ b + C 1 λ \int_a^b \sqrt{1+u^2}{\rm d}t =\int_{a}^{b} \frac{\lambda}{\sqrt{\lambda^2-(t+C_1)^2}} {\rm d}t =\int_{a+C_1}^{b+C_1} \frac{\lambda}{\sqrt{\lambda^2-t^2}} {\rm d}t =\int_{\frac{a+C_1}{\lambda}}^{\frac{b+C_1}{\lambda}}\frac{\lambda}{\sqrt{1-t^2}}{\rm d}t\\ \: \\ =\lambda\arcsin{t}\vert_{\frac{a+C_1}{\lambda}}^{\frac{b+C_1}{\lambda}} ab1+u2 dt=abλ2(t+C1)2 λdt=a+C1b+C1λ2t2 λdt=λa+C1λb+C11t2 λdt=λarcsintλa+C1λb+C1通过联立前面的边界条件方程,可以解出 C 1 = − a + b 2 C_1=-\frac{a+b}{2} C1=2a+b,因此未知参数只剩下 λ \lambda λ一个,将 C 1 C_1 C1代入,由于 arcsin ⁡ ( x ) \arcsin(x) arcsin(x)是奇函数,可得:
λ arcsin ⁡ t ∣ a − b 2 λ b − a 2 λ = λ ( arcsin ⁡ b − a 2 λ − arcsin ⁡ a − b 2 λ ) = 2 λ arcsin ⁡ b − a 2 λ = L \lambda\arcsin{t}\vert_{\frac{a-b}{2\lambda}}^{\frac{b-a}{2\lambda}} =\lambda(\arcsin{\frac{b-a}{2\lambda}}-\arcsin{\frac{a-b}{2\lambda}}) =2\lambda\arcsin{\frac{b-a}{2\lambda}}=L λarcsint2λab2λba=λ(arcsin2λbaarcsin2λab)=2λarcsin2λba=L这是一个超越函数,虽然将 λ = L π = a − b 2 \lambda=\frac{L}{\pi}=\frac{a-b}{2} λ=πL=2ab代入方程等式成立(即 λ \lambda λ a − b a-b ab L L L分别对应半径、直径和圆周的一半),但没法用求解析解的方式以 a 、 b 、 L a、b、L abL表示 λ \lambda λ的取值。这个问题我之后再研究研究,把用程序求解的过程也写上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值