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>
|