zoukankan      html  css  js  c++  java
  • 寻找“最好”(2)——欧拉-拉格朗日方程

      欧拉-拉格朗日方程(Euler -Lagrange equation) 为变分法中的一条重要方程。它提供了求泛函的平稳值的一个方法,其最初的想法是初等微积分理论中的“可导的极值点一定是稳定点(临界点)”。当能量泛函包含微分时,用变分方法推导其证明过程,简单地说,假设当前的函数(即真实解)已知,那么这个解必然使能量泛函取全局最小值。

    泛函

      我们很清楚函数的概念,它大致是,将一个自变量扔到一个黑盒里,经过黑盒的暗箱操作,最终得到了一个因变量:

     

      泛函数是将一个函数作为自变量,经过黑盒,最终得到一个实数的因变量:

     

      可以说,泛函就是函数的函数,是更广泛意义上的函数。

    欧拉-拉格朗日方程

    最速降线

      有一种泛函称为简单泛函,它的长相是这样:

      其中L是一个确定的函数,之所以叫简单泛函,是因为只传递了三个参数,复杂一点的话还可以继续传递f的高阶导数。现在的问题是,如果A处于极值点,它对应的f(x)是什么?

      这实际上是求一个具体函数,使得泛函能够取得极值。一个典型的例子是最速降线问题:从所有连接不在同一铅垂线上的定点A、B的曲线中找出一条曲线,使得初始速度为0的质点,受重力作用,由A沿着曲线滑下时以最短的时间到达B:

      这里我们将曲线看作路径f关于时间t的函数:

      ΔSi是在极短时间Δti内沿着曲线移动的微小弧长,此时的瞬时速度是ΔVi,距离=速度×时间:

      重力加速的推论,在t时间处的速度v= 2gh:

     

      质点从A点到B点的总时间:

     

      根据弧长公式,可以将dS化简,进一步写成(关于弧长公式,可参考:《数学笔记25——弧长和曲面面积》):

      把结论和简单泛函做个对比,可以看到二者形式相吻合:

     

      最右侧的式子并没有严格映射到L(x,f(x),f’(x)),因为在函数中并没有直接使用到参数t,这无所谓了,可以理解成虽然传递了参数t,但实际上t并没有起任何作用,就像y (x) = 1一样,无论传递任何x,最终结果都是1,但它仍然是一个y关于x的函数。现在回到最初的问题,AB间有无数条曲线,每条曲线都可以求得时间T[f],在众多的曲线中,有一条唯一的曲线能够使得T[f]取得最小值,这个f(x)应该长成什么样?

    EL方程的推导

      这里暂且耍一下流氓,抛开具体的速降问题,只看A[f],并且假设f0(x)就是符合条件的最优函数。现在,将f0(x) + k(x)定义为是有别于最优曲线f0(x)的其它函数,其中k(x)可以是任意函数。如果如下定义f(x, k):

     

      因为f0(x)是最优函数,此时A[f0]有最小值,则一定有:

      由于任意函数k(x)不好定义,为了能够使k(x)任意小,令:

     

      η是任意函数,当ε取极小值时,可以看作是对f0(x)的轻微扰动;还需要额外定义的是,在端点处是不能扰动的,即εη(A) = εη(B) = 0,这对于任意ε都适用,所以η(A) = η(B) = 0。注意ε是对f0(x)的扰动程度,εη(x)是扰动后的增量,εη(x) = 0说明扰动为0,也就是无扰动,f(x) + εη(x)才是扰动后的函数。

     

      由于假设f0(x)是最优函数,所以可以将f0(x)看作已经确定的函数,如果再将任意函数η(x)看作一个确定的函数,那么A可以看成ε的函数,若A’ = 0,函数存在极值,这已经变成了极值点的求解:

      根据链式法则(可参考《多变量微积分笔记4——全微分与链式法则》):

      根据分部积分(可参考《单变量微积分笔记24——分部积分》):

       η(x) = 0说明对f0(x)无扰动时,A能取得极值,但它对f0的具体形式无任何帮助;因此最优函数f0(x)的具体形式由第一个解确定:

     

      这就是欧拉-拉格朗日方程(Euler-Lagrage equation),可以帮助我们求解泛函下的极值,这里L是已知的。它的最初的思想来源于微积分中“可导的极值点一定是稳定点(临界点)”。它的思想在于:假定当前泛函的解已知,那么这个解必然使得泛函取得最小值(假定是最小值)。换言之,只要在泛函中加入任何扰动,都会使泛函的值变大,所以扰动为0的时候,就是泛函关于扰动的一个极小值。扰动用一个很小的数ε乘上一个连续函数η(x)。当ε趋近于0,意味着扰动也趋近于0。所以当扰动为0时,泛函对扰动程度的导数也为0。这就非常巧妙的把对函数求导的问题转化成了一个单变量求导问题。

      需要注意的是,欧拉-拉格朗日方程的前提条件是端点不会扰动,也就是说需要固定两个端点。

    最速降线的解

      有了欧拉-拉格朗日方程,终于可以计算最速降线的最优解:

      其中f = f(t)。由于:

      将①代入:

      现在,使用参数方程:

     

      之所以令f’ = cot(θ/2),是因为在θ的定义域[0, 2π]上,f’可以取任意值:

    y = cot(x/2), 0 ≤ x ≤ 2π

     

      上式最终将f(t)转换为关于θ的函数,对上式直接求导:

      通过参数方程f = f(t),t = t(θ),f’ = cot(θ/2) 求导:

      最终的曲线用参数方程表示:

     

      这正是摆线的参数方程。本节三角替换、参数方程、摆线的相关知识可参考:《线性代数笔记6——直线和曲线的参数方程》和《单变量微积分笔记20——三角替换1(sin和cos)

    大概古人就理解了最速降线,所以中国古建筑的屋顶的斜坡并不是直线,这样可以加快雨水的流动(不知道对不对,也有可能仅仅为了美观):

     

     两点间的最短路径

      初中几何中给出这样一个公理:两点间直线距离最短。记得当时老师的解释是,公理是大家公认的,不需要证明。这对初中来说没错,但公理实际上也是可以证明的。

      这可以使用反证法证明,但是在这里,我们想使用解析的方式证明。

      AB两点间的曲线有无数条,需要取其中最短的一条。令曲线的函数是y = y(x),那么根据弧长公式(可参考《单变量微积分笔记25——弧长和曲面面积》),曲线的长度可表示为:

      这有点像欧拉-拉格朗日方程的泛函了:

     

      现在将弧长和欧拉-拉格朗日方程对应:

     

      由于L中仅用到了y’,并没有用到y,所以L关于y的偏导等于0:

     

      y = ax + b正是直线方程,所以AB间最短的距离是直线。可以看出,初等数学为高等数学的推导提供了依据,高等数学反过来又能证明初等数学。


       作者:我是8位的

      出处:http://www.cnblogs.com/bigmonkey

      本文以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,非商业用途! 

      扫描二维码关注公众号“我是8位的”

      

  • 相关阅读:
    通过git命令行从github或服务器上克隆、修改和更新项目
    将项目部署到 github上(部署到码云操作一样,前提是有码云账号)
    tp5中代替tp3.2中的一些方法
    关于ThinkPHP下使用Uploadify插件 仅有火狐提示HTTP Error (302)错误的解决办法
    nginx轮询宕机解决
    nginx实现动静分离
    nginx实现负载均衡
    nginx实现反向代理
    解决表单重复提交
    解决跨域问题
  • 原文地址:https://www.cnblogs.com/bigmonkey/p/9519387.html
Copyright © 2011-2022 走看看