File: eval_cshep2d.xml

package info (click to toggle)
scilab 5.2.2-9
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 334,832 kB
  • ctags: 52,586
  • sloc: xml: 526,945; ansic: 223,590; fortran: 163,080; java: 56,934; cpp: 33,840; tcl: 27,936; sh: 20,397; makefile: 9,908; ml: 9,451; perl: 1,323; cs: 614; lisp: 30
file content (156 lines) | stat: -rw-r--r-- 4,788 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<?xml version="1.0" encoding="ISO-8859-1"?>
<refentry version="5.0-subset Scilab" xml:id="eval_cshep2d" 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>eval_cshep2d</refname>

    <refpurpose>avaliao por interpolao cbica bidimensional de
    Shepard</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <title>Seqncia de Chamamento</title>

    <synopsis>[zp [,dzpdx, dzpdy [,d2zpdxx,d2zpdxy,d2zpdyy]]] = eval_cshep2d(xp, yp, tl_coef)</synopsis>
  </refsynopsisdiv>

  <refsection>
    <title>Parmetros</title>

    <variablelist>
      <varlistentry>
        <term>xp, yp</term>

        <listitem>
          <para>dois vetores (ou matrizes) de mesmo tamanho </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>tl_coef</term>

        <listitem>
          <para>uma estrutura Scilab tlist (de tipo cshep2d) definindo uma
          funo de interpolao cbica de Shepard (chamada
          <literal>S</literal> a partir daqui) </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>zp</term>

        <listitem>
          <para>vetor (ou matrizes) de mesmo tamanho que <literal>xp</literal>
          e <literal>yp</literal>, avaliao do interpolante
          <literal>S</literal> nesses pontos </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>dzpdx,dzpdy</term>

        <listitem>
          <para>vetores (ou matrizes) de mesmo tamanho que
          <literal>xp</literal> e <literal>yp</literal>, avaliao das
          derivadas primeiras de <literal>S</literal> nestes pontos</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>d2zpdxx,d2zpdxy,d2zpdyy</term>

        <listitem>
          <para>vetores (ou matrizes) de mesmo tamanho que
          <literal>xp</literal> e <literal>yp</literal>, avaliao das
          derivadas segundas de <literal>S</literal> nestes pontos </para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsection>

  <refsection>
    <title>Descrio</title>

    <para>Esta  a rotina de avaliao para a funo de interpolao cbica de
    Shepard obtida com <link linkend="cshep2d">cshep2d</link>, isto  :</para>

    <programlisting role = ""><![CDATA[ 
zp(i) = S(xp(i),yp(i))   
dzpdx(i) = dS/dx(xp(i),yp(i))
dzpdy(i) = dS/dy(xp(i),yp(i))  
d2zpdxx(i) = d2S/dx2(xp(i),yp(i))
d2zpdxy(i) = d2S/dxdy(xp(i),yp(i))  
d2zpdyy(i) = d2S/dy2(xp(i),yp(i))
 ]]></programlisting>
  </refsection>

  <refsection>
    <title>Observao </title>

    <para>O interpolante S  C2 (duas vezes continuamente diferencivel) mas
    tambm  estendido por zero para <emphasis>(x,y)</emphasis>
    suficientemente longe dos pontos de interpolao. Isto leva a uma
    descontinuidade em regies exteriores muito longe dos pontos de
    interpolao e, assim, a avaliao no se torna incoveniente na prtica
    (de um modo geral, avaliao fora dos pontos de interpolao (i.e.
    extrapolao) leva a resultados muito inacurados).</para>
  </refsection>

  <refsection>
    <title>Exemplos </title>

    <programlisting role="example"><![CDATA[ 
// ver seo de exemplos em cshep2d

// este exemplo mostra o comportamento longe dos pontos de interpolao...
deff("z=f(x,y)","z = 1+ 50*(x.*(1-x).*y.*(1-y)).^2")
x = linspace(0,1,10);
[X,Y] = ndgrid(x,x);
X = X(:); Y = Y(:); Z = f(X,Y);
S = cshep2d([X Y Z]);
// avaliao dentro e fora do quadrado [0,1]x[0,1]
m = 40;
xx = linspace(-1.5,0.5,m);
[xp,yp] = ndgrid(xx,xx);
zp = eval_cshep2d(xp,yp,S);
// computando faceta (para definir uma cor para a regio de extrapolao
// e outra para a regio de interpolao)
[xf,yf,zf] = genfac3d(xx,xx,zp);
color = 2*ones(1,size(zf,2));
// ndices correspondentes  faceta na regio de interpolao
ind=find( mean(xf,"r")>0 & mean(xf,"r")<1 & mean(yf,"r")>0 & mean(yf,"r")<1 );
color(ind)=3;
xbasc();
plot3d(xf,yf,list(zf,color), flag=[2 6 4])
legends(["regio de extrapolao","regio de interpolao"],[2 3],1)
xselect()
 ]]></programlisting>
  </refsection>

  <refsection>
    <title>Ver Tambm</title>

    <simplelist type="inline">
      <member><link linkend="cshep2d">cshep2d</link></member>
    </simplelist>
  </refsection>

  <refsection>
    <title>Autores</title>

    <simplelist type="vert">
      <member>Robert J. Renka</member>

      <member>B. Pincon (interface Scilab)</member>
    </simplelist>
  </refsection>
</refentry>