1
1
<?xml version="1.0" encoding="UTF-8"?>
2
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:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="lsq_splin" xml:lang="ja">
4
<refname>lsq_splin</refname>
5
<refpurpose>重み付き最小二乗三次スプラインフィッティング</refpurpose>
9
<synopsis>[y, d] = lsq_splin(xd, yd [, wd], x)</synopsis>
17
<para>同じ大きさのベクトル, 3次スプラインによりフィッティング
26
(オプション) <literal>xd</literal>
27
および <literal>yd</literal>の形式のベクトルで,
35
<para>単調増加の (行または列) ベクトル,
44
<literal>x</literal>と同じ大きさのベクトル,
45
近似3次スプラインを定義する組(x,y,d).
54
この関数は,データ<literal>xd, yd, wd</literal>
55
(以下では,<emphasis>m</emphasis>をこれらのベクトルの長さと
57
スプライン折点<literal>x</literal>
58
(例えばn個の等間隔折点を選択したい場合には
59
<literal>x=linspace(min(xd),max(xd),n))</literal>とする
62
近似3次スプライン<emphasis>s</emphasis>を計算します.
63
<emphasis>S</emphasis>を折点
64
<emphasis>x1 < x2 < ... < xn</emphasis>を指定する
65
あらゆる3次スプライン関数の空間とする場合,
66
得られるスプライン <emphasis>s</emphasis>は次のようになります:
71
<imagedata align="center" fileref="../mml/lsq_splin_equation1.mml"/>
76
ただし,<emphasis>fはSの中の任意の値</emphasis>.
77
すなわち,<emphasis>S</emphasis>の任意の関数について,
81
スプライン<emphasis>s</emphasis>は
82
組<literal>(x,y,d)</literal>により完全に定義されます
83
(<literal>y</literal> および <literal>d</literal>
84
は,xiにおけるスプライン座標および1階微分のベクトル
85
です : <emphasis>yi=s(xi)</emphasis> および
86
<emphasis>di=s'(xi)</emphasis>) .
88
<link linkend="interp">interp</link>関数で行います.
94
<literal>wd</literal>が指定されない場合, 全ての点は
98
<emphasis>xd(k) が [x1,xn] の範囲で,wd(k) > 0</emphasis>の場合,
99
点 <emphasis>(xd(k),yd(k))</emphasis> は,
102
フィッティングにおいて無視したいデータ点に重み0 (または負の重み)
104
フィット処理が適用される点の総数が4個未満の場合,
108
ベクトル <literal>xd</literal> は昇順である必要は
112
数,<emphasis>xd(k)</emphasis>の位置,
113
<emphasis>x(i)</emphasis>の選択に基づき
116
この場合,Scilabコマンドウインドウに警告メッセージが
118
この関数は,<emphasis>m</emphasis>が<emphasis>n</emphasis>よりも
119
はるかに大きい場合に使用されることを意図しています.
120
このような場合,このような問題は発生しません.
125
<programlisting role="example"><![CDATA[
4
<refname>lsq_splin</refname>
5
<refpurpose>重み付き最小二乗三次スプラインフィッティング</refpurpose>
9
<synopsis>[y, d] = lsq_splin(xd, yd [, wd], x)</synopsis>
17
<para>同じ大きさのベクトル, 3次スプラインによりフィッティング
26
(オプション) <literal>xd</literal>
27
および <literal>yd</literal>の形式のベクトルで,
35
<para>単調増加の (行または列) ベクトル,
44
<literal>x</literal>と同じ大きさのベクトル,
45
近似3次スプラインを定義する組(x,y,d).
54
この関数は,データ<literal>xd, yd, wd</literal>
55
(以下では,<emphasis>m</emphasis>をこれらのベクトルの長さと
57
スプライン折点<literal>x</literal>
58
(例えばn個の等間隔折点を選択したい場合には
59
<literal>x=linspace(min(xd),max(xd),n))</literal>とする
62
近似3次スプライン<emphasis>s</emphasis>を計算します.
63
<emphasis>S</emphasis>を折点
64
<emphasis>x1 < x2 < ... < xn</emphasis>を指定する
65
あらゆる3次スプライン関数の空間とする場合,
66
得られるスプライン <emphasis>s</emphasis>は次のようになります:
71
<imagedata align="center" fileref="../mml/lsq_splin_equation1.mml"/>
76
ただし,<emphasis>fはSの中の任意の値</emphasis>.
77
すなわち,<emphasis>S</emphasis>の任意の関数について,
81
スプライン<emphasis>s</emphasis>は
82
組<literal>(x,y,d)</literal>により完全に定義されます
83
(<literal>y</literal> および <literal>d</literal>
84
は,xiにおけるスプライン座標および1階微分のベクトル
85
です : <emphasis>yi=s(xi)</emphasis> および
86
<emphasis>di=s'(xi)</emphasis>) .
88
<link linkend="interp">interp</link>関数で行います.
94
<literal>wd</literal>が指定されない場合, 全ての点は
98
<emphasis>xd(k) が [x1,xn] の範囲で,wd(k) > 0</emphasis>の場合,
99
点 <emphasis>(xd(k),yd(k))</emphasis> は,
102
フィッティングにおいて無視したいデータ点に重み0 (または負の重み)
104
フィット処理が適用される点の総数が4個未満の場合,
108
ベクトル <literal>xd</literal> は昇順である必要は
112
数,<emphasis>xd(k)</emphasis>の位置,
113
<emphasis>x(i)</emphasis>の選択に基づき
116
この場合,Scilabコマンドウインドウに警告メッセージが
118
この関数は,<emphasis>m</emphasis>が<emphasis>n</emphasis>よりも
119
はるかに大きい場合に使用されることを意図しています.
120
このような場合,このような問題は発生しません.
125
<programlisting role="example"><![CDATA[
126
126
// これは人工的な例で,データxdおよびydは
127
127
// 外乱付きのsin関数から構築されます
128
128
a = 0; b = 2*%pi;