pdepe

Resolve equações diferenciais parciais parabólicas e elípticas em uma dimensão.

Categoria: Mathematics > Numerical Integration and Differential Equations

Sintaxe

sol = pdepe(m, pdefun, icfun, bcfun, xmesh, tspan)

Resolve o sistema de EDPs na malha xmesh nos instantes tspan.

sol = pdepe(m, pdefun, icfun, bcfun, xmesh, tspan, options)

Aplica também opções de odeset.

Descrição

As derivadas espaciais são discretizadas em xmesh e o sistema de EDOs resultante é avançado no tempo. A equação do calor u_t = u_xx corresponde a c = 1, f = dudx e s = 0.

Use pdeval para avaliar a solução entre pontos da malha. Escolha a malha fina o bastante onde a solução muda rápido.

Argumentos de entrada

m
Simetria: 0 placa, 1 cilíndrica, 2 esférica.
pdefun
Handle [c, f, s] = pdefun(x, t, u, dudx) que define c*u_t = x^(-m) * (x^m * f)_x + s.
icfun
Handle u0 = icfun(x) para a condição inicial.
bcfun
Handle [pl, ql, pr, qr] = bcfun(xl, ul, xr, ur, t) para as condições p + q*f = 0 nas duas extremidades.
xmesh, tspan
Vetores de pontos espaciais e instantes de saída, com pelo menos 3 e 2 entradas respectivamente.

Argumentos de saída

sol
Array de tamanho numel(tspan)-por-numel(xmesh)-por-npde: sol(i,j,k) é a componente k no instante tspan(i) e no ponto xmesh(j).

Exemplo

Equação do calor com extremidades fixas

m = 0;
pdefun = @(x, t, u, dudx) deal(1, dudx, 0);
icfun = @(x) sin(pi*x);
bcfun = @(xl, ul, xr, ur, t) deal(ul, 0, ur, 0);
x = linspace(0, 1, 11);
t = linspace(0, 0.1, 5);
sol = pdepe(m, pdefun, icfun, bcfun, x, t);
fprintf('%.3f %.3f\n', sol(end, 6, 1), exp(-pi^2*0.1))
Saída
0.376 0.373

Veja também

pdeval ode15s odeset bvp4c