エクセルを用いたガウス・ルジャンドル積分公式による数値積分

        

Excelを用いた科学技術計算が第2版になりました 30年10月

amazon:Excelで操る! ここまでできる科学技術計算 第2版

楽天: Excelで操る! ここまでできる科学技術計算 [ 神足 史人 ]


 定積分は関数、xの区間、x軸で囲まれた領域の面積を計算します。
数値積分は有限個の点(x0,x1,x2,x3, ・・・・)での関数値(y0,y1,y2,y3,・・・)から
面積を算出します。点の数が少ないと、誤差が発生します。



        図1 数値積分を行う例題のグラフ


たった1日で即戦力になるExcelの教科書

入門者のExcel VBA―初めての人にベストな学び方 (ブルーバックス)
ルジャンドル多項式


 ルジャンドルの多項式Pn(x)は次のn次多項式で定義され、xの定義域は[-1,1]である。nが偶数のときPn(x)は偶関数で、nが奇数のときPn(x)は奇関数である。

  Pn(x) = {1/(2nn!)}dn(x2 -1)n/dxn ・・・・ (1)

具体的に書くと次の多項式となる。

  P0(x) = 1
  P1(x) = x
  P2(x) = (1/2)(3x2 -1)
    ・・・・・・
 2次以降の多項式は次の漸化式を利用して容易に計算ができる。

  (n+1) Pn+1(x) - (2n+1)xPn(x) + nPn-1(x) = 0  ・・・ (2)

(2)式がら(3)式に変形できる。

  Pn+1(x) = [(2n+1)xPn(x) - nPn-1(x)]/(n+1)  ・・・ (3)

 (3)式を用いると、図2のように、エクセルシートにルジャンドル多項式の関数が設定できる。


    図2 ルジャンドル多項式の関数の設定法



ルジャンドル多項式補間


 関数f(x)を補間する場合、ルジャンドル多項式を使えば、補間点数が少なくても精度の良い補間ができる。補間点はN次ルジャンドル多項式PN(x)が0となるxの解で、その解はN個存在し、x1,x2,x3, ・・・,xNとする。補間関数fN(x)は次のN-1次の多項式となる。
      N-1                     N
 fN(x) = Σ ck Pk(x)     ck = [(2k+1)/2]ΣwiPk(xi)f(xi)  ・・・ (4)
      k=0                     i=1
                       N-1
                   wi = {Σ[(2k+1)/2][Pk(xi)]2)-1   ・・・ (5)
                       k=0



ガウス・ルジャンドル積分公式


 ルジャンドル多項式による補間式を積分することにより、ガウス・ルジャンドル積分公式が導出される。
区間[-1,1]における関数f(x)の積分値Iは次式となる。
     1        N
  I = ∫fN(x)dx = Σwif(xi)  ・・・ (6)
     -1      i=1

 区間[a,b]で関数g(x)を積分する場合、次式により区間[-1,1]の関数に変換できる。

 f(x) = [(b-a)/2]g([(b-a)/2]x+(b+a)/2)   ・・・ (7)



Excelを用いたルジャンドル多項式Pn(x)=0の解


 n次ルジャンドル関数Pn(x)=0の解は次の区間に存在する。

 [sin(π(n-2i)/2n),sin(π(n-2i+2)/2n)]   ・・・ (8)

 図3のように、計算結果エリアを設定し、図4のようにVBAを用いて、2分法により解を求める。


        図3 ルジャンドルの多項式の解を求めるエクセルシート


     図4 ルジャンドルの多項式の解を求める2分法のVBA

 「多項式=0の解計算」ボタンにマクロを登録し、ボタンをクリックすると、図5のようにシート上に計算結果が出力する。


             図5 ルジャンドル多項式の解の計算結果



Excelを用いた重みwiの計算


 計算された多項式の解を参照し、重みwiを計算するVBAを図5に示す。


                    図5 重みwiを計算するVBA

 「重みwiの計算」ボタンにこのマクロを登録し、ボタンをクリックすると、図6のようにシート上に計算結果が出力する。


                図6 重みwiの計算結果



Excelを用いたガウス・ルジャンドル公式による数値積分


関数 f(x) = 1/(1+x2) を区間(0〜1)で積分すると、π/4=0.785398163が得られることが解っている。
VBAを用いて、図7のように関数(fun)を作成する。


         図7 VBAを用いた被積分関数

 図8のように、エクセルシート上に、計算済のルジャンドル多項式の解と重みwiをコピーし、それに対応する関数値f(x)とwi・f(x)を計算する。wi・f(x)の合計値が求める積分値となる。


  図8 ガウス・ルジャンドル公式による数値積分用のエクセルシート


 



 目的関数(誤差の絶対値の和)を最小とする最小絶対値法のページもつくりました。
 フランスの数学者、物理学者、天文学者であるガウスは最小二乗法を考案した。
しかしながら、当初ガウスは誤差の絶対値和の最小化を模索したようである。

Excelで操る!誤差の絶対値和を最小にする(ガウスの夢:最小絶対値法) NEW



台形公式による無限積分は計算精度が良い(エクセルを用いた数値積分)

エクセルを用いたシンプソン公式による数値積分

エクセルを用いた数値積分(シンプソン公式)によるクロソイド曲線






EXCELを用いた科学技術計算

EXCELのソルバーを用いた科学技術計算

Excelを用いた地球温暖化計算



〒673−0036 兵庫県明石市松江62−14
(有)ゴッドフット企画



感想をお聞かせ下さい



JR福知山線 脱線事故シミュレーション

脱線事故シミュレーションもEXCELで
(Yahoo Japan 掲載)


Copyright (C) GODFOOT 2008 All Rights Reserved.