<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) 2008 - INRIA - Farid BELAHCENE
 *
 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.
 *
 -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="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="interp1" xml:lang="ja">
    <refnamediv>
        <refname>interp1</refname>
        <refpurpose>一次元補間関数</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>呼び出し手順</title>
        <synopsis>
          yp = interp1(x, y, xp)
          yp = interp1(x, y, xp, method)
          yp = interp1(x, y, xp, method, extrapolation)
        </synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>パラメータ</title>
        <variablelist>
            <varlistentry>
                <term>xp</term>
                <listitem>
                    <para>実数スカラー, ベクトルまたは行列 (またはハイパー行列)</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>x</term>
                <listitem>
                    <para>実数ベクトル</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>method</term>
                <listitem>
                    <para>(オプションの) 補間方法を定義する文字列</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>extrapolation</term>
                <listitem>
                    <para>(オプションの) 文字列, または領域 [x1,xn] の外側の xp(j)の値について
                        yp(j) の要素を定義する実数値.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>yp</term>
                <listitem>
                    <para>ベクトルまたは行列 (またはハイパー行列)</para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>説明</title>
        <para>
            <literal>(x,y,xp)</literal>を指定すると, この関数は
            xp に対応する yp の要素を x および y により定義された
            (デフォルトでは線形)補間により計算します.
        </para>
        <para>
            <literal>yp</literal> がベクトルの場合,
            xp の長さは <literal>yp</literal> の長さに等しくなります.
            <literal>yp</literal> が行列の場合,
            <literal>xp</literal> は yp の各列の長さと同じ長さとなります.
            <literal>yp</literal> がハイパー行列の場合,
            <literal>xp</literal> の長さは<literal>yp</literal> の最初の次元と同じ
            になります.
        </para>
        <para>size(y)=[C,M1,M2,M3,...,Mj] かつ size(xp)=[N1,N2,N3,...,Nk] の場合,
            size(yp)=[N1,N2,..,Nk,M1,M2,...Mj] となり, x の長さは size(y,1) に等しくなります.
        </para>
        <para>
            <literal>method</literal> パラメータは補間の計算手法を設定します.
        </para>
        <variablelist>
            <varlistentry>
                <term>"linear"</term>
                <listitem>
                    <para>
                        補間は線形手法により定義されます ( <link linkend="interpln">interpln</link>参照)
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>"spline"</term>
                <listitem>
                    <para>補間は3次スプライン補間により定義されます (
                        <link linkend="splin">splin</link> , <link linkend="interp">interp</link>参照)
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>"nearest"</term>
                <listitem>
                    <para>各 xp(j), yp(j) の値は,
                        xp(j)の最近傍にある x(i) に対応する y(i) の値を選択します.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
        <para>
            <literal>extrapolation</literal> パラメータは捕外用,すなわち
            <literal>xp(i) </literal> が領域[x1,xn]内にない時
            の計算手法を設定します.
        </para>
        <variablelist>
            <varlistentry>
                <term>"extrap"</term>
                <listitem>
                    <para>捕外が定義された手法により実行されます.
                        yp=interp1(x,y,xp,method,"extrap")
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>実数値</term>
                <listitem>
                    <para>捕外用の実数値を選択できます.
                        この場合, 区間 [x1,xn] の中にない xp(i) について yp(i) は
                        この値とします.
                        yi=interp1(x,y,xp,method, 0)
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>デフォルトの動作</term>
                <listitem>
                    <para>捕外は(スプライン手法の場合)定義された手法により行われます
                        線形または最近傍手法の場合は nan となります.
                        yp=interp1(x,y,xp,method)
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>例</title>
        <programlisting role="example"><![CDATA[
x = linspace(0, 3, 20);
y = x^2;
xx = linspace(0, 3, 100);
yy1 = interp1(x, y, xx, 'linear');
yy2 = interp1(x, y, xx, 'spline');
yy3 = interp1(x, y, xx, 'nearest');
plot(xx, [yy1; yy2; yy3], x, y, '*')
xtitle('interpolation of square function')
legend(['linear','spline','nearest'], "in_upper_left");
 ]]></programlisting>
        <scilab:image>
            x=linspace(0,3,20);
            y=x.^2;
            xx=linspace(0,3,100);
            yy1=interp1(x,y,xx,'linear');
            yy2=interp1(x,y,xx,'spline');
            yy3=interp1(x,y,xx,'nearest');
            plot(xx',[yy1;yy2;yy3]',x,y,'*')
            xtitle('interpolation of square function')
            legend(['linear','spline','nearest'],a=2)
        </scilab:image>
    </refsection>
    <refsection role="see also">
        <title>参照</title>
        <simplelist type="inline">
            <member>
                <link linkend="interp">interp</link>
            </member>
            <member>
                <link linkend="interpln">interpln</link>
            </member>
            <member>
                <link linkend="splin">splin</link>
            </member>
        </simplelist>
    </refsection>
    <refsection>
        <title>履歴</title>
        <revhistory>
            <revision>
                <revnumber>5.4.0</revnumber>
                <revremark>以前では, 入力引数の虚部は暗黙のうちに無視されていました.</revremark>
            </revision>
        </revhistory>
    </refsection>
</refentry>
