Ecuación diferencial

  • Resuelve de forma aproximada el problema siguiente: $$ y'' = y + \frac{1}{1+5x^2} $$ $$ y(0)=0, y(1)=1 $$
  • Explica qué técnica has usado, y por qué.
  • Es un problema de contorno. Podemos usar el método del disparo, o elementos finitos, por ejemplo. Sin embargo, para el método de Elementos Finitos sólo hemos visto ejemplos con condiciones de contorno homogéneas, así que usaremos la técnica del disparo.
  • Definimos la función NLS cuya raíz es la velocidad inicial que necesitamos para que al resolver el PDI se cumpla la condición de contorno en el extremo derecho.
In [1]:
function target = NLS(v)
    funNL = @(x,ys)([
        ys(2), 
        ys(1)  + 1./(1 + 5*x.^2)
    ]);
    x_span = [0, 1];
    alfa = 0;
    beta = 1;
    y0 = [alfa, v];
    [t,y] = ode45(funNL, x_span, y0);
    target = y(length(t), 1) - beta;
end
  • Encontramos la raíz de NLS con una llamada a fsolve.
In [2]:
vel_x0 = fsolve(@NLS, 0)
vel_x0 =  0.53565
  • Resolvemos el PVI con la velocidad inicial que encontramos antes.
In [3]:
funNL = @(x,ys)([
    ys(2), 
    ys(1)  + 1./(1 + 5*x.^2)
]);
x0 = 0;
xf = 1;
x_span = [x0, xf];
alfa = 0;

y0 = [alfa, vel_x0];

nx = 200;
xs = linspace(x0,xf,nx);
[t,ys] = ode45(funNL, xs, y0);
ys_NL = ys(:,1);

hold on;
plot(xs, transpose(ys_NL), 'g');
xlabel('x');
ylabel('desplazamiento vertical');
title('Solucion del problema de contorno');
hold off;
In [ ]: