[doc] misc. fix & improvements
[scilab.git] / scilab / modules / elementary_functions / help / ru_RU / discrete / lcm.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) 2006-2008 - INRIA
5  * Copyright (C) 2018 - Samuel GOUGEON
6  *
7  * Copyright (C) 2012 - 2016 - Scilab Enterprises
8  *
9  * This file is hereby licensed under the terms of the GNU GPL v2.0,
10  * pursuant to article 5.3.4 of the CeCILL v.2.1.
11  * This file was originally licensed under the terms of the CeCILL v2.1,
12  * and continues to be available under such terms.
13  * For more information, see the COPYING file which you should have received
14  * along with this program.
15  *
16  -->
17 <!--  module: polynomials  -->
18 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
19          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
20          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
21          xml:lang="ru" xml:id="lcm">
22    <refnamediv>
23        <refname>lcm</refname>
24        <refpurpose>наименьшее общее кратное (положительное) целых чисел или полиномов</refpurpose>
25    </refnamediv>
26    <refsynopsisdiv>
27        <title>Синтаксис</title>
28        <synopsis>
29           pp = lcm(p)
30          [pp, fact] = lcm(p)
31        </synopsis>
32    </refsynopsisdiv>
33    <refsection>
34        <title>Аргументы</title>
35        <variablelist>
36            <varlistentry>
37                <term>p</term>
38                <listitem>
39                    <para>
40                        матрица полиномов (тип 2), или десятичных чисел или кодированных целых
41                        чисел (тип 1 или 8).
42                    </para>
43                </listitem>
44            </varlistentry>
45            <varlistentry>
46                <term>pp</term>
47                <listitem>
48                    <para>
49                        полином или десятичное целое число: положительное нименьшее общее кратное у
50                        составляющих <varname>p</varname>.
51                    </para>
52                </listitem>
53            </varlistentry>
54            <varlistentry>
55                <term>fact</term>
56                <listitem>
57                    <para>
58                        матрица полиномов или десятичных целых чисел (тип 1) с размером, как у
59                        <varname>p</varname>, такая, что <literal>fact(i)= pp./p(i)</literal>.
60                    </para>
61                </listitem>
62            </varlistentry>
63        </variablelist>
64    </refsection>
65    <refsection>
66        <title>Описание</title>
67        <para>
68            <literal>pp=lcm(p)</literal>  вычисляет НОК <varname>pp</varname> составляющих <varname>p</varname>.
69        </para>
70        <para>
71          Если <literal>p</literal> являются полиномами, то <literal>pp</literal> является полиномом и
72          <varname>fact</varname> также является матрицей полиномов.
73        </para>
74        <para>
75          Если <literal>p</literal> является массивом целых числел, то
76            <itemizedlist>
77                <listitem>
78                    если они являются кодированными целыми числами, то тогда они преобразуются
79                    в десятичные целые числи перед обработкой.
80                </listitem>
81                <listitem>
82                    Любые входные целые числа типа int64 или uint64 по модулю больше 2^53
83                    будут усечены и <literal>lcm()</literal> вернёт неверный результат.
84                </listitem>
85                <listitem>
86                    Если некоторые из них отрицательные, то возвращаемое значение <literal>pp</literal>
87                    (их НОК) будет всегда положительным.
88                </listitem>
89            </itemizedlist>
90        </para>
91        <para>
92            Намиеньшее общее кратное массива <literal>p</literal> вещественных чисел может быть
93            получено конвертированием его в полином перед вызовом <literal>lcm</literal>,
94            через <literal>p = inv_coeff(p, 0)</literal>.
95        </para>
96    </refsection>
97    <refsection>
98        <title>Примеры</title>
99        <para>С полиномами:</para>
100        <programlisting role="example"><![CDATA[
101 s = %s;
102 p = [s , s*(s+1) , s^2-1]
103 [pp, fact] = lcm(p)
104 p .* fact == pp
105 ]]></programlisting>
106    <screen><![CDATA[
107 --> p = [s , s*(s+1) , s^2-1]
108  p  =
109            2       2
110    s   s +s   -1 +s
111
112 --> [pp, fact] = lcm(p)
113  fact  =
114        2
115   -1 +s   -1 +s   s
116
117  pp  =
118        3
119   -s +s
120
121 --> p .* fact == pp
122  ans  =
123   T T T
124 ]]></screen>
125    <para>С кодированными целыми числами:</para>
126    <programlisting role="example"><![CDATA[
127 // Простые числа: 2  3  5  7  11  13  17  19  23  29  31  37  41  43  47
128 V = int16([2*3 3*7 ; 7*5  3*5])
129 [pp, fact] = lcm(V)
130  ]]></programlisting>
131     <screen><![CDATA[
132 --> V = int16([2*3 3*7 ; 7*5  3*5])
133  V  =
134    6  21
135   35  15
136
137 --> [pp, fact] = lcm(V)
138  pp  =
139    210.
140
141  fact  =
142    35.   10.
143    6.    14.
144 ]]></screen>
145     <para>С десятичнми целыми числами:</para>
146     <programlisting role="example"><![CDATA[
147 V = [2*3 3*7 ; 7*5  3*5]
148 [pp, fact] = lcm(V)
149  ]]></programlisting>
150     <para>С большими целыми числами:</para>
151     <programlisting role="example"><![CDATA[
152 V = [3*2^51 , 3*5]
153 [pp, fact] = lcm(V)    // OK
154  ]]></programlisting>
155     <screen><![CDATA[
156 --> V = [3*2^51 , 3*5]
157  V  =
158    6.755D+15   15.
159
160 --> [pp, fact] = lcm(V)
161  fact  =
162    5.   2.252D+15
163
164  pp  =
165    3.378D+16
166 ]]></screen>
167     <para>
168         Когда числовое кодирование переполняет разрядную сетку, происходит усечение
169         и результаты возвращаются ошибочные:
170     </para>
171     <programlisting role="example"><![CDATA[
172 V = [3*2^52 , 3*5]
173 [pp, fact] = lcm(V)
174  ]]></programlisting>
175     <screen><![CDATA[
176 --> V = [3*2^52 , 3*5]
177  V  =
178    1.351D+16   15.
179
180 --> [pp, fact] = lcm(V)
181  fact  =
182    15.   1.351D+16
183
184  pp  =
185    2.027D+17
186 ]]></screen>
187    </refsection>
188    <refsection role="see also">
189        <title>Смотрите также</title>
190        <simplelist type="inline">
191            <member>
192                <link linkend="gcd">gcd</link>
193            </member>
194            <member>
195                <link linkend="bezout">bezout</link>
196            </member>
197            <member>
198                <link linkend="factor">factor</link>
199            </member>
200        </simplelist>
201    </refsection>
202    <refsection role="history">
203        <title>История</title>
204        <revhistory>
205            <revision>
206                <revnumber>6.0.1</revnumber>
207                <revdescription>
208                   Для входных целых чисел, возможно отрицательных, возвращаемое МОК теперь
209                   всегда положительно.
210                </revdescription>
211            </revision>
212            <revision>
213                <revnumber>6.0.2</revnumber>
214                <revdescription>
215                    <itemizedlist>
216                        <listitem>
217                            Теперь поддерживаются входные кодированные целые числа типа int64 и uint64.
218                        </listitem>
219                        <listitem>
220                            Теперь <varname>p</varname> может быть матрицей любой формы, необязательно строка.
221                        </listitem>
222                        <listitem>
223                            Когда <varname>p</varname> является матрицей кодированных или десятичных целых
224                            чисел, то вычисления теперь выполняются в числах с плавающей запятой вместо
225                            формата int32.
226                            <varname>pp</varname> и <varname>fact</varname> теперь десятичные целые числа
227                            (вместо целых чисел типа int32).
228                        </listitem>
229                    </itemizedlist>
230                </revdescription>
231            </revision>
232        </revhistory>
233    </refsection>
234 </refentry>