Xcos help: simplify the HTML characters
[scilab.git] / scilab / modules / xcos / help / fr_FR / solvers / 6-IDA.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) Scilab Enterprises - 2012 - Paul Bignier
5  *
6  * This file must be used under the terms of the CeCILL.
7  * This source file is licensed as described in the file COPYING, which
8  * you should have received as part of this distribution.
9  * The terms are also available at
10  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
11  -->
12 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg"  xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr_FR" xml:id="IDA">
13     <refnamediv>
14         <refname>IDA</refname>
15         <refpurpose>
16             <emphasis>IDA</emphasis> (abréviation de "Implicit Differential Algebraic equations system solver") est un solveur numérique fournissant une méthode efficace et stable pour résoudre des Problèmes à Valeur Initiale d'Equations Différentielles Algebriques (EDAs).
17         </refpurpose>
18     </refnamediv>
19     <refsection>
20         <title>Description</title>
21         <para>
22             Appelé par <link linkend="xcos">xcos</link>, <emphasis>IDA</emphasis> (abréviation de "Implicit Differential Algebraic equations system solver") est un solveur numérique fournissant une méthode efficace et stable pour résoudre des Problèmes à Valeur Initiale de la forme :
23         </para>
24         <para>
25             <latex>
26                 \begin{eqnarray}
27                 F(t,y,\dot{y}) = 0, \hspace{2 mm} y(t_0)=y_0, \hspace{2 mm} \dot{y}(t_0)=\dot{y}_0, \hspace{3 mm} y, \hspace{1.5 mm} \dot{y}  \hspace{1.5 mm} and \hspace{1.5 mm} F \in R^N \hspace{10 mm} (1)
28                 \end{eqnarray}
29             </latex>
30         </para>
31         <para>
32         </para>
33         Avant de résoudre le problème, <emphasis>IDA</emphasis> lance une routine interne pour trouver des valeurs consistantes à
34         <emphasis>
35             y<subscript>0</subscript>
36         </emphasis>
37         et
38         <emphasis>
39             yPrime<subscript>0</subscript>
40         </emphasis>
41         .
42         <para>
43             Partant alors de ces
44             <emphasis>
45                 y<subscript>0</subscript>
46             </emphasis>
47             et
48             <emphasis>
49                 yPrime<subscript>0</subscript>
50             </emphasis>
51             , <emphasis>IDA</emphasis> approxime
52             <emphasis>
53                 y<subscript>n+1</subscript>
54             </emphasis>
55             grâce à la formule <emphasis>BDF</emphasis> :
56         </para>
57         <para>
58             <latex>
59                 \begin{eqnarray}
60                 \sum_{i=0}^{q} \alpha_{n,i} y_{n-i} = h_n\dot{y}_{n}
61                 \end{eqnarray}
62             </latex>
63             <para>
64                  avec, comme dans <link linkend="CVode">CVode</link>,
65                 <emphasis>
66                     y<subscript>n</subscript>
67                 </emphasis>
68                 l'approximation de
69                 <emphasis>
70                     y(t<subscript>n</subscript>)
71                 </emphasis>
72                 ,
73                 <emphasis>
74                     h<subscript>n</subscript>
75                 </emphasis>
76                 =
77                 <emphasis>
78                     t<subscript>n</subscript> - t<subscript>n-1</subscript>
79                 </emphasis>
80                 la taille du pas, et les coefficients fixés, déterminés uniformément par le type de méthode, son ordre <emphasis>q</emphasis> allant de 1 à 5 et l'histoire des pas de temps.
81             </para>
82         </para>
83         <para>
84             Injecter cette formule dans <emphasis>(1)</emphasis> fournit le système :
85         </para>
86         <para>
87             <latex>
88                 G(y_n) \equiv F \left( t_n, \hspace{1.5mm} y_n, \hspace{1.5mm} h_n^{-1}\sum_{i=0}^{q} \alpha_{n,i} y_{n-i} \right) = 0
89             </latex>
90         </para>
91         <para>
92             Pour lui appliquer des itérations de <emphasis>Newton</emphasis>, on le réécrit :
93         </para>
94         <para>
95             <latex>
96                 J \left[y_{n(m+1)}-y_{n(m)} \right] = -G(y_{n(m)})
97             </latex>
98         </para>
99         <para>
100              avec <emphasis>J</emphasis> une approximation du Jacobien:
101         </para>
102         <para>
103              <latex>
104                 J = \frac{\partial{G}}{\partial{y}} = \frac{\partial{F}}{\partial{y}}+\alpha\frac{\partial{F}}{\partial{\dot{y}}}, \hspace{4 mm} \alpha = \frac{\alpha_{n,0}}{h_n},
105             </latex>
106         </para>
107         <para>
108              <emphasis>α</emphasis> change quand le pas ou l'ordre de la méthode varient.
109         </para>
110         <para>
111             Un solveur direct dense est alors utilisé et on poursuit sur le prochain pas de temps.
112         </para>
113         <para>
114             <emphasis>IDA</emphasis> se sert des valeurs passées pour contrôler l'erreur locale
115             <emphasis>
116                 y<subscript>n(m)</subscript> - y<subscript>n(0)</subscript>
117             </emphasis>
118             et recalcule
119             <emphasis>
120                 h<subscript>n</subscript>
121             </emphasis>
122             si cette erreur n'est pas satisfaisante.
123         </para>
124         <para>
125             Cette fonction est appelée entre les activations, parce-qu'une activation discrète est susceptible de modifier le système.
126         </para>
127         <para>
128             Suivant la criticalité de l'événement (son effet sur le problème continu), soit le solveur poursuit avec temps initial et final différents comme si rien ne s'était passé, soit, si le système a été modifié, il faut "réinitialiser à froid" le solveur et le relancer.
129         </para>
130         <para>
131             En moyenne, <emphasis>IDA</emphasis> acecpte des tolérances juqu'à 10<superscript>-11</superscript>. Au-delà, il retourne l'erreur <emphasis>Trop de précision demandée</emphasis>.
132         </para>
133     </refsection>
134     <refsection id="Exemple_IDA">
135         <title>Exemple</title>
136         <para>
137             Le bloc 'Modelica Generic' retourne ses états continus, on peut les évaluer avec <emphasis>IDA</emphasis> en lançant l'exemple:
138         </para>
139         <para>
140             <link type="scilab" linkend="scilab.xcos/xcos/examples/solvers/DAE_Example.zcos">
141                 <inlinemediaobject>
142                     <imageobject>
143                         <imagedata align="center" fileref="../../../examples/solvers/DAE_Example.zcos" valign="middle"/>
144                     </imageobject>
145                 </inlinemediaobject>
146             </link>
147             <scilab:image localized="true"><![CDATA[
148 loadScicos();
149 loadXcosLibs();
150 importXcosDiagram(SCI + "/modules/xcos/examples/solvers/DAE_Example.zcos");
151 // Redéfinition de messagebox() pour éviter le popup
152 function messagebox(msg, Title)
153  disp(Title);
154  disp(msg);
155 endfunction
156 try xcos_simulate(scs_m, 4); catch disp(lasterror()); end
157 ]]></scilab:image>
158         </para>
159     </refsection>
160     <refsection>
161         <title>Voir aussi</title>
162         <simplelist type="inline">
163             <member>
164                 <link linkend="LSodar">LSodar</link>
165             </member>
166             <member>
167                 <link linkend="CVode">CVode</link>
168             </member>
169             <member>
170                 <link linkend="RK">Runge-Kutta 4(5)</link>
171             </member>
172             <member>
173                 <link linkend="DoPri">Dormand-Prince 4(5)</link>
174             </member>
175             <member>
176                 <link linkend="RKImp">Runge-Kutta Implicite 4(5)</link>
177             </member>
178             <member>
179                 <link linkend="DDaskr">DDaskr</link>
180             </member>
181             <member>
182                 <link linkend="Comparaisons">Comparaisons</link>
183             </member>
184             <member>
185                 <link linkend="ode">ode</link>
186             </member>
187             <member>
188                 <link linkend="ode_discrete">ode_discrete</link>
189             </member>
190             <member>
191                 <link linkend="ode_root">ode_root</link>
192             </member>
193             <member>
194                 <link linkend="odedc">odedc</link>
195             </member>
196             <member>
197                 <link linkend="impl">impl</link>
198             </member>
199         </simplelist>
200     </refsection>
201     <refsection>
202         <title>Bibliographie</title>
203         <para>
204             <ulink url="https://computation.llnl.gov/casc/sundials/documentation/documentation.html">Documentation Sundials</ulink>
205         </para>
206     </refsection>
207 </refentry>