266ac268c2ea9fb02aeae960abf9d82284616626
[scilab.git] / scilab / modules / elementary_functions / help / ru_RU / matrixoperations / min.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  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  * Copyright (C) 2018 - Samuel GOUGEON
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14  *
15  -->
16 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
17         xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
18         xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
19         xmlns:scilab="http://www.scilab.org" xml:id="min" xml:lang="ru">
20     <refnamediv>
21         <refname>min</refname>
22         <refpurpose>минимум</refpurpose>
23     </refnamediv>
24     <refsynopsisdiv>
25         <title>Синтаксис</title>
26         <synopsis>
27             m = min(A)
28             Col = min(A, 'c')
29             Row = min(A, 'r'|'m')
30             M = min(A1, A2,..., An)
31             M = min(list(A1, A2,..., An))
32             [.., K] = min(..)
33         </synopsis>
34     </refsynopsisdiv>
35     <refsection>
36         <title>Аргументы</title>
37         <variablelist>
38             <varlistentry>
39                 <term>A, A1, ..., An</term>
40                 <listitem>
41                     <para>
42                         скаляры, векторы, матрицы или гиперматрицы кодированных целых чисел или
43                         вещественных чисел в полном или разрежённом формате. Они должны иметь
44                         одинаковые размеры или быть смешанными со скалярами (скаляры,
45                         следовательно, неявно расширяются  до размеров массивов).
46                         Разрежённые массивы не могут смешиваться с полными массивами, за
47                         исключением <emphasis>положительных</emphasis> скаляров.
48                     </para>
49                 </listitem>
50             </varlistentry>
51             <varlistentry>
52                 <term>m</term>
53                 <listitem>
54                     <para>
55                         одиночное число = минимум из всех значений элементов <varname>A</varname>.
56                         Всегда в полном формате, даже если <varname>A</varname> является разряжённой.
57                     </para>
58                 </listitem>
59             </varlistentry>
60             <varlistentry>
61                 <term>Col</term>
62                 <listitem>
63                     <para>
64                         вектор-столбец, если <varname>A</varname> является двумерной матрицей или
65                         гиперматрицей размерами <literal>size(A)</literal> с размером
66                         <literal>size(A,2)</literal> равным 1: минимумы по столбцам (для каждой
67                         строки).
68                         Если <varname>A</varname> - разрежённая матрица, то <varname>Col</varname>
69                         тоже разрежённый.
70                     </para>
71                 </listitem>
72             </varlistentry>
73             <varlistentry>
74                 <term>Row</term>
75                 <listitem>
76                     <para>
77                         вектор-строка, если <varname>A</varname>  является двумерной матрицей или
78                         гиперматрицей размерами <literal>size(A)</literal> с размером
79                         <literal>size(A,2)</literal> равным 1: минимумы по строкам (для каждого
80                         стролбца).
81                         Если <varname>A</varname> - разрежённая матрица, то <varname>Row</varname>
82                         тоже разрежённый.
83                     </para>
84                 </listitem>
85             </varlistentry>
86             <varlistentry>
87                 <term>M</term>
88                 <listitem>
89                     <para>
90                         Массив размером = <literal>size(A1)</literal>, такой, что для каждого
91                         <literal>q</literal> <literal>M(q) = min(A1(q),A2(q),..An(q))</literal>.
92                         Если <varname>A</varname>,...,<varname>An</varname> - разрежённые матрицы,
93                         то <varname>M</varname> тоже разрежённый.
94                     </para>
95                 </listitem>
96             </varlistentry>
97             <varlistentry>
98                 <term>K</term>
99                 <listitem>
100                     <para>
101                         Указывает в <varname>A</varname> (первый) найденный минимум.
102                         Когда используется <literal>[m,K]=min(A)</literal>, то
103                         <itemizedlist>
104                             <listitem>
105                                 Если <literal>A</literal> вектор, то <varname>K</varname> - скаляр.
106                             </listitem>
107                             <listitem>
108                                 В противном случае <varname>K</varname> является вектор-строкой
109                                 <literal>[i,j,..]</literal> индексов.
110                             </listitem>
111                         </itemizedlist>
112                     </para>
113                     <para>
114                         Для других синтаксисов <varname>K</varname> имеет форму и размеры, соответствующие
115                         <varname>Col</varname>, <varname>Row</varname> и <varname>M</varname>.
116                     </para>
117                     <para>
118                         Для синтаксиса <literal>[M,K] = min(A1,A2,..,An)</literal> имеем для каждого линейного
119                         индекса <literal>q</literal>:
120                         <literal>[M(q),K(q)] = min([A1(q) A2(q) .. An(q)])</literal>.
121                     </para>
122                     <para>
123                         <warning>
124                             <varname>K</varname> всегда в полном формате, даже когда
125                             <varname>A, A1,..,An</varname> в разрежённом виде. Следовательно, когда
126                             используется синтаксис <literal>[M,K]=min(A1,A2,..)</literal> с огромными,
127                             но разрежёнными матрицами, то это приводит к огромной <emphasis>полной</emphasis>
128                             матрице <varname>K</varname>. Пользователь должен проверить достаточно ли памяти
129                             имеется для этого.
130                         </warning>
131                     </para>
132                 </listitem>
133             </varlistentry>
134         </variablelist>
135     </refsection>
136     <refsection>
137         <title>Описание</title>
138         <para>
139             Для <literal>A</literal> вещественного вектора или матрицы <literal>min(A)</literal> даёт
140             наименьший элемент в <literal>A</literal>.
141         </para>
142         <para>
143             <literal>[m,K]=min(A)</literal> даёт дополнительно индексы первого минимума.
144         </para>
145         <para>
146             Может быть использован второй строковый аргумент <literal>'r'</literal> или
147             <literal>'c'</literal>: <literal>'r'</literal> используется для получения
148             вектор-строки <literal>Row</literal> такой что <literal>Row(j)</literal>
149             содержит минимум <literal>j</literal>-го столбца <literal>A(:,j)</literal>,
150             <literal>K(j)</literal> даёт индекс строки, которая содержит минимум
151             столбца №<literal>j</literal>.
152         </para>
153         <para>
154             <literal>'c'</literal> используется для парной операции по строкам <literal>A</literal>.
155             <literal>'m'</literal> используется для совместимости с Matlab.
156         </para>
157         <para>
158             <literal>[M,K]=min(list(A1,...,An))</literal> является эквивалентным для
159             <literal>[M,K]=min(A1,A2,...,An)</literal>.
160         </para>
161         <note>
162             <itemizedlist>
163                <listitem>
164                     <literal>min()</literal> игнорирует значения <literal>NaN</literal> (если есть не
165                     только значения <literal>NaN</literal>).
166                 </listitem>
167                 <listitem>
168                     <literal>min([])</literal> возвращает <literal>[]</literal> для значений и индексов.
169                 </listitem>
170              </itemizedlist>
171         </note>
172     </refsection>
173     <refsection>
174         <title>Примеры</title>
175         <programlisting role="example"><![CDATA[
176 [m, k] = min([])
177 [m, k] = min([5 3 ; 2 %nan])
178 [m, n] = min([5 3 ; 2 %nan], 4)
179 [m, k] = min([5 -1 2], [1 5 1], [0 1 3])
180 [m, k] = min(list([5 -1 2], [1 5 1], [0 1 3]))
181  ]]></programlisting>
182     <screen><![CDATA[
183 --> [m, k] = min([])
184  m  =
185     []
186  k  =
187     []
188 --> [m, k] = min([5 3 ; 2 %nan])
189  m  =
190    2.
191  k  =
192    2.   1.
193 --> [m, k] = min([5 3 ; 2 %nan], 4)
194  m  =
195    4.   3.
196    2.   4.
197  k  =
198    2.   1.
199    1.   2.
200 --> [m, k] = min([5 -1 2], [1 5 1], [0 1 3])
201  m  =
202    0.  -1.   1.
203  k  =
204    3.   1.   2.
205 ]]></screen>
206         <para>
207             <emphasis role="bold">С опциями "r" или "c"</emphasis>:
208         </para>
209         <programlisting role="example"><![CDATA[
210 A = grand(4,6,"uin",0,30); A(3,4) = %nan
211 [Row, K] = min(A, "r")
212 [Col, K] = min(A, "c")
213  ]]></programlisting>
214     <screen><![CDATA[
215 --> A = grand(4,6,"uin",0,30); A(3,4) = %nan
216  A  =
217    24.   14.   24.   4.    6.    11.
218    23.   25.   29.   6.    19.   5.
219    30.   2.    20.   Nan    6.   6.
220    20.   8.    13.   14.   16.   3.
221 --> [Row, K] = min(A, "r")
222  Row  =
223    20.   2.   13.   4.   6.   3.
224  K  =
225    4.   3.   4.   1.   1.   4.
226 --> [Col, K] = min(A, "c")
227  Col  =
228    4.
229    5.
230    2.
231    3.
232  K  =
233    4.
234    6.
235    2.
236    6.
237  ]]></screen>
238         <para>
239             <emphasis role="bold">С разрежёнными входными данными</emphasis>:
240         </para>
241         <programlisting role="example"><![CDATA[
242 s = sprand(5,4,0.5); k = s~=0; s(k) = round((s(k)-0.5)*10), full(s)
243 [Row, K] = min(s, "r")
244 [Col, K] = min(s, "c")
245 [M, K] = min(s,1);   [full(s)  ones(s(:,1))*%nan  full(M)]
246 issparse(M)
247 K
248  ]]></programlisting>
249     <screen><![CDATA[
250 --> s = sprand(5,4,0.5); k = s~=0; s(k) = round((s(k)-0.5)*10), full(s)
251  s  =
252 (  5,  4) sparse matrix
253 (  1,  3)     5.
254 (  1,  4)    -2.
255 (  2,  1)    -3.
256 (  2,  3)    -5.
257 (  3,  1)     3.
258 (  3,  2)    -1.
259 (  3,  3)     3.
260 (  3,  4)     4.
261 (  5,  3)     4.
262 (  5,  4)    -5.
263  ans  =
264    0.   0.   5.  -2.
265   -3.   0.  -5.   0.
266    3.  -1.   3.   4.
267    0.   0.   0.   0.
268    0.   0.   4.  -5.
269 --> [Row, K] = min(s, "r")
270  Row  =
271 (  1,  4) sparse matrix
272 (  1,  1)    -3.
273 (  1,  2)    -1.
274 (  1,  3)    -5.
275 (  1,  4)    -5.
276  K  =
277    2.   3.   2.   5.
278 --> [Col, K] = min(s, "c")
279  Col  =
280 (  5,  1) sparse matrix
281 (  1,  1)    -2.
282 (  2,  1)    -5.
283 (  3,  1)    -1.
284 (  5,  1)    -5.
285  K  =
286    4.
287    3.
288    2.
289    1.
290    4.
291 --> [M, K] = min(s,1);   [full(s)  ones(s(:,1))*%nan  full(M)]
292  ans  =
293    0.   0.   5.  -2.   Nan   0.   0.   1.  -2.
294   -3.   0.  -5.   0.   Nan  -3.   0.  -5.   0.
295    3.  -1.   3.   4.   Nan   1.  -1.   1.   1.
296    0.   0.   0.   0.   Nan   0.   0.   0.   0.
297    0.   0.   4.  -5.   Nan   0.   0.   1.  -5.
298 --> issparse(M)
299  ans  =
300    1.
301 --> K
302  K  =
303    1.   1.   2.   1.
304    1.   1.   1.   1.
305    2.   1.   2.   2.
306    1.   1.   1.   1.
307    1.   1.   2.   1.
308 ]]> </screen>
309     </refsection>
310     <refsection role="see also">
311         <title>Смотрите также</title>
312         <simplelist type="inline">
313             <member>
314                 <link linkend="max">max</link>
315             </member>
316             <member>
317                 <link linkend="strange">strange</link>
318             </member>
319             <member>
320                 <link linkend="mean">mean</link>
321             </member>
322             <member>
323                 <link linkend="gsort">gsort</link>
324             </member>
325             <member>
326                 <link linkend="find">find</link>
327             </member>
328             <member>
329                 <link linkend="full">full</link>
330             </member>
331         </simplelist>
332     </refsection>
333     <refsection role="history">
334         <title>История</title>
335         <revhistory>
336             <revision>
337                 <revnumber>6.0.2</revnumber>
338                 <revdescription>
339                     Теперь min() действительно работает с разрежёнными матрицами
340                 </revdescription>
341             </revision>
342         </revhistory>
343     </refsection>
344 </refentry>