Tengo que entregarlo antes de 16 horas.
/**
* Main class of the Java program.
*
*/
public class Main {
public static void main(String[] args) {
double[] preyPredLV;
double[] preyPred; //Double array contains initial pop. Hares preyPred[0] and pop Lynx preyPred[1]
double[] a =new double[2]; //Double Array contains constants a1 and a2
double[] b =new double[2]; //Double Array contains constants b1 and b2
int n= 10; //Integer, Number of desired periods
double iniLynxPob= 20; //Initial Declaration Population Lynxs (double)
double iniHarePob= 300; //Initial Declaration Population Hares (double)
double a1= 0.1; //Real value of a1, coef.growth of hares in absence of lynx
double a2= 0.01; //Real value of a2, coef.loss of hares due pred by lynx
double b1= 0.01; //Real value of b1, coef.loss of lynx in absence of hares
double b2= 0.00002; //Real value of b2, coef.growth of lynx pred hares
a[0]=a1; //Saving a1 value to array a[0]
a[1]=a2; //Saving a2 value to array a[1]
b[0]=b1; //Saving b1 value to array b[0]
b[1]=b2; //Saving b2 value to array b[1]
System.out.println(a[0]);
System.out.println(a[1]);
System.out.println(b[0]);
System.out.println(b[1]);
System.out.println(n);
System.out.println(iniLynxPob);
System.out.println(iniHarePob);
}
Esto es lo que llevo hecho, no consigo hacerme a la sintaxis de java, si el programa lo hiciese con un automata podria hacerlo en cuestion de segundos (a fin de cuentas es aplicar un par de formulas con diferentes valores durante un numero determinado de ciclos y actualizarlos en cada ciclo).
El problema en si es este:
The dynamics between predators and preys in a given ecosystem attracts a lot of attention from researchers. Different scientists have developed Predator-Prey models to try to understand the interactions and foresee the evolution of the populations.
One of the first analyzed Predator-Prey ecosystems was the "Lynx - Snowshoe hare" and one of the first Predator-Prey models defined was the one developed by Lotka and Volterra.
This Predator-Prey model defines:
* H[n] as the snowshoe hare population (being n a specific moment of time)
* L[n] as the lynx population
* It assumes that the primary growth of the hare population in the absence of lynx is a1*H[n] and that the lynx population in the absence of hares declines -b1*L[n]
* It also assumes that the primary loss of snowshoe hares is due to predating -a2*H[n]*L[n] and the growth of the lynx population is from the energy derived from eating snowshoe hares b2*H[n]*L[n]
The Lotka-Volterra model is defined by the following formula:
H[n+1] = H[n] + a1 * H[n] - a2*H[n]*L[n] = H[n] * (1 + a1 - a2*L[n])
L[n+1] = L[n] - b1 * L[n] + b2*H[n]*L[n] = L[n] * (1 - b1 +b2*H[n])For instance, let’s assume that the initial population of snowshoe hares is 300 and the initial population of lynxes is 20, and the values of the constants that regulate the model are
a1 = 0.1, a2 = 0.01, b1 = 0.01 and b2 = 0.00002. The previous formula can be used to calculate the population of both lynxes and snowshoe hares after 2 periods:
After 1 period the population of snowshoe hares will be:
H[1] = H[0] + a1 * H[0] - a2*H[0]*L[0] = H[0] * (1 + a1 - a2*L[0]) = 300 *(1 + 0.1 - 0.01*20) = 270
In turn, the population of lynxes will be:
L[1] = L[0] - b1 * L[0] + b2*H[0]*L[0] = L[0] * (1 - b1 +b2*H[0]) = 20 * (1 - 0.01 + 0.00002*300) = 19.92
Notice that we keep the decimals for the following loop in the formula.
After 2 periods, the population of snowshoe hares will be:
H[2] = H[1] * (1 + a1 - a2*L[1]) = 270 * (1 + 0.1 - 0.01*19,92) = 243.216
And the population of lynxes will be:
L[2] = L[1] * (1 - b1 +b2*H[1]) = 19.92 * (1 - 0.01 + 0.00002*270) = 19.828368
or even after 200 periods:
H[200] = 903.17 snowshoe hares
L[200] = 3.91 lynxes
-----------------------------------------------------------------------------------------------------------------------------------
The goal of this activity is to: SOLVE THIS PROBLEM PROGRAMMING AN ITERATIVE METHOD
-----------------------------------------------------------------------------------------------------------------------------------
Guidelines for solving the problem:
1) The header of the method should be:
● double[] preyPredLV(double[] preyPred, double[] a, double[] b, int n)
2) The method should have as arguments:
● An array called "preyPred" with 2 doubles:
○ The initial population of snowshoe hares, preyPred[0];
○ The initial population of lynx, preyPred[1]
● An array called "a" with 2 doubles containing the constants a1 and a2:
○ a[0] = a1;
○ a[1] = a2;
● An array called "b" with 2 doubles containing the constants b1 and b2:
○ b[0] = b1;
○ b[1] = b2;
● The number of periods, "n", at which we want to predict the future population of snowshoe hares and lynxes.
3) The method should return the array "preyPred", in a way that it should contain:
● The population of snowshoe hares at the given number of periods "n" (H[n]) in preyPred[0];
● The population of lynxes at the given number of periods "n" (L[n]) in preyPred[1].
4) You can choose to solve this problem using one of the following two possibilities:
● To implement an iterative method with a for loop; or
● To implement an iterative method with a while loop
To check your solution you can use the data from the example.
IMPORTANT: Do not forget to comment your code properly, including Javadoc comments so that your peers can better understand it.