# Solving partial differential equation involving Hilbert transform

While solving one research paper published in Physical Review Letters, I came across the following equation and I am unable to solve it.

$$\frac{\partial f}{\partial t}−(\mathcal{H}(f)\left(\frac{\partial f}{\partial x}\right)=0$$

where $$\displaystyle [\mathcal{H}(f)] \stackrel{\text{def}}{=} \text{p.v.} \frac{1}{\pi} \int_{- \infty}^{\infty} \frac{f(x')}{x - x'} ~ d{x'}$$.

and $$f=f(x,t)$$ and initial condition is $$f(x,0)=\cos(x)$$.

In the paper it is given that the solution of the above mentioned equation is obtained with periodic conditions using pseudospectral method given below, $$F_k\{H_x\{f(x')\}\}=i \cdot\text{sgn}(k) F_k\{f(x)\}$$ where $$F_k\{f(x)\}=\frac{1}{\sqrt{2 \pi}}\int_{- \infty}^\infty e^{-ikx}f(x)dx$$ x∈[0,2Pi], t∈[0,1.275]

So I am thinking of application of Fourier transforms on both sides of the equation but I am unable proceed forward. Please solve the equation and can give the code for the same in mathematica.

• Give a link to the article in Physical Review Letters. – Alex Trounev Jun 13 at 12:20
• – Mohan Aditya Sabbineni Jun 13 at 12:30
• Do you mean equation (6) from the article Viscous Flow at Infinite Marangoni Number by A. Thess, D. Spirn, and B.Juttner ? – Alex Trounev Jun 13 at 12:41
• @AlexTrounev yes sir. – Mohan Aditya Sabbineni Jun 13 at 12:45
• @AlexTrounev Thank you sir – Mohan Aditya Sabbineni Jun 14 at 5:11

I used the method of solving integro-differential equations proposed by Michael E2 on Solving an integro-differential equation with Mathematica I added new options to his code to solve this problem. The right figure in Figure 1 corresponds to Figure 1 of the article Viscous Flow at Infinite Marangoni Number by A. Thess, D. Spirn, and B. Juttner - see journals.aps.org/prl/pdf/10.1103/PhysRevLett.75.4614

L = Pi; tmax = 1.;
sys = {D[u[x, t], t] + 1/(Pi)*int[u[x, t], x, t]*D[u[x, t], x] == 0,
u[-L, t] == u[L, t], u[x, 0] == -Cos[x]};
periodize[data_] :=
Append[data, {N@L, data[[1, 2]]}];(*for periodic interpolation*)
Block[{int},(*the integral*)
int[u_, x_?NumericQ, t_ /; t == 0] := (cnt++;
NIntegrate[-Cos[xp]/ (x - xp), {xp, x - L, x, x + L},
Method -> {"InterpolationPointsSubdivision",
Method -> "PrincipalValue"}, PrecisionGoal -> 8,
MaxRecursion -> 20, AccuracyGoal -> 20] // Quiet);
int[uppp_?VectorQ, xv_?VectorQ, t_] := Function[x, cnt++;
NIntegrate[
Interpolation[periodize@Transpose@{xv, uppp}, xp,
PeriodicInterpolation -> True]/ (x - xp), {xp, x - L, x,
x + L}, Method -> {"InterpolationPointsSubdivision",
Method -> "PrincipalValue"}, PrecisionGoal -> 8,
MaxRecursion -> 20] (*adjust to suit*)] /@ xv // Quiet;
(*monitor while integrating pde*)Clear[foo];
cnt = 0;
PrintTemporary@Dynamic@{foo, cnt, Clock[Infinity]};
(*broken down NDSolve call*)
InternalInheritedBlock[{MapThread}, {state} =
NDSolveProcessEquations[sys, u, {x, -L, L}, {t, 0, tmax},
StepMonitor :> (foo = t),
Method -> {"MethodOfLines",
"SpatialDiscretization" -> {"TensorProductGrid",
"MinPoints" -> 41, "MaxPoints" -> 81,
"DifferenceOrder" -> 2}}];
MapThread[f_, data_, 1] /; ! FreeQ[f, int] := f @@ data;
NDSolveIterate[state, {0, tmax}];

• @MohanAdityaSabbineni First, the data in Figure 1 correspond exactly to the data in Figure 1 of the article. I just shifted the area by $\pi$ using the periodicity of the solution. It seems that the curves are different in my Fig 1 and in the article. But it is an illusion. In the article under Figure 1 there is an explanation: successive curves are shifted. In other words, they shifted each curve upwards. I did not move the curves up, and left as it is. – Alex Trounev Jun 24 at 12:31