% Programita para resolver la ecuacion de Poisson % con condicion de Dirichlet en x=0 y Robin en x=L. % Metodo: Diferencias finitas % % - k u''(x) = f(x), 0 < x < L % u(0) = a % k u'(L) + H1 u(L) = H2 uE % %% Parametros del problema L = 1; k = 1; a = 2; H1 = 20; H2 = 20; uE = 0; f = @(x)( 1000*exp(- 30*(x-L/3).^2 ) - 0*exp(-30*(x-0.7).^2)); %f = @(x)(100*sin(2*pi*x)); %% Parametros del metodo de resolucion N = 60; %% h = L/N; %% Armado de la matriz unos = ones(N+1,1); diagonales = [-1*unos 2*unos -1*unos]; matriz = spdiags(diagonales, [-1 0 1], N+1, N+1); matriz(N+1, N-1:N+1) = [-1 2*h*H1/k 1]; %% Armado del lado derecho X = [h:h:L]'; F = h^2/k*f(X); F(1) = F(1) + a; F(N+1) = 2*h*H2*uE/k; %% Resolucion % Primero resolvemos para los puntos no-Dirichlet (i=1:N+2) U = matriz \ F; % Ahroa agregamos el valor del extremo izquierdo y eliminamos el valor % del punto ficticio N+1 X = [0 ; X ]; U = [a ; U(1:N)]; figure(2) plot(X,U,'o-m')