* Bug 16613 fixed: .*. and kron extended to booleans
[scilab.git] / scilab / modules / elementary_functions / help / ru_RU / matrixoperations / kron.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) 2014, 2019, 2020 - 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="kron" xml:lang="ru">
20     <refnamediv>
21         <refname>kron .*.</refname>
22         <refpurpose>произведение Кронекера. Взвешенное повторение массива</refpurpose>
23     </refnamediv>
24     <refsynopsisdiv>
25         <title>Синтаксис</title>
26         <synopsis>
27             P = kron(A, B)
28             P = A .*. B
29         </synopsis>
30     </refsynopsisdiv>
31     <refsection>
32         <title>Arguments</title>
33         <variablelist>
34             <varlistentry>
35                 <term>A, B</term>
36                 <listitem>
37                     <para>
38                         Массивы размером <literal>(a1, a2, ..)</literal> и <literal>(b1, b2, ..)</literal>
39                         с любым числом размерности. Если <varname>A</varname> или <varname>B</varname>
40                         являются разрежёнными, то другой массив не может быть гиперматрицей.
41                     </para>
42                     <para>
43                         Поддерживаемые кодируемые целые и типы: boolean, integer, real, complex,
44                         polynomial, rational, sparse boolean, sparse real, sparse complex.
45                     </para>
46                 </listitem>
47             </varlistentry>
48             <varlistentry>
49                 <term>P</term>
50                 <listitem>
51                     <para>
52                         Массив с типом данных <varname>A</varname> и <varname>B</varname>, и
53                         размером <literal>(a1*b1, a2*b2, ..)</literal>. Если <varname>A</varname> или
54                         <varname>B</varname> разрежённый массив, то <varname>P</varname> будет разрежённым.
55                     </para>
56                 </listitem>
57             </varlistentry>
58         </variablelist>
59     </refsection>
60     <refsection>
61         <title>Описание</title>
62         <para>
63             <literal>kron(A,B)</literal> или <literal>A.*.B</literal> возвращает результат
64             Кронекеровского тензорного произведения двух матриц или гиперматриц <varname>A</varname> и
65             <varname>B</varname>. Матрица результата имеет следующую блочную форму:
66             <latex style="display" alt="
67           [ A(1,1).B  ..  A(1,n).B ] \n
68 A .✶. B = |   ⋮        ⋮     ⋮      | \n
69           [ A(m,1).B  ..  A(m,n).B ]">
70                 A \; .*.\; B = \begin{pmatrix}
71                     A_{1,1}\cdot B &amp; \cdots &amp; A_{1,n}\cdot B  \\
72                           \vdots   &amp;        &amp;        \vdots   \\
73                     A_{m,1}\cdot B &amp; \cdots &amp; A_{m,n}\cdot B
74                     \end{pmatrix}
75             </latex>
76         </para>
77         <para>
78             Если матрица <varname>A</varname> имеет размер <literal>m x n</literal>, а матрица
79             <varname>B</varname> имеет размер <literal>p x q x r</literal>, то результат
80             <literal>A .*. B</literal> является матрицей размером <literal>(m*p) x (n*q) x (1xr)</literal>.
81         </para>
82     </refsection>
83     <refsection>
84         <title>Примеры</title>
85         <programlisting role="example"><![CDATA[
86 A = [1 3 ; 2 4]
87 B = [1 10 100]
88 kron(A, B)
89 A .*. B
90 B .*. A
91     ]]></programlisting>
92     <screen><![CDATA[
93 --> A = [1 3 ; 2 4]
94  A  =
95    1.   3.
96    2.   4.
97
98 --> B = [1 10 100]
99  B  =
100    1.   10.   100.
101
102 --> kron(A, B)
103  ans  =
104    1.   10.   100.   3.   30.   300.
105    2.   20.   200.   4.   40.   400.
106
107 --> A .*. B
108  ans  =
109    1.   10.   100.   3.   30.   300.
110    2.   20.   200.   4.   40.   400.
111
112 --> B .*. A
113  ans  =
114    1.   3.   10.   30.   100.   300.
115    2.   4.   20.   40.   200.   400.
116 ]]></screen>
117         <para>С разрежёнными матрицами:</para>
118         <programlisting role="example"><![CDATA[
119 P = [-1 0 1 10] .*. sparse([0 1 2])
120 full(P)
121     ]]></programlisting>
122     <screen><![CDATA[
123 --> P = [-1 0 1 10] .*. sparse([0 1 2])
124  P  =
125 (  1,  12) sparse matrix
126 (  1,  2)    -1.
127 (  1,  3)    -2.
128 (  1,  8)     1.
129 (  1,  9)     2.
130 (  1,  11)    10.
131 (  1,  12)    20.
132
133 --> full(P)
134  ans  =
135    0.  -1.  -2.   0.   0.   0.   0.   1.   2.   0.   10.   20.
136 ]]></screen>
137         <para>С комплексными числами:</para>
138         <programlisting role="example"><![CDATA[
139 A = [-1 1 ; -%i %i]
140 A .*. A
141     ]]></programlisting>
142     <screen><![CDATA[
143 --> A = [-1 1 ; -%i %i]
144  A  =
145   -1.     1.
146   -i      i
147
148 --> A .*. A
149  ans  =
150    1.    -1.    -1.     1.
151    i     -i     -i      i
152    i     -i     -i      i
153   -1.     1.     1.    -1.
154 ]]></screen>
155         <para>
156             С гиперматрицами:
157         </para>
158         <programlisting role="example"><![CDATA[
159 b = matrix(1:24, [4 3 2]);
160
161 // строка .*. гиперматрица
162 a = 1:2, b
163 a.*.b
164
165 // гиперматрица .*. строка
166 b,a
167 b .*. a
168
169 // столбец .*. гиперматрица
170 a = [1;2], b
171 a.*.b
172
173 // матрица .*. гиперматрица
174 a = [-1 -2; 2 1], b
175 a.*.b
176
177 // гиперматрица .*. гиперматрица
178 a = matrix([-1,-2, 1 2], [1 2 2]), b
179 a.*.b
180  ]]></programlisting>
181     </refsection>
182     <refsection role="see also">
183         <title>Смотрите также</title>
184         <simplelist type="inline">
185             <member>
186                 <link linkend="krondivide">kron .\. ./.</link>
187             </member>
188             <member>
189                 <link linkend="star">star</link>
190             </member>
191             <member>
192                 <link linkend="prod">prod</link>
193             </member>
194             <member>
195                 <link linkend="cumprod">cumprod</link>
196             </member>
197             <member>
198                 <link linkend="repmat">repmat</link>
199             </member>
200         </simplelist>
201     </refsection>
202     <refsection>
203         <title>История</title>
204         <revhistory>
205             <revision>
206                 <revnumber>5.5.1</revnumber>
207                 <revdescription>
208                     Расширение до гиперматриц.
209                 </revdescription>
210             </revision>
211             <revision>
212                 <revnumber>6.1.1</revnumber>
213                 <revdescription>
214                     Расширение до логических и разрежённых логических массивов.
215                 </revdescription>
216             </revision>
217         </revhistory>
218     </refsection>
219 </refentry>