痛恨のサインミス

昨日ふと思いついて、プログラムを見直したら、バグが見つかりました。
それを直したら、ちゃんとポリコリック相関係数が算出できました!ばんざーい。

サイン関数を間違えていたのだ。サインといっても三角関数のsinではなくて、符号を取り出すsgn関数。数値計算の業界ではよく用いられるのだけどCの標準ライブラリには入っていない。簡単に作れるんだけど、面倒なのでネットで検索して引っかかったやつを使ったのだ。が、これがまずかった。返す型がint型だったので、double型の計算式の中に組み込むと0になっちゃうんだな。ご丁寧に式全体をキャストしてあったので、見つからなかったわけです。ちくしょー。

とりあえずうまく出たので、続いて方程式を解くアルゴリズムを考える。ニュートン・ラフソン法がいいのはわかっているんだけど、微分方程式を導出できないので、わかりやすいところで二分法にしようと。戸川先生の本を読むと、それより効率の良い割線法(Secant法)というのがあったので、それを使ってみる。瞬時にできたし、収束スピードも抜群。よしよし。

しかし、すぐ次の壁にぶつかるのであった。

日記
連休、やってます

令和になりましたな。 世間は10連休。わたしは初日の土曜日に研究会を入れたし、最後の月曜日は授業日な …

日記
バルサン焚きました

去年の今頃もやったなぁと思いつつ。 家の中にムカデが出るんですよ。家族はみんな虫嫌いで、中でもムカデ …

日記
さようなら平成30年度

大学という年度単位で生きている私どもにとっては,今日がある意味一年の最後の日です。明日は新元号も,科 …