Systèmes Complexes : Une introduction par la pratique
Le site web du livre
Atelier 4 : Morphogénèse
Liens directs au sous-sections :
haut
4.1 Modèle du drapeau français
globals [
MAX-morphogene
]
patches-own [
morphogene
ancien-morphogene
]
to startup
setup
set d 0.26
set r 0.003
set seuil-1 12
set seuil-2 81
end
to setup
clear-all
set MAX-morphogene 500
ask patches [
ifelse (source?)
[set morphogene MAX-morphogene]
[set morphogene 0]
]
reset-ticks
end
to-report source? report (pxcor = 0) end
to-report puits? report (pxcor = max-pxcor) end
to go
diffuser
resorber
seuiller
tick
tracer
end
to diffuser
ask patches [set ancien-morphogene morphogene]
ask patches [
if (not source? and not puits?) [
let laplacien [ancien-morphogene] of patch-at -1 0 +
[ancien-morphogene] of patch-at 1 0 -
2 * ancien-morphogene
set morphogene ancien-morphogene + d * laplacien
]
]
end
to resorber
ask patches [
if (not source? and not puits?)
[set morphogene morphogene * (1 - r)]
]
end
to seuiller
ask patches [
if (not source? and not puits?)
[ifelse (seuil-2 < morphogene)
[set pcolor blue]
[ifelse (seuil-1 < morphogene)
[set pcolor white] [set pcolor red]]]
]
end
to tracer
clear-plot
set-current-plot "morphogene vs. distance"
set-current-plot-pen "morphogene"
foreach sort patches [ask ? [plot morphogene]]
set-current-plot-pen "seuil-1"
ask patches [plotxy pxcor seuil-1]
set-current-plot-pen "seuil-2"
ask patches [plotxy pxcor seuil-2]
end
haut
4.2 Modèle de réaction-diffusion de Turing
patches-own [
a
i
]
to startup
setup
set taux-reaction-A 0.04
set taux-reaction-I 0.0002
set vitesse-diffusion-A 4
set vitesse-diffusion-I 25
set taux-resorption 0.06
set seuil-activation 122
end
to setup
clear-all
ask patches [
set a 1 + random 100
set i 1 + random 100
]
reset-ticks
end
to go
reagir
diffuser
resorber
seuiller
tick
tracer
end
to reagir
ask patches [
let ancien-i i
set i i + (taux-reaction-I * a * a)
set a a + (taux-reaction-A * a * a / ancien-i)
]
end
to diffuser
let taux-diffusion 0.10
repeat vitesse-diffusion-A [diffuse a taux-diffusion]
repeat vitesse-diffusion-I [diffuse i taux-diffusion]
end
to resorber
ask patches [
set a a * (1 - taux-resorption)
set i i * (1 - taux-resorption)
]
end
to seuiller
ask patches [
ifelse (seuil-activation < a)
[set pcolor brown ]
[set pcolor orange]]
end
to tracer
set-current-plot "Activateur vs. Inhibiteur"
plotxy (mean [a] of patches) (mean [i] of patches)
end
haut