t=0

You can set some initial value here. Alternatively, you can just draw the graph of the function with your mouse.

u(x,0) = You can choose the type of boundary condition here.

Dirichlet condition: u(0,t)=u(1,t)=0.Neumann condition: u

You can specify here the finite difference iteration scheme. instructions.

u[i]= The evolution will stop when the time t reaches the value below.

MAX t = The blue curve you see above represents the graph of a function u(x,t) for a fixed value of t.

The coordinate x varies in the horizontal direction. The left side of the white frame corresponds to x=0, and the right side to x=1. The top of the white frame corresponds to the level u=1, and the bottom to u=-1. The level u=0 is right in the middle.

When you click "Start", the graph will start evolving following the finite difference scheme specified above.

Luis Silvestre. Last update: July 19, 2013.

Check also the other online solvers

The finite difference scheme specifies the iterative procedure which will be used to evolve the values of the function.

We represent the function by its values on a mesh of points. Here **u[i]** represents the value of the function u for ** x=i.h ** at the present time. At each iteration, we add ** k ** to the current time and replace the values of ** u[i] ** by the value given by the formula you write in the * Iteration scheme * box. For example, the default formula ** u[i] + k*(u[i-1]+u[i+1]-2*u[i])/(h*h) ** corresponds to the finite difference scheme
** u[i,j+1] = u[i,j] + k*(u[i-1,j]+u[i+1,j]-2*u[i,j])/(h*h) ** which approximates the solution of the heat equation **u _{t} = u_{xx}**.

The interation scheme must be a formula depending on ** u[i-1], u[i], u[i+1], x, t, k and h **, where ** h ** is the mesh size and ** k ** is the time step. Remember that **x** ranges from 0 to 1.

The mathematical expressions use the usual arithmetic symbols: + (addition), - (subtraction), * (product) and / (division). Moreover it can understand several common functions like: sin, cos, tan, log, exp, pow (stands for power), abs, sqrt, etc...

In order to produce schemes that approximate other equations, remember the following approximations.

u

u

You can try some premade examples by selecting from the list below.

These examples will also set convenient initial values and mesh settings. You will see that the schemes are not always the obvious ones. Instead they are tuned up for stability.

This is the number of points used to sample the interval [0,1]. In particular ** h = 1/(N-1) **. A large number could make the computation more accurate, but it can also make the website unresponsive if your computer cannot do the computations in time.

N = This is the time step we take at each iteration. A quantity that is too large here would make the computation unstable. A number that is too small would make the website unresponsive.

k = These settings are delicate. Choose the values carefully. The website may freeze if it cannot compute a time interval of 0.01 in one second.

Your computer is too slow to perform this computation in real time. Try changing the mesh settings.

This is an example of a finite difference scheme.