I want to solve the following partial integro-differential equation for $\delta(x,t)$: $$ 1-B \cdot \frac{\partial \delta(x, t)}{\partial t}=\frac{1}{\pi} \int_{-1}^1 \frac{\partial \delta(s, t)}{\partial s} \frac{1}{x-s} d s $$ where B is a constant, x is from -1 to 1, t is from 0 to $\infty$. Initial condition is $\delta(x,0)=0$. The Cauchy kernel, $1/(x-s)$, could bring singularity to the integral. From my side, I tried to use Finite Hilbert transform and Gauss-Chebyshev quadrature to solve it numerically following this paper, https://doi.org/10.1016/j.jmps.2018.01.008 (which could handle the singularity well), but the LHS has a time derivative (which seems not to be covered in the above paper), which brought new troubles to use the above numerical method. So, I am thinking are there any better ways to solve it numerically or analytically (could be impossible)?

  • $\begingroup$ I'm missing boundary conditions. Perhaps `[Delta][-1, t] == 0, [Delta][ 1, t] == 0``? $\endgroup$ Commented Apr 4 at 8:10
  • $\begingroup$ Hi @UlrichNeumann, actually, I am not that sure about the boundary condition. However, I am sure the left and right ends are free, i.e., [Delta][-1, t] == 0, [Delta][ 1, t] == 0 is not the boundary condition. Two possible BCs are: either (1) $\delta(-1,t)-\delta(1,t)=0$; or (2) $\partial\delta(0,t)/\partial s=0 $. $\endgroup$
    – Rui
    Commented Apr 5 at 0:16

1 Answer 1



Try Galerkin method using MeshElementInterpolation:

First we set B=1 by choosing an appropriate time scale.

xi = Subdivide[-1, 1, 10];
netz = ToElementMesh[Map[{#} &, xi]]
\[Phi]i =Map[ElementMeshInterpolation[netz, #] &, IdentityMatrix[Length[xi]]];
Plot[Evaluate[Through[\[Phi]i[x]]], {x, Min[xi], Max[xi]},PlotRange -> All]

enter image description here

eps = .001 
rS = NIntegrate[Outer[Times, Through[\[Phi]i[x]],Map[D[#[s], s  ] &, \[Phi]i]/(\[Pi] (x - s))], {x, -1,1}, {s, -1, x - eps}, Method -> "LocalAdaptive" ] + 
NIntegrate[Outer[Times, Through[\[Phi]i[x]],Map[D[#[s], s  ] &, \[Phi]i]/(\[Pi] (x - s))], {x, -1, 1}, {s,x + eps, 1} , Method -> "LocalAdaptive" ]; // Quiet  

M = NIntegrate[Outer[Times, Through[\[Phi]i[x]], Through[\[Phi]i[x]]], {x,-1, 1},Method -> "InterpolationPointsSubdivision" ] // Quiet
eins = NIntegrate[ Through[\[Phi]i[x]] , {x, -1, 1},Method -> "InterpolationPointsSubdivision" ] // Quiet

Unknown function \[Delta][x, t] is approximated by u[i][t] \[Phi]i[x]

ui = Table[u[i][t], {i, Length[\[Phi]i]}]

Solve ode system eins - M . D[ui, t] == rS . ui

sol = NDSolveValue[{eins - M . D[ui, t] == rS . ui,Map[# == 0 &, ui /. t -> 0]}, ui, {t, 0, 1}];    

plot result

Plot3D[sol . Through[\[Phi]i[x]], {t, 0, .5}, {x, -1, 1},PlotRange -> All, AxesLabel -> {t, x, \[Delta][x, t]}]

enter image description here

I am not sure wether integration of the singularities is done correctly near the boundary x==-1 and x==1. Perhaps we need \[Delta][-1, t]==0 and \[Delta][ 1, t]==0 to get correct results from Galerkin method...

  • $\begingroup$ I guess so. The peaks and valleys (up and down) in the plot might be due to the singularity of the integral. For the singular problem using Galerkin methed to solve, maybe the mesh needs to be modified accordingly. $\endgroup$
    – Rui
    Commented Apr 5 at 0:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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