Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Reporte No 7
EDO’S
Marcos Ibarra
Junio 2019
Intrucciones:
Rb
Para llegar a la solución de la ED, utilizaremos la función de Green y(t) = G(t, x)f (x)dx. La ecuación dife-
a
rencial se reconoce como una ED de Cauchy-Euler. De la ecuación auxiliar m2 − 1 = 0, la solución general de la
ecuación homogénea asociada es y = c1 t−1 + c2 t. Aplicar y(1) = 0 a esta solución implica c1 + c2 = 0. Al elegir
c2 = −1 obtenemos c1 = 1 y y1 (t) = t−1 − t. Por otro lado, y(100) = 0 aplicada a la solución general muestra que
c1
+ 100c2 = 0. La elección c2 = −1 ahora da c1 = 10000 y ası́ y2 (t) = 10000t−1 − t.
100
El Wronskiano de estas dos funciones es
−1
10000t−1 − t
t −t
W (y1 (t), y2 (t)) = −2 = 19998t−1
−t − 1 −10000t−2 − 1
La función de Green es
1
(x−1 − x)(10000t−1 − t)
si 1≤x≤t
19998x−1
G(t, x) =
(t−1 − t)(10000x−1 − x)
si t ≤ x ≤ 100
19998x−1
Z100 Zt Z100
−x 10000t−1 − t 2 −x t−1 − t
y(t) = G(t, x)e dx = (1 − x )e dx + (10000 − x2 )e−x dx
19998 19998
1 1 t
10000t−1 − t 2 −t t−1 − t
y(t) = (t e − 2te−t + e−t − 4e−1 ) + (−t2 e−t − 2te−t + 19998e−t + 202e−100 )
19998 19998
Con MATLAB obetenemos de forma directa la solución exacta ingresando en la consola
dsolve(’t^2*D2y+t*Dy-y=t^2*exp(-t)’,’y(1)=0’,’y(100)=0’,’t’)
Implementamos un programa para codificar el Método de Diferencias Finitas en una Dimensión para resolver el
problema con condiciones de frontera:
definido en el dominio [xi; xf ] y valores en la frontera de u(xi) = vi y u(xf ) = vf , además se le indica el ta-
maño de la partición n, si se graficará la solución indicando en grf = 1, con solución analı́tica s(x) y si a esta se
proporciona entonces sws = 1. Regresando la matriz y los vectores Ay = b del sistema lineal generado ası́ como
los puntos del dominio y los valores de la solución en dichos puntos x; V , para cada problema que deseemos resolver.
2
41 % Encuentra e l e r r o r en norma i n f i n i t a usando p a r t i c i o n par =10
42 e r r o r =0;
43 i f sws == 1
44 par = 1 0 ;
45 f o r i = 1 : n−1 ,
46 i n c = ( x ( i +1)−x ( i ) ) / par ;
47 f o r j = 1 : par +1 ,
48 px = x ( i )+i n c ∗ ( j −1) ;
49 e = abs ( s ( px )− l ( px , x ( i ) ,V( i ) , x ( i +1) ,V( i +1) ) ) ;
50 i f e > error
51 error = e ;
52 end
53 end
54 end
55 end
56 % Revisa s i se g r a f i c a r a
57 i f g r f == 1
58 i f sws == 1
59 % C a l c u l a l a s o l u c i o n a n a l i t i c a en l a p a r t i c i o n de c a l c u l o
60 ua = z e r o s ( n , 1 ) ;
61 for i = 1: n ,
62 ua ( i ) = s ( x ( i ) ) ;
63 end
64 end
65 % G r a f i c a r l a s o l u c i o n numerica
66 p l o t ( x , V, ’ o ’ ) ;
67 hold
68 % G r a f i c a r l a s o l u c i o n a n a l i t i c a en una p a r t i c i o n tamano xPart
69 i f sws == 1
70 xPart = 1 0 0 0 ;
71 h = ( xf −x i ) / ( xPart −1) ;
72 xx = z e r o s ( xPart , 1 ) ;
73 xa = z e r o s ( xPart , 1 ) ;
74 f o r i = 1 : xPart ,
75 xx ( i ) = x i + ( i −1)∗h ;
76 xa ( i ) = s ( xx ( i ) ) ;
77 end
78 p l o t ( xx , xa ) ;
79 t i t l e ( ’ S o l u c i o n e x a c t a vs S o l u c i o n aproximada ’ ) ;
80 x l a b e l ( ’ Abscisa ’ ) ;
81 y l a b e l ( ’ Ordenada ’ ) ;
82 l e g e n d ( ’ aproximada ’ , ’ e x a c t a ’ ) ;
83 % Grafica el error
84 figure (2) ;
85 p l o t ( x , V−ua ) ;
86 t i t l e ( ’ Grafico del error ’ ) ;
87 x l a b e l ( ’ Abscisa ’ ) ;
88 y l a b e l ( ’ Ordenada ’ ) ;
89
90 end
91 end
92end
93% Evalua e l punto x en l a r e c t a dada por l o s puntos ( x1 , y1 ) y ( x2 , y2 ) , s e usa para e l c a l c u l o de
l a norma i n f i n i t o
94f u n c t i o n y = l ( x , x1 , y1 , x2 , y2 )
95 y = y1 +(( y2−y1 ) / ( x2−x1 ) ) ∗ ( x−x1 ) ;
96end
Resultados
1.1)
obtenemos los resultados. Para estos casos, por cuestiones de espacio, remitiré adjunto las simulaciones en un ar-
chivo ajdunto (tp7 simu), donde estarán plasmadas los resultados.
Para visualizar el funcionamiento de este código, lo ejecutaremos para N = 5 para el caso sparse, obteniendo la
matriz sparse y el vector solución:
A=
(1,1) -1.0033
(2,1) 0.5622
(1,2) -0.0186
3
(2,2) -3.1649
(3,2) 3.1430
(2,3) 1.6026
(3,3) -9.3265
u=
0
-0.3652
-0.0782
-0.0264
0
1.2)
(a) (b)
(a) (b)
4
El código implementado para el retardo del tiempo es el siguiente:
1 f o r i =1:99
2 N=50+50∗ i ;
3 tic ;
4 tp7 ( p , q , r , f , 1 , 1 0 0 , 0 , 0 ,N, 0 , s , 0 ) ;
5 toc ;
6 m1( i )=N;
7 m2( i )=t o c ;
8end
9p l o t (m1 , m2)
10t i t l e ( ’ Retardo d e l tiempo para N=50 a 5000 con p a s o s de 50 ’ ) ;
11x l a b e l ( ’N ’ ) ;
12y l a b e l ( ’ Tiempo ( s e g u n d o s ) ’ ) ;
2)
Para N = 500, el error es de 0.02. Para N = 1000, error es de 0.0114 y para N = 9000, el error es de 0.0015.
Para valores de N mayores a 9000 mi máquina ya no opera normalmente y se congela.