Documentos de Académico
Documentos de Profesional
Documentos de Cultura
15 PDF
15 PDF
Matemtica D - 2010
1.
(1)
x(0) = x0 .
y T = 4.
Un algoritmo, que podemos llamar mtodo de diferencias nitas, obtiene una solucin aproximada basndose en la siguiente aproximacin:
x(t + t) x(t) + t x0 (t),
cuando t es pequeo.
Aqu, aparece el concepto de diferencia nita
x(t) := x(t + t) x(t) t x0 (t),
>N=100;
(todo lo que est con la fuente code sern sentencias que podemos ejecutar en el entorno Matlab.)
Por lo tanto, si en nuestro ejemplo, comenzamos con t0 = 0, que es el nico valor de la x que tenemos
disponible como dato, podemos aproximar el valor x(0,01) de la siguiente manera:
>x(1)=1,
>x(2) = x(1)+h*sin(x(1)),
Anlogamente,
>x(3) = x(2)+h*sin(x(2)),
y as sucesivamente. . . hasta obtener el valor aproximado de x(4) (no confundir con x(4)),
>x(N+1) = x(N)+h*sin(x(N)),
Podemos utilizar un lazo for para implementar el ejemplo. Creamos un arichivo .m con las siguientes
sentencias:
N=100,
h=1/N,
t=[0:h:4],
x(1)=1,
for k=2:N+1,
x(k)= x(k-1) + h*sin(4*x(k-1));
end
>plot(t,x);
Con la funcin ode45 obtenemos otro resultado aproximado que podemos comparar con el obtenido
anteriormente.
Primero creamos una funcin mifun.m
(ED)
(2)
u
u(x, t + t) u(x, t)
(x, t)
t
t
(3)
2u
u(x + x, t) 2u(x, t) + u(x x, t)
(x, t)
2
x
(x)2
(4)
xi = (i 1)x + x1 , 2 i M + 1,
t1 = 0,
tj = (j 1)t + t1 , 2 j N + 1,
y
ui,j = u(xi , tj ).
si las expresiones de (3) y (4) fueran iguales, como lo exige la (ED) en (2), tendramos
ui,j+1 ui,j
ui+1,j 2ui,j + ui1,j
=
,
t
(x)2
y, al despejar ui,j+1 ,
ui,j+1 =
para 2 i M y 1 j N .
t
(ui+1,j 2ui,j + ui1,j ) + ui,j ,
(x)2
(5)
Ya estamos listos para comenzar a construir una aproximacin sobre la malla (xi , tj ) de una u que
satisfaga (2), encontrando paso a paso los valores de ui,j .
Los valores ui,0 para 1 i M + 1, estn dados por la (CI) en (2), ya que
ui,1 = f (xi ),
1 i M + 1.
t
(ui+1,1 2ui,1 + ui1,1 ) + ui,1 ,
(x)2
y en los extremos, usamos la (CB) en (2) para tener u1,2 = A(t2 ) y uM +1,2 = B(t2 ).
Procedemos de la misma manera, para calcular las restantes las de la matriz (ui,j ).
Ejercicio 1. Implementar lo anterior con MatLab, para L = 2 , T = 10, f (x) = sin(x) y A(t) = B(t) = 0.