Message Boards Message Boards


Dirac Delta function - as a solution to Modified Helmholtz equation

Posted 8 years ago
4 Replies
1 Total Likes

So i am solving a differential equation which has a delta function. When i solve the differential equation, the solution comes up with a Heaviside Function for the particular solution of the DiracDelta. But in the book Arfken, we see that the solution for a modified Helmholtz equation with a delta function is

Equation : p''[z] - k^2*p[z] = DiracDelta(z-z2)

Solution in Mathematica : constansts + Heaviside Function

Solution in Arfken : Exp[-kAbs[z-z2]]/2k

How do i make sure Mathematica gives me the Arfken result instead of a Heaviside function????

4 Replies

I don't know of any systematic Mathematica procedure for solving this equation. You apparently can't put in f[Infinity] == 0 as a subsidiary condition. (Machines have not yet completely replaced humans!)

POSTED BY: S M Blinder


G(Z) = E^(-k|Z|)/(2k).

POSTED BY: S M Blinder

The solution is a Green's function G{z,z2) = G{z-z2) = G{Z}, with Z = z-z2, which obeys the differential equation G''{Z)-k^2 G(Z) = -delta(Z). The minus sign is conventional.

In[45]:= DSolve[G''[Z] - k^2*G[Z] == -DiracDelta[Z], G[Z], Z]

Out[45]= {{G[Z] -> 
   E^(k Z) C[1] + E^(-k Z) C[2] - (
    E^(-k Z) (-1 + E^(2 k Z)) HeavisideTheta[Z])/(2 k)}}

Now we need to determine C[1] and C[2] by the boundary conditions G[Infinity]=G[-Infinity]=0. From the first condition, as Z->+Infinity, E^(-k Z) becomes negligible, so the asymptotic solution approaches G(Z) = E^(k Z) C[1] - E^(k Z)/{2k).This implies that C[1] = 1/(2k). Setting C[2]= 0, we find G(Z) = E^(-k Z)/(2k) for Z>0. The second boundary condition leads to E^(k Z)/(2k) for Z<0. Thus the final result is G(Z) = E^(k|Z|)/(2k).

POSTED BY: S M Blinder

I agree with solution you have given, but how do i implement the same in Mathematica. Using the solution from this expression, I need to solve more Differential Equations.

DSolve[{C''[z] - q^2*C[z] == -DiracDelta[z - z2], C[Infinity] == 0, C[-Infinity] == 0}, C[z], z]

I tried giving the boundary conditions as the above mentioned, I ended getting an error message as shown below:

DSolve::bvlim: For some branches of the general solution, unable to compute the limit at the given points. Some of the solutions may be lost. >>

If you would be kind enough to give me the solution for this error.

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract