* Bugs #5728 10229 invalid - Differential_equations: Quadpack update
[scilab.git] / scilab / modules / differential_equations / help / ru_RU / intg.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) 2008 - INRIA
5  * ...
6  * 
7  * This file must be used under the terms of the CeCILL.
8  * This source file is licensed as described in the file COPYING, which
9  * you should have received as part of this distribution.  The terms
10  * are also available at    
11  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
12  *
13  -->
14 <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="ru">
15     <refnamediv>
16         <refname>intg</refname>
17         <refpurpose>определённый интеграл</refpurpose>
18     </refnamediv>
19     <refsynopsisdiv>
20         <title>Последовательность вызова</title>
21         <synopsis>[v,err]=intg(a,b,f [,ea [,er])</synopsis>
22     </refsynopsisdiv>
23     <refsection>
24         <title>Аргументы</title>
25         <variablelist>
26             <varlistentry>
27                 <term>a, b</term>
28                 <listitem>
29                     <para>вещественные числа</para>
30                 </listitem>
31             </varlistentry>
32             <varlistentry>
33                 <term>f</term>
34                 <listitem>
35                     <para>внешняя функция (функция, список или строка)</para>
36                 </listitem>
37             </varlistentry>
38             <varlistentry>
39                 <term>ea, er</term>
40                 <listitem>
41                     <para>вещественные числа</para>
42                 </listitem>
43             </varlistentry>
44             <varlistentry>
45                 <term>ea</term>
46                 <listitem>
47                     <para>
48                         абсолютная ошибка, требуемая для результата. Значение по
49                         умолчанию: 1.d-14.     
50                     </para>
51                 </listitem>
52             </varlistentry>
53             <varlistentry>
54                 <term>er</term>
55                 <listitem>
56                     <para>
57                         относительная ошибка, требуемая для результата. Значение по
58                         умолчанию: 1.d-8.
59                     </para>
60                 </listitem>
61             </varlistentry>
62             <varlistentry>
63                 <term>err</term>
64                 <listitem>
65                     <para>
66                         оцененная абсолютная ошибка результата.
67                     </para>
68                 </listitem>
69             </varlistentry>
70         </variablelist>
71     </refsection>
72     <refsection>
73         <title>Описание</title>
74         <para>
75             <literal>intg(a,b,f)</literal> вычисляет определённый интеграл функции 
76             <literal>f(t)</literal> по <literal>dt</literal> в пределах от
77             <literal>a</literal> до <literal>b</literal>.
78             Функция <literal>f(t)</literal> должна быть непрерывной.
79         </para>
80         <para>
81             Вычисление, как можно ожидать, удовлетворяет следующему условию точности:
82             <literal>abs(I-v)&lt;= max(ea,er*abs(I))</literal>, где
83             <literal>I</literal> -- точное значение интеграла.
84         </para>
85         <para>
86             <literal>f</literal> -- внешняя функция:
87         </para>
88         <itemizedlist>
89             <listitem>
90                 <para>
91                     Если <literal>f</literal> -- функция, то её определение должно иметь вид 
92                     <literal>y = f(t)</literal>.
93                 </para>
94             </listitem>
95             <listitem>
96                 <para>
97                     Если  <literal>f</literal> -- список, то этот список должен быть в виде:
98                     <literal> list(f,x1,x2,...)</literal>, где <literal>f</literal> --
99                     функция с последовательностью вызова <literal>f(t,x1,x2,...)</literal>.
100                 </para>
101             </listitem>
102             <listitem>
103                 <para>
104                     Если <literal>f</literal> -- строка, то она ссылается на имя либо 
105                     процедуры Fortran либо функции C с заданной последовательностью вызова:
106                 </para>
107             </listitem>
108             <itemizedlist>
109                 <listitem>
110                     <para>
111                         в случае Fortran вызывающая последовательность должна быть
112                         в виде  <literal>double precision function f(x)</literal>, где
113                         <literal>x</literal> также является числом двойной точности.
114                     </para>
115                 </listitem>
116                 <listitem>
117                     <para>
118                         В случае C вызывающая последовательность должна быть
119                         <literal>double f(double *x)</literal>.
120                     </para>
121                 </listitem>
122             </itemizedlist>
123         </itemizedlist>
124     </refsection>
125     <refsection>
126         <title>Примеры</title>
127         <programlisting role="example"><![CDATA[ 
128 // Функция, написанная на языке Scilab
129 function y=f(x),y=x*sin(30*x)/sqrt(1-((x/(2*%pi))^2)),endfunction
130 exact=-2.5432596188;
131 I=intg(0,2*%pi,f)
132 abs(exact-I)
133  
134 // Функция с аргументом, написанном на языке Scilab
135 function y=f1(x,w),y=x*sin(w*x)/sqrt(1-((x/(2*%pi))^2)),endfunction
136 I=intg(0,2*%pi,list(f1,30))
137 abs(exact-I)
138  
139  
140 // Функция, написанная на Fortran (требуется компилятор Fortran)
141 // определение функции Fortran
142 cd TMPDIR;
143 F=['      double precision function ffun(x)'
144    '      double precision x,pi'
145    '      pi=3.14159265358979312d+0'
146    '      ffun=x*sin(30.0d+0*x)/sqrt(1.0d+0-(x/(2.0d+0*pi))**2)'
147    '      return'
148    '      end'];
149 mputl(F,fullfile(TMPDIR,'ffun.f'))
150
151  
152 // компилируем функцию
153  l=ilib_for_link('ffun',fullfile(TMPDIR,'ffun.f'),[],'f');
154
155 // добавляем  функцию в рабочее окружение
156 link(l,'ffun','f')
157  
158 // интегрируем функцию
159 I=intg(0,2*%pi,'ffun')
160 abs(exact-I)
161  
162 // Функция, написанная на C (требуется компилятор C)
163 // определение C-функции
164 C=['#include <math.h>'
165    'double cfun(double *x)'
166    '{'
167    '  double y,pi=3.14159265358979312;'
168    '  y=*x/(2.0e0*pi);'
169    '  return *x*sin(30.0e0**x)/sqrt(1.0e0-y*y);'
170    '}'];
171 mputl(C,fullfile(TMPDIR,'cfun.c'))
172
173 //  компилируем функцию
174  l=ilib_for_link('cfun',fullfile(TMPDIR,'cfun.c'),[],'c');
175
176 // добавляем  функцию в рабочее окружение
177 link(l,'cfun','c')
178  
179 // интегрируем функцию
180 I=intg(0,2*%pi,'cfun')
181 abs(exact-I)
182  ]]></programlisting>
183     </refsection>
184     <refsection role="see also">
185         <title>Смотрите также</title>
186         <simplelist type="inline">
187             <member>
188                 <link linkend="intc">intc</link>
189             </member>
190             <member>
191                 <link linkend="intl">intl</link>
192             </member>
193             <member>
194                 <link linkend="inttrap">inttrap</link>
195             </member>
196             <member>
197                 <link linkend="intsplin">intsplin</link>
198             </member>
199             <member>
200                 <link linkend="ode">ode</link>
201             </member>
202         </simplelist>
203     </refsection>
204     <refsection>
205         <title>Используемые функции</title>
206         <para>Связанные подпрограммы можно найти в директории
207             SCI/modules/differential_equations/src/fortran:
208         </para>
209         <para>dqags.f и dqagse.f из quadpack</para>
210     </refsection>
211 </refentry>