2019年03月07日

誤差関数 erf(a, x)

誤差関数


 一般に 誤差関数 erf(x)
 
誤差関数erf

によって定義されますが、Excel の erf関数は積分下限値も変数として設定できるようになっているので、それに合わせて
 
Excel誤差関数erf

と定義することにします。この関数をグラフに図示すると次のようになります。

 erf.png
 

誤差関数の余弦


 誤差関数の余弦 cos(erf(0, x)) のグラフは次のような形になります。

 erfcos.png

 erf(0, x) + erf(1, x) の余弦関数も描いてみます。

 erfcos2.png
posted by Blog Cat at 16:33 | Comment(2) | TrackBack(0) | 特殊関数

2018年10月24日

組合せの公式を実数範囲に拡張します

組合せの概念を実数世界に広げます


 n 個のものから k 個とる組合せの数は
 
Excel数学 n 個のものから k 個とる組合せの数

で表されます。たとえば n = 20 の場合に、k の関数として 20Ck をプロットすると次のように、左右対称のグラフが描かれます。

 組合せの公式.png

 組合せの式においては n も k も整数なので、nCk も整数値しかとれませんが、ここで階乗を実数範囲まで拡張したガンマ関数
 
ガンマ関数の定義

を使うと、組合せの数を求める式も実数範囲まで拡張することができます。すなわち、s 個のものから x 個選ぶ数 (s, x はともに実数)を組合せ関数
 
Excel数学 組合わせ関数

によって定義すれば「 8.5 個のものから、2.3 個をとる組合せの数」という奇妙なものも計算できるわけです(もはや現実世界の事象とは対応していません)。変数が実数に拡張されたのでグラフも滑らかにつながります。さきほどの 20Ck に対応して C(20, x) のグラフを描いてみると次のようになります。

 実数組合せの公式.png

 このように、最初は現実世界に対応させて生まれた概念も、いったん数学の世界に持ち込まれると、次から次へと拡張定義することができます。実際、階乗の拡張概念であるガンマ関数は実数どころか複素変数で定義されているので、やろうと思えば組合せの式も複素数世界まで広げることもできるのです。
posted by Blog Cat at 11:55 | Comment(0) | TrackBack(0) | 特殊関数

2017年06月27日

VBA ベッセル関数を次々と足し合わせます

≫ こばとちゃんの英語コメディブログもよろしく!

VBA ベッセル関数を次々と足し合わせます


 ベッセル関数 Jk(x) を k = 0 から n まで足し合わせた関数を作ってみました。

ベッセル和関数

 Bn(x) を計算する VBA ユーザー定義関数(BESSELSUM関数)のコードは記事の一番下に載せておくので、自分のエクセルで試してみたい人はコピーしてください。n = 1 から 3 までのグラフは次のようになります。

 ベッセル和関数B.gif

 このように、n = 3 までは、あまり変化しません。

 ベッセル和関数C.gif

 しかし n = 4 以降は不規則な変化をみせるようになります。
 ところが n がある程度大きくなると次のような形に落ち着きます。

  ベッセル和関数D.gif

 上の図は n = 28 としていますが、以降はほとんど形は変わりません( k の大きなベッセル関数は微かな振動しかしないため、寄与がほとんどなくなります)。たぶんこれが最終形態と思われます( n = 100 まで確認)。

 'ベッセル関数の和を計算します

 Function BESSELSUM(x As Double, n As Integer) As Double

 Dim s As Double, i As Integer

 For i = 0 To n
  s = s + WorksheetFunction.BesselJ(x, i)
 Next i

 BESSELSUM = s

 End Function

 ワークシートで BESSELSUM関数を使用するときは

=BESSELSUM(x,n)

としてください(引数の x と n の順番に注意)。
 
posted by Blog Cat at 16:58 | Comment(0) | TrackBack(0) | 特殊関数

2017年05月10日

指数関数をガンマ関数で割ります

 en を n! で割った数列

指数関数を階乗で割る

が n → ∞ で 0 に収束することは微積分で有名な定理(というよりほとんど自明の事実)です。 n! が強すぎるので収束はとても早いです。グラフに描いてみると次のようになります。

 エクセルexp(n)÷n!.gif

 n = 10 あたりをとれば、ほぼ 0 に収束したと言ってもいいぐらいです。

指数関数をガンマ関数で割ります

 f(n) を実数関数 f(x) に拡張するには、ガンマ関数 Γ(x) を使います。
 Γ(n+1) = n! ですから、

指数関数をガンマ関数で割る

と定義します。これをグラフに描いてみると ......

 エクセルexpx÷gammaxグラフ.gif

 このように滑らかな曲線が得られます。
 f(n) の各点も、もちろんこの曲線上に乗っています。
 ところで、この関数で指数部分を xcosx に変えて、

指数関数をガンマ関数で割るA

という関数をつくってみると ......

 エクセルexpxcosxグラフ.gif

 こんなふうに2つの山ができました。

 姉妹サイトの 整数問題集 にまたいくつか問題が加えられているので挑戦してみてください。けっこう手応えのある問題を揃えてあります。
 
posted by Blog Cat at 16:52 | Comment(0) | TrackBack(0) | 特殊関数

2016年08月24日

ベッセル関数のタンジェント

≫ [Amazon数学書籍] キーポイント行列と変換群

 tanx は π/2 + nπ(n = ±1, ±2, ... )で発散する関数ですが、この変数に値域の大きさが |π/2| を超えないような関数を入れると全域で連続な関数となります。今回はその1例としてベッセル関数 Jn(x) を組み込んでみます。ベッセル関数についてはこちらを参照してください。 |Jn(x)| ≦ 1です。

ベッセル関数のタンジェント

 y = tan[J0(x)] のグラフを描いてみます。

 タンジェントベッセル@.gif

 原点で最大値となり、|x| の増加とともに減衰する振動関数です。
 tanx, J0(x) ともに偶関数なので、その合成関数もまた偶関数となります。

足し合わせたベッセル関数を組み込みます

 値域の大きさが|π/2| を超えない範囲でベッセル関数の線形結合をとれば、連続性が失われません。例として

y = tan[J0(x)/4 + J1(x)/2 + J2(x)]

という関数のグラフを描いてみます。

 タンジェントベッセルA.gif

 係数によって原点にピークをもつ J0(x) の寄与を抑えて、相対的に立ち上がりの遅い J1(x) や J2(x) の寄与を増やしているので、最大値の位置は原点からずれます。

ベッセル関数と三角関数を組み込みます

 J1(x) と cosx/2 を組み込んで、

y = tan[J1(x) + cosx/2]

という関数のグラフを描いてみます。

 タンジェントベッセルB.gif

 cosx/2 の効果があるので、振幅が 0 まで落ちることはなく、原点から離れたところでも一定の振動があります。
 
posted by Blog Cat at 17:10 | Comment(0) | TrackBack(0) | 特殊関数
検索
Excel VBA 数学教室
数学問題集(解答付き)
こばとの数学基礎講座
下剋上算数
ベクトル解析
サッカーマティクス
Excelで学ぶ統計解析
和算的思考力
学び直し
整数論の理論と演習
大人が手こずる算数
東大生の知恵袋
フーリエ変換
インド式秒算術
Excelで学ぶ微分積分
Excel 数学シミュレーション
オイラーの贈物


ファン
最新記事
カテゴリーアーカイブ