fc2ブログ
プロフィール

kazutabakun

Author:kazutabakun
好奇心旺盛でいろいろなことに興味を持つタイプ。

最新記事
Amazon
時計
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
FC2ブログランキング
気に入ったら下記をクリックしてください。

FC2Blog Ranking

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

EXCELで遊ぼ(4):積分の計算もしてみましょうか。

かなり前にEXCELで微分をトライしたことがありました。
前の記事リンク → EXCELで遊ぼ(2):微分の計算をしてみよう。

その第二弾で今回はEXCELで積分を試してみたいと思います。今回も一変数に限っての計算です。また積分の式を出すのではなくてその値をグラフであらわそうという事です。積分計算機を作る企てです。もう一つ、EXCEL機能のマクロなどを使わないでセルに単に式を入力することだけで積分計を作ることにしました。

さっそくですが、この試みを図にしたものを示します。下のグラフです。

     Graph Integral

定積分は範囲aからn∆xまでの関数f(x)で示される曲線とf(a)とf(∆x)とx軸で囲まれる面積に等しいという事を利用して近似的にこの面積をエクセルで計算します。なおここでG(x)というのはf(x)の不定積分関数の事です。数式でこの定積分を書けば下記の式になります。

     式1

近似を行うためにこの面積をたくさんの矩形(台形)の和で求めることにします。グラフでいえばS1,S2,などです。1番目からn番目までの微小面積Siの和を式で表すと、

     Equ2.png

次の式が重要です。定積分した値は微小台形の面積の和でほぼ近似されると考えるので、これを式の形で書くと下記のようになります。再右辺が積分値にほぼ同じという意味ですね。

     式3

さてi番目の矩形の面積はこれを台形(長方形よりはもっと近似値がよくなる期待で)と見て 面積=(上低+下低)x高さの半分で計算すると下記の式で表されます。この式はエクセルに入力される式です。

     latex-image-1_20111018111025.png

上記の式でS1,S2を順番に計算してそれを逐次足していくとn番目で下記の式が成り立ちますね。

     式5

あるいは変形して、

     式6

この考え方でエクセルに実際に使用する計算式を入力します。直感的に分かるように初期条件f(a)のaの値を、

     latex-image-2_20111018111831.png

としてG(a)をG(0)とします。1番目からn番目の各面積を下記の式で計算しています。逐次計算式です。S1からSnまでの和がndxまでの定積分値になるわけです。

     latex-image-3_20111018112533.png

     latex-image-4_20111018113120.png

     latex-image-5_20111018113630.png

     latex-image-6_20111018113624.png

例題1:三角関数の場合 y=sin(x)を積分する。
EXCELに入力している関数は下記の通りです。クリックすると大きくなります。y=sin(x)の場合積分すると
例第1式
になることが分かっているので積分定数Cを決めて(この場合は+1)計算式結果G(x)の左隣の欄の数字と比較しています。
計算式1

計算結果の一部分とf(x)のグラフ(1-1)と計算結果とG(x)の対比グラフ(1-2)を示します。
計算例1

f(x).png G(x).png
図 1-1 y=f(x)                    図 1-2 y=G(x) and Calculated value by EXCEL
図1-2では積分値とG(x)が重なっているのでG(x)のグラフの色が上書きされています。つまりこの程度のグラフの粗さだと結果は同じといえるという事ですね。

例題2:二次関数の場合 y=x^2
上記と同じ計算手順でおこなったデータです。初期条件aはこの場合a=-2.9になっていますので、0ではありません。
例第2式
x=-2.8の時G(x)=G(-2.8)-G(-2.9)で計算しています。同じくx=-2.7の場合はG(x)=G(-2.7)-G(-2.9)になります。
計算式2

上記計算式による計算結果の一部
計算例2

結果のグラフ。f(x)とG(x)および近似計算結果です。
f2(x).png G2(x)_20111018130959.png

図2-1 原関数 y=f(x)         図2-2 G(x)とEXCELで計算した積分値
図1-2とおなじように図2-2では積分値とG(x)が重なっているのでG(x)のグラフの色が上書きされています。

例題3:任意の数値
ここからがこのエクセル計算の醍醐味です。いままでは既知の関数を積分してきましたが、実はほとんど実際のケースではそのような関数であらわされる事象がなく、それでも積分値を知らなければならないことがあります。その場合はこの方法が役に立つ場合があります。
y=f(x)として矩形のような信号を取り扱います。さてその積分がどうなるかを示しました。
今回はエクセルに入力する式はありませんので直接f(x)の欄に数字を直接入力します。それを例の計算式で積分します。計算結果の一部とそのグラフを示します。

∆xの大きさをどの程度にするかは入力する周波数の上限から決めればいいと思います。例えば∆xをある波長と考えるとシャノンのサンプリングの法則などでどれ位の周波数の信号が欲しいか?等で決めることができます。今までの例題ではこの値を0.1にしています。これも相対的なもので何に対して0.1かという事が重要な観点になります。100位の範囲を取り扱う対象だと誤差が0.1/100=0.1%位と考えられますね。

計算式3

計算結果の一部とグラフです。G(x)とf(x)の位置が入れ替わってしまい申し訳ありません。
計算例3

G3(x)vsF3(x).png
図3は元の数値と積分計算値を同じグラフに描きました。元の数値が変わるに連れて積算値が変わっていくのがよくわかります。矩形のf(x)を積分するとちょっと変わったグラフになりますね。

さて、これでEXCELで微分と積分が出来るようになりました。


スポンサーサイト



Comment

No title

Hagyさん リンクOKです。これからもよろしくお願いします。

有用でした.

Hagy と申します.
大変に勉強になりました.
参考にさせていただきました.ありがとうございました.
素晴らしい知的財産ですね.
ご迷惑にならないよう心掛けつつ,これからちょくちょくお世話になると思います.よろしくお願いいたします.
事後報告ながら,当ブログにリンクさせていただきました.
http://hagy-box.cocolog-nifty.com/blog/
ご迷惑でしたら削除いたします.
非公開コメント