japanese translation updated.
[scilab.git] / scilab / modules / interpolation / help / ja_JP / splin.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <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="splin" xml:lang="ja">
4
5 <refnamediv>
6
7 <refname>splin</refname>
8
9 <refpurpose>3次スプライン補間</refpurpose>
10
11 </refnamediv>
12
13 <refsynopsisdiv>
14
15 <title>呼び出し手順</title>
16
17 <synopsis>d = splin(x, y [,spline_type [, der]])</synopsis>
18
19 </refsynopsisdiv>
20
21 <refsection>
22
23 <title>引数</title>
24
25 <variablelist>
26     
27     <varlistentry>
28         
29         <term>x</term>
30         
31         <listitem>
32             
33             <para>単調増加する (列または行) ベクトル (x は2つ以上の要素を有する
34                 
35                 必要があります)
36                 
37             </para>
38             
39         </listitem>
40         
41     </varlistentry>
42     
43     <varlistentry>
44         
45         <term>y</term>
46         
47         <listitem>
48             
49             <para>
50                 
51                 <literal>x</literal>と同じ大きさのベクトル
52                 
53             </para>
54             
55         </listitem>
56         
57     </varlistentry>
58     
59     <varlistentry>
60         
61         <term>spline_type</term>
62         
63         <listitem>
64             
65             <para>(オプション) 計算するスプラインの種類を選択する文字列</para>
66             
67         </listitem>
68         
69     </varlistentry>
70     
71     <varlistentry>
72         
73         <term>der</term>
74         
75         <listitem>
76             
77             <para>(オプション) 2つの要素を有するベクトルで, 
78                 
79                 (spline_type="clamped"の場合に使用される)端点の微係数を有します
80                 
81             </para>
82             
83         </listitem>
84         
85     </varlistentry>
86     
87     <varlistentry>
88         
89         <term>d</term>
90         
91         <listitem>
92             
93             <para>
94                 
95                 <literal>x</literal>と同じ形式のベクトル
96                 
97                 (<literal>di</literal> は,
98                 
99                 <literal>xi</literal>)におけるスプラインの微係数です.
100                 
101             </para>
102             
103         </listitem>
104         
105     </varlistentry>
106     
107 </variablelist>
108
109 </refsection>
110
111 <refsection>
112
113 <title>説明</title>
114
115 <para>この関数は,
116     
117     点<emphasis>(xi,yi)</emphasis>を補間する,すなわち,
118     
119     <emphasis>i=1,..,n</emphasis>について<emphasis>s(xi)=yi</emphasis>
120     
121     となる
122     
123     3次スプラインまたはサブスプライン<emphasis>s</emphasis>
124     
125     を計算します.
126     
127     得られるスプライン <emphasis>s</emphasis>は,
128     
129     <literal>(x,y,d)</literal>により完全に定義されます.
130     
131     ただし,<literal>d</literal>は<literal>xi</literal>における
132     
133     微係数のベクトルです:
134     
135     <emphasis>s'(xi)=di</emphasis> (これは
136     
137     <emphasis>エルミート</emphasis>形式と呼ばれます). 
138     
139     いつくかの点におけるスプラインの評価は<link linkend="interp">interp</link>
140     
141     関数により行われます.
142     
143     適当な<literal>spline_type</literal>パラメータを選択することにより,
144     
145     いくつかの種類のスプラインを計算することができます:
146     
147 </para>
148
149 <variablelist>
150     
151     <varlistentry>
152         
153         <term>"not_a_knot"</term>
154         
155         <listitem>
156             
157             <para>これはデフォルトで,
158                 
159                 3次スプラインが以下の条件 (n個の点 x1,...,xnを考慮)により計算されます:
160                 
161             </para>
162             
163             <informalequation>
164                 
165                 <mediaobject>
166                     
167                     <imageobject>
168                         
169                         <imagedata align="center" fileref="../mml/splin_equation1.mml"/>
170                         
171                     </imageobject>
172                     
173                 </mediaobject>
174                 
175             </informalequation>
176             
177         </listitem>
178         
179     </varlistentry>
180     
181     <varlistentry>
182         
183         <term>"clamped"</term>
184         
185         <listitem>
186             
187             <para>この場合,3次スプラインは端点における微係数
188                 
189                 を用いて計算されます.この微係数は最後の引数<literal>der</literal>
190                 
191                 で指定されます:
192                 
193             </para>
194             
195             <informalequation>
196                 
197                 <mediaobject>
198                     
199                     <imageobject>
200                         
201                         <imagedata align="center" fileref="../mml/splin_equation2.mml"/>
202                         
203                     </imageobject>
204                     
205                 </mediaobject>
206                 
207             </informalequation>
208             
209         </listitem>
210         
211     </varlistentry>
212     
213     <varlistentry>
214         
215         <term>"natural"</term>
216         
217         <listitem>
218             
219             <para>3次スプラインは次の条件により計算されます:</para>
220             
221             <informalequation>
222                 
223                 <mediaobject>
224                     
225                     <imageobject>
226                         
227                         <imagedata align="center" fileref="../mml/splin_equation3.mml"/>
228                         
229                     </imageobject>
230                     
231                 </mediaobject>
232                 
233             </informalequation>
234             
235         </listitem>
236         
237     </varlistentry>
238     
239     <varlistentry>
240         
241         <term>"periodic"</term>
242         
243         <listitem>
244             
245             <para>周期的3次スプラインは次の条件により計算されます
246                 
247                 (<literal>y</literal>は<emphasis>y1=yn</emphasis>を確認する必要があります):
248                 
249             </para>
250             
251             <informalequation>
252                 
253                 <mediaobject>
254                     
255                     <imageobject>
256                         
257                         <imagedata align="center" fileref="../mml/splin_equation4.mml"/>
258                         
259                     </imageobject>
260                     
261                 </mediaobject>
262                 
263             </informalequation>
264             
265         </listitem>
266         
267     </varlistentry>
268     
269     <varlistentry>
270         
271         <term>"monotone"</term>
272         
273         <listitem>
274             
275             <para>
276                 
277                 この場合,サブスプライン (<emphasis>s</emphasis> は
278                 
279                 1回のみ連続的に微分可能)は,<emphasis>s</emphasis>が
280                 
281                 各区間で単調となるような<emphasis>di</emphasis>
282                 
283                 に関するローカルなスキームにより計算されます:
284                 
285             </para>
286             
287             <informalequation>
288                 
289                 <mediaobject>
290                     
291                     <imageobject>
292                         
293                         <imagedata align="center" fileref="../mml/splin_equation5.mml"/>
294                         
295                     </imageobject>
296                     
297                 </mediaobject>
298                 
299             </informalequation>
300             
301         </listitem>
302         
303     </varlistentry>
304     
305     <varlistentry>
306         
307         <term>"fast"</term>
308         
309         <listitem>
310             
311             <para>
312                 
313                 この場合, サブスプラインも<emphasis>di</emphasis>
314                 
315                 に関する簡単でローカルなスキームにより計算されます:
316                 
317                 d(i) は (x(i-1),y(i-1)), (x(i),y(i)),(x(i+1),y(i+1)) の多項式補間の
318                 
319                 x(i) における微係数です.
320                 
321                 ただし,端点を除きます
322                 
323                 (d1 は最も左の3点から, dn は最も右の3点から計算されます).
324                 
325             </para>
326             
327         </listitem>
328         
329     </varlistentry>
330     
331     <varlistentry>
332         
333         <term>"fast_periodic"</term>
334         
335         <listitem>
336             
337             <para>前のオプションと同じですが,基本となる関数の周期性に
338                 
339                 基づき <emphasis>d1 = s'(x1) = dn = s'(xn)</emphasis>に関する
340                 
341                 中心化式も使用します
342                 
343                 (<literal>y</literal>は<emphasis>y1=yn</emphasis>も
344                 
345                 満たす必要があります).
346                 
347             </para>
348             
349         </listitem>
350         
351     </varlistentry>
352     
353 </variablelist>
354
355 </refsection>
356
357 <refsection>
358
359 <title>注意</title>
360
361 <para>精度の観点からは,端点の微係数が既知の場合,
362     
363     基本的に<emphasis role="bold">clamped</emphasis>型を使用してください.
364     
365     そうでない場合は,<emphasis role="bold">not_a_knot</emphasis>型を使用して
366     
367     ください.
368     
369     しかし,基本的な近似関数に周期性がある場合には,
370     
371     <emphasis role="bold">periodic</emphasis>型を使用してください.
372     
373     良い近似を行うことで,これらの種類のスプラインは,誤差の漸近特性
374     
375     として<literal>O(h^4)</literal>を得ることができます.
376     
377     基本関数の2階微分が0でない限り,
378     
379     <emphasis role="bold">natural</emphasis>を使用しないでください.
380     
381 </para>
382
383 <para>
384     
385     <emphasis role="bold">monotone</emphasis>, <emphasis role="bold">fast</emphasis> (または <emphasis role="bold">fast_periodic</emphasis>) 型は,振動を抑制する
386     
387     といったいくつかのケースでは有用です
388     
389     (これらの種類のサブスプラインは<literal>O(h^3)</literal>の
390     
391     誤差漸近特性を有します).
392     
393 </para>
394
395 <para>
396     
397     <emphasis>n=2</emphasis>の(そして<literal>spline_type</literal> が
398     
399     <emphasis role="bold">clamped</emphasis>ではない) 場合,
400     
401     線形補間が使用されます.
402     
403     <emphasis>n=3</emphasis> で <literal>spline_type</literal> が
404     
405     <emphasis role="bold">not_a_knot</emphasis>の場合, <emphasis role="bold">fast</emphasis> サブスプライン型が実際に計算されます.
406     
407 </para>
408
409 </refsection>
410
411 <refsection>
412
413 <title>例</title>
414
415 <programlisting role="example"><![CDATA[ 
416 // 例 1
417 deff("y=runge(x)","y=1 ./(1 + x.^2)")
418 a = -5; b = 5; n = 11; m = 400;
419 x = linspace(a, b, n)';
420 y = runge(x);
421 d = splin(x, y);
422 xx = linspace(a, b, m)';
423 yyi = interp(xx, x, y, d);
424 yye = runge(xx);
425 clf()
426 plot2d(xx, [yyi yye], style=[2 5], leg="interpolation spline@exact function")
427 plot2d(x, y, -9)
428 xtitle("interpolation of the Runge function")
429  ]]></programlisting>
430
431 <scilab:image>
432     
433     deff("y=runge(x)","y=1 ./(1 + x.^2)")
434     
435     a = -5; b = 5; n = 11; m = 400;
436     
437     x = linspace(a, b, n)';
438     
439     y = runge(x);
440     
441     d = splin(x, y);
442     
443     xx = linspace(a, b, m)';
444     
445     yyi = interp(xx, x, y, d);
446     
447     yye = runge(xx);
448     
449     clf()
450     
451     plot2d(xx, [yyi yye], style=[2 5], leg="interpolation spline@exact function")
452     
453     plot2d(x, y, -9)
454     
455     xtitle("interpolation of the Runge function")
456     
457 </scilab:image>
458
459 <programlisting role="example"><![CDATA[ 
460 // 例 2 : ランダムなデータで異なるスプラインの動作を示す
461 a = 0; b = 1;        // 補間の間隔
462 n = 10;              // 補間点のnb
463 m = 800;             // 評価を行う離散点
464 x = linspace(a,b,n)'; // 補間点の横座標
465 y = rand(x);          // 補間点の縦座標
466 xx = linspace(a,b,m)';
467 yk = interp(xx, x, y, splin(x,y,"not_a_knot"));
468 yf = interp(xx, x, y, splin(x,y,"fast"));
469 ym = interp(xx, x, y, splin(x,y,"monotone"));
470 clf()
471 plot2d(xx, [yf ym yk], style=[5 2 3], strf="121", ...
472        leg="fast@monotone@not a knot spline")
473 plot2d(x,y,-9, strf="000")  // to show interpolation points
474 xtitle("Various spline and sub-splines on random data")
475 show_window()
476  ]]></programlisting>
477
478 <scilab:image>
479     
480     a = 0; b = 1;        // interval of interpolation
481     
482     n = 10;              // nb of interpolation  points
483     
484     m = 800;             // discretization for evaluation
485     
486     x = linspace(a,b,n)'; // abscissae of interpolation points
487     
488     y = rand(x);          // ordinates of interpolation points
489     
490     xx = linspace(a,b,m)';
491     
492     yk = interp(xx, x, y, splin(x,y,"not_a_knot"));
493     
494     yf = interp(xx, x, y, splin(x,y,"fast"));
495     
496     ym = interp(xx, x, y, splin(x,y,"monotone"));
497     
498     clf()
499     
500     plot2d(xx, [yf ym yk], style=[5 2 3], strf="121", ...
501     
502     leg="fast@monotone@not a knot spline")
503     
504     plot2d(x,y,-9, strf="000")  // to show interpolation points
505     
506     xtitle("Various spline and sub-splines on random data")
507     
508     show_window()
509     
510 </scilab:image>
511
512 </refsection>
513
514 <refsection role="see also">
515
516 <title>参照</title>
517
518 <simplelist type="inline">
519     
520     <member>
521         
522         <link linkend="interp">interp</link>
523         
524     </member>
525     
526     <member>
527         
528         <link linkend="lsq_splin">lsq_splin</link>
529         
530     </member>
531     
532 </simplelist>
533
534 </refsection>
535
536 <refsection>
537
538 <title>履歴</title>
539
540 <revhistory>
541     
542     <revision>
543         
544         <revnumber>5.4.0</revnumber>
545         
546         <revremark>以前では, 入力引数の虚部は暗黙のうちに無視されていました.</revremark>
547         
548     </revision>
549     
550 </revhistory>
551
552 </refsection>
553
554 </refentry>
555