Sprawozdanie z ćwiczenia nr 1



Pobieranie 43,61 Kb.
Data29.11.2017
Rozmiar43,61 Kb.


Michał Kardaś Grupa IW 206 Sprawozdanie nr.3

Temat: Drapieżniki i ofiary. Rozwój populacji. Chaos


Cel : Pokazanie zjawisk które mogą wystąpić przy iterowaniu funkcji nieliniowej. Spotkamy się ze zjawiskiem tzw. chaosu deterministycznego. Zobaczymy, że zachowania się układu chaotycznego nie da się przewidzieć stosując nawet najbardziej dokładne obliczenia.



Populacja przy ograniczonych zasobach:

Zakładamy, że liczebność populacji zajęcy w kolejnych latach opisuje wektor yi, i=1,…,N. Niech będzie to liczba z przedziału [0, 1], tzn. unormowaliśmy ją dzieląc rzeczywistą populację przez jakąś dużą liczbę. Przyjmijmy również, że zasoby trawy są też unormowane, i w każdym roku wynoszą 1. Wtedy zmianę populacji można opisać wzorem:

y(i)=y(i-1)+r*y(i-1)*(1-y(i-1));

r - współczynnik proporcjonalności

Tworzymy function chaos(r) z parametrem r wykonująca następujące operacje:

-podstawienie na y1 liczby losowej z przedziału (0, 1).

-obliczenie ciągu yi, aż do i=N, gdzie N=200

-utworzenie ciągu zi,i=1,…,N dla którego z1=y1, natomiast wzór iteracyjny ma przestawione kolejności działań:

z(i)=(1+r)*z(i-1)-r*z(i-1)*z(i-1);

oraz tworzenie na jednym wykresie obu wektorów: y i z, utworzenie wykresu różnicy y-z.

function chaos(r)

y=zeros(1,200);

z=y;

y(1)=rand(1,1);



z(1)=y(1);

for i=2:1:200 do

y(i)=y(i-1)+r*y(i-1)*(1-y(i-1));

z(i)=(1+r)*z(i-1)-r*z(i-1)*z(i-1);

end

xbasc()


plot2d([y',z']);

pause


xbasc()

plot2d(y'-z');

pause

xbasc()


plot2d(y',z');

pause


xbasc()


W
ywołuję funkcję chaos dla r =2.5999

Otrzymuje wykres y i z:



Wykres różnicy (y-z):




W
ykres y i z:


  1. Współzawodnictwo gatunków:

Rozważamy wyspę na której żyją zające i lisy.

Kill – ilość zajęcy zjadanych przeciętnie przez lisa

Prey – część populacji zajęcy która daje się złapać

yi, zi, i=1,…,N=200 – oznacza liczebność zajęcy i lisów. Wobec tego zpisujemy:


function fight(kill,prey)

y=zeros(1,200);

z=y;

y(1)=rand(1,1);



z(1)=0.05*y(1);

for i=2:1:200 do

y(i)=y(i-1)+3*y(i-1)*(1-y(i-1))-kill*z(i-1);

z(i)=z(i-1)+3*z(i-1)*(prey*y(i-1)-z(i-1))

end

xbasc()


plot2d([y',z'])

pause


xbasc()

Wywołuję funkcję fight dla kill= 1, prey=0.1.



Otrzymuję wykres y i z:









©operacji.org 2017
wyślij wiadomość

    Strona główna