ベッセル関数/変形ベッセル関数をExcel VBAで(ニューメリカルレシピ移植版)
VBAでベッセル関数を使う要件が出来たのだが、もちろん表計算では普通に計算できるし、VBAから遅くていいなら呼び出せる(はず)。だが、ちゃんとVBAの関数として使うアプリにしたいので、とりあえず手元にあったNumerical Recipes in Cのベッセル関数をそのままVBAに移植した。こちら。標準モジュールとして作ったので、そのままインポートしたら使える。
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)
が普通に使えます。結果はこんな感じ。
しかしCの関数を移植するのにいろいろ罠があって、、、
・"式が複雑すぎます"エラーがいっぱいでた。⇒しかたなく1行で書いてある式を何行にも分けた。
・m=2*((n+(int) sqrt(ACC*n))/2);とCで書いてあるものでハマった。どう直したかはファイル見てください。
いつものように結果のチェックも何もしてないので使う方は自己責任で!
« 1/15のGoogleトップページは女性数学者のコワレフスカヤ。今日1/16はダイアン・フォッシー。 | トップページ | ドクター中松がフロッピーとか石油のポンプとか発明したと信じてる人ってまだいたのか! »
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2025年1月23日 5G Americasの新ホワイトペーパー「AI時代のセルラーネットワークの信頼性とセキュリティ」、KyoceraAVXの新薄膜フィルタ、TDKの車載/一般用C0G特性1,250V 3225サイズMLCC、Semtechの5G LPWAモジュール(2025.01.23)
- 高周波・RFニュース 2025年1月22日 everythingRFマガジンにMarkiの宇宙向けミリ波部品の記事、NordicのRF52810を使った太陽電池で動き暗闇でも3週間持つアセットトトラッカー、KnowlessのMRIの技術解説記事、Broadcomの3.5Dパッケージング解説(2025.01.22)
- UnityでVisual C#用の数値計算ライブラリMath.NET numericsを使う(3) 3D画面に補間(Interpolate) を行って表示する。リニア、3次スプライン、有理関数などいろいろ使える。(2025.01.23)
コメント
« 1/15のGoogleトップページは女性数学者のコワレフスカヤ。今日1/16はダイアン・フォッシー。 | トップページ | ドクター中松がフロッピーとか石油のポンプとか発明したと信じてる人ってまだいたのか! »
弾性波の数値解析の際に参考になりました。ありがとうございます。
投稿: Gui | 2016年5月16日 (月) 00時46分