Anda di halaman 1dari 22

Qu es MATLAB?

Es ampliamente usado por ingenieros de control, en el anlisis y


diseo, posee adems una extraordinaria versatilidad y capacidad
para resolver problemas en matemtica aplicada, fsica, qumica,
ingeniera, finanzas y muchas otras aplicaciones.
aplicaciones Est basado en
un software de matrices para el anlisis de sistemas de ecuaciones.
Permite resolver complicados problemas numricos sin necesidad de
escribir un programa.
El nombre de MATLAB proviene de la contraccin de los trminos
MATrix LABoratory

Ventajas del MATLAB

Su programacin requiere menos tiempo que otros lenguajes como


FORTRAN, C, PASCAL, etc.
Utiliza un lenguaje ms cercano a la matemtica.
matemtica
Permite definir fcil y rpidamente nuevas funciones que se
incorporan a MATLAB mediante el toolboxes.
Posee grandes capacidades grficas.

Qu puedes hacer con el MATLAB ?


Anlisis de datos. Polinomios, Grficos 2D. Grficos 3D.Ajuste de
curvas .Interpolacin .Anlisis numrico.Resolucin de ecuaciones
diferenciales

Interfaz del escritorio de MATLAB

Workspace
Command
Windows

Command
History
Current directory

Resolucin de ecuaciones diferenciales con MATLAB


Existen varios mtodos para resolver ecuaciones diferenciales, los cules
con adecuaciones necesarias se usan para resolver sistemas de
ecuaciones diferenciales. Entre los ms usados tenemos el mtodo de
Euler, de Euler Mejorado Euler-Gauss o mtodo de Heun, mtodo de
la serie de Taylor, mtodo de Milne, mtodo de Adams-BashforthMoulton, mtodo de Hamming y los mtodos de Runge-Kutta.
Runge-Kutta MatLab
tiene implementado mdulos bsicos para resolver ecuaciones
diferenciales y sistemas de ecuaciones diferenciales en forma directa, es
decir, sin programar el algoritmo numrico. A continuacin se describen los
comandos ms importantes empleados en MatLab para la resolucin de
ecuaciones diferenciales:
ODE45.(Ordinary differential equation solver of 4th and 5th order). Es un
mtodo de un solo paso, es decir, para averiguar un punto slo se basa
en el calculado anteriormente. Est basado en la frmula explcita de
Runge-Kutta de 4 y 5 orden (Par de Dormand-Princce). En general,
este mtodo arroja resultados satisfactorios para la mayora de los
modelos continuos y resulta ser un bueno como primera aproximacin
cuando no se conoce mucho del sistema en estudio.

ODE23.Es un mtodo de un solo paso basado en la frmula de


Runge-Kutta de 2 y 3 orden (par de Bogacki-Shampine). Este
mtodo resulta ms eficiente que ode45 cuando las tolerancias del error
no son tan estrictas y el sistema presenta un leve grado de rigidez.
ODE113.: Es un mtodo multipaso,
multipaso es decir, necesita conocer de
varios puntos anteriores para calcular la solucin actual. Es el
mtodo de orden variable de Adams-Bashforth-Moulton. Puede resultar
ms eficiente que ode45 cuando las tolerancias del error se tornan muy
estrictas.
ODE15s.Es un mtodo multipaso de orden variable (entre uno y
cinco) basado en las frmulas de diferenciacin numrica (NDFs). Si
bien las NDFs estn relacionadas con las frmulas de diferenciacin
por atraso (BDFs o mtodo de Gear), estas NDFs son mucho ms
eficientes. Este mtodo es recomendable si el sistema es rgido (o un
problema diferencial algebraico) o bien si el ode45 falla o resulta
ineficaz.
ODE23s.Es un mtodo de un solo paso basado en la frmula
modificada de Rosenbrock de segundo orden. Puede ser ms eficiente
que ode15s para altas tolerancias y en sistemas rgidos.

Resolucin de ecuaciones diferenciales con MATLAB


ODE23t.Es un mtodo que utiliza interpolacin libre para resolver
ecuaciones diferenciales ordinarias y algebraicas por la regla
trapezoidal, cuando el sistema es semirgido.
ODE23tb.Ecuaciones diferenciales ordinarias mediante TR-BDF2. Es
una frmula implcita de Runge Kutta,
Kutta que utiliza en una primer paso la
regla trapezoidal y en un segundo paso las frmulas de diferenciacin
por atraso orden dos. Ms eficiente que ode15s para tolerancias altas.
bvp4c. Ecuaciones diferenciales ordinarias con valores en la frontera.
Las ecuaciones diferenciales ordinarias
se pueden resolver en
MATLAB con el comando dsolve. Este comando se utiliza para
resolver una sola ecuacin o bien un sistema de ecuaciones
diferenciales.
Una ecuacin diferencial ordinaria de primer orden es una ecuacin
que contiene la derivada de la variable dependiente. Si (t) es la variable
independiente, e (y) es la variable independiente, la ecuacin
diferencial ordinaria de primer orden se pude escribir de la forma:

Una ecuacin diferencial de segundo orden contiene la segunda


derivada de la variable dependiente. Su forma general es:

La solucin para estas ecuaciones es una funcin y= f(t) que satisface la


ecuacin. La solucin puede ser general o particular. Una solucin general
contiene constantes. En la solucin particular las constantes deben tener
valores numricos especficos tal que la solucin satisfaga las condiciones
iniciales.

Solucin general en MATLAB ( reglas a tener en cuenta)


Para obtener una solucin general, el comando dsolve debe tener la forma:
dsolve (eq) o dsolve(eq,var)
-eq : es la ecuacin a resolver.
--En el comando dsolve (eq) MATLAB toma t como la variable independiente
por defecto.
-En el comando dsolve (eq, var) el usuario puede indicar la variable
independiente teclendola en forma de cadena dentro del parmetro var.
-Cuando se teclea la ecuacin, la letra D indica diferencial o derivada. Si (y)
es la variable dependiente y (t) es la independiente, Dy: dy/dt.
La ecuacin dy/dt + 3y =100, se introducira como: Dy + 3 * y = 100

Solucin general en MATLAB (continuacin)


-La

segunda derivada se representa como D2, la


tercera derivada como D3, y as sucesivamente. Por
ejemplo, la ecuacin:
Se introducira en el MATLAB como
D2y + 3 * Dy + 5 * y = sin (t)
-En la solucin que ofrece MATLAB, se utilizan C1, C2,
C3,
C3 etc., como constantes de integracin.
Por ejemplo, veamos el cdigo correspondiente a una solucin
general para la ecuacin diferencial de primer orden:
Segn MATLAB: Traduccin de la solucin general

>>dsolve(Dy =4*t + 2*y)


ans =
C1*exp(2*t) - 2*t - 1

Solucin general en MATLAB (continuacin)


A continuacin veamos una solucin general para la ecuacin
diferencial ordinaria de segundo orden:
Segn MATLAB:
>>dsolve(D2x + 2 * Dx + x = 0)
ans =
C1*exp(-t) + C2*t*exp(-t)

Traduccin de la solucin general:


x = C1 e -t + C2 t e -t

Si MATLAB no pude encontrar una solucin para la ecuacin, ste


devuelve un objeto simblico vaco, seguido del mensaje:
Warning : explicit solution could not be found (Aviso: podra no
existir una solucin explcita.)

Solucin general en MATLAB (continuacin)

Los ejemplos siguientes muestran la resolucin de


ecuaciones diferenciales que contienen variables
simblicas, adems de variables dependientes e
independientes.
a)
>>dsolve (Ds = a* x^2)
ans =
a*t*x^2 + C1

La variable independiente es t (por


defecto)
MATLAB resuelve la ecuacin:

Se visualiza la solucin: s = ax2t + c1

b)
>>dsolve (Ds = a* x^2, x)

La variable independiente es x
MATLAB resuelve la ecuacin:

ans =
1/3*a*x^3+C1

Se visualiza la solucin: s = ax3 + C1

>>dsolve(Ds = a*x^2, a) La variable independiente se


define como a.
MATLAB resuelve la ecuacin:
ans =
1/2*a^2*x^2+C1
Se visualiza la solucin: s =1/2a2 x2+ C1

Solucin particular:
Si las condiciones iniciales o en la frontera han sido especificadas, se
puede obtener una solucin particular para una ecuacin diferencial ordinaria.
Una ecuacin de primer orden requiere de una condicin, una de segundo
orden requiere dos condiciones, y as sucesivamente. Para obtener una
solucin particular se deben utilizar las siguientes sintaxis del comando
dsolve.
dsolve ( eq, cond1, var)
Para una EDO de primer orden:
Para una EDO de orden superior: dsolve (eq, cond1, cond2, var)

Para resolver ecuaciones de orden superior se necesitan condiciones


adicionales en la frontera que deben ser introducidas por parmetro.
Si el nmero de condiciones es menor que el orden de la ecuacin,
MATLAB devolver una solucin que incluye las constantes de
integracin (C1, C2, C3, etc.)
Las condiciones de frontera se teclean en forma de cadena, de la
siguiente manera:

El argumento var es opcional.


opcional Se puede utilizar para definir la
variable independiente en la ecuacin. Si no se introduce ningn
valor se toma por defecto t.

Por ejemplo, veamos el cdigo para resolver la ecuacin


diferencial de primer orden :
Con una condicin inicial y(0) = 5:
>>dsolve(Dy + 4*y = 60 ,y(0) =5)
ans =
Se visualiza la solucin:
15 - 10*exp(-4*t)
y = 15 -10e-4t
A continuacin se muestra, en este otro
ejemplo, el cdigo MATLAB para resolver
la ecuacin diferencial de segundo orden:

Con las condiciones siguientes: a)

b)

>> dsolve('D2y-2*Dy+2*y=0','y(0)=1','Dy(0)=0')
ans =
La solucin se visualiza:
exp(t)*cos(t) - exp(t)*sin(t)
y = et cos(t) et sen(t)

La solucin se puede simplificar utilizando el comando factor.


>> factor (ans)
ans= [ exp(t), cos(t) - sin(t)]

La solucin se visualiza:
y = et (cos(t) sen(t))

Resolucin de ejercicios

1) Calcule la solucin general a la siguiente ecuacin diferencial:

>> dsolve('D2y+3*Dy-2*y=0')
ans =
C1*exp(t*(17^(1/2)/2 - 3/2)) + C2*exp(-t*(17^(1/2)/2 + 3/2))
2) Calcule la solucin a la siguiente ecuacin diferencial que
satisface las condiciones iniciales dadas.

>> dsolve('D2y-4*y=5','y(0)=0','Dy(0)=1')
ans =
(3*exp(-2*t))/8 + (7*exp(2*t))/8 - 5/4

Graficando ecuaciones diferenciales en MATLAB

Ejemplo 1, consideremos la ecuacin diferencial:


Solucin general en MATLAB:
>> dsolve('Dy=2*x*y','x')
ans =
C1*exp(x^2)
Sabemos que esta constante C1 se determina usando una
condicin inicial para la ecuacin diferencial, por ejemplo
y(0) = 5. Para resolver la ecuacin diferencial con esta
condicin inicial necesitamos el cdigo:

>> dsolve('Dy=2*x*y','y(0)=5','x')
ans =
5*exp(x^2)

Para graficar esta solucin requerimos de un intervalo


sobre el cual se graficar la solucin obtenida. Por
ejemplo, si deseamos graficar sobre el intervalo [2, 3]
podemos hacer uso del siguiente cdigo:
>> x=-2:0.05:3;
>>
y=eval(vectorize(ans));
>> plot(x,y)

Graficando ecuaciones diferenciales en MATLAB

Ejemplo 2, consideremos la ecuacin diferencial:


Solucin

general en MATLAB:

>> dsolve('Dy=0.1*y-0.02*y^2','x')
ans =
-5/(exp(C1 - x/10) - 1)
Sabemos que esta constante C1 se determina usando una
condicin inicial para la ecuacin diferencial, por ejemplo
y(0) = 0.01. Para resolver la ecuacin diferencial con esta
condicin inicial necesitamos el cdigo:
>> dsolve('Dy=0.1*y-0.02*y^2','y(0)=0.01','x')
ans =
5/(exp(log(499) - x/10) + 1)

Graficando ecuaciones diferenciales en MATLAB (cont.)

Para graficar esta solucin requerimos de un intervalo sobre


el cual se graficar la solucin obtenida. Por ejemplo, si
deseamos graficar sobre el intervalo [0, 120] podemos hacer
uso del siguiente cdigo:
>> x=0:1.5:120;
>> y=eval(vectorize(ans));
>> plot(x,y)

di/dt=171.42.*t(57.14*i);
Solucin general
i=3+C e^-57.14t
uando i(o)=0 => C=3
i=3-3(e^-57.14)

1.-Escribimos respectiva habiendo creado antes


el archivo tipo funcin

La grafica siguiente nos muestra la solucin

2.- Creacin de un archivo para solucin


Particular

3-creacion de un archivo para el campo de


direcciones

4.- ejecucin del archivo mostrando el campo


de direcciones y la solucin particular

Anda mungkin juga menyukai