# How to get Fourier transform of Fisher-Kolmogorov?

How can I use Fourier Transform to solve Fisher-Kolmogorov Equation in 1D?

$$u_t(x,t) = u_{xx}(t) + u(1-u)$$

$$u(0,x) = \phi(x)$$

with Dirichlet $$u(0,t)=0 \\ u(1,t)=0$$

and Neumann boundary conditions $$u_x(0,t)=0\\ u_x(1,t)=0$$

Can I just do the following?

$$F\{u(x,t)\}=\hat{u}(k,t) = \int_{-\infty}^{+\infty}u(x,t)e^{-ikx}dx$$

$$\hat{u}_t(k,t) = (ik)^2\hat{u}(k) + F\{u(x,y)(1-u(x,t))\} \\ u_t(x,t)=F^{-1} \{ (ik)^2\hat{u}(k) \} + u(x,y)(1-u(x,t))$$

This is a simple Matlab implementation in 1D:

After 250 iterations using forward Euler with $\Delta t = 0.01$ , the solution looks something like

• I don't understand what the plot shows. The function you are seeking, $u(x,t)$ depends also on time, but your plot only shows the $x$-dependence. Jul 11, 2015 at 19:21
• It's one frame after 250 iterations using forward Euler and $\Delta t = 0.01$ Jul 11, 2015 at 19:24
• OK, but so is the shown solution correct or wrong? Jul 13, 2015 at 16:29

The problem can be partially solved following this tutorial.

Given Fisher-Kolmogorov equation

$$u_t=u_{xx}+u(1-u)$$

It can also be written as

$$u_t = u_{xx} + u\,v\\ v_t = v_{xx} - u\,v$$

where $v = (1-u)$

Solving the equation $$u_t = u_{xx} \\$$

from $t$ to $\Delta t$ gives

$$\hat{u}_t = (ik)^2 \hat{u} \\ \tilde{u}(x,t+\Delta t) = F^{-1} \left\{e^{-k^2 \Delta t} \hat{u} \right\}$$

Now solving the equation

$$u_t = u \, v \\$$

Using the splitting operator method we can write

$$u(x,t+\Delta t) = e^{-v\Delta t} \tilde{u}(x,t+\Delta t)$$

Doing that likewise for $v$ gives the solution

Diffusion_Reaction.m

Boundary conditions still must be imposed.