% Programita para resolver la ecuacion de Poisson % con condiciones de Dirichlet. % Metodo: Diferencias finitas % % - k u''(x) = f(x), 0 < x < L % u(0) = a % u(L) = b % %% Parametros del problema L = 1; k = 1; a = 2; b = 0; %f = @(x) ( -6*x-3*exp(x)-16*pi^2*sin(4*pi*x) ); f = @(x)( 1000*exp(- 30*(x-L/3).^2 ) - 0*exp(-30*(x-0.7).^2)); %% Parametros del metodo de resolucion N = 60; %% h = L/N; %% Armado de la matriz unos = ones(N,1); diagonales = [-1*unos 2*unos -1*unos]; matriz = spdiags(diagonales, [-1 0 1], N-1, N-1); %% Armado del lado derecho X = [h:h:L-h]'; % x2 hasta xN F = h^2/k*f(X); F(1) = F(1) + a; F(N-1) = F(N-1) + b; %% Resolucion % Primero resolvemos para los puntos interiores (i=1:N) U = matriz \ F; % Ahora agregamos los valores en los extremos para graficar X = [0 ; X ; L]; U = [a ; U ; b]; figure(2) plot(X,U,'*-') return pause figure(1) x = linspace(0,L,5*N); u = x.^3+3*exp(x)-sin(4*pi*x); plot(X,U,'*',x,u)