当前位置 博文首页 > leslie lee的博客(python ansys):一阶线性PDE用特征线法求解

    leslie lee的博客(python ansys):一阶线性PDE用特征线法求解

    作者:[db:作者] 时间:2021-06-25 09:19

    [1]Method of Characteristics: How to solve PDE
    [2]特征线法
    [3]First-Order Equations: Method of Characteristics

    一阶线性PDE,a(x,y)u_x + b(x,y)u_y = c(x,y)
    假设我们找到了方程的解u(x,y),由(x,y,u)绘制曲面S

    一阶线性PDE也可写作向量点乘的形式,(a(x,y),b(x,y),c(x,y))\cdot (u_x,u_y,-1) = 0
    曲面S的法向量\vec{n}(u_x,u_y,-1)
    由点乘为0得出向量\vec{v} = (a(x,y),b(x,y),c(x,y))与法向量垂直,向量\vec{v}位于曲面S的切平面内

    寻找一个曲面S,S上的每个点(x,y,z)处的切平面都有一个向量\vec{v}位于切平面上
    转而寻找一条曲线C,C位于S上,C上的每个点(x,y,z)处的斜率为\vec{v}

    C用参数化方程描述\vec{p} = (x(s),y(s),z(s))
    而曲线的斜率为\vec{v},因此得出
    \frac{dx}{ds} = a(x(s),y(s)),\frac{dy}{ds} = b(x(s),y(s)),\frac{dz}{ds} = c(x(s),y(s)),称为特征方程

    注:S称为积分曲面,C称为积分曲线,特征曲线

    举例

    example1

    求解:au_x + u_t = 0

    对照方程?a(x,y)u_x + b(x,y)u_y = c(x,y),得a=a,b=1,c=0
    特征方程写作:\frac{dx}{ds} = a, \frac{dt}{ds} = 1, \frac{dz}{ds} = 0
    积分得:x(s)=as+c_1,t(s)=s+c_2,z(s)=c_3

    消去s得:x - at = c_1 - ac_2 = k_1, z(x,t)= k_2=f(k_1) = f(x-at)

    解:u(x,t)=z(x,t)=f(x-at)

    沿着特征线x - at = k_1的方向,u=k_2

    example2

    求解:au_x + u_t = 0u(x,0) = \phi(x)

    解之前已经求得,为u(x,t)=f(x-at)
    u(x,0)=f(x)=\phi(x),即映射f()=\phi()
    所以解为u(x,t)=\phi(x-at)

    绘图

    红轴:x轴,绿轴:y轴examp

    example1

    求解:2u_x + u_t = 0u(x,0) = e^x
    解为u(x,t)=e^{x-2t}
    特征线为x-2t=k_1

    积分面的绘制



    沿着特征线的函数值相同
    x - 2t = 0, x - 2t = -5, x-2t = -10,...这些平面(相对于x,t,u来说)与积分面的交线为一个等值线

    example2

    求解:u_x/4 + u_t = 0u(x,0) = x^2
    解为u(x,t)= (x-t/4)^2
    特征线为x-t/4 = k_1

    积分面的绘制

    平面x-t/4=1与积分面的交线为一条等值线