public Microsoft.Research.Oslo.Vector Population(double t, Microsoft.Research.Oslo.Vector yv) { double[] y = yv; var a1 = 0.2d; var a2 = 0.15d; var b1 = 0.3d; var b2 = 0.2d; return(new Microsoft.Research.Oslo.Vector( y[0] * (a1 - b1 * y[1]), y[1] * (b2 * y[0] - a2) )); }
private void initObs(OneDemExample calc) { pr = calc; v0 = pr.Rebuild(pr.TimeSynch); sol = Ode.RK45(pr.TimeSynch, v0, pr.f, pr.dt).WithStepRx(0.01, out controller); controller.Pause(); sol.ObserveOnDispatcher().Subscribe(sp => { vm.SolPointList.Update(sp); slider.Maximum = (double)(vm.SolPointList.Value.Count > 0 ? vm.SolPointList.Value.Count : 0); }); }
private void initObs(RobotDynamics calc) { pr = calc; v0 = pr.Rebuild(pr.TimeSynch); var dt = 0.0001; var sol = Ode.RK45(pr.TimeSynch, v0, pr.f, dt).WithStepRx(0.001, out controller).StartWith(new SolPoint(pr.TimeSynch, v0)).Publish(); controller.Pause(); sol.ObserveOnDispatcher().Subscribe(sp => { vm.SolPointList.Update(sp); slider.Maximum = (double)(vm.SolPointList.Value.Count > 0 ? vm.SolPointList.Value.Count : 0); }); sol.Connect(); }
private void initObs(Sph2D calc) { pr = calc; v0 = pr.Rebuild(pr.TimeSynch); //var dt = 0.0000001; var dt = 5 * 10E-6; sol = Ode.RK45(pr.TimeSynch, v0, pr.f, dt).WithStepRx(dt * 10, out controller);//.StartWith(new SolPoint(pr.TimeSynch,v0)); controller.Pause(); sol.ObserveOnDispatcher().Subscribe(sp => { vm.SolPointList.Update(sp); slider.Maximum = (double)(vm.SolPointList.Value.Count > 0 ? vm.SolPointList.Value.Count : 0); }); }
public Microsoft.Research.Oslo.Vector PopulationWithControl(double t, Microsoft.Research.Oslo.Vector yv) { double[] y = yv; var a1 = 0.2d; var a2 = 0.15d; var beta1 = 0.3d; var beta2 = 0.2d; var b1 = 0.78d; var b2 = 1 - b1; var c1 = 0.19d; var c2 = 1 - c1; var val = -y[2] * b1 * y[1] - y[3] * b2 * y[1] - c2; var sgn = (double)val / (Math.Sqrt(0.1d + val * val)); var u = sgn >= 0.0d ? 0.013 * sgn : 0.0d; return(new Microsoft.Research.Oslo.Vector( y[0] * (a1 - beta1 * y[1]) - b1 * u * y[1], y[1] * (beta2 * y[0] - a2) - b2 * u * y[1], -y[2] * a1 + y[2] * beta1 * y[1] - y[3] * y[1] * beta2 + c1, y[2] * y[0] * beta1 + y[2] * b1 * u - y[3] * beta2 * y[0] + y[3] * a2 + y[3] * b2 * u)); }
private void initObs(Sph2D calc) { pr = calc; v0 = pr.Rebuild(pr.TimeSynch); //var dt = 0.0000001; var dt = 1000 * 1E-6; SPH2D_Ver3.dt = dt; sol = Ode.RK45(pr.TimeSynch, v0, pr.f, dt).WithStepRx(dt * 10, out controller).StartWith(new SolPoint(pr.TimeSynch, v0)); //sol = SPH2D_Ver3.CoolIntegration(calc as Sph2D_improoveIntegr).WithStepRx(dt * 100,out controller).StartWith(new SolPoint(pr.TimeSynch,v0)); controller.Pause(); sol.ObserveOnDispatcher().Subscribe(sp => { vm.SolPointList.Update(sp); slider.Maximum = (double)(vm.SolPointList.Value.Count > 0 ? vm.SolPointList.Value.Count : 0); }); }