Google wave の招待が届きました.前に登録申請してたようなしてなかったような,記憶がぼんやりです.でもせっかくですし,ラッキーと思い早速 sign in してみました.
この10年で最大級と言われる台風18号,福岡は直撃を免れて良かったと思います.
台風が近づいている日の夕方の空は不思議な印象を受けました.
先週,ぶらぶらしているときに手に取って衝動買いしちゃった本,「整理 HACKS! (小山龍介)」.
なんというか,整理するのが苦手というか,整理する気がさらさらないのに買っちゃいました.

書いている内容は,これといってとくに目新しいものはなかったのですが,前に少し試して使わなかったサービス,Evernote や SugarSync をきちんと使ってみようかなという気分になりました.
そちらの方はまたおいおいと..
それにしても,この本に書いている事をすべて実践すると結構なお金が必要になります.費用対効果からそれを安いと考えるか,高いと考えるかは人それぞれでしょうけども.
もちろんお金をかけずにできることも沢山載ってます.
それと,最近の WEB サービスを利用するハック(?)など,わりとすぐに古くなる内容も多いので読むなら早めに読んだ方がいいと思います.
chitsd5u4v
前回のエントリの Legendre の多項式...微分したものを計算機に実装するにはどうしたらよいのか,なんてことを考えてたりしました.はじめは前回のエントリーで記述した関数から のようなものを考えればいいのかなと思ったのですが,そんなことせずとも,単純に次のような漸化式を考えればいいのかな...と.
こちらの方がはじめに考えた方法よりも正確な値が求められて良い感じがします.また前回のエントリのプログラムと組み合わせると次のように簡単に記述できそうです.
double dLegendreFunction(int n, double x){
if(n==0)
return 0;
else if(n==1)
return 1;
else if(n>1){
return (
(2*n-1)/(double)n*(legendreFunction(n-1,x)
+x*dLegendreFunction(n-1,x))
- (n-1)/(double)n*dLegendreFunction(n-2,x)
);
}
else
return 0;
}
あまり自信はありませんが.
Legendre 多項式...
これを計算機で計算させるために...
このような漸化式を用いて次のような感じで実装.
// Legendre Function
double legendreFunction(int n, double x){
if(n==0)
return 1;
else if(n==1)
return x;
else if(n>1){
return (
(2*n-1)/(double)n*x*legendreFunction(n-1,x)
- (n-1)/(double)n*legendreFunction(n-2,x)
);
}
else
return 0;
}
簡単に使えることを優先して再帰的な処理にしているので,次数の増加に伴い計算量が爆発的に増大します.計算時間がネックになる場合は,バッファを用意したり GPGPU などの並列処理計算を考えた方がよいと思います.そちらも少し考えようと思います.

RECENT COMMENTS