chomik mb lab 2, matematyczne modelowanie procesów biotechnologicznych, Lista 3 Równania różniczkowe zwyczajne


MODELOWANIE BIOSYSTEMÓW

Laboratorium 2.

Temat ćwiczenia: Modelowanie pojedynczych populacji.

Zadanie 1.

a) kod programu zoptymalizowany w porównaniu z napisanym w trakcie laboratorium, wygładzone wykresy dla modelu ciągłego.

close all;

clear all;

r1 = [0.3, 1, 1.5]; % wektor wartoœci r_1

r2 = [0.3, 1, 1.5]; % wektor wartoœci r_2

t_d = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; % wektor czasu dla modelu dyskretnego

t_c = 0:.1:9; % wektor czasu dla modelu ciaglego

% model ciagly dla N_0 = 5

for i = 1:3

N_c1(i, 1) = 5;

for j = 1:90

N_c1(i, j+1) = N_c1(i, 1)*exp(r1(i)*t_c(j));

end;

end;

% model ciagly dla N_0 = 8

for i = 1:3

N_c2(i, 1) = 8;

for j = 1:90

N_c2(i, j+1) = N_c2(i, 1)*exp(r1(i)*t_c(j));

end;

end;

% model dyskretny dla N_0 = 5

for i = 1:3

N_d1(i, 1) = 5;

for j = 1:9

N_d1(i, j+1) = N_d1(i, j)*(1+r2(i));

end;

end;

% model dyskretny dla N_0 = 8

for i = 1:3

N_d2(i, 1) = 8;

for j = 1:9

N_d2(i, j+1) = N_d2(i, j)*(1+r2(i));

end;

end;

% wykresy

for i = 1:3

figure(i);

plot(t_d, N_d1(i, :), 'o', t_d, N_d2(i, :), 'ro', t_c, N_c1(i, :), 'g-', t_c, N_c2(i, :), 'k-');

legend('dyskretny dla N_0 = 5', 'dyskretny dla N_0 = 8', 'ciagly dla N_0 = 5', 'ciagly dla N_0 = 8');

xlabel('os czasu'); ylabel('N');

end;

0x01 graphic

0x01 graphic

0x01 graphic

b) wartość r1 podana przez prowadzącego: r1 = 0,3

dN(t)/dt = r1 * N(t)

N(t) = N0 * exp(r1 * t)

N(t = TD) = 2*N0

N(TD) = N0 * exp(r1 * TD) = 2*N0

exp(r1 * TD) = 2

r1 * TD = ln 2

TD = ln 2/ r1

TD = 2,31

      1. wartości podane przez prowadzącego: N0 = 3, r1 = 1,2;

N(t) = N0 * exp(r1 * t)

N(t)/ N0 = exp(r1 * t)

r1 * t = ln(N(t)/ N0) /:t

r1 = 0x01 graphic

r1 = 0,78845

      1. wartość r2 podana przez prowadzącego: r2 = 1,2

Dla modelu dyskretnego: Nt = Nt-1 * (1+r2) = N0 * (1+r2)t

Dla modelu ciągłego: N(t) = N0 * exp(r1 * t)

N0 * exp(r1 * t) = N0 * (1+r2)t /:N0

er1 * t = (1+r2)t / ln

r1 * t = t * ln(1+r2) /:t

r1 = ln(1+r2)

r1 = 0,78845

clear all;

close all;

r_2 = 1.2; % podane r_2

r_1 = log(1+r_2); % wyliczone r_1

t_d = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; % wektor czasu dla modelu dyskretnego

t_c = 0:.1:9; % wektor czasu dla modelu ciągłego

N_0 = 3;

% model ciagly

N_c = N_0.*exp(r_1*t_c);

% model dyskretny

N_d = N_0.*((1+r_2).^t_d);

% wykres

plot(t_c, N_c, t_d, N_d, 'ro');

legend('model ciagly', 'model dyskretny');

xlabel('os czasu'); ylabel('N');

0x08 graphic

Zadanie 2.

function derivate_N = logistyczny1(t, N)

a = 0.1;

N_infinity = 500;

derivate_N = a.*N.*(1-(N./N_infinity));

end

function derivate_N = logistyczny2(t, N)

a = 0.2;

N_infinity = 500;

derivate_N = a.*N.*(1-(N./N_infinity));

end

close all;

clear all;

zakres_t = [0, 120];

N_0 = [5, 50, 400, 750];

[t, N] = ode45(@logistyczny1, zakres_t, N_0);

plot(t, N(:,1), 'r', t, N(:,2), 'g', t,N(:,3),'b', t,N(:,4),'k');

xlabel('czas'); ylabel('ilosc komorek');

title('Przebieg czasowy modelu logistycznego dla a = 0,1');

legend('N_0 = 5','N_0 = 50','N_0 = 400','N_0 = 750');

grid on;

0x08 graphic

0x08 graphic

function deriv_N = gompertz(t, N)

b = 0.1;

N_infinity = 500;

deriv_N = -b.*N.*log(N./N_infinity);

end

zakres_t = [0, 120];

N_0 = [5, 50, 400, 750];

[t, N] = ode45(@gompertz, zakres_t, N_0);

plot(t, N(:,1), 'r', t, N(:,2), 'g', t,N(:,3),'b', t,N(:,4),'k');

xlabel('czas'); ylabel('ilosc komorek');

title('Przebieg czasowy modelu Gompertza dla b = 0,1');

legend('N_0 = 5','N_0 = 50','N_0 = 400','N_0 = 750'); grid on;

0x08 graphic

close all;

clear all;

zakres_t = [0, 120];

N_0 = [5, 50, 400, 750];

figure(1);

for i = 1:4

[T, N] = ode45(@logistyczny1,zakres_t ,N_0(i));

title('Wykresy fazowe dla modelu logistycznego, a = 0,1');

subplot(2,2,i);

plot(N(1:length(N)-1), N(2:length(N)));

end;

figure(2);

for i = 1:4

[T, N] = ode45(@logistyczny2,zakres_t ,N_0(i));

title('Wykresy fazowe dla modelu logistycznego, a = 0,2');

subplot(2,2,i);

plot(N(1:length(N)-1), N(2:length(N)));

end;

figure(3);

for i=1:4

[T, N] = ode45(@gompertz, zakres_t, N_0(i));

title('Wykresy fazowe dla modelu Gompertza, b = 0,1');

subplot(2,2,i);

plot(N(1:length(N)-1),N(2:length(N)));

end;

0x08 graphic

0x08 graphic

0x08 graphic

Zadanie 3.

a)

close all;

clear all;

a = [1.3, 2.5, 3.2, 3.5, 3.7]; % wektor wartosci a

t = [0:60]; % wektor czasu

X(1:5, 1) = 0.1; % podana wartosc X_0

for i = 1:5 % zmieniamy a

for j = 1:60

X(i, j+1)=a(i).*X(i, j).*(1-X(i, j));

end;

end;

for i = 1:5

figure(i);

plot(t, X(i, :), '*', t, X(i, :), 'g-');

xlabel('czas'); ylabel('X(t)');

title('Przebieg czasowy modelu logistycznego dyskretnego');

end;

dla a = 1,3

0x08 graphic

dla a = 2,5

0x08 graphic

dla a = 3,2

0x08 graphic

dla a = 3,5

0x08 graphic

dla a = 3,7

0x08 graphic

b) Oscylacje występują dla a = 3,2. Chaos dla a = 3.7.

c) diagram bifurkacyjny

bifurkacyjny.m

N = 50;

N1 = 25;

s = zeros(1, N);

s(1) = 0.1;

for j = 2:N

s(j) = a*s(j-1)*(1-s(j-1));

end;

figure(1);

plot(s,'o-');

figure(2);

plot(s(N1:end-1),s(N1+1:end),'.');

bif = [];

for a = 0:0.01:4

bifurkacyjny;

drawnow;

bif(end+1,:) = s(N1:end);

end;

figure();

plot([0:0.01:4],bif,'.','color','g','markersize',2);

0x08 graphic



Wyszukiwarka

Podobne podstrony:
chomik Sprawozdanie, matematyczne modelowanie procesów biotechnologicznych, Lista 3 Równania różnicz
chomik Wybrane modele ekologiczne oraz metody rozwiązywania równań różniczkowych zwyczajnych
Równania różniczkowe zwyczajne lista zadań
Lista równania różniczkowe
LISTA 5 Rownania rozniczkowe 2010
Nawrocki J Matematyka cz 4 Szeregi funkcyjne i równania różniczkowe zwyczajne
modelowanie procesˇw transportowych
MB (Lab) Sprawozdanie 05
03 modelowanie procesu
NUMERYCZNE MODELOWANIE PROCESU Nieznany
Metody modelowania procesow 2012 cz III
Modelowanie cybernetyczne [w] Problemy modelowania procesów dydaktycznych, 1978
MB (Lab) - Różne ściągi, badania, SPRwygląduZEW:rozwinięcieRolkiPapy,określenieRównościOrazStanuKraw

więcej podobnych podstron