Вы находитесь на странице: 1из 6

AMPLIACIN DE MATEMTICAS (2o Ingeniera Aeronutica y Telecomunicacin) Departamento de Matemtica Aplicada II.

Universidad de Sevilla CURSO ACADMICO 2007-2008

Prctica V: Problemas de Contorno Lineales Problemas de Contorno


Problemas regulares de contorno lineales. Sean , dos nmeros reales arbitrarios y sean p, q y r funciones continuas en [a, b]. El problema de contorno asociado que consideraremos es determinar (cuando exista) alguna funcin y C 2 ([a, b]; R) tal que verique 00 y = py 0 + qy + r, (P ) y(a) = , y(b) = . u(t) = y(t) v(t) con v(t) = bt at + , ba ab

El cambio de variables lineal

muestra que analizar el problema (P ) es equivalente a analizar el problema normalizado 00 u = pu0 + qu + rN , rN := r + qv + pv 0 . (PN ) u(a) = 0, u(b) = 0, En otras palabras, desde un punto de vista terico, es suciente con estudiar los problemas cuya estructura responda a (PN ) o, en trminos ms tcnicos, aquellos problemas con condiciones de contorno homogneas. Trivialmente, el conjunto de todas las soluciones del problema homogneo 00 u = pu0 + qu, (PH ) u(a) = 0, u(b) = 0, forma un espacio vectorial: la combinacin lineal de soluciones es otra solucin. Por tanto, si el problema original (P ) tiene una cierta solucin y0 , el conjunto de todas las soluciones de (P ) es igual a la suma de y0 ms el espacio vectorial de todas las soluciones del problema homogneo.

Es fcil obtener ejemplos muy sencillos donde el problema (P ) no tiene solucin o tiene innitas soluciones. Quizs el criterio ms conocido que garantiza solucin nica para (P ) es vericar que q(x) > 0, para todo x [a, b]. Ejercicio resuelto 1. Considere el problema de contorno 2 00 x y = 6y, y(1) = y(2) = 1. Obtenga, para una amplia gama de valores de , la solucin del problema de valores iniciales 2 00 x y = 6y, y(1) = 1, y 0 (1) = .

A tenor de los resultados obtenidos, estime aproximadamente la solucin del problema de contorno original. function trialslopes(s) clf ncase=length(s); T=1:0.001:2; axis([1,2,0,2]) grid hold on for k=1:ncase [t,y]=ode45(@fun,T,[1,s(k)]); plot(t,y(:,1));shg pause end hold off function dydt=fun(t,y) dydt=[y(2);6*y(1)./(t^2)]; Nota: Ejecutar el chero con s = 1.25 : 0.01 : 2 y s = 1.25 : 0.1 : 2.

El Mtodo de Disparo
Mtodo de disparo. Dado el problema de contorno lineal 00 y = py 0 + qy + r, (P ) y(a) = , y(b) = , donde q > 0 en [a, b], consideramos los dos problemas de valores iniciales siguientes: 00 00 y = py 0 + qy + r, y = py 0 + qy, (P V 1) (P V 2) 0 y(a) = , y (a) = 0, y(a) = 0, y 0 (a) = 1. 2

Estos problemas tienen, respectivamente, dos soluciones nicas y1 , y2 y ambas denidas en [a, b]. Puesto que el problema homogneo asociado a (P ) tiene como nica solucin la solucin nula (aqu se usa que q > 0 en [a, b]), se deduce que y2 (b) 6= 0. Esto permite denir z(t) := y1 (t) + y1 (b) y2 (t), y2 (b) t [a, b].

Un clculo sencillo muestra que z es la solucin del problema (P ). Ejercicio resuelto 2. Considere el problema de contorno 00 y = 2 y, (P ) y(0) = 3, y(1) = 7, y compruebe que tiene solucin nica para todo real. 1. Utilizando la orden ode45, disee una funcin en Matlab que implemente el mtodo de disparo para problemas 00 y = 2 y, y(a) = , y(b) = , y que proporcione una estimacin de la solucin en un mallado del intervalo [a, b] con un cierto paso h > 0. Los argumentos de entrada deben ser el parmetro , la correspondiente ecuacin, el intervalo [a, b], las condiciones de contorno [, ], el paso h y la tolerancia relativa de la orden ode45. 2. Resuelva grcamente el problema de contorno (P ) para = 1, utilizando la funcin del apartado anterior con paso h = 0.1 y tolerancia 1e-4. Compare la grca obtenida con la grca de la solucin exacta. function [T,X]=disparo(a,b,h,Y0,tol,lambda) T=a:h:b; N=length(T); options=odeset(RelTol,tol); [T,X1]=ode45(@sist,T,[Y0(1) 0],options,lambda); Z1=X1(:,1); [T,X2]=ode45(@sist,T,[0 1],options,lambda); Z2=X2(:,1); X=Z1+((Y0(2)-Z1(N))/Z2(N))*Z2; plot(T,X) shg function y=sist(t,x,lambda) y=[x(2),lambda^2*x(1)]; 3

Ejercicio 3. Resuelva mediante el mtodo de disparo, el problema de contorno 00 y + y 0 6y = 0 y(0) = 1, y(1) = 2. Compruebe su resultado con la correspondiente solucin exacta.

7.3 Mtodo de Diferencias Finitas


Mtodo de diferencias nitas. El primer paso a realizar con el mtodo de diferencias nitas consiste en discretizar, es decir, reemplazar las derivadas de la ecuacin diferencial por un cociente incremental adecuado. En concreto, dado el problema de contorno lineal 00 y = py 0 + qy + r, (P ) y(a) = , y(b) = , jamos un conjunto de n + 2 (n N) nodos igualmente espaciados ti = a + ih, i = 0, 1, ..., n + 1; h= ba . n+1

En cada uno de los nodos interiores ti (1 i n) aproximamos las derivadas primera y segunda mediante y(ti+1 ) y(ti1 ) + O(h2 ), 2h y(ti+1 ) 2y(ti ) + y(ti1 ) + O(h2 ). y 00 (ti ) = 2 h y 0 (ti ) = De este modo, la ecuacin diferencial en esos puntos se transforma en y(ti+1 ) 2y(ti ) + y(ti1 ) y(ti+1 ) y(ti1 ) + q(ti )y(ti ) + r(ti ) + O(h2 ). = p(ti ) h2 2h Imponiendo que las aproximaciones yi y(ti ) veriquen la ecuacin en diferencias que resulta de despreciar el trmino de orden O(h2 ), llegamos a la frmula que dene el mtodo de diferencias nitas, es decir, yi+1 2yi + yi1 yi+1 yi1 + qi yi + ri , i = 1, ..., n, = pi 2 h 2h donde pi = p(ti ), qi = q(ti ), ri = r(ti ). Evidentemente, estamos considerando y0 = e yn+1 = . Reorganizando las ecuaciones anteriores queda 1 1 (1 hpi )yi1 + (2 + h2 qi )yi + (1 + hpi )yi+1 = h2 ri , i = 1, ..., n. 2 2 4

Si denotamos ai := 2 + h2 qi , 1 bi := 1 + hpi , 2 1 ci := 1 hpi , 2

podemos escribir las ecuaciones anteriores como ci yi1 + ai yi + bi yi+1 = h2 ri , i = 1, ..., n. Esto nos da un sistema tridiagonal de n ecuaciones lineales con n incgnitas y1 , ..., yn . En forma matricial, el sistema es Ay = d, donde a1 b1 h2 r1 c1 c2 a2 b2 h2 r2 ... . . c3 a3 A= . , d = . ... ... h2 rn1 bn1 h2 rn bn cn an En condiciones bastante generales y para tamaos de paso h sucientemente pequeos, es posible probar que este sistema es compatible y que puede resolverse ecazmente usando eliminacin gaussiana. Ejercicio resuelto 4. Considere el problema de contorno 00 y = y (1 + 2 ) sen(t), (P ) y(0) = 0, y(1) = 0, con solucin nica igual a y(t) = sen(t). 1. Disee una funcin de Matlab que implemente el mtodo de diferencias nitas para resolver un problema de contorno del tipo 00 y = y + f (t), y(a) = 0, y(b) = 0. Los argumentos de entrada deben ser la funcin f , el tamao del paso y los valores a y b. Los argumentos de salida deben ser el mallado del intervalo y las estimaciones en los puntos de dicho mallado. 2. Utilice la funcin del apartado uno para estimar grcamente la solucin del problema (P ) con pasos h = 0.05, 0.25. function [T,malla]=diffin(h,a,b,fun) T=a:h:b; N=length(T); malla=zeros(1,N); 5

A=diag((2+h^2)*ones(1,N-2)); A=A-diag(ones(1,N-3),1); A=A-diag(ones(1,N-3),-1); u=feval(fun,T); d=-(h^2)*u(2:N-1); malla(2:N-1)=A\d; plot(T,malla) Nota: Conviene asegurarse de que la funcin fun.m est adecuadamente denida para que su salida sea un vector columna y pueda trabajar con datos vectoriales. Ejercicio 5. Resuelva el problema de contorno 00 xy + 2y 0 xy = ex , y(0) = 0.5, y(2) = 3.694528, usando el mtodo de diferencias nitas con diez puntos. Dibuje el resultado obtenido y comprelo con la funcin y(x) = 1 ex . 2

Вам также может понравиться