[users-fr] Xcos : use zero-crossing

Serge Steer Serge.Steer at scilab.org
Mar 13 Mar 14:07:53 CET 2012


Le 12/03/2012 21:03, Binoyte a écrit :
> Est-ce quelqu'un pourrait expliquer ce que signifie l'option «use zero
> crossing» que l'on trouve dans de nombreux bloc Xcos ?
>
> En prenant par exemple le bloc ABS (valeur absolue). ABS(0) = 0, il
> n'y a pas à tortiller.
> http://help.scilab.org/docs/5.3.3/fr_FR/ABS_VALUE.html
>
> En vous remerciant par avance.
>
> --
> Pour vous désinscrire de cette mailing list, merci d'envoyer un mail vide à
> users-unsubscribe at lists.scilab.org
> Pour voir les archives de cette mailing list, allez sur
> http://mailinglists.scilab.org/
>
>

Les integrateurs d'equations differentielles (x'=f(x))  supposent en 
général que f est C1 par rapport a x, ce qui n'est pas le cas de ABS. 
Pour cette derniere fonction il se peut que le solveur s'autorise des 
tentatives qui vont dépasser le point x=0 pour estimer le point suivant, 
et rendre la prédiction basée sur les points precedents mauvaise. cela 
va conduite dans le meilleur des cas le solveur a diminuer son pas et a 
augmenter le temps de calcul et dans le pire des cas à sauter la 
singularité sans en tenir compte.

L'usage du zero-crossing permet au solveur d'intégrer jusqu'a l'endroit 
precis ou x passe par zéro en utilisant le modèle abx(x) =-x (en 
supposant x<0), puis de reprendre  l'intégration avec le modele abx(x) 
=x cette fois. Le zero crossing est ici associé a une gestion de mode:

Schématiquement, la fonction qui implemente la valeur absolue ne s'écrit pas

y=abs(x)

mais

if mode==1 then
     y=-x
else
     y=x
end

et c'est la détection de traversée de zéro qui va faire changer le mode.

Serge Steer
INRIA



Plus d'informations sur la liste de diffusion users-fr