Add an image for the ndgrid
[scilab.git] / scilab / modules / elementary_functions / help / pt_BR / elementarymatrices / ndgrid.xml
index d06622b..c6c72c1 100644 (file)
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<refentry version="5.0-subset Scilab" xml:id="ndgrid" xml:lang="en"
-          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">
-  <info>
-    <pubdate>$LastChangedDate$</pubdate>
-  </info>
-
-  <refnamediv>
-    <refname>ndgrid</refname>
-
-    <refpurpose>Arrays para avaliação de função multidimensional em
-    grid</refpurpose>
-  </refnamediv>
-
-  <refsynopsisdiv>
-    <title>Seqüência de Chamamento</title>
-
-    <synopsis>[X, Y] = ndgrid(x,y)
-[X, Y, Z] = ndgrid(x,y,z)
-[X, Y, Z, T] = ndgrid(x,y,z,t)
-[X1, X2, ..., Xm] = ndgrid(x1,x2,...,xm)</synopsis>
-  </refsynopsisdiv>
-
-  <refsection>
-    <title>Parâmetros</title>
-
-    <variablelist>
-      <varlistentry>
-        <term>x, y, z, ...</term>
-
-        <listitem>
-          <para>vetores </para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>X, Y, Z, ...</term>
-
-        <listitem>
-          <para>matrizes, no caso de 2 argumentos de entrada, ou hipermatrizes
-          em outro caso </para>
-        </listitem>
-      </varlistentry>
-    </variablelist>
-  </refsection>
-
-  <refsection>
-    <title>Descrição</title>
-
-    <para>Esta rotina utilitária é útil para criar arrays para a avaliação da
-    função em grids 2, 3, ..., n dimensionais. Por exemplo, em 2d, um grid é
-    definido por dois vetores, <literal>x</literal> e <literal> y</literal> de
-    comprimento nx e ny, e se deseja avaliar uma função (dita f) em todos os
-    pontos do grid, isto é, em todos os pontos de coordenadas (x(i),y(j)) com
-    i=1,..,nx e j=1,..,ny . Neste caso, esta função pode computar as duas
-    matrizes <literal>X,Y</literal> de tamanho nx x ny tais que : </para>
-
-    <programlisting role = ""><![CDATA[ 
+<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="ndgrid" xml:lang="en">
+    <refnamediv>
+        <refname>ndgrid</refname>
+        <refpurpose>Arrays para avaliação de função multidimensional em
+            grid
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Seqüência de Chamamento</title>
+        <synopsis>[X, Y] = ndgrid(x,y)
+            [X, Y, Z] = ndgrid(x,y,z)
+            [X, Y, Z, T] = ndgrid(x,y,z,t)
+            [X1, X2, ..., Xm] = ndgrid(x1,x2,...,xm)
+        </synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Parâmetros</title>
+        <variablelist>
+            <varlistentry>
+                <term>x, y, z, ...</term>
+                <listitem>
+                    <para>vetores </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>X, Y, Z, ...</term>
+                <listitem>
+                    <para>matrizes, no caso de 2 argumentos de entrada, ou hipermatrizes
+                        em outro caso 
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Descrição</title>
+        <para>Esta rotina utilitária é útil para criar arrays para a avaliação da
+            função em grids 2, 3, ..., n dimensionais. Por exemplo, em 2d, um grid é
+            definido por dois vetores, <literal>x</literal> e <literal> y</literal> de
+            comprimento nx e ny, e se deseja avaliar uma função (dita f) em todos os
+            pontos do grid, isto é, em todos os pontos de coordenadas (x(i),y(j)) com
+            i=1,..,nx e j=1,..,ny . Neste caso, esta função pode computar as duas
+            matrizes <literal>X,Y</literal> de tamanho nx x ny tais que : 
+        </para>
+        <programlisting role=""><![CDATA[ 
       X(i,j) = x(i)   para todo i em [1,nx]
       Y(i,j) = y(j)       e j em [1,ny]
  ]]></programlisting>
-
-    <para>e a avaliação pode ser feita com <literal>Z=f(X,Y)</literal> (sob a
-    condição de que <literal>f</literal> foi codificada para a avaliação em
-    argumentos de vetor, que é feito (em geral) usando os operadores elemento
-    a elemento <literal>.*</literal>, <literal>./</literal> and
-    <literal>.^</literal> no lugar de <literal>*</literal>,
-    <literal>/</literal> e <literal>^</literal>).</para>
-
-    <para>No caso 3d, considerando 3 vetores <literal>x,y,z</literal> de
-    comprimentos nx, ny e nz, <literal>X,Y,Z</literal> são 3 hipermatrizes de
-    tamanho nx x ny x nz tais que : </para>
-
-    <programlisting role = ""><![CDATA[ 
+        <para>
+            e a avaliação pode ser feita com <literal>Z=f(X,Y)</literal> (sob a
+            condição de que <literal>f</literal> foi codificada para a avaliação em
+            argumentos de vetor, que é feito (em geral) usando os operadores elemento
+            a elemento <literal>.*</literal>, <literal>./</literal> and
+            <literal>.^</literal> no lugar de <literal>*</literal>,
+            <literal>/</literal> e <literal>^</literal>).
+        </para>
+        <para>
+            No caso 3d, considerando 3 vetores <literal>x,y,z</literal> de
+            comprimentos nx, ny e nz, <literal>X,Y,Z</literal> são 3 hipermatrizes de
+            tamanho nx x ny x nz tais que : 
+        </para>
+        <programlisting role=""><![CDATA[ 
       X(i,j,k) = x(i)  
       Y(i,j,k) = y(j)   para todo (i,j,k) in [1,nx]x[1,ny]x[1,nz]
       Z(i,j,k) = z(k)
  ]]></programlisting>
-
-    <para>No caso geral de m argumentos de entrada <literal>x1, x2, ..,
-    xm</literal>, os m argumentos de saída <literal>X1, X2, .., Xm</literal>
-    são hipermatrizes de tamanho <emphasis>nx1 x nx2 x ... x nxm</emphasis> e
-    :</para>
-
-    <programlisting role = ""><![CDATA[ 
+        <para>
+            No caso geral de m argumentos de entrada <literal>x1, x2, ..,
+                xm
+            </literal>
+            ,os m argumentos de saída <literal>X1, X2, .., Xm</literal>
+            são hipermatrizes de tamanho <emphasis>nx1 x nx2 x ... x nxm</emphasis> e
+            :
+        </para>
+        <programlisting role=""><![CDATA[ 
     Xj(i1,i2,...,ij,...,im) = xj(ij)   
     for all (i1,i2,...,im) in [1,nx1]x[1,nx2]x...x[1,nxm]  
  ]]></programlisting>
-  </refsection>
-
-  <refsection>
-    <title>Exemplos </title>
-
-    <programlisting role="example"><![CDATA[ 
+    </refsection>
+    <refsection>
+        <title>Exemplos </title>
+        <programlisting role="example"><![CDATA[ 
 // criando um grid 2d simples
 nx = 40; ny = 40;
 x = linspace(-1,1,nx);
@@ -108,7 +92,18 @@ deff("z=f(x,y)","z=x.^2 + y.^3")
 Z = f(X,Y);
 clf()
 plot3d(x,y,Z, flag=[2 6 4]); show_window()
-
+ ]]></programlisting>
+        <scilab:image>
+nx = 40; ny = 40;
+x = linspace(-1,1,nx);
+y = linspace(-1,1,ny);
+[X,Y] = ndgrid(x,y);
+//deff("z=f(x,y)","z=128*x.^2 .*(1-x).^2 .*y.^2 .*(1-y).^2");
+deff("z=f(x,y)","z=x.^2 + y.^3")
+Z = f(X,Y);
+plot3d(x,y,Z, flag=[2 6 4]); show_window()
+        </scilab:image>
+        <programlisting role="example"><![CDATA[ 
 // criando um grid 3d simples
 nx = 10; ny = 6; nz = 4;
 x = linspace(0,2,nx);
@@ -131,19 +126,35 @@ clf()
 plot3d(XF,YF,ZF, flag=[0 6 3], leg="X@Y@Z")
 xtitle("A 3d grid !"); show_window()
  ]]></programlisting>
-  </refsection>
-
-  <refsection role="see also">
-<title>Ver Também</title>
-
-    <simplelist type="inline">
-      <member><link linkend="kron">kron</link></member>
-    </simplelist>
-  </refsection>
-
-  <refsection>
-    <title>Autor</title>
-
-    <para>B. Pincon</para>
-  </refsection>
+        <scilab:image>
+nx = 10; ny = 6; nz = 4;
+x = linspace(0,2,nx);
+y = linspace(0,1,ny);
+z = linspace(0,0.5,nz);
+[X,Y,Z] = ndgrid(x,y,z);
+// tente exibir este grid 3d...
+XF=[]; YF=[]; ZF=[];
+for k=1:nz
+   [xf,yf,zf] = nf3d(X(:,:,k),Y(:,:,k),Z(:,:,k));
+   XF = [XF xf]; YF = [YF yf]; ZF = [ZF zf];
+end
+for j=1:ny
+   [xf,yf,zf] = nf3d(matrix(X(:,j,:),[nx,nz]),...
+                     matrix(Y(:,j,:),[nx,nz]),...
+                     matrix(Z(:,j,:),[nx,nz]));
+   XF = [XF xf]; YF = [YF yf]; ZF = [ZF zf];
+end
+clf()
+plot3d(XF,YF,ZF, flag=[0 6 3], leg="X@Y@Z")
+xtitle("A 3d grid !"); show_window()
+        </scilab:image>
+    </refsection>
+    <refsection role="see also">
+        <title>Ver Também</title>
+        <simplelist type="inline">
+            <member>
+                <link linkend="kron">kron</link>
+            </member>
+        </simplelist>
+    </refsection>
 </refentry>