Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Variable coefficient Wave Equation

  1. Aug 30, 2010 #1
    Hello exalted ones. I am working on a set of differential equations for my research and there is one that is becoming mortal.

    I am solving a mechanical system whose behavior eq. is that of a one dimensional wave PDE. Namely:


    For which I would derive two parametrized equations in terms of eigenvalues defined by my boundary conditions. Now my problem is that "a" is not constant, but actually a function of both time and space. Plainly:

    [tex]a(x,t)=\frac{(E_{m} x+E_{0}) e^{\frac{C_{0} x^{2}}{T(t)}}}{C_{1}}[/tex]

    So I have an e^ in function of both variables. I've almost given up trying to look for a closed-form solution.

    As boundary conditions go (let's call them North, South, East, West), North is variable but known (input), South is always zero (fixed end). The first derivative of North in terms of x is also zero. Time increases from West to East and the displacement from South to North.

    Would you advise me to pursue a numerical solution? What would be your advice on the matter?

  2. jcsd
  3. Aug 31, 2010 #2
    Just to clarify, the wave equation becomes:

    \frac{\partial^{2} u}{\partial t^{2}}=\frac{\partial}{\partial x} (a^{2} \frac{\partial u}{\partial x})

    When a is not constant. Any thoughts????
  4. Aug 31, 2010 #3
    That looks like two different equations to me. How about first just the first one:

    [tex]u_{tt}=a(t,x)^2 u_{xx}[/tex]


    [tex]a(t,x)=-\frac{E_m x+E_0}{c_1} e^{c_0 x^2/T(t)}[/tex]

    I don't understand your boundary conditions but just for fun, I solved numerically, the IBVP:

    [tex]u_{tt}=a(t,x)^2 u_{xx},\quad 0\leq x\leq 1,\quad 0\leq t\leq 1[/tex]

    [tex]u(t,0)=0,\quad u(t,1)=0[/tex]

    [tex]u(0,x)=\sin(\pi x),\quad u_t(0,x)=0[/tex]


    [tex]E_m=1,\quad E_0=1,\quad c_1=1,\quad c_0=1[/tex]

    using the Mathematica code below. Perhaps you can adapt it to your particular problem.

    Code (Text):

    em = 1;
    c1 = 1;
    c0 = 1;
    e0 = 1;
    g[t_, x_] := (((-em)*x + e0)/c1)*
       Exp[c0*(x^2/(t + 2))]
    mysol = NDSolve[{D[u[t, x], t, t] ==
         g[t, x]^2*D[u[t, x], x, x],
        u[t, 0] == 0, u[t, 1] == 0,
        u[0, x] == Sin[Pi*x],
        (D[u[t, x], t] /. t -> 0) == 0},
       u[t, x], {t, 0, 1}, {x, 0, 1}]

    Plot3D[u[t, x] /. mysol, {t, 0, 1},
      {x, 0, 1}]
    Last edited: Aug 31, 2010
  5. Aug 31, 2010 #4
    I don't use Mathematica, but I do have access to Matlab. I don't know there capabilities/limitations though.

    The following equation would only be valid for a^2 constant:


    Otherwise I'm stuck with this one:

    \frac{\partial^{2} u(x,t)}{\partial t^{2}}=\frac{\partial}{\partial x} (a(x,t)^{2} \frac{\partial u(x,t)}{\partial x})

    Which increases the problem's difficulty. The boundaries are harder too, let me try to jot them down properly:

    u(0,t)=0,\quad u(L,t)=S, \quad u_{x}(L,t)=0


    0\leq x\leq L,\quad T_{0}\leq t\leq T_{1}

    S is known and variable, it represents the data read from an accelerometer (choppy data). T0 is known (let's say zero), T1 is known (let's say one). There is a funny procedure to obtain L for this material, but let's just go ahead and say that it is known (let's say L=1 to follow your lead).

    Now, I like the idea of a numerical solution because I'm short on time and I could later keep researching for a closed form. I've used finite differences before but I think in this case I need much more raw power.

  6. Aug 31, 2010 #5
    Alright, three questions:

    1. Can you smooth out S? How about a Fourier Transform or just a least-square fit for now. If you post the raw data, I could perhaps reduce it down to a smooth function.

    2. you say u(x,0) is not zero. What is it precisely then? More choppy data? If so, how about smoothing it out too.

    3. What exactly is T(t)?
  7. Aug 31, 2010 #6
    1. It can be either. No troubles there. Sometimes I use Fourier, sometimes a constrained poly regression.
    2. I don't have the resolution to determine what u(x,0) is. It is impossible to measure. The only thing I can say for sure is that u(L,0)=S(0) and that u(0,0)=0. So u(x,0) is some function that takes me from 0 to S(0). S(0) is never zero. In fact, u(x,t) for x > 0 is never zero.
    3. Right now T(t) is a temperature variation in time.
  8. Sep 1, 2010 #7
    Any thoughts?
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook