93ed58063f2b1f12ca2eed9f6f5c2170a416affb
[scilab.git] / scilab / modules / differential_equations / help / fr_FR / intg.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="intg" xml:lang="fr">
3     <refnamediv>
4         <refname>intg</refname>
5         <refpurpose>intégration numérique adaptative</refpurpose>
6     </refnamediv>
7     <refsynopsisdiv>
8         <title>Séquence d'appel</title>
9         <synopsis>[v,err]=intg(a,b,f [,ea [,er])</synopsis>
10     </refsynopsisdiv>
11     <refsection>
12         <title>Paramètres</title>
13         <variablelist>
14             <varlistentry>
15                 <term>a, b</term>
16                 <listitem>
17                     <para>nombres réels.</para>
18                 </listitem>
19             </varlistentry>
20             <varlistentry>
21                 <term>f</term>
22                 <listitem>
23                     <para>fonction externe (fonction Scilab ou chaîne de caractères ou
24                         liste).
25                     </para>
26                 </listitem>
27             </varlistentry>
28             <varlistentry>
29                 <term>ea, er</term>
30                 <listitem>
31                     <para>nombres réels.</para>
32                 </listitem>
33             </varlistentry>
34             <varlistentry>
35                 <term>ea</term>
36                 <listitem>
37                     <para>erreur absolue désirée (1.d-14 par défaut).</para>
38                 </listitem>
39             </varlistentry>
40             <varlistentry>
41                 <term>er</term>
42                 <listitem>
43                     <para>erreur relative (1.d-8 par défaut).</para>
44                 </listitem>
45             </varlistentry>
46             <varlistentry>
47                 <term>err</term>
48                 <listitem>
49                     <para>estimation de l'erreur absolue sur le résultat.</para>
50                 </listitem>
51             </varlistentry>
52         </variablelist>
53     </refsection>
54     <refsection>
55         <title>Description</title>
56         <para>
57             <literal>intg(a,b,f)</literal> approche l'intégrale de
58             <literal>a</literal> à <literal>b</literal> de <literal>f(t)dt</literal>.
59             La fonction <literal>f</literal> doit être continue.
60         </para>
61         <para>
62             L'évaluation satisfait si possible <literal>abs(I-v)&lt;=
63                 max(ea,er*abs(I))
64             </literal>
65             où <literal>I</literal> représente la valeur exacte de
66             l'intégrale.
67         </para>
68         <para>
69             <literal>f</literal> est une fonction externe :
70         </para>
71         <para>
72             Si <literal>f</literal> est une fonction Scilab elle doit avoir la
73             liste d'appel : <literal>y = f(t)</literal>
74         </para>
75         <para>
76             Si <literal>f</literal> est une liste, cette liste doit avoir la
77             structure suivante : <literal> list(f,x1,x2,...)</literal> où
78             <literal>f</literal> est une fonction Scilab avec la liste d'appel :
79             <literal>f(t,x1,x2,...)</literal>.
80         </para>
81         <para>
82             Si <literal>f</literal> est une chaîne de caractères, ce paramètre
83             désigne le nom d'un fonction Fortran ou d'une procédure C ayant une liste
84             d'appel fixée:
85         </para>
86         <para>
87             Dans le cas Fortran la liste d'appel doit être: <literal>double
88                 precision function f(x)
89             </literal>
90             où <literal>x</literal> est aussi un
91             nombre double precision.
92         </para>
93         <para>
94             Dans la cas C la liste d'appel doit être: <literal>double f(double
95                 *x)
96             </literal>
97             .
98         </para>
99     </refsection>
100     <refsection>
101         <title>Exemples</title>
102         <programlisting role="example"><![CDATA[ 
103 //External écrit en Scilab
104 function y=f(x),y=x*sin(30*x)/sqrt(1-((x/(2*%pi))^2)),endfunction
105 exact=-2.5432596188;
106 I=intg(0,2*%pi,f)
107 abs(exact-I)
108
109 //External écrit en Scilab avec un argument
110 function y=f1(x,w),y=x*sin(w*x)/sqrt(1-((x/(2*%pi))^2)),endfunction
111 I=intg(0,2*%pi,list(f1,30))
112 abs(exact-I)
113
114
115 // External écrit en Fortran (un compilateur Fortran est nécessaire)
116 // Ecriture du code fortran
117 cd TMPDIR;
118 F=['      double precision function ffun(x)'
119    '      double precision x,pi'
120    '      pi=3.14159265358979312d+0'
121    '      ffun=x*sin(30.0d+0*x)/sqrt(1.0d+0-(x/(2.0d+0*pi))**2)'
122    '      return'
123    '      end'];
124 mputl(F,fullfile(TMPDIR,'ffun.f'))
125
126 // compilation du code Fortran
127 l=ilib_for_link('ffun',fullfile(TMPDIR,'ffun.f'),[],'f');
128
129 // link incrémental
130 link(l,'ffun','f')
131
132 // integration de la fonction
133 I=intg(0,2*%pi,'ffun')
134 abs(exact-I)
135
136 // External écrit en C (un compilateur C est nécessaire)
137 // Ecriture du code C
138 C=['#include <math.h>'
139    'double cfun(double *x)'
140    '{'
141    '  double y,pi=3.14159265358979312;'
142    '  y=*x/(2.0e0*pi);'
143    '  return *x*sin(30.0e0**x)/sqrt(1.0e0-y*y);'
144    '}'];
145 mputl(C,fullfile(TMPDIR,'cfun.c'))
146
147 // compilation du code C
148 l=ilib_for_link('cfun',fullfile(TMPDIR,'cfun.c'),[],'c');
149
150 // incremental linking
151 link(l,'cfun','c')
152
153 // integration de la fonction
154 I=intg(0,2*%pi,'cfun')
155 abs(exact-I)
156  ]]></programlisting>
157     </refsection>
158     <refsection role="see also">
159         <title>Voir aussi</title>
160         <simplelist type="inline">
161             <member>
162                 <link linkend="intc">intc</link>
163             </member>
164             <member>
165                 <link linkend="intl">intl</link>
166             </member>
167             <member>
168                 <link linkend="inttrap">inttrap</link>
169             </member>
170             <member>
171                 <link linkend="intsplin">intsplin</link>
172             </member>
173             <member>
174                 <link linkend="ode">ode</link>
175             </member>
176         </simplelist>
177     </refsection>
178     <refsection>
179         <title>Fonctions Utilisées</title>
180         <para>Les programmes correspondants (dqag0.f et dqags.f de quadpack) se
181             trouvent dans le répertoire SCI/modules/differential_equations/src/fortran/.
182         </para>
183     </refsection>
184 </refentry>