Views
- State: visible
Ejemplo 3 Euler
Ejemplo simple de while.
Size
1.3 kB
-
File type
text/x-objcsrc
File contents
% Se tiene una población cuyo crecimiento se rige por la ecuación: y' = 1.2*y. Si la población
% inicial es de 300 individuos, ¿en qué momento se alcanzan los 2000 individuos? Suponemos que el
% tiempo está medido en años.
% INPUT: h = paso de Euler.
% OUTPUT: t = vector de tiempos, y = vector que aproxima la solución, hasta el momento en que se llega
% a los 2000 individuos. Para hallar el tiempo final (en años) debe mirarse t(end).
function [t,y] = ej3_euler(h)
% La dificultad es que como no tengo tf, no sé hasta qué n debo realizar la iteración de Euler.
% Solución:
t(1) = 0; % Defino el tiempo inicial.
y(1) = 300; % Defino la población inicial.
i = 1; % Defino un contador para saber cuántos pasos di.
while y(i) < 2000
t(i+1) = t(i) +h; % Construcción del vector t.
y(i+1) = (1+1.2*h)*y(i); % Euler
i = i+1; % A diferencia del for, el while NO actualiza el contador por sí solo, básicamente porque no necesita un contador.
end
% En este caso, las variables t e y cambian su tamaño cada vez que el programa entra en el while.
% Para correr el programa se puede usar paso h=1/12 (= 1 mes). De este modo, la longitud total de t
% son los meses hasta alcanzar 2000 habitantes. Análogamente, si h=1/365, la longitud de t es la cantidad de días.