#!/bin/csh ####################################################################################################################################### # # # A I D E A L A R E C H E R C H E D E C A D R A G E S I N T E R E S S A N T S # # P O U R ' $xrk/lyapunov.01$K ' P A R U N P R O C E D E D I C H O T O M I Q U E : # # # # # # source $xrk/lyapunov.01$Y # # # # # # Nota : # # # # Etant donne que le 'C-Shell' ne sait # # pas manipuler de constantes flottantes # # par 'set' et '@', les arguments flottants # # de '$xrk/lyapunov.01$X' sont decomposes en # # une partie entiere ('LentiereX' et 'LentiereY') # # et une partie decimale ('Lxbg', 'Lybg', 'Lxhd' et 'Lyhd'). # # Seules les parties decimales, pour des raisons evidentes # # de simplicite, sont accessibles dans le processus de # # de decoupage dichotomique... # # # # # # Author of '$xrk/lyapunov.01$Y' : # # # # Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). # # # ####################################################################################################################################### Suq # Pour aller vite... # ####################################################################################################################################### # # # D E F I N I T I O N D E S V A R I A B L E S D E C O N F I G U R A T I O N : # # # # # if ($?Literations == $NEXIST) then set Literations=100 # Lorsque le nombre d'iterations n'est pas definie, on force une valeur utile... # else endif if ($?Lsuite == $NEXIST) then set Lsuite="222222111111" # Lorsque la suite des permutations de (R1,R2,R3) n'est pas definie, on force une valeur # # sympathique... # else endif if ($?LentiereX == $NEXIST) then set LentiereX=3 # Lorsque la partie entiere des abscisses n'est pas definie, on force une valeur sympathique. # else endif if ($?LentiereY == $NEXIST) then set LentiereY=3 # Lorsque la partie entiere des ordonnees n'est pas definie, on force une valeur sympathique. # else endif if ($?Lxbg == $NEXIST) then set Lxbg=000000000 # Lorsque la partie decimale de l'abscisse bas-gauche n'existe pas, on force une valeur # # sympathique... # else endif if ($?Lybg == $NEXIST) then set Lybg=500000000 # Lorsque la partie decimale de l'ordonnee bas-gauche n'existe pas, on force une valeur # # sympathique... # else endif if ($?Lxhd == $NEXIST) then set Lxhd=350000000 # Lorsque la partie decimale de l'abscisse haut-droit n'existe pas, on force une valeur # # sympathique... # else endif if ($?Lyhd == $NEXIST) then set Lyhd=850000000 # Lorsque la partie decimale de l'ordonnee haut-droit n'existe pas, on force une valeur # # sympathique... # else endif ####################################################################################################################################### # # # D E F I N I T I O N D E S C O M M A N D E S D E C A L C U L : # # # # # alias Lyapunov 'set xbg=\!:1 ; set ybg=\!:3 ; set xhd=\!:2 ; set yhd=\!:4 ; \\ $xrk/lyapunov.01$X n=1 iterations=$Literations suite="$Lsuite" \\ xbgD=$LentiereX.$xbg ybgD=$LentiereY.$ybg xhdD=$LentiereX.$xhd yhdD=$LentiereY.$yhd \\ xbgA=$LentiereX.$xbg ybgA=$LentiereY.$ybg xhdA=$LentiereX.$xhd yhdA=$LentiereY.$yhd \\ $formatI | \\ $xci/display$X p=palettes/cercle.22 $formatI ; \\ unset xbg ybg xhd yhd' # Commande destinee a montrer un ensemble de lyapunov dans une certaine fenetre... # alias Ldicho '@ dxgd = $Lxhd - $Lxbg ; @ dxgd = $dxgd / 2 ; \\ if ($dxgd == 0) echo "ATTENTION, $K_QS""dxgd""$K_QS"" est devenu nul." ; \\ @ dybh = $Lyhd - $Lybg ; @ dybh = $dybh / 2 ; \\ if ($dybh == 0) echo "ATTENTION, $K_QS""dybh""$K_QS"" est devenu nul." ; \\ if ($dxgd != $dybh) echo "ATTENTION, la fenetre courante est non carree."' # Commande destinee a effectuer le decoupage dichotomique de la fenetre courante... # alias Lgauche '@ Lxhd = $Lxhd - $dxgd' # Commande destinee a se placer dans la partie gauche de la fenetre courante... # alias Ldroite '@ Lxbg = $Lxbg + $dxgd' # Commande destinee a se placer dans la partie droite de la fenetre courante... # alias Lbas '@ Lyhd = $Lyhd - $dybh' # Commande destinee a se placer dans la partie basse de la fenetre courante... # alias Lhaut '@ Lybg = $Lybg + $dybh' # Commande destinee a se placer dans la partie basse de la fenetre courante... # alias Lbg 'Ldicho ; \\ Lgauche ; \\ Lbas ; \\ Lyapunov $Lxbg $Lxhd $Lybg $Lyhd \\ unset dxgd dybh' # Commande destinee a montrer un ensemble de lyapunov dans le coin bas-gauche de la fenetre # # courante. # alias Lbd 'Ldicho ; \\ Ldroite ; \\ Lbas ; \\ Lyapunov $Lxbg $Lxhd $Lybg $Lyhd \\ unset dxgd dybh' # Commande destinee a montrer un ensemble de lyapunov dans le coin bas-droite de la fenetre # # courante. # alias Lhd 'Ldicho ; \\ Ldroite ; \\ Lhaut ; \\ Lyapunov $Lxbg $Lxhd $Lybg $Lyhd \\ unset dxgd dybh' # Commande destinee a montrer un ensemble de lyapunov dans le coin haut-droite de la fenetre # # courante. # alias Lhg 'Ldicho ; \\ Lgauche ; \\ Lhaut ; \\ Lyapunov $Lxbg $Lxhd $Lybg $Lyhd \\ unset dxgd dybh' # Commande destinee a montrer un ensemble de lyapunov dans le coin haut-gauche de la fenetre # # courante. # ####################################################################################################################################### # # # D E F I N I T I O N D E S C O M M A N D E S D E G E S T I O N : # # # # # alias Linit 'unset Lxbg Lxhd Lybg Lyhd ; \\ source $xrk/lyapunov.01$Y' # Commande destinee a reinitialiser le processus... # alias Ledit 'saut ; \\ Echo "Lhg Lhd" ; Echo "Lbg Lbd" ; \\ Echo "xbgA=$LentiereX.$Lxbg ybgA=$LentiereY.$Lybg xhdA=$LentiereX.$Lxhd yhdA=$LentiereY.$Lyhd" ; \\ echo "set Lxbg=$Lxbg" ; echo "set Lybg=$Lybg" ; \\ echo "set Lxhd=$Lxhd" ; echo "set Lyhd=$Lyhd" ; \\ Lyapunov $Lxbg $Lxhd $Lybg $Lyhd' # Commande destinee a editer l'etat courant du processus sous trois formes differentes : # # # # 1-un petit tableau : # # Lhg Lhd # # # # Lbg Lbd # # # # qui permet, par des "couper-coller", de choisir la commande suivante (on notera que les # # quatre commandes sont disposees correctement dans le plan [OX,OY])... # # # # 2-edition des parametres d'Arrivee a '$xrk/lyapunov.01$X' sous la forme : # # # # xbgA=... ybgA=... xhdA=... yhdA=... # # # # 3-edition de commandes au 'C-Shell' de facon a permettre eventuellement un retour ulterieur # # a l'etat present : # # # # set Lxbg=... # # set Lybg=... # # set Lxhd=... # # set Lyhd=... # # # # en "coupant-collant" ces quatre 'set's. # alias Lraz 'unset Literations Lsuite LentiereX LentiereY ; \\ unset Lxbg Lxhd Lybg Lyhd ; \\ unalias Lyapunov ; \\ unalias Ldicho Lgauche Ldroite Lbas Lhaut ; \\ unalias Lbg Lbd Lhd Lhg ; \\ unalias Linit Ledit Lraz' # Commande destinee a annuler le processus... #