[doc] power() improved page 66/21666/4
Samuel GOUGEON [Fri, 1 Jan 2021 18:30:30 +0000 (19:30 +0100)]
  en_US PDF: http://bugzilla.scilab.org/attachment.cgi?id=5211

Change-Id: I31f2963d5b8967cb27215a19670df1cb503e6ce8

scilab/modules/elementary_functions/help/en_US/exponential/power.xml
scilab/modules/elementary_functions/help/fr_FR/exponential/power.xml
scilab/modules/elementary_functions/help/ja_JP/exponential/power.xml
scilab/modules/elementary_functions/help/pt_BR/exponential/power.xml [deleted file]
scilab/modules/elementary_functions/help/ru_RU/exponential/power.xml

index 2384b7a..4c74ea6 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="power">
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2020 - Samuel GOUGEON
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+-->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="en" xml:id="power">
     <refnamediv>
         <refname>power</refname>
         <refpurpose>(^,.^) power operation</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Syntax</title>
-        <synopsis>t=A^b
-            t=A**b
-            t=A.^b
+        <synopsis>
+            t = A ^ b
+            t = A ** b
+            t = A .^ b
         </synopsis>
     </refsynopsisdiv>
     <refsection>
         <title>Arguments</title>
         <variablelist>
             <varlistentry>
-                <term>A,t</term>
+                <term>A, t</term>
                 <listitem>
-                    <para>scalar, polynomial or rational matrix.</para>
+                    a scalar, vector, or matrix of encoded integers, decimal or complex numbers,
+                    polynomials, or rationals.
+                    <para/>
                 </listitem>
             </varlistentry>
             <varlistentry>
                 <term>b</term>
                 <listitem>
-                    <para>a scalar, a vector or a scalar matrix.</para>
+                    a scalar, vector, or matrix of encoded integers, decimal or complex numbers.
+                    <para/>
                 </listitem>
             </varlistentry>
         </variablelist>
-    </refsection>
-    <refsection>
-        <title>Description</title>
-        <itemizedlist>
-            <listitem>
-                <para>
-                    If <literal>A</literal> is a square matrix and <literal>b</literal> is a scalar then  <literal>A^b</literal> is the matrix <literal>A</literal> to the power <literal>b</literal>.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    If <literal>b</literal> is a scalar and <literal>A</literal> a matrix then
-                    <literal>A.^b</literal>  is the matrix formed by the element of
-                    <literal>A</literal> to the power <literal>b</literal> (element-wise power). If
-                    <literal>A</literal> is a vector and <literal>b</literal> is a scalar then
-                    <literal>A^b</literal> and <literal>A.^b</literal> performs the same operation
-                    (i.e. element-wise power).
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    If <literal>A</literal> is a scalar and <literal>b</literal> is a square matrix <literal>A^b</literal> is the matrix <literal> expm(log(A) * b)</literal>.
-                </para>
-                <para>
-                    If <literal>A</literal> is a scalar and <literal>b</literal> is a vector <literal>A^b</literal> and <literal>A.^b</literal> are the vector formed by  <literal> a^(b(i,j))</literal>.
-                </para>
-                <para>
-                    If <literal>A</literal> is a scalar and <literal>b</literal> is a matrix <literal>A.^b</literal> is the matrix formed by  <literal> a^(b(i,j))</literal>.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    If <literal>A</literal> and <literal>b</literal> are vectors (matrices) of the same size <literal>A.^b</literal> is the  <literal>A(i)^b(i)</literal> vector (<literal>A(i,j)^b(i,j)</literal> matrix).
-                </para>
-            </listitem>
-        </itemizedlist>
-    </refsection>
-    <refsection>
-        <title>Additional Remarks</title>
-        <para>
-            <note> Notes: </note>
-        </para>
-        <para>
-            1. For square matrices <literal>A^p</literal> is computed through successive matrices
-            multiplications if <literal>p</literal> is a positive integer, and by <emphasis>diagonalization</emphasis> if not (see "note 2 and 3" below for details).
-        </para>
-        <para>
-            2. If <varname>A</varname> is a square and Hermitian matrix and <varname>p</varname> is a non-integer scalar,
-            <literal>A^p</literal> is computed as:
-        </para>
-        <para>
-            <code>A^p = u*diag(diag(s).^p)*u'</code> (For real matrix <varname>A</varname>, only the real part of the answer is taken into account).
-        </para>
-        <para>
-            <varname>u</varname> and <varname>s</varname> are determined by <code>[u,s] = schur(A)</code> .
-        </para>
-        <para>
-            3. If <varname>A</varname> is not a Hermitian matrix and <varname>p</varname> is a non-integer scalar,
-            <literal>A^p</literal> is computed as:
-        </para>
-        <para>
-            <code>A^p = v*diag(diag(d).^p)*inv(v)</code> (For real matrix <varname>A</varname>, only the real part of the answer is taken into account).
-        </para>
-        <para>
-            <varname>d</varname> and <varname>v</varname> are determined by <code>[d,v] = bdiag(A+0*%i)</code> .
-        </para>
-        <para>
-            4. If <varname>A</varname> and <varname>p</varname> are real or complex numbers,
-            <literal>A^p</literal> is the <emphasis>principal value</emphasis> determined by:
-        </para>
-        <para>
-            <code>A^p = exp(p*log(A))</code> (or <code>A^p = exp(p*(log(abs(A))+ %i*atan(imag(A)/real(A))))</code> ).
-        </para>
         <para>
-            5. If <varname>A</varname> is a square matrix and <varname>p</varname> is a real or complex number,
-            <literal>A.^p</literal> is the <emphasis>principal value</emphasis> computed as:
+            If an operand are encoded integers, the other one can be only encoded integers or real
+            numbers.
         </para>
         <para>
-            <code>A.^p = exp(p*log(A))</code> (same as case 4 above).
-        </para>
-        <para>
-            6. <literal>**</literal> and <literal>^</literal> operators are synonyms.
-        </para>
-        <para>
-            <warning>
-                Exponentiation is right-associative in Scilab contrarily to Matlab® and Octave.
-                For example 2^3^4 is equal to 2^(3^4) in Scilab but is equal to (2^3)^4 in Matlab®
-                and Octave.
-            </warning>
+            If <varname>A</varname> are polynomials or rationals, <varname>b</varname> can only be
+            a single decimal (positive or negative) integer.
         </para>
     </refsection>
     <refsection>
+        <title>Description</title>
+        <refsect3>
+            <title>.^ by-element power</title>
+            <para>
+                If <varname>A</varname> or <varname>b</varname> is scalar, it is first
+                replicated to the size of the other, with A*ones(b) or b*ones(A).
+                Otherwise, <varname>A</varname> and <varname>b</varname> must have the same size.
+            </para>
+            <para>
+                Then, for each element of index i, <literal>t(i) = A(i)^b(i)</literal>
+                is computed.
+            </para>
+        </refsect3>
+        <refsect3>
+            <title>^ matricial power</title>
+            <para>
+                The ^ operator is equivalent to the .^ by-element power in the following cases:
+                <itemizedlist>
+                    <listitem>
+                        <varname>A</varname> is scalar and <varname>b</varname> is a vector.
+                    </listitem>
+                    <listitem>
+                        <varname>A</varname> is a vector and <varname>b</varname> is scalar.
+                    </listitem>
+                </itemizedlist>
+                Otherwise, <varname>A</varname> or <varname>b</varname> must be a scalar,
+                and the other one must be a square matrix:
+                <itemizedlist>
+                    <listitem>
+                        <para>
+                            If <varname>A</varname> is scalar and <varname>b</varname> is
+                            a square matrix, then <literal>A^b</literal> is the matrix
+                            <literal>expm(log(A) * b)</literal>
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            If <varname>A</varname> is a square matrix and <varname>b</varname>
+                            is scalar, then  <literal>A^b</literal> is the matrix
+                            <varname>A</varname> to the power <varname>b</varname>.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </refsect3>
+        <refsect3>
+            <title>Remarks</title>
+            <orderedlist>
+                <listitem>
+                    <para>
+                        For square matrices <literal>A^p</literal> is computed through successive
+                        matrices multiplications if <literal>p</literal> is a positive integer, and by
+                        <emphasis>diagonalization</emphasis> if not (see "note 2 and 3" below for details).
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        If <varname>A</varname> is a square and Hermitian matrix and <literal>p</literal>
+                        is a non-integer scalar, <literal>A^p</literal> is computed as:
+                    </para>
+                    <para>
+                        <code>A^p = u*diag(diag(s).^p)*u'</code> (For real matrix <varname>A</varname>,
+                        only the real part of the answer is taken into account).
+                    </para>
+                    <para>
+                        <literal>u</literal> and <literal>s</literal> are determined by
+                        <code>[u,s] = schur(A)</code> .
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        If <varname>A</varname> is not a Hermitian matrix and <literal>p</literal> is a
+                        non-integer scalar, <literal>A^p</literal> is computed as:
+                    </para>
+                    <para>
+                        <code>A^p = v*diag(diag(d).^p)*inv(v)</code> (For real matrix <varname>A</varname>,
+                        only the real part of the answer is taken into account).
+                    </para>
+                    <para>
+                        <literal>d</literal> and <literal>v</literal> are determined by
+                        <code>[d,v] = bdiag(A+0*%i)</code>.
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        If <varname>A</varname> and <literal>p</literal> are real or complex numbers,
+                        <literal>A^p</literal> is the <emphasis>principal value</emphasis> determined by
+                    </para>
+                    <para>
+                        <code>A^p = exp(p*log(A))</code>
+                    </para>
+                    <para>
+                        (or <code>A^p = exp(p*(log(abs(A))+ %i*atan(imag(A)/real(A))))</code> ).
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        If <varname>A</varname> is a square matrix and <literal>p</literal> is a real or
+                        complex number, <literal>A.^p</literal> is the <emphasis>principal value</emphasis>
+                        computed as:
+                    </para>
+                    <para>
+                        <code>A.^p = exp(p*log(A))</code> (same as case 4 above).
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        <literal>**</literal> and <literal>^</literal> operators are synonyms.
+                    </para>
+                </listitem>
+            </orderedlist>
+            <para>
+                <warning>
+                    Exponentiation is right-associative in Scilab, contrarily to Matlab® and Octave.
+                    For example 2^3^4 is equal to 2^(3^4) in Scilab, but to (2^3)^4 in Matlab® and Octave.
+                </warning>
+            </para>
+        </refsect3>
+    </refsection>
+    <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[
-A=[1 2;3 4];
-A^2.5,
-A.^2.5
-(1:10)^2
-(1:10).^2
+A = [1 2 ; 3 4];
+A ^ 2.5,
+A .^ 2.5
+(1:10) ^ 2
+(1:10) .^ 2
 
-A^%i
-A.^%i
+A ^ %i
+A .^ %i
 exp(%i*log(A))
 
-s=poly(0,'s')
-s^(1:10)
+s = poly(0,'s')
+s ^ (1:10)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
@@ -142,8 +200,27 @@ s^(1:10)
                 <link linkend="exp">exp</link>
             </member>
             <member>
+                <link linkend="expm">expm</link>
+            </member>
+            <member>
                 <link linkend="hat">hat</link>
             </member>
+            <member>
+                <link linkend="inv">inv</link>
+            </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.0</revnumber>
+                <revdescription>
+                    With decimal or complex numbers, <literal>scalar ^ squareMat</literal> now
+                    yields <literal>expm(log(scalar)*squareMat)</literal> instead of
+                    <literal>scalar .^ squareMat</literal>
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 4872795..5760fcf 100644 (file)
@@ -1,5 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="power">
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2020 - Samuel GOUGEON
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+-->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="fr" xml:id="power">
     <refnamediv>
         <refname>power</refname>
         <refpurpose>élévation à la puissance (^,.^)   </refpurpose>
     <refsynopsisdiv>
         <title>Séquence d'appel</title>
         <synopsis>
-            t=A^b
-            t=A**b
-            t=A.^b
+            t = A ^ b
+            t = A ** b
+            t = A .^ b
         </synopsis>
     </refsynopsisdiv>
     <refsection>
         <title>Paramètres</title>
         <variablelist>
             <varlistentry>
-                <term>A,t  </term>
+                <term>A, t  </term>
                 <listitem>
-                    <para>matrice réelle, complexe, polynomiale ou rationnelle
-                    </para>
+                    scalaire, vecteur, ou matrice de nombres entiers encodés, de nombres
+                    ou polynômes ou fractions rationnelles à coefficients réels ou complexes.
+                    <para/>
                 </listitem>
             </varlistentry>
             <varlistentry>
                 <term>b  </term>
                 <listitem>
-                    <para>matrice réelle, complexe, polynomiale ou rationnelle
-                    </para>
+                    scalaire, vecteur, ou matrice d'entiers encodés, de nombres décimaux,
+                    ou de nombres complexes.
+                    <para/>
                 </listitem>
             </varlistentry>
         </variablelist>
-    </refsection>
-    <refsection>
-        <title>Description</title>
-        <itemizedlist>
-            <listitem>
-                <para>
-                    Si <literal>A</literal> est une matrice carrée et <literal>b</literal> un scalaire alors  <literal>A^b</literal> est la matrice <literal>A</literal> élevée à la puissance <literal>b</literal>.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    Si <literal>b</literal> est un un scalaire et <literal>A</literal> une matrice alors <literal>A.^b</literal>  est la matrice formée par les éléments de <literal>A</literal> élevés à la puissance <literal>b</literal> (puissance élément par élément). Si <literal>A</literal> est un vecteur et <literal>b</literal> un scalaire alors  <literal>A^b</literal> et <literal>A.^b</literal> donnent le même résultat (puissance élément par élément).
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    Si <literal>A</literal> est un scalaire et <literal>b</literal> est une matrice carrée <literal>A^b</literal> est la matrice <literal>expm(log(A)*b)</literal>.
-                </para>
-                <para>
-                    Si <literal>A</literal> est un scalaire et <literal>b</literal> est une matrice <literal>A.^b</literal> est une matrice de même taille que b dont les termes sont égaux à <literal> a^(b(i,j))</literal>.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    Si <literal>A</literal> et <literal>b</literal> sont des matrices de même taille <literal>A.^b</literal> est la matrice dont les termes sont égaux à <literal>A(i,j)^b(i,j)</literal>.
-                </para>
-            </listitem>
-        </itemizedlist>
         <para>
-            Notes :
+            Si un opérande sont des entiers encodés, l'autre peut être uniquement des entiers
+            encodés ou des nombres réels.
         </para>
         <para>
-            -
-            Pour les matrices carrées <literal>A^p</literal> est calculé par multiplications successives si <literal>p</literal> est un entier positif, et par diagonalisation sinon.
-        </para>
-        <para>
-            -
-            Les opérateurs <literal>**</literal> et <literal>^</literal> sont synonymes.
-        </para>
-        <para>
-            <warning>
-                L'élévation à la puissance est associative à droite dans Scilab contrairement à
-                Matlab® et Octave. Par exemple 2^3^4 est égal à 2^(3^4) dans Scilab mais est égal à
-                (2^3)^4 dans Matlab® et Octave.
-            </warning>
+            Si <varname>A</varname> sont des polynômes ou des fractions rationnelles,
+            <varname>b</varname> peut uniquement être un entier décimal (positif ou négatif).
         </para>
     </refsection>
     <refsection>
+        <title>Description</title>
+        <refsect3>
+            <title>.^ : puissances respectives par élément</title>
+            <para>
+                Si <varname>A</varname> ou <varname>b</varname> est scalaire, il est préalablement
+                répliqué à la taille de l'autre, par A*ones(b) ou b*ones(A).
+                Sinon, <varname>A</varname> et <varname>b</varname> doivent avoir la même taille.
+            </para>
+            <para>
+                Alors, pour chaque élément numéro i, <literal>t(i) = A(i)^b(i)</literal>
+                est calculé.
+            </para>
+        </refsect3>
+        <refsect3>
+            <title>^ : puissance matricielle</title>
+            <para>
+                L'opérateur ^ est équivalent à .^ dans les cas suivants :
+                <itemizedlist>
+                    <listitem>
+                        <varname>A</varname> est scalaire et <varname>b</varname> est un vecteur.
+                    </listitem>
+                    <listitem>
+                        <varname>A</varname> est un vecteur et <varname>b</varname> est scalaire.
+                    </listitem>
+                </itemizedlist>
+                Sinon, <varname>A</varname> ou <varname>b</varname> doit être scalaire, et l'autre
+                opérande  doit être une matrice carrée :
+                <itemizedlist>
+                    <listitem>
+                        <para>
+                            Si <varname>A</varname> est scalaire et <varname>b</varname> est carrée,
+                            alors <literal>A^b</literal> est la matrice
+                            <literal>expm(log(A) * b)</literal>
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            Si <varname>A</varname> est carrée et <varname>b</varname> est scalaire,
+                            alors <literal>A^b</literal> est la matrice
+                            <varname>A</varname> à la puissane <varname>b</varname>.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </refsect3>
+        <refsect3>
+            <title>Autres remarques</title>
+            <orderedlist>
+                <listitem>
+                    <para>
+                        Si <varname>A</varname> est une matrice carrée, <literal>A^p</literal> est
+                        calculé par multiplications successives si <literal>p</literal> est un
+                        entier positif, et par diagonalisation sinon (détails en remarques n°2 et 3
+                        ci-dessous).
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        If <varname>A</varname> is a square and Hermitian matrix and <literal>p</literal>
+                        is a non-integer scalar, <literal>A^p</literal> is computed as:
+                    </para>
+                    <para>
+                        <code>A^p = u*diag(diag(s).^p)*u'</code> (For real matrix <varname>A</varname>,
+                        only the real part of the answer is taken into account).
+                    </para>
+                    <para>
+                        <literal>u</literal> and <literal>s</literal> are determined by
+                        <code>[u,s] = schur(A)</code> .
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        If <varname>A</varname> is not a Hermitian matrix and <literal>p</literal> is a
+                        non-integer scalar, <literal>A^p</literal> is computed as:
+                    </para>
+                    <para>
+                        <code>A^p = v*diag(diag(d).^p)*inv(v)</code> (For real matrix <varname>A</varname>,
+                        only the real part of the answer is taken into account).
+                    </para>
+                    <para>
+                        <literal>d</literal> and <literal>v</literal> are determined by
+                        <code>[d,v] = bdiag(A+0*%i)</code>.
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        If <varname>A</varname> and <literal>p</literal> are real or complex numbers,
+                        <literal>A^p</literal> is the <emphasis>principal value</emphasis> determined by
+                    </para>
+                    <para>
+                        <code>A^p = exp(p*log(A))</code>
+                    </para>
+                    <para>
+                        (or <code>A^p = exp(p*(log(abs(A))+ %i*atan(imag(A)/real(A))))</code> ).
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        If <varname>A</varname> is a square matrix and <literal>p</literal> is a real or
+                        complex number, <literal>A.^p</literal> is the <emphasis>principal value</emphasis>
+                        computed as:
+                    </para>
+                    <para>
+                        <code>A.^p = exp(p*log(A))</code> (same as case 4 above).
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        Les opérateurs <literal>**</literal> et <literal>^</literal> sont équivalents.
+                    </para>
+                </listitem>
+            </orderedlist>
+            <para>
+                <warning>
+                    L'élévation à la puissance est associative à droite dans Scilab contrairement à
+                    Matlab® et Octave. Par exemple 2^3^4 est égal à 2^(3^4) dans Scilab mais est égal à
+                    (2^3)^4 dans Matlab® et Octave.
+                </warning>
+            </para>
+        </refsect3>
+    </refsection>
+    <refsection>
         <title>Exemples</title>
         <programlisting role="example"><![CDATA[
-A=[1 2;3 4];
-A^2.5,
-A.^2.5
-(1:10)^2
-(1:10).^2
+A = [1 2 ; 3 4];
+A ^ 2.5,
+A .^ 2.5
+(1:10) ^ 2
+(1:10) .^ 2
+
+A ^ %i
+A .^ %i
+exp(%i*log(A))
 
-s=poly(0,'s')
-s^(1:10)
+s = poly(0,'s')
+s ^ (1:10)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
@@ -97,8 +203,27 @@ s^(1:10)
                 <link linkend="exp">exp</link>
             </member>
             <member>
+                <link linkend="expm">expm</link>
+            </member>
+            <member>
                 <link linkend="hat">hat</link>
             </member>
+            <member>
+                <link linkend="inv">inv</link>
+            </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Historique</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.0</revnumber>
+                <revdescription>
+                    Avec des nombres décimaux ou complexes, <literal>scalaire ^ matriceCarrée</literal>
+                    produit désormais <literal>expm(log(scalaire)*matriceCarrée)</literal> au lieu
+                    de <literal>scalaire .^ matriceCarrée</literal>.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 28ad413..bab3fc1 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="power">
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2020 - Samuel GOUGEON
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+-->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="ja" xml:id="power">
     <refnamediv>
         <refname>power</refname>
         <refpurpose>指数演算子 (^,.^)   </refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>呼出し手順</title>
-        <synopsis>t=A^b
-            t=A**b
-            t=A.^b
+        <synopsis>
+            t = A ^ b
+            t = A ** b
+            t = A .^ b
         </synopsis>
     </refsynopsisdiv>
     <refsection>
         <title>引数</title>
         <variablelist>
             <varlistentry>
-                <term>A,t</term>
+                <term>A, t</term>
                 <listitem>
-                    <para>スカラー, 多項式または有理行列.</para>
+                    a scalar, vector, or matrix of encoded integers, decimal or complex numbers,
+                    polynomials, or rationals.
+                    <para/>
                 </listitem>
             </varlistentry>
             <varlistentry>
                 <term>b</term>
                 <listitem>
-                    <para>スカラー, ベクトルまたはスカラーの行列.</para>
+                    a scalar, vector, or matrix of encoded integers, decimal or complex numbers.
+                    <para/>
                 </listitem>
             </varlistentry>
         </variablelist>
-    </refsection>
-    <refsection>
-        <title>説明</title>
-        <itemizedlist>
-            <listitem>
-                <para>
-                    <literal>A</literal> が正方行列で<literal>b</literal> がスカラーの場合,
-                    <literal>A^b</literal>は行列<literal>A</literal>の<literal>b</literal>乗に
-                    なります.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <literal>b</literal> がスカラーで<literal>A</literal>が行列の場合,
-                    <literal>A.^b</literal>は<literal>A</literal>の各要素を<literal>b</literal>乗
-                    (要素毎の累乗)にした行列となります.
-                    <literal>A</literal> がベクトルで <literal>b</literal> がスカラーの場合,
-                    <literal>A^b</literal> と <literal>A.^b</literal> は同じ意味となります
-                    (すなわち,要素毎の累乗).
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <literal>A</literal> がスカラーで,<literal>b</literal> が行列 (またはベクトル)の場合,
-                    <literal>A^b</literal> および <literal>A.^b</literal> は,
-                    <literal> a^(b(i,j))</literal> により構成される行列 (またはベクトル) となります.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <literal>A</literal> および <literal>b</literal>  が同じ大きさのベクトル (行列) の場合,
-                    <literal>A.^b</literal> はベクトル <literal>A(i)^b(i)</literal>
-                    (行列<literal>A(i,j)^b(i,j)</literal>)となります.
-                </para>
-            </listitem>
-        </itemizedlist>
-    </refsection>
-    <refsection>
-        <title>追加の注記</title>
-        <para>
-            <note>注意:</note>
-        </para>
-        <para>
-            1.正方行列の場合, <literal>A^p</literal>は,
-            <literal>p</literal>が正のスカラーの場合は行列の逐次乗算により計算され,
-            それ以外の場合,<emphasis>対角化</emphasis>により計算されます
-            (詳細は"注記2および3"を参照).
-        </para>
-        <para>
-            2. <varname>A</varname>が正方かつエルミート行列で
-            <varname>p</varname> が整数でないスカラーの場合,
-            <literal>A^p</literal> は以下の様に計算されます:
-        </para>
-        <para>
-            <code>A^p = u*diag(diag(s).^p)*u'</code> (<varname>A</varname>が実数行列の場合,
-            答えの実部のみが考慮されます).
-        </para>
-        <para>
-            <varname>u</varname>および<varname>s</varname> は, <code>[u,s] = schur(A)</code>
-            により定義されます.
-        </para>
-        <para>
-            3. <varname>A</varname> がエルミート行列でなく,
-            <varname>p</varname> が非整数スカラーの場合,
-            <literal>A^p</literal> は以下の様に計算されます:
-        </para>
-        <para>
-            <code>A^p = v*diag(diag(d).^p)*inv(v)</code>
-            (<varname>A</varname>が実数行列の場合, 答えの実部のみが考慮されます).
-        </para>
-        <para>
-            <varname>d</varname> および <varname>v</varname> は,
-            <code>[d,v] = bdiag(A+0*%i)</code>により定義されます.
-        </para>
         <para>
-            4. <varname>A</varname> および <varname>p</varname> が実数または複素数の場合,
-            <literal>A^p</literal> は以下のように計算される
-            <emphasis>主値</emphasis>となります:
+            If an operand are encoded integers, the other one can be only encoded integers or real
+            numbers.
         </para>
         <para>
-            <code>A^p = exp(p*log(A))</code> (または<code>A^p = exp(p*(log(abs(A))+ %i*atan(imag(A)/real(A))))</code> ).
-        </para>
-        <para>
-            5. <varname>A</varname> が正方行列で
-            <varname>p</varname> が実数または複素数の場合,
-            <literal>A.^p</literal> は以下のように計算される
-            <emphasis>主値</emphasis> となります:
-        </para>
-        <para>
-            <code>A.^p = exp(p*log(A))</code> (上記のケース4と同じ).
-        </para>
-        <para>
-            6. <literal>**</literal> および <literal>^</literal> 演算子は同義です.
+            If <varname>A</varname> are polynomials or rationals, <varname>b</varname> can only be
+            a single decimal (positive or negative) integer.
         </para>
     </refsection>
     <refsection>
+        <title>説明</title>
+        <refsect3>
+            <title>.^ by-element power</title>
+            <para>
+                If <varname>A</varname> or <varname>b</varname> is scalar, it is first
+                replicated to the size of the other, with A*ones(b) or b*ones(A).
+                Otherwise, <varname>A</varname> and <varname>b</varname> must have the same size.
+            </para>
+            <para>
+                Then, for each element of index i, <literal>t(i) = A(i)^b(i)</literal>
+                is computed.
+            </para>
+        </refsect3>
+        <refsect3>
+            <title>^ matricial power</title>
+            <para>
+                The ^ operator is equivalent to the .^ by-element power in the following cases:
+                <itemizedlist>
+                    <listitem>
+                        <varname>A</varname> is scalar and <varname>b</varname> is a vector.
+                    </listitem>
+                    <listitem>
+                        <varname>A</varname> is a vector and <varname>b</varname> is scalar.
+                    </listitem>
+                </itemizedlist>
+                Otherwise, <varname>A</varname> or <varname>b</varname> must be a scalar,
+                and the other one must be a square matrix:
+                <itemizedlist>
+                    <listitem>
+                        <para>
+                            If <varname>A</varname> is scalar and <varname>b</varname> is
+                            a square matrix, then <literal>A^b</literal> is the matrix
+                            <literal>expm(log(A) * b)</literal>
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            If <varname>A</varname> is a square matrix and <varname>b</varname>
+                            is scalar, then  <literal>A^b</literal> is the matrix
+                            <varname>A</varname> to the power <varname>b</varname>.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </refsect3>
+        <refsect3>
+            <title>追加の注記</title>
+            <orderedlist>
+                <listitem> <!-- #1 -->
+                    <para>
+                        正方行列の場合, <literal>A^p</literal>は,
+                        <literal>p</literal>が正のスカラーの場合は行列の逐次乗算により計算され,
+                        それ以外の場合,<emphasis>対角化</emphasis>により計算されます
+                        (詳細は"注記2および3"を参照).
+                    </para>
+                </listitem>
+                <listitem> <!-- #2 -->
+                    <para>
+                        <varname>A</varname>が正方かつエルミート行列で
+                        <literal>p</literal> が整数でないスカラーの場合,
+                        <literal>A^p</literal> は以下の様に計算されます:
+                    </para>
+                    <para>
+                        <code>A^p = u*diag(diag(s).^p)*u'</code> (<varname>A</varname>が実数行列の場合,
+                        答えの実部のみが考慮されます).
+                    </para>
+                    <para>
+                        <literal>u</literal>および<literal>s</literal> は, <code>[u,s] = schur(A)</code>
+                        により定義されます.
+                    </para>
+                </listitem>
+                <listitem> <!-- #3 -->
+                    <para>
+                        <varname>A</varname> がエルミート行列でなく,
+                        <literal>p</literal> が非整数スカラーの場合,
+                        <literal>A^p</literal> は以下の様に計算されます:
+                    </para>
+                    <para>
+                        <code>A^p = v*diag(diag(d).^p)*inv(v)</code>
+                        (<varname>A</varname>が実数行列の場合, 答えの実部のみが考慮されます).
+                    </para>
+                    <para>
+                        <literal>d</literal> および <literal>v</literal> は,
+                        <code>[d,v] = bdiag(A+0*%i)</code>により定義されます.
+                    </para>
+                </listitem>
+                <listitem> <!-- #4 -->
+                    <para>
+                        <varname>A</varname> および <literal>p</literal> が実数または複素数の場合,
+                        <literal>A^p</literal> は以下のように計算される
+                        <emphasis>主値</emphasis>となります:
+                    </para>
+                    <para>
+                        <code>A^p = exp(p*log(A))</code>
+                    </para>
+                    <para>
+                        (または<code>A^p = exp(p*(log(abs(A))+ %i*atan(imag(A)/real(A))))</code> ).
+                    </para>
+                </listitem>
+                <listitem> <!-- #5 -->
+                    <para>
+                        <varname>A</varname> が正方行列で
+                        <literal>p</literal> が実数または複素数の場合,
+                        <literal>A.^p</literal> は以下のように計算される
+                        <emphasis>主値</emphasis> となります:
+                    </para>
+                    <para>
+                        <code>A.^p = exp(p*log(A))</code> (上記のケース4と同じ).
+                    </para>
+                </listitem>
+                <listitem> <!-- #6 -->
+                    <para>
+                        <literal>**</literal> および <literal>^</literal> 演算子は同義です.
+                    </para>
+                </listitem>
+            </orderedlist>
+            <para>
+                <warning>
+                    Exponentiation is right-associative in Scilab, contrarily to Matlab® and Octave.
+                    For example 2^3^4 is equal to 2^(3^4) in Scilab, but to (2^3)^4 in Matlab® and
+                    Octave.
+                </warning>
+            </para>
+        </refsect3>
+    </refsection>
+    <refsection>
         <title>例</title>
         <programlisting role="example"><![CDATA[
-A=[1 2;3 4];
-A^2.5,
-A.^2.5
-(1:10)^2
-(1:10).^2
+A = [1 2 ; 3 4];
+A ^ 2.5,
+A .^ 2.5
+(1:10) ^ 2
+(1:10) .^ 2
 
-A^%i
-A.^%i
+A ^ %i
+A .^ %i
 exp(%i*log(A))
 
-s=poly(0,'s')
-s^(1:10)
+s = poly(0,'s')
+s ^ (1:10)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
@@ -146,8 +206,27 @@ s^(1:10)
                 <link linkend="exp">exp</link>
             </member>
             <member>
+                <link linkend="expm">expm</link>
+            </member>
+            <member>
                 <link linkend="hat">hat</link>
             </member>
+            <member>
+                <link linkend="inv">inv</link>
+            </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>履歴</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.0</revnumber>
+                <revdescription>
+                    With decimal or complex numbers, <literal>scalar ^ squareMat</literal> now
+                    yields <literal>expm(log(scalar)*squareMat)</literal> instead of
+                    <literal>scalar .^ squareMat</literal>
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
diff --git a/scilab/modules/elementary_functions/help/pt_BR/exponential/power.xml b/scilab/modules/elementary_functions/help/pt_BR/exponential/power.xml
deleted file mode 100644 (file)
index 8857645..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="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="power" xml:lang="pt">
-    <refnamediv>
-        <refname>power</refname>
-        <refpurpose>operação de potenciação(^,.^)</refpurpose>
-    </refnamediv>
-    <refsynopsisdiv>
-        <title>Seqüência de Chamamento</title>
-        <synopsis>t=A^b
-            t=A**b
-            t=A.^b
-        </synopsis>
-    </refsynopsisdiv>
-    <refsection>
-        <title>Parâmetros</title>
-        <variablelist>
-            <varlistentry>
-                <term>A,t</term>
-                <listitem>
-                    <para>matriz de escalares, polinômios ou razões de
-                        polinômios.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>b</term>
-                <listitem>
-                    <para>um escalar ou um vetor ou matriz de escalares.</para>
-                </listitem>
-            </varlistentry>
-        </variablelist>
-    </refsection>
-    <refsection>
-        <title>Descrição</title>
-        <itemizedlist>
-            <listitem>
-                <para>
-                    <literal>"(A:square)^(b:scalar)"</literal>Se
-                    <literal>A</literal> é uma matriz quadrada e <literal>b</literal> é um
-                    escalar, então <literal>A^b</literal> é a matriz <literal>A</literal>
-                    elevada à potência <literal>b</literal>.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <literal>"(A:matrix).^(b:scalar)"</literal>Se
-                    <literal>b</literal> é um escalar e <literal>A</literal> uma matriz,
-                    então <literal>A.^b</literal> é formada pelos elementos de
-                    <literal>A</literal> elevados à potência <literal>b</literal>
-                    (potenciação elemento a elemento). Se <literal>A</literal> é um vetor
-                    e <literal>b</literal> é um escalar, então <literal>A^b</literal> e
-                    <literal>A.^b</literal> realizam a mesma operação (i.e., potenciação
-                    elemento a elemento).
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <literal>"(A:scalar).^(b:matrix)"</literal> Se
-                    <literal>A</literal> é um escalar e <literal>b</literal> é uma matriz
-                    (ou vetor) então <literal>A^b</literal> e <literal>A.^b</literal> são
-                    as matrizes (ou vetores) formados por<literal>
-                        a^(b(i,j))
-                    </literal>
-                    .
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    <literal>"(A:matrix).^(b:matrix)"</literal> Se
-                    <literal>A</literal> e <literal>b</literal> são vetores (matrizes) de
-                    mesmo tamanho <literal>A.^b</literal> é o vetor
-                    <literal>A(i)^b(i)</literal> (matriz
-                    <literal>A(i,j)^b(i,j)</literal>).
-                </para>
-            </listitem>
-        </itemizedlist>
-        <para>Notas:</para>
-        <para>
-            - Para matrizes quadradas <literal>A^p</literal> é computada através
-            de sucessivas multiplicações de matrizes se <literal>p</literal> is é um
-            número inteiro positivo e por diagonalização se não for.
-        </para>
-        <para>- Os operadores ** e ^ são sinônimos.</para>
-    </refsection>
-    <refsection>
-        <title>Exemplos</title>
-        <programlisting role="example"><![CDATA[
-A=[1 2;3 4];
-A^2.5,
-A.^2.5
-(1:10)^2
-(1:10).^2
-
-s=poly(0,'s')
-s^(1:10)
- ]]></programlisting>
-    </refsection>
-    <refsection>
-        <title> Ver Também </title>
-        <simplelist type="inline">
-            <member>
-                <link linkend="exp">exp</link>
-            </member>
-        </simplelist>
-    </refsection>
-</refentry>
index e62bb7c..1c30650 100644 (file)
@@ -1,5 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ru" xml:id="power">
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2020 - Samuel GOUGEON
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+-->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="ru" xml:id="power">
     <refnamediv>
         <refname>возведение в степень</refname>
         <refpurpose>операция возведения в степень (^, .^)</refpurpose>
     <refsynopsisdiv>
         <title>Синтаксис</title>
         <synopsis>
-            t=A^b
-            t=A**b
-            t=A.^b
+            t = A ^ b
+            t = A ** b
+            t = A .^ b
         </synopsis>
     </refsynopsisdiv>
     <refsection>
         <title>Аргументы</title>
         <variablelist>
             <varlistentry>
-                <term>A,t</term>
+                <term>A, t</term>
                 <listitem>
-                    <para>
-                        скаляр или вектор/матрица числовых, полиномиальных или рациональных значений
-                    </para>
+                    скаляр, вектор или матрица кодированных целых чисел, десятичных или
+                    комплексных чисел, полиномов или дробно-рациональных выражений.
+                    <para/>
                 </listitem>
             </varlistentry>
             <varlistentry>
                 <term>b</term>
                 <listitem>
-                    <para>скаляр, вектор или матрица.</para>
+                    скаляр, вектор или матрица кодированных целых чисел, десятичных или
+                    комплексных чисел.
+                    <para/>
                 </listitem>
             </varlistentry>
         </variablelist>
-    </refsection>
-    <refsection>
-        <title>Описание</title>
-        <itemizedlist>
-            <listitem>
-                <para>
-                    Если <literal>A</literal> -- квадратная матрица, а <literal>b</literal> -- скаляр, то <literal>A^b</literal>
-                    является матрицей <literal>A</literal> в степени <literal>b</literal>.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    Если <literal>A</literal> -- матрица, а <literal>b</literal> -- скаляр, то матрица
-                    <literal>A.^b</literal> формируется элементами матрицы <literal>A</literal>
-                    в степени <literal>b</literal> (поэлементное возведение в степень).
-                    Если <literal>A</literal> -- вектор, а <literal>b</literal> -- скаляр, то
-                    <literal>A^b</literal> и <literal>A.^b</literal> выполняют одну и ту же операцию
-                    (т. е. поэлементное возведение в степень).
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    Если <literal>A</literal> -- скаляр, а <literal>b</literal> -- матрица (или вектор), то
-                    <literal>A^b</literal> и <literal>A.^b</literal> являются матрицами (или векторами), сформированными
-                    элементами <literal> a^(b(i,j))</literal>.
-                </para>
-            </listitem>
-            <listitem>
-                <para>
-                    Если <literal>A</literal> и <literal>b</literal> -- векторы (матрицы) одного размера, то
-                    <literal>A.^b</literal> равно  <literal>A(i)^b(i)</literal> (векторы) или <literal>A(i,j)^b(i,j)</literal> (матрицы).
-                </para>
-            </listitem>
-        </itemizedlist>
-        <para>
-            Примечания:
-        </para>
         <para>
-            -
-            Для квадратных матриц <literal>A^p</literal> вычисляется через последовательное
-            перемножение матриц, если  <literal>p</literal> является положительным числом, а иначе --
-            через диагонализацию.
+            Если операндом являются кодированные целые числа, то другие числа могут
+            быть только кодированными целыми числами или вещественными числами.
         </para>
         <para>
-            -
-            операторы <literal>**</literal> и <literal>^</literal> являются синонимами.
+            Если <varname>A</varname> является полиномами или дробно-рациональными
+            выражениями, то <varname>b</varname> может быть только одиночным десятичным
+            (положительным или отрицательным) числом.
         </para>
     </refsection>
     <refsection>
+        <title>Описание</title>
+        <refsect3>
+            <title>.^ поэлементное возведение в степень</title>
+            <para>
+                Если <varname>A</varname> или <varname>b</varname> скаляр,
+                то он сначала реплицируется до размера другого с помощью
+                <literal>A*ones(b)</literal> или <literal>b*ones(A)</literal>.
+                В противном случае <varname>A</varname> и <varname>b</varname>
+                должны быть одинакового размера.
+            </para>
+            <para>
+                Затем для каждого элемента с индексом <literal>i</literal>
+                вычисляется <literal>t(i) = A(i)^b(i)</literal>.
+            </para>
+        </refsect3>
+        <refsect3>
+            <title>^ матричное возведение в степень</title>
+            <para>
+                Оператор <literal>^</literal> эквивалентен поэлементному возведению
+                в степень <literal>.^</literal> в следующих случаях:
+                <itemizedlist>
+                    <listitem>
+                        <varname>A</varname> скаляр, а <varname>b</varname> вектор;
+                    </listitem>
+                    <listitem>
+                        <varname>A</varname> вектор, а <varname>b</varname> скаляр.
+                    </listitem>
+                </itemizedlist>
+                В противном случае <varname>A</varname> либо <varname>b</varname>
+                должен быть скаляром, а другой должен быть квадратной матрицей:
+                <itemizedlist>
+                    <listitem>
+                        <para>
+                            если <varname>A</varname> скаляр, а <varname>b</varname>
+                            квадратная матрица, то <literal>A^b</literal> является
+                            матрицей <literal>expm(log(A) * b)</literal>;
+                        </para>
+                    </listitem>
+                    <listitem>
+                        <para>
+                            если <varname>A</varname> квадратная матрица, а <varname>b</varname>
+                            скаляр, то <literal>A^b</literal> является матрицей
+                            <varname>A</varname> в степени <varname>b</varname>.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </para>
+        </refsect3>
+        <refsect3>
+            <title>Примечания</title>
+            <orderedlist>
+                <listitem>
+                    <para>
+                        Для квадратных матриц <varname>A</varname>, <literal>A^p</literal>
+                        вычисляется через последовательное перемножение матриц, если
+                        <literal>p</literal> является положительным числом, а иначе -
+                        через диагонализацию (см. примечания №2 и №3 ниже).
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        Если <varname>A</varname> квадратная и эрмитова матрица, а
+                        <literal>p</literal> нецелый скаляр, то <literal>A^p</literal>
+                        вычисляется как:
+                    </para>
+                    <para>
+                        <code>A^p = u*diag(diag(s).^p)*u'</code> (для вещественной
+                        матрицы <varname>A</varname> во внимание принимается только
+                        вещественная часть ответа).
+                    </para>
+                    <para>
+                        <literal>u</literal> и <literal>s</literal> определяются как
+                        <code>[u,s] = schur(A)</code> .
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        Если <varname>A</varname> не является эрмитовой матрицей,
+                        а <literal>p</literal> является нецелым скаляром, то
+                        <literal>A^p</literal> вычисляется как:
+                    </para>
+                    <para>
+                        <code>A^p = v*diag(diag(d).^p)*inv(v)</code> (для вещественной
+                        матрицы <varname>A</varname> во внимание принимается только
+                        вещественная часть ответа).
+                    </para>
+                    <para>
+                        <literal>d</literal> и <literal>v</literal> определяются
+                        как <code>[d,v] = bdiag(A+0*%i)</code>.
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        Если <varname>A</varname> и <literal>p</literal> вещественные
+                        или комплексные числа, то <literal>A^p</literal> является
+                        <emphasis>главным значением</emphasis>, определяемым как
+                    </para>
+                    <para>
+                        <code>A^p = exp(p*log(A))</code>
+                    </para>
+                    <para>
+                        (или <code>A^p = exp(p*(log(abs(A))+ %i*atan(imag(A)/real(A))))</code> ).
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        Если <varname>A</varname> является квадратной матрице, а
+                        <literal>p</literal> вещественным или комплексным числом, то
+                        <literal>A.^p</literal> является <emphasis>главным значением</emphasis>
+                        вычисленным как:
+                    </para>
+                    <para>
+                        <code>A.^p = exp(p*log(A))</code> (то же самое, что и в случае 4 выше).
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        операторы <literal>**</literal> и <literal>^</literal> являются
+                        синонимами.
+                    </para>
+                </listitem>
+            </orderedlist>
+            <para>
+                <warning>
+                    Возведение в степень в Scilab является оператором с ассоциативностью
+                    справа, в отличие от Matlab® и Octave.
+                    Например <literal>2^3^4</literal> в Scilab равно <literal>2^(3^4)</literal>,
+                    а в Matlab® и Octave равно <literal>(2^3)^4</literal>.
+                </warning>
+            </para>
+        </refsect3>
+    </refsection>
+    <refsection>
         <title>Примеры</title>
         <programlisting role="example"><![CDATA[
-A=[1 2;3 4];
-A^2.5,
-A.^2.5
-(1:10)^2
-(1:10).^2
+A = [1 2 ; 3 4];
+A ^ 2.5,
+A .^ 2.5
+(1:10) ^ 2
+(1:10) .^ 2
 
-s=poly(0,'s')
-s^(1:10)
+A ^ %i
+A .^ %i
+exp(%i*log(A))
+
+s = poly(0,'s')
+s ^ (1:10)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
@@ -98,8 +215,27 @@ s^(1:10)
                 <link linkend="exp">exp</link>
             </member>
             <member>
+                <link linkend="expm">expm</link>
+            </member>
+            <member>
                 <link linkend="hat">крышечка</link>
             </member>
+            <member>
+                <link linkend="inv">inv</link>
+            </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>История</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.0</revnumber>
+                <revdescription>
+                    С десятичным или комплексным числами <literal>scalar ^ squareMat</literal>
+                    теперь даёт <literal>expm(log(scalar)*squareMat)</literal> вместо
+                    <literal>scalar .^ squareMat</literal>.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>