Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La letra D se utiliza para representar la derivación con respecto a la variable independiente, es decir, u 0 se
escribe Du; las derivadas orden superior u00 , u000 , . . . se escriben D2u, D3u, . . .
cuando se resuelve un sistema de ecuaciones diferenciales, Matlab proporciona las funciones solución en
orden léxico-gráfico.
1.1. Ejemplo
1.2. Ejemplo
1
Práctica 3: Resolución de ecuaciones diferenciales ordinarias. 2
1.3. Ejemplo
La ecuación diferencial, o la condición inicial, pueden contener parámetros. Por ejemplo, si se desea resolver
el problema ½ 0
u = r · u, t ≥ 0,
u(0) = u0 .
basta escrbir
>> u = dsolve(’Du = r*u’,’u(0) = u0’)
y se obtiene
u =
u0*exp(r*t)
1.4. Ejercicio
u0 = (a − b · u)u
1.5. Ejercicio
1.6. Ejercicio
1.7. Ejercicio
para los siguientes valores de u0 : 10, 20, 50, 60, 70, 80 y 100. Representa todas las soluciones obtenidas en
una misma gráfica, para t ∈ [0, 10].
1.8. Ejemplo
Es posible resolver sistemas de ecuaciones diferenciales, con o sin condiciones iniciales. Por ejemplo, para
resolver el sistema
1 3
u0 = u + v,
4 4
9 5
v0 = u − v,
4 4
es conveniente seguir el procedimiento siguiente. Primero resolvemos el sistema, pero guardamos la solución
en una variable auxiliar s:
>> s = dsolve(’Du = 1/4*u + 3/4*v’,’Dv = 9/4*u - 5/4*v’,’t’)
s =
u: [1x1 sym]
v: [1x1 sym]
La respuesta indica que se ha obtenido una solución —guardada en s— que consta de dos componentes: u y
v (obsérvese el orden léxico-gráfico). Para conocer cómo es cada componente, basta hacer
>> u = s.u
u =
1/4*C1*exp(t)-1/4*C1*exp(-2*t)+1/4*C2*exp(-2*t)+3/4*C2*exp(t)
>> v = s.v
v =
3/4*C1*exp(-2*t)+1/4*C1*exp(t)+3/4*C2*exp(t)-3/4*C2*exp(-2*t)
Esto quiere decir que la solución general del sistema es
1 1 1 3
u(t) = 4 C 1 et − 4 C1 e−2t + 4 C2 e−2t + 4 C2 et = ( 14 et − 1
4 e−2t ) C1 + ( 14 e−2t + 3
4 et ) C 2 ,
3 1 3 3
v(t) = 4 C1 e−2t + 4 C 1 et + 4 C 2 et − 4 C2 e−2t = ( 34 e−2t + 1
4 et ) C1 + ( 34 et − 3
4 e−2t ) C2 .
1.9. Ejemplo
1.10. Ejercicio
1.11. Ejercicio
se obtiene como solución una función u(·) que puede ser evaluada en cualquier instante t del intervalo
[TI , TF ]. En cambio, cuando el problema se resuelve mediante un método numérico, sólo es posible obtener
una colección finita {u1 , u2 , . . . , uN } de aproximaciones de la solución en ciertos instantes t1 < t2 < . . . , tN ,
con TI = t1 y TF = tN , es decir,
un ' u(tn ), n = 1, 2, . . . , N.
A grandes rasgos, se puede decir que el error en = u(tn ) − un (la diferencia entre el valor exacto, que es
desconocido, en el instante tn y el valor aproximado, que es el conocido) depende en gran medida del método
numérico empleado.
Matlab dispone de una amplia variedad de métodos numéricos para resolver problemas de valor inicial.
Destacamos dos de ellos:
En ambos casos, se obtiene como respuesta un vector columna t que contiene los instantes en los que se ha
calculado la solución aproximada, y el vector u —o una matriz, en el caso de un sistema— que contiene tales
aproximaciones.
Los instantes contenidos en t son elegidos automáticamente por el método numérico; si se desean instantes
predeterminados, basta reemplazar el argumento [TI TF] por [T1 T2 ... TN].
La solución aproximada se puede representar gráficamente con la orden plot.
2.1. Ejemplo
f.m
function du = f(t,u)
du = (0.7 - 0.01 * u) * u ;
2.2. Ejemplo
Para resolver numéricamente el problema del Ejercicio 1.9 en el intervalo [0, 1], la función f puede ser
f.m
function du = f(t,u)
du1 = 1/4 * u(1) + 3/4 * u(2);
du2 = 9/4 * u(1) - 5/4 * u(2);
du = [du1;du2];
t u
–––––- –––––––––––––
0 0.2000 0.0500
0.0065 0.2006 0.0525
0.0130 0.2012 0.0550
.. .. ..
. . .
0.9630 0.4311 0.4093
0.9815 0.4389 0.4178
1.0000 0.4468 0.4265
2.3. Ejercicio
2.4. Ejercicio