How to use MATLAB to solve this PDE
I have the following question in my exam:
I need to use MATLAB to solve it. The problem is I haven't seen such an issue before and I am struggling to get started.
I have a 1x1 grid split into 10x10. I know that I can calculate the entire bottom row except corners using 1/10 * x * 2. I also know that I can calculate the entire right row using (1/10) (1 + t) ^ 2. However, I can't figure out how to get enough points to be able to fill in values for the entire grid. I know this must have something to do with the partial derivatives given in the problem, but I'm not entirely sure where they come into play (especially the u_x equation). Can someone help me get started here?
I don't need the whole solution. Once I have enough points, I can easily write a Matlab program to do the rest. Actually, I think I just want the x = 0 lattice, then I'll just fill in the middle of the grid.
I calculated the bottom row, minus the two angles, to be 0.001, 0.004, 0.009, 0.016, 0.025, 0.036, 0.049, 0.064, 0.081. And similarly, the entire righthand line is trivial to compute using the given boundary condition. I just can't get together where to go from there.
Edit: the third boundary state equation was wrong. it should read:
u_x (0, t) = 1 / 5t, NOT u (0, t) = 1 / 5t
source to share
Realize first that the equation you have to solve is a linear wave equation, and the numerical diagram you give can be rewritten as
( u^(n+1)_m  2u^n_m + u^(n1)_m )/k^2 = ( u^n_(m1)  2u^n_m + u^n_(m+1) )/h^2
where k
is the time step, and h
is delta x
in space.
The reformulated numerical scheme clearly shows that the left and right sides are centered secondorder finitedifference approximations u_tt
and, u_xx
respectively.
To solve the problem numerically, you need to use the form provided to you, because this is an explicit update formula that you need to implement numerically: it gives you the solution at a point in time n+1
as a function of the previous two times n
and n1
. You need to start with the initial condition and execute the decision in a timely manner.
Note that the decision imposed on the boundaries of the field ( x=0
and x=1
), so the value of the sampled solutions u^(n)_0
and u^(n)_10
are known for all n
( t=n*k
). At the n
th time step, your unknown vector [u^(n+1)_1, u^(n+1)_2, ..., u^(n+1)_9]
.
Note also that using the update formula to find a solution in a step n+1
requires knowledge of the solution in the previous two steps. So how do you start with n=0
if you need information from the previous two times? This is where initial conditions come into play. You have a solution in n=0
( t=0
), but you also have u_t
at t=0
. These two combinations of information can give you both u^0
and u^1
and get started.
I would use the following startup scheme:
u^0_m = u(h*m,0) // initial condition on u
(u^2_m  u^0_m)/(2k) = u_t(h*m,0) // initial condition on u_t
which, combined with the numerical schema used with n=1
, gives you everything you need to define a linear system for u^1_m
and u^2_m
for m=1,...,9
.
Summarizing:
 use the initial scheme to find a solution in n=1
and n=2
at the same time.
 from there on a march in time using the digital circuit you give.
If you are completely lost, check out things like: finite difference schemes, finite difference schemes for advection equations, finite difference schemes for hyperbolic equations, time march.
EDITING:
For a boundary condition on, u_x
you usually use the ghost cell method:

Imagine a ghost cell at
m=1
, that is, a dummy (or auxiliary) grid point that is used to solve the boundary condition, but this is not part of the solution. 
The first node is
m=0
returned to your unknown vector i.e. you are now working with[u_0 u_1 ... u_9]
. 
Use the left boundary condition to close the system. In particular, writing the centered approximation of the boundary condition
u^n_(1)  u^n_(1) = 2*h*u_x(0,k*n)

The above equation allows you to express a solution to a ghost node in terms of a solution to an internal, real node. So you can apply the digital timing schema (the one you provided) to
m=0
node. (The numerical schema applied tom=0
will contain contributions from them=1
ghost node, but now you have an expression expressed in terms ofm=1
node.)
source to share