% 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 % k u'(L) + kappa1 u(L) = kappa2 uE % %% Parametros del problema L = 1; k = 1; a = 2; kappa1 = 200; kappa2 = 1; uE = 0; f = @(x)(100*sin(2*pi*x)); %% Parametros del metodo de resolucion N = 30; %% 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*kappa1/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*kappa2*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(1) plot(X,U,'*-')