% PROGRAMA PARA MOSTRAR QUE UN NÚMERO DE RIGIDEZ GRANDE
% NO IMPLICA RIGIDEZ DEL SISTEMA DE ECUACIONES
% 
% El sistema de ecuaciones a resolver  es: 
% 
%      x(t)' =  -2x + y + 2sin(t)
%      y(t)' =  -0.1999x + 0.0999y + 0.999[sin(t) - cos(t)]
%
% y se programa en la función
%
%                funEjemplo25.m
%
% Autores: MARÍA LOURDES VELASCO ARREGUI, ROBERTO MÉNDEZ MÉNDEZ
% 
% Realizado para: Tesis: CAPÍTULO 6 - 6.1 Definiendo la Rigidez
%
% Fecha de creación: ENERO 2011
% Última modificación: FEBRERO 1 2015
%%

clear 
clc
close all

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%     Solución Numerica
%    Se toma el tiempo en cada caso
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tic
[t, y] = ode45(@funEjemplo25,[0 10], [2 3]);
t45 = toc;
tic
[t2, y2] = ode15s(@funEjemplo25,[0 10], [2 3]);
t15s = toc;
tic
[t3, y3] = ode23(@funEjemplo25,[0 10], [2 3]);
t23 = toc;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%               Gráficas
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Solución utilizando ode45
l = length(t);
npdos = num2str(l);
figure('NumberTitle','off','FileName',...
        'Solucion_utilizando_ode45', 'Name', ...
        'Solución utilizando ode45', ...
         'Position', [100 , 160, 550,420])
plot(t, y(:,1), t, y(:,2))  % = plot(t,y)
xlabel('t');
ylabel('y');
text(3.5,2 ,['Num. de Pasos = ',  npdos])

% Solución utilizando ode15
l = length(t2);
npdos = num2str(l);
figure('NumberTitle','off','FileName',...
        'Solucion_utilizando_ode15', 'Name', ...
        'Solución utilizando ode15', ...
         'Position', [350 , 100, 550,420])
plot(t2, y2)
xlabel('t');
ylabel('y');
text(3.5,2 ,['Num. de Pasos = ',  npdos])

% Solución utilizando ode23
l = length(t3);
npdos = num2str(l);
figure('NumberTitle','off','FileName',...
        'Solucion_utilizando_ode23', 'Name', ...
        'Solución utilizando ode23', ...
         'Position', [600 , 40,550,420])
plot(t3, y3)
xlabel('t');
ylabel('y');
text(3.5,2 ,['Num. de Pasos = ',  npdos])
