SSブログ

曲がった迷路その14 - バイキュービック補間の数学的な意味 [曲がった壁を持つ迷路の生成]

バイキュービック補間の係数をを僕なりに考えた。結果的には一般的に使われている係数を再発見することになった。

バイキュービック補間関数

補間のための関数を自分なりに考えることにしたが、なにかアイデアがあるわけではない。 シンク関数のいい近似になるような3次のベキ関数を作ってみる。前にも似たようなことをやった。

条件は

  1. 3次関数で補間
  2. [0,1)区間ではなるべくシンク関数に近い
  3. 区間を超えるところでは連続でかつ、1階微分可能
とする。みっつ目の条件の「区間を超えるところ」とはxの値が整数に近いあたりの、補間元の16点が変わりめでの振る舞いを安定にするためのもので、従って[1,2)区間ではシンク関数との差分は大きくなる。

まず[0,1)区間でまず補間関数を

0719eq32.png
とする。 こうしておけば
0719eq32a.png
を自動的に満たす。つまり格子点での値とその微係数がシンク関数に一致する3次関数ということである。

ひとつ残った定数c0

0719eq33.png
なるD0を最小にするように決める。つまり最小2乗法的に係数を決めようと言うことである。 そのためには
0719eq34.png
を解けばいい。結果は
0719eq35.png
となる。ほんまかいな、だけどなんてMathematicaは便利なんでしょ。

区間[1,2)に対しては

0719eq35a.png
とすると自動的に決まってしまって、
0719eq36.png
とするしかない。ここで4つ目の条件はx≥2に対してはずっと0なのでx=2で微係数が繋がるように(0になるように)した、ということ。このせいで区間[1,2)ではシンク関数よりかなりずれるし、x=2での微係数は、シンクが1/2なので全然違う。けどまあしかたがない。局所的な操作はつなぎ目の素性が悪くなりやすいので、微係数には気をつけたほうがいい。

これで区間[0,2]でシンク関数を近似する3次のベキ関数

0719eq37.png
を作ることができた。 ということで、さっきの式-31と比較するとc0がちょうど1なら完全に一致する(展開してみればわかる)。式-35とも値は近い。

式-31は整係数ながら[1,2)区間ではまったく同じ、[0,1)区間では非常にいい近似になっていると言うことがわかった。みんなちゃんと考えてるのね。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

献立07/20献立07/21 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。