Commit f169e794 by Victor

### Modified increment for graph, since randomwalk return same vertex as the one...

`Modified increment for graph, since randomwalk return same vertex as the one provided when niter = 1`
parent fe417f69
 using LightGraphs using Test using Revise,ABMEv mysegmentgraph = GraphSpace(grid([10,1])) mysegment = DiscreteSegment(1,10) myplot = Plots.plot(grid = false) for D in [1e-3,1e-2,1e-1,1e0,1e1] graphinc = [get_inc(5,D,mysegmentgraph) for i in 1:10000] seginc = [get_inc(5,D,mysegment) for i in 1:10000] using StatsPlots StatsPlots.density!(graphinc,label="Dispersal distribution for graph segment") StatsPlots.density!(seginc,label="Dispersal distribution for regular segment",linestyle=:dash) end myplot
 ... @@ -52,18 +52,20 @@ A real pace with dimension N and type T ... @@ -52,18 +52,20 @@ A real pace with dimension N and type T struct RealSpace{N,T} <: AbstractSpace{N,T,IsFinite{false}} end struct RealSpace{N,T} <: AbstractSpace{N,T,IsFinite{false}} end # TODO: find a way to put a type on D in get_inc # TODO: find a way to put a type on D in get_inc """ \$(SIGNATURES) function _get_inc(D,s::AbstractSpace{Dim,T,I}) where {Dim,T<:AbstractFloat,I<:IsFinite{false}} Returns increment """ function get_inc(D,s::AbstractSpace{Dim,T,I}) where {Dim,T<:AbstractFloat,I<:IsFinite{false}} if Dim > 1 if Dim > 1 return Tuple(D .* randn(T,Dim)) return Tuple(D .* randn(T,Dim)) else else return D * randn(T) return D * randn(T) end end end end get_inc(x,D,s::AbstractSpace{Dim,T,I}) where {Dim,T,I<:IsFinite{false}} = get_inc(D,s) """ \$(SIGNATURES) Returns increment corresponding to space `s` """ get_inc(x,D,s::AbstractSpace{Dim,T,I}) where {Dim,T,I<:IsFinite{false}} = _get_inc(D,s) #TODO: there is probably a better way of dealing with those two functions #TODO: there is probably a better way of dealing with those two functions function get_inc(x,D,s::ContinuousSegment{T}) where {T} function get_inc(x,D,s::ContinuousSegment{T}) where {T} ... @@ -77,7 +79,8 @@ function get_inc(x,D,s::DiscreteSegment{T}) where {T} ... @@ -77,7 +79,8 @@ function get_inc(x,D,s::DiscreteSegment{T}) where {T} end end function get_inc(x,D,s::GraphSpace{T}) where {T} function get_inc(x,D,s::GraphSpace{T}) where {T} niter = round(Int,abs(D*randn())) niter = round(Int,abs(D*randn())) + 1 # here we add +1 since randomwalk(s.g,x,niter) returns x if niter > 0 if niter > 0 return last(randomwalk(s.g,x,niter)) - x return last(randomwalk(s.g,x,niter)) - x else else ... ...
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!