« 1/15のGoogleトップページは女性数学者のコワレフスカヤ。今日1/16はダイアン・フォッシー。 | トップページ | ドクター中松がフロッピーとか石油のポンプとか発明したと信じてる人ってまだいたのか! »

2014年1月17日 (金)

ベッセル関数/変形ベッセル関数をExcel VBAで(ニューメリカルレシピ移植版)

VBAでベッセル関数を使う要件が出来たのだが、もちろん表計算では普通に計算できるし、VBAから遅くていいなら呼び出せる(はず)。だが、ちゃんとVBAの関数として使うアプリにしたいので、とりあえず手元にあったNumerical Recipes in Cのベッセル関数をそのままVBAに移植した。こちら。標準モジュールとして作ったので、そのままインポートしたら使える。

「Bessel.bas」をダウンロード

0次と1次は別関数で、

ベッセル関数 bessj0(x), bessj1(x), bessj(n,x) とbessy0(x), bessy1(x), bessy(n,x)

変形ベッセル関数 bessi0(x), bessi1(x), bessi(n,x) とbessk0(x), bessk1(x), bessk(n,x)

が普通に使えます。結果はこんな感じ。

Bessel

しかしCの関数を移植するのにいろいろ罠があって、、、

・"式が複雑すぎます"エラーがいっぱいでた。⇒しかたなく1行で書いてある式を何行にも分けた。

・m=2*((n+(int) sqrt(ACC*n))/2);とCで書いてあるものでハマった。どう直したかはファイル見てください。

いつものように結果のチェックも何もしてないので使う方は自己責任で!

« 1/15のGoogleトップページは女性数学者のコワレフスカヤ。今日1/16はダイアン・フォッシー。 | トップページ | ドクター中松がフロッピーとか石油のポンプとか発明したと信じてる人ってまだいたのか! »

学問・資格」カテゴリの記事

コメント

弾性波の数値解析の際に参考になりました。ありがとうございます。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

« 1/15のGoogleトップページは女性数学者のコワレフスカヤ。今日1/16はダイアン・フォッシー。 | トップページ | ドクター中松がフロッピーとか石油のポンプとか発明したと信じてる人ってまだいたのか! »

最近の記事

最近のコメント

2025年1月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
フォト
無料ブログはココログ