[Algorytmy] Obliczanie funkcji populacji drapieżników

Awatar użytkownika
alchem
Użytkownik
Użytkownik
Posty: 252
Rejestracja: 10 cze 2014, o 19:10
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 83 razy
Pomógł: 5 razy

[Algorytmy] Obliczanie funkcji populacji drapieżników

Post autor: alchem »

Cześć, mam takie zadanie:


Rozważamy jeden z modeli opisujących zależność populacji drapieżników od populacji ofiar. \(\displaystyle{ x \left( n \right)}\) oznacza liczebność ofiar w chwili \(\displaystyle{ n}\), \(\displaystyle{ y \left( n \right)}\) oznacza liczebność drapieżników w chwili \(\displaystyle{ n}\), obie liczebności są typu zmiennopozycyjnego. Model przewiduje, że w chwili \(\displaystyle{ n+1}\) liczebność będzie się kształtować zgodnie z wzorami

\(\displaystyle{ x \left( n+1 \right) = x \left( n \right) + c \cdot x \left( n \right) \cdot \left( x \left( n \right) -1 \right) - d \cdot x \left( n \right) \cdot y \left( n \right) / \left( y \left( n \right) +\epsilon \cdot x \left( n \right) \right) \\
y \left( n+1 \right) = y \left( n \right) + e \cdot x \left( n \right) \cdot y \left( n \right) / \left( y \left( n \right) +\epsilon \cdot x \left( n \right) \right)}\)


gdzie \(\displaystyle{ c,d,e,\epsilon}\) są zadanymi współczynnikami zmiennopozycyjnymi, zadane są również liczebności początkowe \(\displaystyle{ x(0), y(0)}\). Napisz funkcję, która dla zadanych wszystkich parametrów zwróci numer chwili czasu, w której populacja ofiar osiąga lokalne minimum, to znaczy pierwsze takie \(\displaystyle{ n}\), że zachodzi \(\displaystyle{ x(n-1)>x(n)<x(n+1)}\). Jeżeli liczebność którejś z populacji stanie się ujemna przed znalezieniem takiej chwili, lub jeżeli taka chwila nie zostanie znaleziona przed \(\displaystyle{ n=50}\), funkcja zwróci \(\displaystyle{ -1}\). Na przykład, dla \(\displaystyle{ x(0)=0.5, y(0)=0.5, c=3.9, d=2, e=2, ε=1.25}\) odpowiedzią jest \(\displaystyle{ 8}\). Napisz funkcję testującą.


Mamy podany jeden przykład, tzn: dla \(\displaystyle{ x \left( 0 \right) =0.5, y \left( 0 \right) =0.5, c=3.9, d=2, e=2, ε=1.25}\) odpowiedzią jest \(\displaystyle{ 8}\)
ale mamy też :
Jeżeli liczebność którejś z populacji stanie się ujemna przed znalezieniem takiej chwili, lub jeżeli taka chwila nie zostanie znaleziona przed \(\displaystyle{ n=50}\), funkcja zwróci \(\displaystyle{ -1}\).

Jednak dla tych danych \(\displaystyle{ x \left( 1 \right)}\) wychodzi mi ujemne, więc odpowiedzią powinno być \(\displaystyle{ -1}\) a nie \(\displaystyle{ 8}\), w zadaniu jest błąd czy ja robię coś źle?
Wiem, że to banalne, jednak jest to zadanie z egzaminu, więc jestem zdziwiony i chce się upewnić czy nie liczę czegoś źle.
Ostatnio zmieniony 31 lip 2016, o 09:55 przez Afish, łącznie zmieniany 1 raz.
Powód: Całe wyrażenia matematyczne umieszczaj w tagach [latex] [/latex]. Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
mihile
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 16 cze 2015, o 06:07
Płeć: Mężczyzna
Lokalizacja: Warszawa
Pomógł: 4 razy

[Algorytmy] Obliczanie funkcji populacji drapieżników

Post autor: mihile »

Rzeczywiście wychodzi -0.9194444682863023. Może błąd w treści zadania/wartości stałych?
Awatar użytkownika
alchem
Użytkownik
Użytkownik
Posty: 252
Rejestracja: 10 cze 2014, o 19:10
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 83 razy
Pomógł: 5 razy

[Algorytmy] Obliczanie funkcji populacji drapieżników

Post autor: alchem »

Nie mam pojęcia, zadanie jest ze starego egzaminu i nie mam możliwości sprawdzenia co jest źle, no trudno, sprawdzę sobie jedynie czy mój kod dobrze liczy \(\displaystyle{ x(n)}\) i \(\displaystyle{ y(n)}\).
ODPOWIEDZ