# Trouble with Method of Lines Matlab

1. Mar 1, 2013

### Ein Krieger

Hello, guys

I am struggling with solving the following ODE related to radial diffusion equation:

du/dt=D*(d^2/dr^2+2/r*du/dr)

For easiness I have attached the main m.file with general commands in Radial_diffusion.m
pde1d.m contains function to be solved by ODE, and dss004.m contains routines for differential solving.

I am getting the following commands:

Undefined function or variable 'r0'.

Error in pde1rd (line 10)
ur=dss004(0.0,r0,nr,u);

Error in odearguments (line 88)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.

Error in ode15s (line 149)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

[t,u]=ode15s(@pde1rd,tout,u0,options);

Can you please indicate where I did wrong?

File size:
903 bytes
Views:
72
File size:
12.8 KB
Views:
77
File size:
431 bytes
Views:
89
2. Mar 1, 2013

### jfgobin

Hello there,

Your function $pde1rd(t,u)$ calls $dss04(0.0,r0,nr,u)$. While $u$ is an argument of the first function and $nr$ is defined as a global variable, $r0$ is neither and is not defined within $pde1rd$.

J.

3. Mar 2, 2013

### Ein Krieger

Thanks. I've got it.

But the values of u(r,t) from the following command

fprintf('\n nr=%2d r0=%4.2f \n', nr,r0);
for it=1:nout
fprintf('\n t=%4.2f\n', t(it));
for i=1:2:nr
fprintf('r=%4.1f u(r,t)=%8.5f\n', r(i), u(it));
end

end
fprintf('\n ncall=%5d\n', ncall)
show that for each value of r and t u(r,t) is zero. Why is it showing such results?