* Bug 16613 fixed: .*. and kron extended to booleans
[scilab.git] / scilab / modules / elementary_functions / help / fr_FR / 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="fr">
20     <refnamediv>
21         <refname>kron .*.</refname>
22         <refpurpose>produit tensoriel de Kronecker. Réplication pondérée d'un tableau</refpurpose>
23     </refnamediv>
24     <refsynopsisdiv>
25         <title>Séquence d'appel</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                         Tableaux de tailles respectives (a1, a2, ..) et (b1, b2, ..), de
39                         dimensionnalités quelconques.
40                         Si <varname>A</varname> ou <varname>B</varname> est creuse, l'autre
41                         ne peut pas être une hypermatrice.
42                     </para>
43                     <para>
44                         Encodages et types admis : booléens, nombres entiers, nombres ou polynômes
45                         ou fractions rationnelles réels ou complexes, matrices creuses.
46                     </para>
47                 </listitem>
48             </varlistentry>
49             <varlistentry>
50                 <term>P</term>
51                 <listitem>
52                     <para>
53                         Tableau de nombres du type de <varname>A</varname> et <varname>B</varname>,
54                         et de taille (a1*b1, a2*b2, ..).
55                         Si <varname>A</varname> ou <varname>B</varname> est creuse,
56                         <varname>P</varname> est également creuse.
57                     </para>
58                 </listitem>
59             </varlistentry>
60         </variablelist>
61     </refsection>
62     <refsection>
63         <title>Description</title>
64         <para>
65             <literal>kron(A,B)</literal> ou <literal>A.*.B</literal> calcule et fournit le produit
66             tensoriel de Kronecker de deux matrices ou hypermatrices <literal>A</literal>
67             et <literal>B</literal>. La matrice résultante a la forme suivante :
68             <latex style="display" alt="
69           [ A(1,1).B  ..  A(1,n).B ] \n
70 A .✶. B = |   ⋮        ⋮     ⋮      | \n
71           [ A(m,1).B  ..  A(m,n).B ]">
72                 A \; .*.\; B = \begin{pmatrix}
73                     A_{1,1}\cdot B &amp; \cdots &amp; A_{1,n}\cdot B  \\
74                           \vdots   &amp;        &amp;        \vdots   \\
75                     A_{m,1}\cdot B &amp; \cdots &amp; A_{m,n}\cdot B
76                     \end{pmatrix}
77             </latex>
78         </para>
79         <para>
80             Si <literal>A</literal> est une matrice <literal>m x n</literal> et
81             <literal>B</literal> une hypermatrice <literal>p x q x r</literal>, alors
82             <literal>A.*.B</literal> est une hypermatrice <literal>(m*p) x (n*q) x (1*r)</literal>.
83         </para>
84     </refsection>
85     <refsection>
86         <title>Exemples</title>
87         <programlisting role="example"><![CDATA[
88 A = [1 3 ; 2 4]
89 B = [1 10 100]
90 kron(A, B)
91 A .*. B
92 B .*. A
93     ]]></programlisting>
94     <screen><![CDATA[
95 --> A = [1 3 ; 2 4]
96  A  =
97    1.   3.
98    2.   4.
99
100 --> B = [1 10 100]
101  B  =
102    1.   10.   100.
103
104 --> kron(A, B)
105  ans  =
106    1.   10.   100.   3.   30.   300.
107    2.   20.   200.   4.   40.   400.
108
109 --> A .*. B
110  ans  =
111    1.   10.   100.   3.   30.   300.
112    2.   20.   200.   4.   40.   400.
113
114 --> B .*. A
115  ans  =
116    1.   3.   10.   30.   100.   300.
117    2.   4.   20.   40.   200.   400.
118 ]]></screen>
119         <para>Avec des matrices creuses :</para>
120         <programlisting role="example"><![CDATA[
121 P = [-1 0 1 10] .*. sparse([0 1 2])
122 full(P)
123     ]]></programlisting>
124     <screen><![CDATA[
125 --> P = [-1 0 1 10] .*. sparse([0 1 2])
126  P  =
127 (  1,  12) sparse matrix
128 (  1,  2)    -1.
129 (  1,  3)    -2.
130 (  1,  8)     1.
131 (  1,  9)     2.
132 (  1,  11)    10.
133 (  1,  12)    20.
134
135 --> full(P)
136  ans  =
137    0.  -1.  -2.   0.   0.   0.   0.   1.   2.   0.   10.   20.
138 ]]></screen>
139         <para>Avec des nombres complexes :</para>
140         <programlisting role="example"><![CDATA[
141 A = [-1 1 ; -%i %i]
142 A .*. A
143     ]]></programlisting>
144     <screen><![CDATA[
145 --> A = [-1 1 ; -%i %i]
146  A  =
147   -1.     1.
148   -i      i
149
150 --> A .*. A
151  ans  =
152    1.    -1.    -1.     1.
153    i     -i     -i      i
154    i     -i     -i      i
155   -1.     1.     1.    -1.
156 ]]></screen>
157         <para>
158             Avec des hypermatrices :
159         </para>
160         <programlisting role="example"><![CDATA[
161 b = matrix(1:24, [4 3 2]);
162
163 // row .*. hypermat
164 a = 1:2, b
165 a.*.b
166
167 // hypermat .*. row
168 b,a
169 b .*. a
170
171 // column .*. hypermat
172 a = [1;2], b
173 a.*.b
174
175 // matrix .*. hypermat
176 a = [-1 -2; 2 1], b
177 a.*.b
178
179 // hypermat .*. hypermat
180 a = matrix([-1,-2, 1 2], [1 2 2]), b
181 a.*.b
182  ]]></programlisting>
183     </refsection>
184     <refsection role="see also">
185         <title>Voir aussi</title>
186         <simplelist type="inline">
187             <member>
188                 <link linkend="krondivide">kron .\. ./.</link>
189             </member>
190             <member>
191                 <link linkend="star">star</link>
192             </member>
193             <member>
194                 <link linkend="prod">prod</link>
195             </member>
196             <member>
197                 <link linkend="cumprod">cumprod</link>
198             </member>
199             <member>
200                 <link linkend="repmat">repmat</link>
201             </member>
202         </simplelist>
203     </refsection>
204     <refsection>
205         <title>Historique</title>
206         <revhistory>
207             <revision>
208                 <revnumber>5.5.1</revnumber>
209                 <revdescription>
210                     Extension aux hypermatrices.
211                 </revdescription>
212             </revision>
213             <revision>
214                 <revnumber>6.1.1</revnumber>
215                 <revdescription>
216                     Extension aux tableaux booléens et booléens creux.
217                 </revdescription>
218             </revision>
219         </revhistory>
220     </refsection>
221 </refentry>