f7872740acedd112c650cd423e3a61585f4a579e
[scilab.git] / scilab / modules / linear_algebra / help / pt_BR / linear / aff2ab.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  *
6  * Copyright (C) 2012 - 2016 - Scilab Enterprises
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" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="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="aff2ab" xml:lang="pt">
17     <refnamediv>
18         <refname>aff2ab</refname>
19         <refpurpose>Conversão de uma função linear (afim) para forma
20             A,b
21         </refpurpose>
22     </refnamediv>
23     <refsynopsisdiv>
24         <title>Seqüência de Chamamento</title>
25         <synopsis>[A,b]=aff2ab(afunction,dimX,D [,flag])</synopsis>
26     </refsynopsisdiv>
27     <refsection>
28         <title>Parâmetros</title>
29         <variablelist>
30             <varlistentry>
31                 <term>afunction</term>
32                 <listitem>
33                     <para>
34                         uma função do Scilab <literal> Y =fct(X,D) </literal> onde
35                         <literal>X, D, Y</literal> são <literal>lists</literal> de
36                         matrizes
37                     </para>
38                 </listitem>
39             </varlistentry>
40             <varlistentry>
41                 <term>dimX</term>
42                 <listitem>
43                     <para>
44                         uma matriz de inteiros p x 2 (<literal>p</literal> é o número
45                         de matrizes em X)
46                     </para>
47                 </listitem>
48             </varlistentry>
49             <varlistentry>
50                 <term>D</term>
51                 <listitem>
52                     <para>
53                         uma <literal>list</literal> de matrizes de reais (ou qualquer
54                         outro objeto Scilab válido).
55                     </para>
56                 </listitem>
57             </varlistentry>
58             <varlistentry>
59                 <term>flag</term>
60                 <listitem>
61                     <para>
62                         parâmetro opcional (<literal>flag='f'</literal> ou
63                         <literal>flag='sp'</literal>)
64                     </para>
65                 </listitem>
66             </varlistentry>
67             <varlistentry>
68                 <term>A</term>
69                 <listitem>
70                     <para>uma matriz de reais</para>
71                 </listitem>
72             </varlistentry>
73             <varlistentry>
74                 <term>b</term>
75                 <listitem>
76                     <para>um vetor de reais tendo a mesma dimensão de linha que
77                         <literal>A</literal>
78                     </para>
79                 </listitem>
80             </varlistentry>
81         </variablelist>
82     </refsection>
83     <refsection>
84         <title>Descrição</title>
85         <para>
86             <literal>aff2ab</literal> retorna a representação matricial de uma
87             função afim (na base canônica).
88         </para>
89         <para>
90             <literal>afunction</literal> é uma função com sintaxe imposta:
91             <literal> Y=afunction(X,D) </literal> onde <literal> X=list(X1,X2,...,Xp)
92             </literal>
93             é uma lista de p matrizes de reais, e <literal>
94                 Y=list(Y1,...,Yq)
95             </literal>
96             éuma lista de q matrizes reais que dependem
97             linearmente das <literal> Xi</literal>'s. A entrada (opcional) <literal>
98                 D
99             </literal>
100             contém parâmetros necessários para computar Y como uma função
101             de X (geralmente é uma lista de matrizes).
102         </para>
103         <para>
104             <literal> dimX</literal> é uma matriz p x 2:
105             <literal>dimX(i)=[nri,nci]</literal> é o número real de linhas e colunas
106             da matriz <literal>Xi</literal>. Estas dimensões determinam
107             <literal>na</literal>, a dimensão de coluna da matriz resultante
108             <literal>A</literal>: <literal>na=nr1*nc1 +...+ nrp*ncp</literal>.
109         </para>
110         <para>
111             Se o parâmetro opcional <literal>flag='sp'</literal> a matriz
112             resultante A é retornada como uma esparsa.
113         </para>
114         <para>Esta função é útil para resolver um sistema de equações lineares
115             onde as incógnitas são matrizes.
116         </para>
117     </refsection>
118     <refsection>
119         <title>Exemplos</title>
120         <programlisting role="example"><![CDATA[
121 // solucionador de equação de Lyapunov (uma incógnita, uma restrição)
122 deff('Y=lyapunov(X,D)','[A,Q]=D(:);Xm=X(:); Y=list(A''*Xm+Xm*A-Q)')
123 A=rand(3,3);Q=rand(3,3);Q=Q+Q';D=list(A,Q);dimX=[3,3];
124 [Aly,bly]=aff2ab(lyapunov,dimX,D);
125 [Xl,kerA]=linsolve(Aly,bly); Xv=vec2list(Xl,dimX); lyapunov(Xv,D)
126 Xm=Xv(:); A'*Xm+Xm*A-Q
127
128 // solucionador de equação de Lyapunov com restrição redundante X=X'
129 // (uma variável, uma restrição) D é variável global
130 deff('Y=ly2(X,D)','[A,Q]=D(:);Xm=X(:); Y=list(A''*Xm+Xm*A-Q,Xm''-Xm)')
131 A=rand(3,3);Q=rand(3,3);Q=Q+Q';D=list(A,Q);dimX=[3,3];
132 [Aly,bly]=aff2ab(ly2,dimX,D);
133 [Xl,kerA]=linsolve(Aly,bly); Xv=vec2list(Xl,dimX); ly2(Xv,D)
134
135 // equações de Francis
136 // Achando matrizes X1 e X2 tais que:
137 // A1*X1 - X1*A2 + B*X2 -A3 = 0
138 // D1*X1 -D2 = 0
139 deff('Y=bruce(X,D)','[A1,A2,A3,B,D1,D2]=D(:)'+,...
140 '[X1,X2]=X(:);Y=list(A1*X1-X1*A2+B*X2-A3,D1*X1-D2)')
141 A1=[-4,10;-1,2];A3=[1;2];B=[0;1];A2=1;D1=[0,1];D2=1;
142 D=list(A1,A2,A3,B,D1,D2);
143 [n1,m1]=size(A1);[n2,m2]=size(A2);[n3,m3]=size(B);
144 dimX=[[m1,n2];[m3,m2]];
145 [Af,bf]=aff2ab(bruce,dimX,D);
146 [Xf,KerAf]=linsolve(Af,bf);Xsol=vec2list(Xf,dimX)
147 bruce(Xsol,D)
148
149 // Achando todas as X que comutam com A
150 deff('y=f(X,D)','y=list(D(:)*X(:)-X(:)*D(:))')
151 A=rand(3,3);dimX=[3,3];[Af,bf]=aff2ab(f,dimX,list(A));
152 [Xf,KerAf]=linsolve(Af,bf);[p,q]=size(KerAf);
153 Xsol=vec2list(Xf+KerAf*rand(q,1),dimX);
154 C=Xsol(:); A*C-C*A
155  ]]></programlisting>
156     </refsection>
157     <refsection role="see also">
158         <title>Ver Também</title>
159         <simplelist type="inline">
160             <member>
161                 <link linkend="linsolve">linsolve</link>
162             </member>
163         </simplelist>
164     </refsection>
165 </refentry>