CurveFitting[Spline] - 指定された端条件を用いたスプラインの計算
使い方
Spline(xydata, v, dgr, endpts)
Spline(xdata, ydata, v, dgr, endpts)
パラメータ
xydata - [[x0,y0],[x1,y1],...,[xn,yn]] の形のリスト、配列、または行列; データの点
v - 変数名または数値
dgr - (オプション) degree=d の形の等式(ここで d は正の整数)
endpts - (オプション) endpoints=e の形の等式(ここで e は 'natural', 'notaknot', 'periodic' のいずれか、または1つのリスト、配列、行列、またはベクトル)
xdata - [x1, x2, ..., xn] の形のリスト、配列、ベクトル; 独立変数
ydata - [y1, y2, ..., yn] の形のリスト、配列、ベクトル; 従属変数
|
説明
|
|
•
|
Spline ルーチンは、点 {(x0,y0),(x1,y1),...,(xn,yn)} を近似する変数 v について、次数が d の区分的多項式を計算します。
|
|
もし v が数値ならば、その点における多項式の値が返されます。デフォルトでは d の値は 3 です;これはオプション degree=d を使うことにより変更できます。
|
•
|
デフォルトでは、自然終端条件が使用されます。この設定は、endpoints=e オプションを用いることで変更が可能です。利用可能な他の端条件に関する詳細については、Spline の連続性および端条件 を参照して下さい。
|
•
|
Spline ルーチンは、2つの方法で呼び出すことが可能です。
|
|
1つめの方法、Spline(xydata, v, dgr, endpts) では、データ点に関する1つのリスト、配列、行列 [[x0, y0], [x1, y1], ..., [xn, yn]] を受け付けます。
|
|
2つめの方法、Spline(xdata, ydata, v, dgr, endpts) では、2つのリスト、配列、またはベクトルを受け付けます。この形式では、最初のデータの集合は独立変数の値 [x0, x1, ..., xn] から、2つのめ集合は従属変数の値 [y0, y1, ..., yn] から構成されます。各要素は、algebraic (代数)型でなくてはなりません。また独立変数の値は、全て異なる値であり、かつ昇順に並んでいる必要があります; そうでない場合は、予期せぬ結果が生じるかもしれません。
|
•
|
Spline ルーチンから返される結果は、次数 d によって決定されます。
|
|
d が奇数の場合、Spline ルーチンは、piecewise(v<x[1], p[1], ..., p[n]) の形の結果を返します。ここで n 個のスプラインセクション {p[1], p[2], ..., p[n]} は、多くても d 次の多項式になります。
|
|
d が偶数の場合、ルーチンは節点の中間点にスプラインの節を定義します。特に Spline ルーチンは、piecewise(v<z[1], p[1], ..., v<z[n], p[n], p[n+1]) の形の結果を返します。ここで、i=1, 2, ..., n に関して、z[i] = 1/2*(x[i-1]+x[i]) であり、そして n+1 個のスプラインセクション {p[1], p[2], ..., p[n]} は、多くても d 次の多項式になります。
|
•
|
入力データから一意の解が決定できない場合には、a[i, j] の形のパラメータ(ここで、a は自動的に生成される変数名、i, j は整数)を使用した、パラメトリックな解が返されます。
|
•
|
大きな問題でより効率を上げるためには、浮動小数点のデータ型を用いて、xdata および ydata をベクトルとして保持しておくように推奨します。
|
|
|
例
|
|
>
|
with(CurveFitting):
Spline([[0,0],[1,1],[2,4],[3,3]], v);
|
| (2.1) |
>
|
Spline([[0,0],[1,5],[2,-1],[3,0]], v, degree=2, endpoints='periodic');
|
>
|
Spline([0,1,2,3], [0,1,4,3], v, degree=1);
|
| (2.2) |
|
|