Numerical methods for differential equations

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
8 replies · 4K views
SarthakC
Messages
10
Reaction score
0
Hi,
Are there any numerical techniques I can use to solve differential equations with periodic boundary conditions? I know of several techniques for other kinds of boundary conditions (such as Runge-Kutta method, Euler method etc.), but I am interested in knowing how to numerially solve differential equations with periodic boundary conditions..

Any help would be appreciated!
 
Physics news on Phys.org
Umm... Maybe I should make my specific scenario a little clearer. My differential equation is of the form $$f(x) \partial_x^2 y + g(x) \partial_x y + h(x) y =0$$

In this scenario, replacing ##y## with a Fourier series in ##x## is not really useful, because the functions ##f, g## and ##h## do not let me compare coefficients anymore, because in order to do that I would have to multiply by some element of the orthogonal Fourier basis, but these functions will not let me extract the information as I want. For example if i just had ##\partial_x y + \delta(x) y=0##, then replacing with ##y## with ##\sum_n c_n e^{inx}## would give me $$\sum_n c_n (i n + \delta(x)) e^{inx}=0$$
The only procedure I'm aware of would proceed from here by mulitplying by ##e^{-imx}## and integrating, but that would give me ##c_m (i m) + \sum_n c_n = 0##. This may not be the best example, but in general I would not get equations from where I could calculate the coefficients directly, right?Wouldn't a spectral method work nicely only when I had a simpler equation with constant coefficients or something?
 
The spectral method works as long as you can write the coefficients themselves as Fourier series or Fourier Transforms.
 
Could someone give me an example? For example let's just take a simple first order equation of $$y^\prime + \Theta(x) y = 0$$ where ##\Theta(x)## is the Heaviside step function, with a domain from ##(-\pi,\pi)##, with peridic boundary equations. Could anyone just show me a few steps from where I can proceed?
 
Actually, for most numerical methods, applying periodic boundary conditions is pretty straight forward.

Are you familiar with finite difference?

In finite difference we break the domain into a finite number of points:
[itex]x_0, x_1, \dots, x_i, \dots, x_N[/itex]

Then we approximate the differential to create an algebraic equation for the interior points [itex]x_1 \dots x_{N-1}[/itex]. For second order equations this equations is often of the form [itex]a x_{i-1} + bx_i + cx_{i+1} = f(x_i)[/itex]

Then we have to apply the correct boundary conditions to the points at the edge of the domain [itex]x_0, x_N[/itex]

For Dirichlet B.C we might set [itex]x_0 =0[/itex] and [itex]x_N =5[/itex]

For periodic boundary conditions we can use the interior equation for [itex]x_0[/itex]. Noting that [itex]x_{-1} = x_{N-1}[/itex] gives the equations [itex]a x_{N-1} + bx_0 + cx_{1} = f(x_0)[/itex].

For the end point we can use [itex]x_N =x_0[/itex]. We often don't solve this last equations. Instead we enforce this equality in our the algebraic system of equations by replacing all [itex]x_N[/itex] with [itex]x_0[/itex] just like we replaced [itex]x_{-1}[/itex] with [itex]x_{N-1}[/itex]. This reduces the error due to finite precision math and slightly reduces the computation time.
 
Hmm. So the idea is I use the finite difference method and the boundary conditions to give me an algebraic problem which I then solve numerically to get all the ##x_i##s?
 
Thanks!
I'll give both the spectral method and the finite difference method a shot and try to solve my original problem. I'll get back to you guys if I have any more clarifications!

Thanks!