0
$\begingroup$

I used below code to solve a first order partial equation, but there is no response and I can not understand it. The code is as below:

l = 100; a = 35;  d = 1;

ph = NDSolveValue[{D[Exp[Abs[kk] t] u[t, kk], 
t] == -
I Pi a t kk (Exp[t (Abs[kk] - Abs[kk + 2 Pi/l])] +
Exp[t (Abs[kk] - Abs[kk - 2 Pi/l])] +
d/2 Exp[t (Abs[kk] - Abs[kk - 4 Pi/l])] +
d/2 Exp[t (Abs[kk] - Abs[kk + 4 Pi/(3 l)])])/(2 l),
u[0, kk] == DiracDelta[kk - 4 Pi /l], u[t, Pi/l] == u[t, 2 Pi/l]} , u, {t, 0, 100}, {kk,  -Infinity, Infinity}]

Could anyone understand what is wrong? Note that u is a periodic function of x (position) with period = l. kk is showing a Fourier transform of x.

$\endgroup$
  • 6
    $\begingroup$ You are using a function that solves differential equations numerically, yet the equations have several features that are impossible to handle numerically, such as trying to solve on $(-\infty, \infty)$ and Dirac's $\delta$. If you will settle for an approximation for these, you will need to replace them with approximations by hand, i.e. use a finite range and a narrow peaked function of finite width for $\delta$. $\endgroup$ – Szabolcs Nov 17 '16 at 9:29
3
$\begingroup$

Using the bounds of the periodic condition as the region bounds:

l = 100; a = 35; d = 1;
ph = NDSolveValue[{D[Exp[Abs[kk] t] u[t, kk], 
     t] == -I Pi a t kk (Exp[t (Abs[kk] - Abs[kk + 2 Pi/l])] + 
        Exp[t (Abs[kk] - Abs[kk - 2 Pi/l])] + 
        d/2 Exp[t (Abs[kk] - Abs[kk - 4 Pi/l])] + 
        d/2 Exp[t (Abs[kk] - Abs[kk + 4 Pi/(3 l)])])/(2 l), 
   u[0, kk] == DiracDelta[kk - 4 Pi/l], u[t, Pi/l] == u[t, 2 Pi/l]}, 
  u, {t, 0, 100}, {kk, Pi/l, 2 Pi/l}]

Plot3D[Evaluate[ReIm[ph[t, kk]]], {t, 0, 100}, {kk, Pi/l, 2 Pi/l}, 
 PlotRange -> All]

enter image description here

You may want to approximate the DiractDelta with a smoothed function and it should be inside the region.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.