Anda di halaman 1dari 13

FUNCIONES DEFINIDAS POR

EL USUARIO

Ms. Ing. Paulino Ninaquispe


Zare
La primera lnea en un fichero de funcin debe ser la
correspondiente a la definicin de la propia funcin.

Function [Argumentos de salida] = nombre_funcion(argumentos de entrada)

La palabra Lista de Nombre Lista de


function debe argumentos de la argumentos
ser la primera de salida funcin de entrada
palabra que encerrados encerrados
aparezca, en corchetes entre
tecleada en parntesis
minsculas
PROBLEMA
Un estanque se drena a travs de un tubo como se observa en la
Figura 1. Con suposiciones simplificadoras, la ecuacin
diferencial siguiente describe cmo cambia la profundidad con el
tiempo:

donde h = profundidad (m), t = tiempo (s), d = dimetro


del tubo (m), A(h) = rea de la superficie del estanque
como funcin de la profundidad (m2), g = constante
gravitacional (= 9,81 m/s2) y e = profundidad de la salida
del tubo por debajo del fondo del estanque (m). Con base
en la tabla siguiente de rea-profundidad, resuelva esta
ecuacin diferencial para determinar cunto tiempo
tomara que el estanque se vaciara dado que h(0) = 6 m,
d = 0,25 m, e = 1 m.
h, m 6 5 4 3 2 1 0
A(h), 104 1.17 0.9 0.6 0.4 0.3 0.1 0
m2 7 7 5 2 8

Figura 1.
SOLUCIN:

function f = fty(t,y)
% Funcin general
f=(-
pi*(0.25)^2/4*(0.0008333*y^3+0.00535714*y^2+0.13
38095*y+0.0135714))*(2*9.81*(y+1))^(1/2);
end

function [t,y] = edork4(t0,tf,y0,h)


% Metodo de Kunge Kutta
t(1)=t0;
y(1)=y0;
i=1;
while t(i)<tf
t(i+1)=t0+i*h;
k1=fty(t(i),y(i));
k2=fty(t(i)+h/2,y(i)+h*k1/2);
k3=fty(t(i)+h/2,y(i)+h*k2/2);
k4=fty(t(i)+h,y(i)+h*k3);
y(i+1)=y(i)+h*(k1+2*k2+2*k3+k4)/6;
i=i+1;
end
clc, clear all
t0=0;
tf=100;
y0=6;
h=0.01;
% solucion aproximada con el metodo de Runge Kutta
[t1,y1]=edork4(t0,tf,y0,h);
plot(t1,y1,'r')
xlabel('Tiempo,s');ylabel('Altura del estanque, m');
legend('Runge Kutta')
result=[t1',y1']

Anda mungkin juga menyukai