[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