lotka-volterra-migration
lotka-volterra-migration
by belyakov_am
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/0.99.7/jsxgraphcore.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/0.99.7/jsxgraph.css">
<div id='jxgbox-migrate' class='jxgbox' style='width:600px; height:600px;'></div>
JavaScript
board_m = JXG.JSXGraph.initBoard('jxgbox-migrate', {boundingbox: [-4, 40.5, 95.5, -3.5], axis: true, grid: false, showCopyright: false});
alpha_slider_m = board_m.createElement('slider', [[10.0, 38.5], [20.0, 38.5], [0.0, 0.4, 1.0]],{name:'α',strokeColor:'black',fillColor:'black'});
alpha_text_m = board_m.createElement('text', [10, 37.5, "alpha"], {fixed:true});
beta_slider_m = board_m.createElement('slider', [[30.0, 38.5], [40.0, 38.5], [0.0, 0.11, 1.0]],{name:'β',strokeColor:'black',fillColor:'black'});
beta_text_m = board_m.createElement('text', [30, 37.5, "beta"], {fixed:true});
gamma_slider_m = board_m.createElement('slider', [[50.0, 38.5], [60.0, 38.5], [0.0, 0.8, 1.0]],{name:'γ',strokeColor:'black',fillColor:'black'});
gamma_text_m = board_m.createElement('text', [50, 37.5, "gamma"], {fixed:true});
delta_slider_m = board_m.createElement('slider', [[70.0, 38.5], [80.0, 38.5], [0.0, 0.25, 1.0]],{name:'δ',strokeColor:'black',fillColor:'black'});
delta_text_m = board_m.createElement('text', [70, 37.5, "delta"], {fixed:true});
c_slider_m = board_m.createElement('slider', [[10.0, 36.3], [40.0, 36.3], [0.0, 0.05, 1.0]],{name:'c',strokeColor:'black',fillColor:'black'});
c_text_m = board_m.createElement('text', [10, 35.3, "c"], {fixed:true});
d_slider_m = board_m.createElement('slider', [[50.0, 36.3], [80.0, 36.3], [0.0, 0.0, 1.0]],{name:'d',strokeColor:'black',fillColor:'black'});
d_text_m = board_m.createElement('text', [50, 35.3, "d"], {fixed:true});
startprey_m = board_m.createElement('glider', [0, 16, board_m.defaultAxes.y], {name:'Preys',strokeColor:'blue',fillColor:'blue'});
startpred_m = board_m.createElement('glider', [0, 10, board_m.defaultAxes.y], {name:'Predators',strokeColor:'red',fillColor:'red'});
var g3_m = null;
var g4_m = null;
function solve_ode(x0, I, N, f) {
var data = [x0];
var dt = (I[1] - I[0]) / N;
for (let i = 1; i < N; ++i) {
var dx_dt = data[i - 1][0] + dt * f(0, data[i - 1])[0];
var dy_dt =...