Take the 2-minute tour ×
MathOverflow is a question and answer site for professional mathematicians. It's 100% free, no registration required.

I want to numerically integrate the equation $\partial_t u= a(t) \partial_xu+b\partial_{xxx}u+c$ to get $u(t)$. Is is preferable to use a difference formula of higher order of accuracy for spatial derivatives? Thanks. I am using a Semi-Discretization method called Method of Lines (vertical) to treat this problem.

share|improve this question
Could you tell us more about the problem - what is the domain, etc.? –  Tom Dickens Oct 3 '12 at 1:40
hi, @tom-dickens it is a equation resulting from fluid dynamics. –  gstar2002 Oct 4 '12 at 15:25
add comment

1 Answer

up vote 2 down vote accepted

You could use the method of lines to solve this PDE. If you use an explicit finite difference method, you will need to take a rather small time step (${\mathcal O(\Delta x^3))}$ due to the $u_{xxx}$ term.

Given that you don't specify any boundary conditions, I will assume that you are solving the Cauchy problem. In that case (or in case of periodic boundary conditions), there is a much more efficient approach. Since your PDE is linear and the coefficients don't vary in space, you can solve in terms of Fourier modes. Decompose the initial data as usual:

$$u(x,0) = \sum_k c_k\exp{ikx}.$$

Then use the ansatz

$$u(x,0) = \sum_k g_k(t)\exp{ikx}$$

with $g_k(0) = c_k$. Substituting this in your PDE gives

$$g_k'(t) = ik a(t) - ik^3b + c.$$

This can be solved very easily by numerical quadrature (or exactly, if $a(t)$ can be integrated symbolically).

share|improve this answer
Thanks David. I decided to use MOL to solve the problem. But I will try to use the Fourier method, if I have one more chance. –  gstar2002 Oct 29 '12 at 20:00
The acture system is more complicated, but I think the Fourier method is applicable. –  gstar2002 Oct 29 '12 at 20:28
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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