7d233df5ea283a1e4e0b19b134b7a856bffeb42e
[scilab.git] / scilab / modules / elementary_functions / help / pt_BR / elementarymatrices / ndgrid.xml
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <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">
3     <refnamediv>
4         <refname>ndgrid</refname>
5         <refpurpose>Arrays para avaliação de função multidimensional em
6             grid
7         </refpurpose>
8     </refnamediv>
9     <refsynopsisdiv>
10         <title>Seqüência de Chamamento</title>
11         <synopsis>[X, Y] = ndgrid(x,y)
12             [X, Y, Z] = ndgrid(x,y,z)
13             [X, Y, Z, T] = ndgrid(x,y,z,t)
14             [X1, X2, ..., Xm] = ndgrid(x1,x2,...,xm)
15         </synopsis>
16     </refsynopsisdiv>
17     <refsection>
18         <title>Parâmetros</title>
19         <variablelist>
20             <varlistentry>
21                 <term>x, y, z, ...</term>
22                 <listitem>
23                     <para>vetores </para>
24                 </listitem>
25             </varlistentry>
26             <varlistentry>
27                 <term>X, Y, Z, ...</term>
28                 <listitem>
29                     <para>matrizes, no caso de 2 argumentos de entrada, ou hipermatrizes
30                         em outro caso 
31                     </para>
32                 </listitem>
33             </varlistentry>
34         </variablelist>
35     </refsection>
36     <refsection>
37         <title>Descrição</title>
38         <para>Esta rotina utilitária é útil para criar arrays para a avaliação da
39             função em grids 2, 3, ..., n dimensionais. Por exemplo, em 2d, um grid é
40             definido por dois vetores, <literal>x</literal> e <literal> y</literal> de
41             comprimento nx e ny, e se deseja avaliar uma função (dita f) em todos os
42             pontos do grid, isto é, em todos os pontos de coordenadas (x(i),y(j)) com
43             i=1,..,nx e j=1,..,ny . Neste caso, esta função pode computar as duas
44             matrizes <literal>X,Y</literal> de tamanho nx x ny tais que : 
45         </para>
46         <programlisting role=""><![CDATA[ 
47       X(i,j) = x(i)   para todo i em [1,nx]
48       Y(i,j) = y(j)       e j em [1,ny]
49  ]]></programlisting>
50         <para>
51             e a avaliação pode ser feita com <literal>Z=f(X,Y)</literal> (sob a
52             condição de que <literal>f</literal> foi codificada para a avaliação em
53             argumentos de vetor, que é feito (em geral) usando os operadores elemento
54             a elemento <literal>.*</literal>, <literal>./</literal> and
55             <literal>.^</literal> no lugar de <literal>*</literal>,
56             <literal>/</literal> e <literal>^</literal>).
57         </para>
58         <para>
59             No caso 3d, considerando 3 vetores <literal>x,y,z</literal> de
60             comprimentos nx, ny e nz, <literal>X,Y,Z</literal> são 3 hipermatrizes de
61             tamanho nx x ny x nz tais que : 
62         </para>
63         <programlisting role=""><![CDATA[ 
64       X(i,j,k) = x(i)  
65       Y(i,j,k) = y(j)   para todo (i,j,k) in [1,nx]x[1,ny]x[1,nz]
66       Z(i,j,k) = z(k)
67  ]]></programlisting>
68         <para>
69             No caso geral de m argumentos de entrada <literal>x1, x2, ..,
70                 xm
71             </literal>
72             ,os m argumentos de saída <literal>X1, X2, .., Xm</literal>
73             são hipermatrizes de tamanho <emphasis>nx1 x nx2 x ... x nxm</emphasis> e
74             :
75         </para>
76         <programlisting role=""><![CDATA[ 
77     Xj(i1,i2,...,ij,...,im) = xj(ij)   
78     for all (i1,i2,...,im) in [1,nx1]x[1,nx2]x...x[1,nxm]  
79  ]]></programlisting>
80     </refsection>
81     <refsection>
82         <title>Exemplos </title>
83         <programlisting role="example"><![CDATA[ 
84 // criando um grid 2d simples
85 nx = 40; ny = 40;
86 x = linspace(-1,1,nx);
87 y = linspace(-1,1,ny);
88 [X,Y] = ndgrid(x,y);
89 // computando uma função no grid e plotando
90 //deff("z=f(x,y)","z=128*x.^2 .*(1-x).^2 .*y.^2 .*(1-y).^2");
91 deff("z=f(x,y)","z=x.^2 + y.^3")
92 Z = f(X,Y);
93 clf()
94 plot3d(x,y,Z, flag=[2 6 4]); show_window()
95  ]]></programlisting>
96         <scilab:image>
97             nx = 40; ny = 40;
98             x = linspace(-1,1,nx);
99             y = linspace(-1,1,ny);
100             [X,Y] = ndgrid(x,y);
101             deff("z=f(x,y)","z=x.^2 + y.^3")
102             Z = f(X,Y);
103             plot3d(x,y,Z, flag=[2 6 4]);
104         </scilab:image>
105         <programlisting role="example"><![CDATA[ 
106 // criando um grid 3d simples
107 nx = 10; ny = 6; nz = 4;
108 x = linspace(0,2,nx);
109 y = linspace(0,1,ny);
110 z = linspace(0,0.5,nz);
111 [X,Y,Z] = ndgrid(x,y,z);
112 // tente exibir este grid 3d...
113 XF=[]; YF=[]; ZF=[];
114 for k=1:nz
115    [xf,yf,zf] = nf3d(X(:,:,k),Y(:,:,k),Z(:,:,k));
116    XF = [XF xf]; YF = [YF yf]; ZF = [ZF zf];
117 end
118 for j=1:ny
119    [xf,yf,zf] = nf3d(matrix(X(:,j,:),[nx,nz]),...
120                      matrix(Y(:,j,:),[nx,nz]),...
121                      matrix(Z(:,j,:),[nx,nz]));
122    XF = [XF xf]; YF = [YF yf]; ZF = [ZF zf];
123 end
124 clf()
125 plot3d(XF,YF,ZF, flag=[0 6 3], leg="X@Y@Z")
126 xtitle("A 3d grid !"); show_window()
127  ]]></programlisting>
128         <scilab:image>
129             nx = 10; ny = 6; nz = 4;
130             x = linspace(0,2,nx);
131             y = linspace(0,1,ny);
132             z = linspace(0,0.5,nz);
133             [X,Y,Z] = ndgrid(x,y,z);
134             
135             XF=[]; YF=[]; ZF=[];
136             
137             for k=1:nz
138             [xf,yf,zf] = nf3d(X(:,:,k),Y(:,:,k),Z(:,:,k));
139             XF = [XF xf]; YF = [YF yf]; ZF = [ZF zf];
140             end
141             
142             for j=1:ny
143             [xf,yf,zf] = nf3d(matrix(X(:,j,:),[nx,nz]),...
144             matrix(Y(:,j,:),[nx,nz]),...
145             matrix(Z(:,j,:),[nx,nz]));
146             XF = [XF xf]; YF = [YF yf]; ZF = [ZF zf];
147             end
148             plot3d(XF,YF,ZF, flag=[0 6 3], leg="X@Y@Z")
149             xtitle("A 3d grid !"); 
150         </scilab:image>
151     </refsection>
152     <refsection role="see also">
153         <title>Ver Também</title>
154         <simplelist type="inline">
155             <member>
156                 <link linkend="kron">kron</link>
157             </member>
158         </simplelist>
159     </refsection>
160 </refentry>