可以想象有一条河流,你站在岸边,将叠好的纸船放进了河里,你的目光跟随着小船的轨迹,以上情况用于描述小船运动轨迹的方法叫拉格朗日法,也是我们从小学到高中一直学习的方法,即跟踪一个物体的轨迹。小船飘走了,你走到桥上,站在最高点向下看小溪的潺潺流水,以上情况用于描述一个指定区域每时每刻变化的方法叫欧拉法。

拉格朗日方法与欧拉方法

  • 生活中两种方法的比较
    • 拍戏(我没拍过,脑补的)
    • 100m跑
    • 传记
  • 拉格朗日方法(质点法)
    • 位置与时间
    • 速度与加速度
  • 欧拉方法(流场法)
    • 对于速度的表示
    • 对加速度的推导
  • 转换公式实例
    • 拉格朗日描述式变换成欧拉描述式(L-E变换)
    • 欧拉描述式转换成拉格朗日描述式(E-L转换)

生活中两种方法的比较

一开始接触这两种方法是在大三上流体力学课的时候,但是等理解过后发现,这两种方法更多的是给出了在现实生活中两种看问题的不同视角,不单单仅限于流体力学中使用。拉格朗日法是我们再熟悉不过的方法,从我们初中学习的动点问题,到高中的牛顿第二定律,都是对某一个质点进行研究,相当于拿一个摄像机跟踪这个质点。欧拉法应该是大家都陌生的一种方法,它涉及到一个概念,就是场。场可以理解为场地,这种描述的方法其实就是希望观察一个固定场景的变化。下面举一些好理解的例子供大家参考:

拍戏(我没拍过,脑补的)

家有儿女应该都看过(不怎么看电视剧),里面镜头跟随刘星动的拍摄可以理解为拉格朗日法。而在家里的拍摄可以理解为欧拉法。因为跟随刘星拍摄是需要镜头跟着刘星,对象不变,场景在变。而在家里拍摄,虽然人是来回走动,但是镜头不变,一直对着沙发和餐桌,这是场景不变,对象在变。

100m跑

我们在电视上观看100米跑决赛的时候会看到两种方式拍摄方式,第一种是摄影师拍摄影师跟着运动员在跑,这种就是拉格朗日法,比较费摄影师。还有一种就是一个镜头从上面俯瞰整个100m赛场,那就是欧拉法。

传记

看书的时候其实也有拉格朗日法和欧拉法,比如我们看的人物传记(普京传)就是拉格朗日手法描述的,而描述国家历史(明朝那些事儿)的就是欧拉法。

描述完上述内容,下面进行一些数学上公式的理解。

拉格朗日方法(质点法)

位置与时间

这种方法如前面所说,要求观察者随时随地跟踪每个流体质点,记录该质点的运动历程从而获得整体流体的运动规律。设在某一初始时刻t0t_0t0​,流体质点的初始位置坐标为(a,b,c)(a,b,c)(a,b,c),那么任意时刻ttt,质点的空间位置可以表示为:

x=x(a,b,c,t)y=y(a,b,c,t)z=z(a,b,c,t)x=x(a,b,c,t)\\[1.5mm] y=y(a,b,c,t)\\[1.5mm] z=z(a,b,c,t) x=x(a,b,c,t)y=y(a,b,c,t)z=z(a,b,c,t)
如果给定ttt那么上式表示在给定时间不同质点的空间位置;如果(a,b,c)(a,b,c)(a,b,c)给定了,那么就表示给定质点在不同时刻的位置变化,即质点的轨迹。

速度与加速度

如果知道给定质点的位置,则可以根据定义确定质点的速度:
u=lim⁡Δt→0x(a,b,c,t+Δt)−x(a,b,c,t)Δt=∂x(a,b,c,t)∂tv=lim⁡Δt→0y(a,b,c,t+Δt)−y(a,b,c,t)Δt=∂y(a,b,c,t)∂tw=lim⁡Δt→0z(a,b,c,t+Δt)−z(a,b,c,t)Δt=∂z(a,b,c,t)∂tu=\lim_{Δt \to 0}\frac{x(a,b,c,t+Δt)-x(a,b,c,t)}{Δt}=\frac{\partial x(a,b,c,t)}{\partial t}\\[3mm] v=\lim_{Δt \to 0}\frac{y(a,b,c,t+Δt)-y(a,b,c,t)}{Δt}=\frac{\partial y(a,b,c,t)}{\partial t}\\[3mm] w=\lim_{Δt \to 0}\frac{z(a,b,c,t+Δt)-z(a,b,c,t)}{Δt}=\frac{\partial z(a,b,c,t)}{\partial t} u=Δt→0lim​Δtx(a,b,c,t+Δt)−x(a,b,c,t)​=∂t∂x(a,b,c,t)​v=Δt→0lim​Δty(a,b,c,t+Δt)−y(a,b,c,t)​=∂t∂y(a,b,c,t)​w=Δt→0lim​Δtz(a,b,c,t+Δt)−z(a,b,c,t)​=∂t∂z(a,b,c,t)​
这里用时间偏导数,是因为流体质点是给定的。同样可以得到加速度表达式:
ax=lim⁡Δt→0u(a,b,c,t+Δt)−u(a,b,c,t)Δt=∂u(a,b,c,t)∂t=∂2x∂t2ay=lim⁡Δt→0v(a,b,c,t+Δt)−v(a,b,c,t)Δt=∂v(a,b,c,t)∂t=∂2y∂t2az=lim⁡Δt→0w(a,b,c,t+Δt)−w(a,b,c,t)Δt=∂w(a,b,c,t)∂t=∂2z∂t2a_x=\lim_{Δt \to 0}\frac{u(a,b,c,t+Δt)-u(a,b,c,t)}{Δt}=\frac{\partial u(a,b,c,t)}{\partial t}=\frac{\partial^2 x}{\partial t^2}\\[3mm] a_y=\lim_{Δt \to 0}\frac{v(a,b,c,t+Δt)-v(a,b,c,t)}{Δt}=\frac{\partial v(a,b,c,t)}{\partial t}=\frac{\partial^2 y}{\partial t^2}\\[3mm] a_z=\lim_{Δt \to 0}\frac{w(a,b,c,t+Δt)-w(a,b,c,t)}{Δt}=\frac{\partial w(a,b,c,t)}{\partial t}=\frac{\partial^2 z}{\partial t^2} ax​=Δt→0lim​Δtu(a,b,c,t+Δt)−u(a,b,c,t)​=∂t∂u(a,b,c,t)​=∂t2∂2x​ay​=Δt→0lim​Δtv(a,b,c,t+Δt)−v(a,b,c,t)​=∂t∂v(a,b,c,t)​=∂t2∂2y​az​=Δt→0lim​Δtw(a,b,c,t+Δt)−w(a,b,c,t)​=∂t∂w(a,b,c,t)​=∂t2∂2z​
这种跟踪质点的方法实际上是理论力学中质点系法的直接延伸,也就是我们日常最长接触的记录方法。这种方法概念清晰,便于物理定律的推广,缺点是记录了太多的资料。例如每年到汛期,人们仅想了解武汉段的长江水情,但用这种方法描述的时候,必须把通过武汉段长江内的所有水的质点的来龙去脉搞清楚,全程跟踪并记录各个质点的流动过程,才能刻画武汉段长江的流动特征。这样做实际上对许多不在武汉段长江内的水质点记录是无用的。

欧拉方法(流场法)

对于速度的表示

为了避免拉格朗日法不必要的资料记录,我们不标识质点,相反标识空间点,观察者相对于空间点不动,记录不同时刻,不同质点通过固定空间点的快慢,观察者直接记录的量是不同时刻通过给定空间点的质点速度值,如将每个空间点上布置一个观察者,记录各个空间点在各时刻的质点速度值,这样就可以对所考察的流动区域特征给出全面了解。这种方法虽然标识的是空间点,但是研究的仍然是流体质点。任一空间点的位置坐标是(x,y,z)(x,y,z)(x,y,z),在ttt时刻由位于该处的观察者直接记录的通过该空间点流体质点速度为:
u=u(x,y,z,t)v=v(x,y,z,t)w=w(x,y,z,t)u=u(x,y,z,t)\\[1.5mm] v=v(x,y,z,t)\\[1.5mm] w=w(x,y,z,t) u=u(x,y,z,t)v=v(x,y,z,t)w=w(x,y,z,t)
如果给定(x,y,z)(x,y,z)(x,y,z),ttt变化,表示不同时刻不同流体质点通过同一空间点的速度(快慢);若给定ttt,(x,y,z)(x,y,z)(x,y,z)在变化,表示给定时间,占据不同空间点流体质点的速度。空间点速度本质上指的是ttt瞬时恰好占据该空间点流体质点的速度。物理上,把一个布满了某种物理量的空间成为场。流体流动所占据的空间即为流场。如果物理量是速度,那就是速度场。

对加速度的推导

如果速度是具有一阶连续偏导数的函数,那么根据定义可以确定质点的加速度。在欧拉方法中,局部跟踪流体质点运动的跟随性条件是:
dxdt=u,dydt=v,dzdt=w\frac{dx}{dt}=u,\frac{dy}{dt}=v,\frac{dz}{dt}=w dtdx​=u,dtdy​=v,dtdz​=w
在研究流体质点加速度时,就需要局部跟踪所考察的质点速度变化情况。设某一流体质点在ttt时刻位于流场中M(x,y,z)M(x,y,z)M(x,y,z),经过时段ΔtΔtΔt移动到了N(x+Δx,y+Δy,z+Δz)N(x+Δx,y+Δy,z+Δz)N(x+Δx,y+Δy,z+Δz),根据质点加速度定义,有:
a=dVdt=lim⁡Δt→0ΔVΔt=lim⁡Δt→0V(N,t+Δt)−V(M,t)Δt=lim⁡Δt→0V(N,t+Δt)−V(N,t)Δt+lim⁡Δt→0V(N,t)−V(M,t)Δta = \frac{dV}{dt}=\lim_{Δt \to 0}\frac{ΔV}{Δt}=\lim_{Δt \to 0}\frac{V(N,t+Δt)-V(M,t)}{Δt}\\[3mm] =\lim_{Δt \to 0}\frac{V(N,t+Δt)-V(N,t)}{Δt}+\lim_{Δt \to 0}\frac{V(N,t)-V(M,t)}{Δt} a=dtdV​=Δt→0lim​ΔtΔV​=Δt→0lim​ΔtV(N,t+Δt)−V(M,t)​=Δt→0lim​ΔtV(N,t+Δt)−V(N,t)​+Δt→0lim​ΔtV(N,t)−V(M,t)​
此式表明,质点的加速度由两部分组成,第一部分时在ΔtΔtΔt时间段内通过固定空间点的速度变化引起的加速度,第二部分是在给定时间质点通过相邻空间点速度变化引起的加速度。
对第一部分用泰勒展开:
V(N,t+Δt)=V(N,t)+∂V(N,t)∂tΔt+O(Δt2)V(N,t+Δt)=V(N,t)+\frac{\partial V(N,t)}{\partial t}Δt+O(Δt^2) V(N,t+Δt)=V(N,t)+∂t∂V(N,t)​Δt+O(Δt2)
由此可得:
lim⁡Δt→0V(N,t+Δt)−V(N,t)Δt=lim⁡Δt→0∂V(N,t)∂tΔtΔt=∂V∂t\lim_{Δt \to 0}\frac{V(N,t+Δt)-V(N,t)}{Δt}=\lim_{Δt \to 0}\frac{\frac{\partial V(N,t)}{\partial t}Δt}{Δt}=\frac{\partial V}{\partial t} Δt→0lim​ΔtV(N,t+Δt)−V(N,t)​=Δt→0lim​Δt∂t∂V(N,t)​Δt​=∂t∂V​
对于第二部分相当于固定时间由相邻不同空间位置流体质点速度变化引起的加速度,同样可以根据泰勒展开获得:
V(N,t)=V(x+Δx,y+Δy,z+Δz,t)=V(x,y,z,t)+∂V(x,y,z,t)∂xΔx+∂V(x,y,z,t)∂yΔy+∂V(x,y,z,t)∂zΔz+O(Δx2,...)V(N,t)=V(x+Δx,y+Δy,z+Δz,t)\\[4mm] =V(x,y,z,t)+\frac{\partial V(x,y,z,t)}{\partial x}Δx+\frac{\partial V(x,y,z,t)}{\partial y}Δy+\frac{\partial V(x,y,z,t)}{\partial z}Δz+O(Δx^2,...) V(N,t)=V(x+Δx,y+Δy,z+Δz,t)=V(x,y,z,t)+∂x∂V(x,y,z,t)​Δx+∂y∂V(x,y,z,t)​Δy+∂z∂V(x,y,z,t)​Δz+O(Δx2,...)
同理,带入第二部分,有:
lim⁡Δt→0V(N,t)−V(M,t)Δt=lim⁡Δt→0ΔxΔt∂V(M,t)∂x+lim⁡Δt→0ΔyΔt∂V(M,t)∂y+lim⁡Δt→0ΔzΔt∂V(M,t)∂z\lim_{Δt \to 0}\frac{V(N,t)-V(M,t)}{Δt}=\lim_{Δt \to 0}\frac{Δx}{Δt}\frac{\partial V(M,t)}{\partial x}+\lim_{Δt \to 0}\frac{Δy}{Δt}\frac{\partial V(M,t)}{\partial y}+\lim_{Δt \to 0}\frac{Δz}{Δt}\frac{\partial V(M,t)}{\partial z} Δt→0lim​ΔtV(N,t)−V(M,t)​=Δt→0lim​ΔtΔx​∂x∂V(M,t)​+Δt→0lim​ΔtΔy​∂y∂V(M,t)​+Δt→0lim​ΔtΔz​∂z∂V(M,t)​
根据流体的跟随性(跟踪的是同一个质点)
lim⁡Δt→0V(N,t)−V(M,t)Δt=u∂V(M,t)∂x+v∂V(M,t)∂y+w∂V(M,t)∂z\lim_{Δt \to 0}\frac{V(N,t)-V(M,t)}{Δt}=u\frac{\partial V(M,t)}{\partial x}+v\frac{\partial V(M,t)}{\partial y}+w\frac{\partial V(M,t)}{\partial z} Δt→0lim​ΔtV(N,t)−V(M,t)​=u∂x∂V(M,t)​+v∂y∂V(M,t)​+w∂z∂V(M,t)​
综合起来,可以得到在欧拉框架下,流体质点的全加速度:
a=dVdt=∂V∂t+u∂V(M,t)∂x+v∂V(M,t)∂y+w∂V(M,t)∂z=∂V∂t+(V⋅∇)Va= \frac{dV}{dt}=\frac{\partial V}{\partial t}+u\frac{\partial V(M,t)}{\partial x}+v\frac{\partial V(M,t)}{\partial y}+w\frac{\partial V(M,t)}{\partial z}\\[3mm]=\frac{\partial V}{\partial t}+(V\cdot\nabla )V a=dtdV​=∂t∂V​+u∂x∂V(M,t)​+v∂y∂V(M,t)​+w∂z∂V(M,t)​=∂t∂V​+(V⋅∇)V
在全加速度表达式中,等式右边第一项表示速度对时间的偏导数,是由流场的非定常性引起的,称为局部加速度或当地加速度;第二项表示因流体质点位置变化引起的加速度,称为迁移加速度或对流加速度。两者相加合成全加速度或者随体加速度(跟随流体质点的加速度)。

转换公式实例

拉格朗日描述式变换成欧拉描述式(L-E变换)

给定拉格朗日位移描述式:
x1=a1e−2tk,x2=a2e−tk,x3=a3e−tkx_1=a_1e^{-\frac{2t}{k}},x_2=a_2e^{-\frac{t}{k}},x_3=a_3e^{-\frac{t}{k}} x1​=a1​e−k2t​,x2​=a2​e−kt​,x3​=a3​e−kt​
求欧拉速度场。
解:先求出拉格朗日速度表达式:
u1=∂x1∂t=−2a1ke−2tku2=∂x2∂t=−a2ke−tku3=∂x3∂t=−a3ke−tku_1=\frac{\partial x_1}{\partial t}=-\frac{2a_1}{k}e^{-\frac{2t}{k}}\\[2mm] u_2=\frac{\partial x_2}{\partial t}=-\frac{a_2}{k}e^{-\frac{t}{k}}\\[2mm] u_3=\frac{\partial x_3}{\partial t}=-\frac{a_3}{k}e^{-\frac{t}{k}} u1​=∂t∂x1​​=−k2a1​​e−k2t​u2​=∂t∂x2​​=−ka2​​e−kt​u3​=∂t∂x3​​=−ka3​​e−kt​
目的是消去aaa,从位移解出aaa:
a1=x1e2tk,a2=x2etk,a3=x3etka_1=x_1e^{\frac{2t}{k}},a_2=x_2e^{\frac{t}{k}},a_3=x_3e^{\frac{t}{k}} a1​=x1​ek2t​,a2​=x2​ekt​,a3​=x3​ekt​
带入速度表达式得到:
u1=−2kx1,u2=−1kx1,u3=−1kx1u_1=-\frac{2}{k}x_1,u_2=-\frac{1}{k}x_1,u_3=-\frac{1}{k}x_1 u1​=−k2​x1​,u2​=−k1​x1​,u3​=−k1​x1​

欧拉描述式转换成拉格朗日描述式(E-L转换)

已知欧拉速度场:
u1=x1+t,u2=x2+t,u3=0u_1=x_1+t,u_2=x_2+t,u_3=0 u1​=x1​+t,u2​=x2​+t,u3​=0
初始条件为:
t=0,x1=a1,x2=a2,x3=a3t=0,x_1=a_1,x_2=a_2,x_3=a_3 t=0,x1​=a1​,x2​=a2​,x3​=a3​
求质点位移和速度的拉格朗日表达式。
解:
u1=∂x1∂t=x1+tu2=∂x2∂t=x2+tu3=∂x3∂t=0u_1=\frac{\partial x_1}{\partial t}=x_1+t\\[2mm] u_2=\frac{\partial x_2}{\partial t}=x_2+t\\[2mm] u_3=\frac{\partial x_3}{\partial t}=0 u1​=∂t∂x1​​=x1​+tu2​=∂t∂x2​​=x2​+tu3​=∂t∂x3​​=0
该方程的一般解为:
x1=c1et−t−1x2=c2et−t−1x3=c3x_1=c_1e^{t}-t-1\\[3mm] x_2=c_2e^{t}-t-1\\[3mm] x_3=c_3 x1​=c1​et−t−1x2​=c2​et−t−1x3​=c3​
带入初始条件,得到积分常数:c1=a1+1,c2=a2+1,c3=a3c_1=a_1+1,c_2=a_2+1,c_3=a_3c1​=a1​+1,c2​=a2​+1,c3​=a3​
得到拉格朗日表达式为:
x1=(a1+1)et−t−1x2=(a2+1)et−t−1x3=a3x_1=(a_1+1)e^{t}-t-1\\[3mm] x_2=(a_2+1)e^{t}-t-1\\[3mm] x_3=a_3 x1​=(a1​+1)et−t−1x2​=(a2​+1)et−t−1x3​=a3​
速度的拉格朗日表达式为:
u1=(a1+1)et−1u2=(a2+1)et−1u3=0u_1=(a_1+1)e^{t}-1\\[3mm] u_2=(a_2+1)e^{t}-1\\[3mm] u_3=0 u1​=(a1​+1)et−1u2​=(a2​+1)et−1u3​=0

拉格朗日方法与欧拉方法相关推荐

  1. [计算机图形学]动画与模拟:欧拉方法、刚体与流体(前瞻预习/复习回顾)

    一.前言 这是本专栏的倒数第二篇文章了,为什么不是最后一篇?因为我要单独写一篇总结哈哈,不管怎么说,从今年的3.13的MVP变换开始写,写到现在,也是一个很大的工程了,我很高兴能在大二下学期的期中这个 ...

  2. 图形学笔记(二十)粒子、刚体、流体的模拟—— 欧拉方法、Errors 和 Instability、中点法、自适应步长、隐式欧拉方法、Runge-Kutta方法、刚体与流体模拟(质点法、网格法、MPM)

    图形学笔记(十九)粒子.刚体.流体的模拟-- 欧拉方法.Errors 和 Instability.中点法.自适应步长.隐式欧拉方法.Runge-Kutta方法.刚体与流体模拟(质点法.网格法.MPM) ...

  3. 6.1 欧拉方法与改进欧拉方法

    6.1.1 欧拉方法 欧拉方法是一种数值解常微分方程(ODE)的方法,可以用于近似求解给定的初值问题.它是以欧拉命名的瑞士数学家莱昂哈德·欧拉所发明的,因此得名. 欧拉方法的基本思路是将连续的常微分方 ...

  4. 计算机图形学【GAMES-101】14、动画(物理模拟、质点弹簧系统、粒子系统、运动学、动作捕捉、欧拉方法)

    快速跳转: 1.矩阵变换原理Transform(旋转.位移.缩放.正交投影.透视投影) 2.光栅化(反走样.傅里叶变换.卷积) 3.着色计算(深度缓存.着色模型.着色频率) 4.纹理映射(重心坐标插值 ...

  5. 【微分方程数值解】常微分方程(一)欧拉方法和改进欧拉方法(附python算例,封装类)

    欧拉方法与改进欧拉方法 一.算法原理 对给定微分方程 {y′=f(x,y)y(x0)=y0(1)\begin{cases} y' = f(x,y)\\ y(x_0) = y_0 \end{cases} ...

  6. 常见的数值积分方法_欧拉积分/中值积分/龙格-库塔积分

    参考:常见的数值积分方法 (欧拉.中值.龙格-库塔,[常用于IMU中]) 1. 积分基本概念 设F(x)为函数f(x)的一个原函数,我们把函数f(x)的所有原函数F(x)+C(C为任意常数)叫做函数f ...

  7. 微分方程的数值解法之欧拉方法

    '''欧拉方法''' #所求常微分方程 f_x=input('y\'=') def fy(x,y):return eval(f_x)#原方程的精确解 f_e=input('y =') def fe(x ...

  8. 隐式欧拉解常微分方程c语言,利用欧拉方法求常微分方程近似数值解.doc

    利用欧拉方法求常微分方程近似数值解,欧拉微分方程,欧拉运动微分方程,欧拉平衡微分方程,欧拉型微分方程,微分方程的欧拉算法,微分方程的欧拉解法,欧拉型常微分方程,偏微分方程数值解,微分方程数值解法 利用 ...

  9. matlab:欧拉方法求解微分方程

    参考书籍:常用数值算法及其matlab实现,作者:夏省祥 %第10章 常微分方程初值问题的数值解法 %欧拉方法,例10.1 %书籍:常用数值算法及其matlab实现 %第10章 常微分方程初值问题的数 ...

最新文章

  1. ARMV8 datasheet学习笔记3:AArch64应用级体系结构
  2. 实验8.2 指针与字符串 6-2 删除字符
  3. MyBatis 源码解读-loadCustomVfs(settings)
  4. Zookeeper相关知识
  5. HP LaserJet 1010卡纸解决方法
  6. 基于Android的人事管理系统 开发与设计
  7. 深度学习:批归一化和层归一化Batch Normalization、Layer Normalization
  8. dms系统与mysql_Mysql的两种存储引擎以及区别
  9. ClickHouse 函数极简教程
  10. 四.C++网络安全学院之高级语言和低级语言
  11. 大数据会议资料学习笔记201402
  12. C语言多文件编程详解
  13. VB编程:UCase转大写,LCase转小写-4_彭世瑜_新浪博客
  14. 2.Deep Neural Networks are Easily Fooled
  15. 什么软件测试iphone性能,5款iPhone性能测试比拼:A9虽然垫底,与A13的差距并不大...
  16. C语言用双曲线函数拟合曲线,c语言绘制函数曲线
  17. JavaScript 文件下载解决方案-download.js
  18. 如何计算EEG信号的香农熵Shannon entropy(附Matlab程序)
  19. 长庆企业信息化管理课件_长庆油田信息化建设的现状及需要注意的问题
  20. 最新spark函数大全

热门文章

  1. 使用embeded tomcat进行嵌入式tomcat-启动tomcat
  2. 单光感pid巡线_单光感巡线教学设计
  3. mysql国密算法_【国密SM2算法】通过公钥证书获取JAVA对象
  4. 搭建手游平台需要了解些什么?
  5. 前端实现页面表格导出
  6. Unity动画☀️动画帧事件
  7. indexDB的使用
  8. 轻量级实时语义分割:ICNet
  9. 群辉docker搭建easymock
  10. Graph Database 图数据库AgensGraph