Ejemplo del Metodo de Euler mejorado en Matlab
Primero se obtiene la solución exacta del problema, luego aplicandoel método en cuestión se obtiene el valor aproximado de la señal eléctrica o estímulo enviado al corazón en cada momento deseado.
Un marcapasos cardiaco (Fig. 3.24), está formado por una batería,un capacitor y el corazón, que funciona a modo de resistor. Cuando el conmutador S está en P, el capacitor se carga; cuando está en Q, se descarga y manda un estímulo eléctrico al corazón.
Eneste intervalo, el voltaje E que se aplica al corazón está determinado por
en donde R y C son constantes. Determine E(t), cuando E(t)=0. (Naturalmente, la abertura y cierre del interruptor sonperiódicas, para estimular los latidos naturales.)
Solución:
Por Separación de Variables.
Por Problema de Valor Inicial. E(t)=0
Al aplicar el método se asume que elcapacitor se carga en elprimer instante de tiempo al valor de la fuente, por lo que el valor inicial Vc(0)=Eo.
Método de Euler mejorado:
function Euler=tareamatavanzada(t,y,z)
clc
clear all
syms t yz;
%% Entrando ecuación:
R=10^4;C=1000*10^(-6);Eo=12;h=0.01;
Vc = dsolve('Dy = -(1/(R*C))*y', 'y(0) = Eo')
%y1=3/exp(0.5/(0.5*2))
k =(1/h)
Fin=1;
Fplot('12/exp(t/(10^4*1000*10^(-6)))',[0 50]);grid('on')
digits(10)
Const=-(1/(R*C))
%% Aplicando metodo numerico para obtener respuesta aproximada:
%Método mejorado de Euler:
%DVc/Dt = -(1/(R*C))*Vc; Vc(0)=Eo
%Suponiendo
%Y*n = Yo+h*f(Xo,Yo); este se sustituye en el sguiente como Y*n+1.
%Yn+1 = Yn+h*(f(Xn,Yn)+f(Xn+1,Y*n+1)/2
Y0=Eo+h*Eo*(Const);
Y1=Eo+(h/2)*(Const*Eo+Const*Y0);
Error_real=abs(Eo-Y1);
disp('El valor...
Regístrate para leer el documento completo.