Mathematica Solving 2-D partial integro-differential equation

AI Thread Summary
The discussion revolves around solving a specific integro-differential equation involving the Hilbert transform and periodic boundary conditions. The equation presented is ∂f/∂t - (H(f)(∂f/∂x) = 0, with initial conditions f(x,0) = cos(x) and t ranging from 0 to 1.3 seconds. The user seeks assistance in coding a solution using Matlab, Mathematica, or Maple, as they aim to reproduce results from a referenced research paper. They provide an initial code attempt but express difficulty in achieving the desired output, specifically Figure 1 from the paper. Additional references to similar problems are shared, highlighting the challenge of finding solutions to such specialized mathematical queries. The user acknowledges the lack of accessible resources for complex topics like this, reflecting on past experiences in academia.
semivermous
Messages
2
Reaction score
0
While reproducing a research paper, I came across the following equation,
∂f/∂t−(H(f)(∂f/∂x)=0
where [H(f)] is hilbert transform of 'f.'
and f=f(x,t) and initial condition is f(x,0)=cos(x) and also has periodic boundary conditions given by
F{H{f(x′,t)}}=i⋅sgn(k)F{f(x,t)},
where F(f(x,t) is Fourier transform of f(x,t).
and here ''t'' runs from 0 to 1.3 seconds

so I think we have to use iterations on basis of 't' while solving this equation.
Please help me in solving this integro differential equation(PDE). I am unable write a code for this(Matlab/Mathematica/Maple)
And suggestions are highly appreciated.
Link for research paper: https://journals.aps.org/prl/pdf/10.1103/PhysRevLett.75.4614
After solving the given equation, we have to get the figure-1 of the paper

Code I have written is:
[CODE title="Mathematica code"]L = Pi; tmax = 1.2; sys = {D[u[x, t], t] -
1/(Pi)*int[u[x, t], x, t]*D[u[x, t], x] == 0, u[0, t] == 1,
u[x, 0] == Cos[x]};
int[u_, x_?NumericQ, t_ /; t == 0] :=
NIntegrate[Cos[xp]/(x - xp), {xp, 0, x, x + 2 L},
Method -> {"InterpolationPointsSubdivision",
Method -> "PrincipalValue"}, MaxRecursion -> 20];
PrintTemporary@Dynamic@{foo, Clock[Infinity]};
Internal`InheritedBlock[{MapThread}, {state} =
NDSolve`ProcessEquations[sys, u, {x, 0, 2 L}, {t, 0, tmax},
StepMonitor :> (foo = t)];
NDSolve`Iterate[state, {0, tmax}];
sol = NDSolve`ProcessSolutions[state]] // AbsoluteTiming
{Plot3D[u[x, t] /. sol, {x, 0, 2 Pi}, {t, 0., 1.}, Mesh -> None,
ColorFunction -> Hue, AxesLabel -> Automatic] // Quiet,
Plot[Evaluate[Table[u[x, t] /. sol, {t, 0., 1., .2}]], {x, -Pi,
Pi}] // Quiet}
[/CODE]
 
Physics news on Phys.org
Hopefully someone here knows mathematica sufficiently to help.

In the meantime, I will look for some comparable examples using the same functions.
 
  • Like
Likes semivermous
The question in first link was posted by myself but the solution is wrong.
 
Ahh okay. Well it may still hope others who read this thread.

One problem with this kind of question is the specialized knowledge needed to answer it. This would happen to me often in grad school before the internet. There was simply no place to turn to get help.
 
Back
Top