Académique Documents
Professionnel Documents
Culture Documents
Objetivos
Realizar aplicaciones en MatLab que puedan resolver ecuaciones diferenciales.
Fortalecer el aprendizaje de las ecuaciones diferenciales mediante la verificación
de los ejercicios en Matlab.
Fomentar el aprendizaje de programación en Matlab mediante la creación de
aplicaciones.
Marco Teórico
Analizar los temas de EDO por variable separable y EDO lineales homogéneas de raíces
reales y repetidas, y con ello realizar una aplicación en Matlab para cada tema que
pueda resolver ejercicios de dichos temas.
1. Ecuaciones Diferenciales Ordinarias De Primer Orden. Método De
Variables Separables.
Las ecuaciones diferenciales de primer orden son las más simples de resolver, al
menos en teoría. Muchos problemas de la física, biología, economía, ingeniería,
etc., conducen a problemas de valor inicial que involucran ecuaciones de primer
orden.
factor
y al integrar obtenemos la solución
Resultados Obtenidos
Ecuaciones Diferenciales Ordinarias De Primer Orden. Método De Variables
Separables.
axes(handles.axes3);
syms x y
mx=get(handles.funx,'String');
ny=get(handles.funy,'String');
vix=str2double(get(handles.cix,'string'));
viy=str2double(get(handles.ciy,'string'));
ix=int(mx,x);
iy=int(ny,y);
ec=iy-ix;
pretty(ec)
Texto = ['$$ c = ', latex(ec), '$$'];
text('Interpreter','latex',...
'String',Texto,...
'Position',[.3 .5],...
'FontSize',15);
axes(handles.axes4);
f=inline(ec);
c=f(vix,viy)
Texto = ['$$ = ', latex(ec), '$$'];
text('Interpreter','latex',...
'String',Texto,...
'Position',[.0 .5],...
'FontSize',15);
set(handles.cte,'String',c);
clc
if length(cix) == length(ciy)
ent = 1;
r = sym2poly(px);
S = solve(factor(poly2sym(r)));
[a, b, c ] = unique(S, 'Legacy');
syms x
jj = 0;
aux = 0;
for i=1:length(S)
jj = jj+1;
A(i) = jj-1;
if length(find(b == i)) == 1
jj = 0;
end
C(i) = sym(['C', num2str(i)]);
if isreal(S(i))
aux = 0;
y(i) =
C(i)*exp(real(S(i))*x)*x^A(i)*cos(imag(S(i))*x);
else
aux = aux+1;
if rem(aux, 2) == 1
y(i) =
C(i)*exp(real(S(i))*x)*x^A(i)*cos(imag(S(i))*x);
else
y(i) =
C(i)*exp(real(S(i))*x)*x^A(i)*sin(abs(imag(S(i)))*x);
end
end
end
syms Y
yg = simplify(sum(y), 3);
pretty(yg);
Texto = ['$$ y = ', latex(yg), '$$'];
text('Interpreter','latex',...
'String',Texto,...
'Position',[.1 .75],...
'FontSize',12);
end
elseif isempty(cix) || isempty(ciy) || not(length(ciy) == length(cix))
errordlg('Ingrese las condiciones iniciales en los dos cuadros. ',
'Error de ingreso', 'Help');
end
% Condiciones iniciales:
grado = length(r)-1;
if length(cix) == length(ciy) && length(ciy)== grado
if length(cix) == length(ciy) && not(length(ciy) == 0)
% Algoritmo de las condiciones iniciales.
Xi = cix;
Yi = ciy;
aux = 0;
for i=1:grado
ygp = Y-diff(yg, i-1);
Ctt(i, 1) = (subs(ygp, {'x', 'Y'}, [Xi(i), Yi(i)]));
end
Ktt = (solve(Ctt));
Ktt = struct2array(Ktt);
Yf = simplify(subs(yg, C, Ktt), 3);
pretty(Yf);
Texto = ['$$ y = ', latex(Yf), '$$'];
text('Interpreter','latex',...
'String',Texto,...
'Position',[.1 .25],...
'FontSize',12);
end
else
if isempty(cix)
else
warndlg('Ingrese las condiciones iniciales de acuerdo al orden
de la EDO', 'Advertencia', 'Help');
end
end
Conclusiones
Vemos que MATLAB es una potente herramienta que disponemos para realizar cálculos
en el ambiente de ingeniería y otras especialidades, con capacidades que gradualmente
podemos ir incluyendo a nuestros conocimientos y aplicaciones del quehacer laboral e
intelectual.
Para aquellos que piensan realizar un estudio de factibilidad recomendamos que no se
basen toda la investigación para la obtención de información en solo una técnica de
estudio, ya que cada técnica tiene sus ventajas y desventajas, motivo por el cual se
aconseja utilizar dos técnicas como mínimo, y si en una de las técnicas se produce
cualquier insatisfacción en la información adquirida se puede recurrir a la información
que se obtuvo en la otra investigación.
Mediante la realización de las aplicaciones que se realizó en Matlab se pudo verificar los
ejercicios que se realizaron el clases.
Recomendaciones
Tengan en cuenta estas consideraciones cuando vayan a dar nombres a las variables y a
las funciones (que por supuesto, son mías; algunas difieren de lo que proponen la
mayoría de los autores).
Todo programa debe ser previamente comentado, explicando el propósito,
funcionamiento completo y el resultado esperado. Dentro de las funciones definidas,
establece un espaciado o que resalte la estructura funcional de la aplicación y facilite la
lectura al programador al que le corresponda analizar el código.
Bibliografía
https://tecdigital.tec.ac.cr/revistamatematica/cursos-
linea/EcuacionesDiferenciales/EDO-Geo/edo-cap2-geo/node2.html
https://es.mathworks.com/
Ramos, E. E. (2002). Análisis matemático IV. Editorial Perú.