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']