1. 程式人生 > >高斯型求積公式 勒讓德、拉蓋爾、切比雪夫

高斯型求積公式 勒讓德、拉蓋爾、切比雪夫

Gauss型求積公式

若機械求積公式具有階代數精度,則稱為Gauss型求積公式,而在上關於權函式的次正交多項式的零點就是Gauss型求積公式的Gauss點。

在Gauss型求積公式中,若權函式,區間為,則公式為

                

特別的稱為Gauss-Legendre公式。下表列出Gauss-Legendre公式的結點和係數。

           

0

0.0000000

2.0000000

3

±0.8611361

±0.3399810

0.3478548

0.6521452

1

±0.5773503

1.000000

4

±0.9061798

±0.5384693

0.000000

0.2369269

0.4786287

0.5688889

2

±0.7745967

0.000000

0.5555556

0.8888889

5

±0.9324695

±0.6612094

±0.2386192

0.1713245

0.3607618

0.4679139

當積分割槽間是一般的區間時,只要做變換

                    

可將公式轉換為

               

對等式右端積分使用Gauss-Legendre公式即可。

     Matlab程式碼如下:

function I = IntGaussLegen(f,a,b,n,AK,XK)

%

syms t;

t= findsym(sym(f));

if(n<5 && nargin == 4)

    AK = 0;

    XK = 0;

else                       

    XK1=((b-a)/2)*XK+((a+b)/2);

    I=((b-a)/2)*sum(AK.*subs(sym(f),findsym(f),XK1));

end

 

ta = (b-a)/2;

tb = (a+b)/2;

switch n

    case 0,

        I=2*ta*subs(sym(f),t,tb);

       

    case 1,

        I=ta*(subs(sym(f),t,ta*0.5773503+tb)+...

            subs(sym(f),t,-ta*0.5773503+tb));

       

    case 2,

        I=ta*(0.55555556*subs(sym(f),t,ta*0.7745967+tb)+...

            0.55555556*subs(sym(f),t,-ta*0.7745967+tb)+...

            0.88888889*subs(sym(f),t,tb));

          

    case 3,

        I=ta*(0.3478548*subs(sym(f),t,ta*0.8611363+tb)+...

            0.3478548*subs(sym(f),t,-ta*0.8611363+tb)+...

            0.6521452*subs(sym(f),t,ta*0.3398810+tb) +...

            0.6521452*subs(sym(f),t,-ta*0.3398810+tb));

         

    case 4,

        I=ta*(0.2369269*subs(sym(f),t,ta*0.9061793+tb)+...

            0.2369269*subs(sym(f),t,-ta*0.9061793+tb)+...

            0.4786287*subs(sym(f),t,ta*0.5384693+tb) +...

            0.4786287*subs(sym(f),t,-ta*0.5384693+tb)+...

            0.5688889*subs(sym(f),t,tb));

case 5,

        I=ta*(0.1713245*subs(sym(f),t,ta*0.9324695+tb)+...

            0.1713245*subs(sym(f),t,-ta*0.9324695+tb)+...

            0.3607616*subs(sym(f),t,ta*0.6612094+tb)+...

            0.3607616*subs(sym(f),t,-ta*0.6612094+tb)+...

            0.4679139*subs(sym(f),t,ta*0.2386292+tb)+...

            0.4679139*subs(sym(f),t,-*0.2386292+tb));

end

     若求積區間為,權函式為,則所建立的Gauss型求積公式為

稱為Gauss-Chebyshev公式。其中結點為次Chebyshev多項式的零點,公式可記為

                    

 

    若求積區間為,權函式為,則所建立的Gauss型求積公式為

稱為Gauss-Lagurre公式。其中結點為次Lagurre多項式的零點,下表列出Gauss-Lagurre公式的結點和係數。

           

0

1.0000000

1.0000000

 

 

0.2635603

1.4134031

0.52175556

0.3986668

1

0.5857864

3.4142135

0.8535533

0.1464466

4

3.5964258

7.0858100

12.6408008

0.0759425

0.00361176

0.00002337

2

0.4157746

2.2942804

6.2899451

0.7110930

0.2785177

0.0103893

5

0.2228466

1.1889321

2.9927363

0.4589647

0.4170008

0.1133734

3

0.3225477

1.7457611

4.5366203

9.3950710

0.6031541

0.3574187

0.0388879

0.0005393

 

5.7751436

9.8374674

15.9828740

0.1039920

0.000261017

0.0000008985