Академический Документы
Профессиональный Документы
Культура Документы
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.
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
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