スプライン関数の数学的性質
スプライン関数は、区間ごとに定義された多項式を滑らかに接続する区分多項式関数です。特に3次スプラインは回帰分析や補間において大事な役割を果たします。
3次スプライン関数の定義
区間$[a,b]$がノット点$a = t_0 < t_1 < \cdots < t_n = b$で分割されるとき、3次スプライン$S(x)$は:
- 各区間$[t_i, t_{i+1}]$で3次多項式
- ノット点で特定の連続性条件を満たす
Step 1: 3次スプライン関数の一般形
各区間$[t_i, t_{i+1}]$で:
$S_i(x) = a_i + b_i(x-t_i) + c_i(x-t_i)^2 + d_i(x-t_i)^3$
ここで$a_i, b_i, c_i, d_i$は各区間の係数です。
Step 2: ノット点での連続性条件
条件1: 関数値の連続性(C^0連続性)
各ノット点$t_i$ ($i = 1, 2, \ldots, n-1$)で:
$S_{i-1}(t_i) = S_i(t_i)$
これは必須条件です。関数がノット点で不連続になると、スプライン関数として意味がありません。
条件2: 1次導関数の連続性(C^1連続性)
各ノット点で:
$S'_{i-1}(t_i) = S'_i(t_i)$
これにより滑らかな曲線が得られ、角張った部分がなくなります。
C^1連続性の重要性
1次導関数の連続性により:
- 視覚的滑らかさ:曲線に角がない
- 物理的意味:速度の連続性(軌道計画等)
- 数値安定性:計算の安定性向上
Step 3: 高次導関数の連続性
条件3: 2次導関数の連続性(C^2連続性)
各ノット点で:
$S''_{i-1}(t_i) = S''_i(t_i)$
これは3次スプラインの特徴的条件で、曲率の連続性を保証します。
C^2連続性の物理的意味
- 曲率連続性:曲線の曲がり具合が滑らか
- 最小曲率エネルギー:自然な曲線形状
- 加速度連続性:物理的軌道での重要性
Step 4: 3次導関数の検討
条件4: 3次導関数の連続性(C^3連続性)
3次多項式の3次導関数は定数:
$S'''_i(x) = 6d_i$
各区間で定数であり、一般にノット点で不連続です:
$S'''_{i-1}(t_i) \neq S'''_i(t_i)$
つまり:$6d_{i-1} \neq 6d_i$
3次導関数が連続でない理由
3次スプラインで3次導関数の連続性を要求すると:
- 過度な制約:すべての区間で同じ3次多項式になる
- 柔軟性の喪失:局所的な調整が不可能
- 数学的必然:区分多項式の本質と矛盾
Step 5: 自由度の計算
パラメータ数:
制約条件数:
- 補間条件:$n+1$個(各データ点での値)
- C^1連続性:$n-1$個(内部ノット点)
- C^2連続性:$n-1$個(内部ノット点)
- 境界条件:2個(通常、自然境界条件)
合計:$(n+1) + (n-1) + (n-1) + 2 = 3n + 1$個
自由度:$4n - (3n + 1) = n - 1$個
Step 6: B-スプライン基底
実装ではB-スプライン基底を使用:
$S(x) = \sum_{i=1}^{n+3} c_i B_{i,3}(x)$
ここで$B_{i,3}(x)$は3次B-スプライン基底関数、$c_i$は制御点です。
Step 8: 自然3次スプライン
境界条件:
$S''(t_0) = S''(t_n) = 0$
これにより両端での自然な曲率を実現し、過度な湾曲を避けます。
まとめ:3次スプラインの特徴
| 連続性 | 3次スプライン | 物理的意味 |
|---|
| C^0 | ✓ 連続 | 位置の連続性 |
| C^1 | ✓ 連続 | 速度の連続性 |
| C^2 | ✓ 連続 | 加速度の連続性 |
| C^3 | ✗ 不連続 | ジャーク不連続 |
答え:3次導関数の連続性