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:
0placa,1cilíndrica,2esférica. pdefun- Handle
[c, f, s] = pdefun(x, t, u, dudx)que definec*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çõesp + q*f = 0nas 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 componentekno instantetspan(i)e no pontoxmesh(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