module Pde_09_2014:sig
..end
Ce code a pour but de mettre en oeuvre un schéma numérique simple d'ordre 1 pour résoudre numériquement une équation différentielle non-linéaire d'ordre 1.
Programmée en OCaml v4+ par Lilian Besson (ENS Cachan), pour une collaboration avec Nicolas Vernier (Université Paris-Sud), à Mahindra École Centrale, (C) 2014.
Distribué sous les termes de la licence GPLv3.
Author(s): Lilian BESSON
See also
val k : float
k
n'a pas d'importance ?val x0 : float
val x1 : float
val lx : float
val n : int
val h : float
val x_i : int -> float
i
ème point x_i
.val dt : float
dt
peut avoir une importance !val t_j : int -> float
j
ème instant t_i
.val jmax : int
val print : ('a, Format.formatter, unit) Pervasives.format -> 'a
val sprint : ('a, unit, string) Pervasives.format -> 'a
val fprint : Pervasives.out_channel ->
('a, Pervasives.out_channel, unit) Pervasives.format -> 'a
val dftlext : string
val dftlext : string
val print_gnuplot : ?verb:bool ->
?script:string ->
?data:string ->
?plot:string ->
?ext:string ->
?t:float -> ?n:int -> ?ymin:float -> ?ymax:float -> unit -> unit
val print_y : ?verb:bool ->
?t:float ->
?n:int -> ?dt:float -> ?data:string -> float array -> unit -> unit
val launch_gnuplot : ?verb:bool -> ?inter:bool -> ?script:string -> ?t:float -> unit -> int
Sys.command
).val view_eog : ?verb:bool -> ?plot:string -> ?ext:string -> unit -> int
Sys.command
).val print_and_launch : ?schema:string ->
?verb:bool ->
?inter:bool -> ?ext:string -> ?j:int -> float array -> unit -> unit
y_i
.val beta : float
val beta : float
val y_0 : float -> float
y
, affine, afin de vérifier que c'est le seul cas où la méthode des caractéristique permet de résoudre de façon formelle l'EDP.val y_0 : float -> float
y
, parabolique comme observé réellement.val makeym : unit -> float array
val c : float
c = h × dt × sqrt(k)
.val iMoins1 : int -> int
y_{i-1}
quand i=0
.val iPlus1 : ?n:int -> int -> int
y_{i+1}
quand i=n
.val newnextY : ?schema:string ->
?n:int -> ?c:float -> ?h:float -> float array -> float array
schema
: précise le type de schéma (décentré gauche, droit, ou centré). Apparemment, seul le gauche est physiquement valide.val nextY : ?schema:string ->
?n:int -> ?c:float -> ?h:float -> float array -> float array -> unit
n+1
) ynew
.schema
: précise le type de schéma (décentré gauche, droit, ou centré). Apparemment, seul le gauche est physiquement valide.val sleep : float -> unit
time
seconde (par un appel Sys.command
et pas Unix.sleep
).val jskip : int
jskip
.val simulation : ?schema:string -> ?inter:bool -> int -> unit -> unit
schema
: précise le type de schéma (décentré gauche, droit, ou centré). Apparemment, seul le gauche est physiquement valide.inter
: affiche chaque étape si vrai.jmax
: durée maximum de la simulation (nombre d'étape, pas en temps effectivement calculé).