% % MATLAB for DUMMIES 11-12 % Exercice 5 % % Solution detaillee % Vincent Legat, Damien Bouvy, Denis-Gabriel Caprace, Gilles De Neyer, % Kevin Degraux, Mohammad Iranmanesh, Christophe Lorant, Remy Moulin, % Matthew Philippe, Karim Slaoui, Olivier Thiry, Laurent Van Eesbeeck, % Thomas Vanderstraeten, Antoine Weynants % % ------------------------------------------------------------------------- % function [X,U] = forest(Xstart,Xend,Ustart,n) a = 2e-5; % croissance naturelle de la foret [day^(-1)] b = 1e-8; % impact de la population sur la foret [people^(-1)*day^(-1)] % (fraction de la foret consomme par habitant) c = 6e-5; % décroissance de la population en absence de bois [day^(-1)] d = 7e-13; % impact du bois sur la population [kg^(-1)*day^(-1)] % (avoir du bois a consommer augmente la population) % % En incluant la fonction du modele de Lotka-Volterra comme une % sous-fonction, il n'est pas necessaire de declarer les parametres du % modele comme des variables globales, comme l'a remarque Thomas :-) % h = (Xend-Xstart)/n; X = linspace(Xstart,Xend,n+1); U = [Ustart ; zeros(n,2)]; for i=1:n K1 = f(X(i), U(i,:) ); K2 = f(X(i)+h/2, U(i,:)+h*K1/2 ); K3 = f(X(i)+h/2, U(i,:)+h*K2/2 ); K4 = f(X(i)+h, U(i,:)+h*K3 ); U(i+1,:) = U(i,:) + h*(K1+2*K2+2*K3+K4)/6; end function dudx = f(x,u) dudx = u; dudx(1) = u(1)*(a-b*u(2));; dudx(2) = u(2)*(-c+d*u(1)); end end