多項式補間

3点の座標が分かってれば、2次関数が作れるので、3つ点を取って2次の補間を掛けるプログラムを作る。こんなもんは二次関数についての正準変換を繰り返していって、Jordan標準型だか何だかに行列をしてやれば良いんだが、そんなことしてもつかれるので、Lagrangeの標準型だか何だかを使う。
  y=P(x)=\frac{(x-x_2)(x-x_3)}{(x_1-x_2)(x_1-x_3)}y_1+\frac{(x-x_1)(x-x_2)}{(x_3-x_1)(x_3-x_2)}y_2+\frac{(x-x_1)(x-x_2)}{(x_3-x_1)(x_3-x_2)}y_3
何か良く分かんねーけど、これはもう呪文みたいなもんだと思い込んで使うことにする。まあ何となくこんな形になるかもねと思ってみたりする。でもって、Pはあるxでのyの値なのだから、まあ任意の値な訳だが、これについては漸化式を数値的に解くことで求めることが出来るらしい。
然し乍ら既に数値的にという所にゲロをブチまけそうな予感をひしひしと感じるので、ここはある程度自分の算数の能力を使ってなんとかしようと試みたりする。
っつーか、良く多項式近似して何次の相関がありましたとか言う人がいるけどさあ、あれって、プロットする点がN個あればN-1次の相関があるに決まってるじゃん。たまたまN-1次より小さいだけのことでさあ。ああいうことして面白いかね。と思ったこともあった。ということで、意味の分からない点列について適当な補間をかけて、何次のうんちゃらとか言うとすげーバカっぽく見えるので止めた方がよさげです。何でかって、そりゃあ上にあるLagrangeの標準型をさらに一般化すれば、N点あればN-1次の多項式を作れるからさ。


なんつーか、時間がないんで2次補間のプログラムはコーディングしてちょっとだけデバッグして、即実装ですよ。こんなんでいいんですかーー。こんな適当な結果を学会で発表して良いんですかーー。
っつーかマジで時間がないよ。誰か時間くれ。
眠くて、体調悪い中、クタクタコーディングしてるんだが、すげー冗長なプログラムが出来た。
だせーよ、ダサ過ぎだよ俺。
でもサブルーチンに放り出す気力もなく、こうして徒然にプログラムが長くなっていく...orz
とっても長いプログラムが出来ました。
最悪ですよ。もうね、穴掘ってそこに埋まりたいくらい最悪。っつーか冗長。
やっぱね、main文は短い方が良いと思うんですよ。ダラダラダラダラと式をmain文に書いても後で混乱するだけなんですよね。だからちゃんとサブルーチンを作ってだな、そこで作業すれば良いんだよ。
でも出来ないんだよ。
眠いから。
ということで長さ52行の糞ったれなメイン文を伴って最後の〆のプログラムが完成しました。今後これを反面教師にもっと時間に余裕を持って、簡潔なコードの作成を目指します。っつーか参考にならないっていう点でこのプログラムは教育的だ。