zoukankan      html  css  js  c++  java
  • 高斯型求积公式 勒让德、拉盖尔、切比雪夫

    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

     

  • 相关阅读:
    使用 ASP.NET Core MVC 创建 Web API(五)
    使用 ASP.NET Core MVC 创建 Web API(四)
    使用 ASP.NET Core MVC 创建 Web API(三)
    使用 ASP.NET Core MVC 创建 Web API(二)
    使用 ASP.NET Core MVC 创建 Web API(一)
    学习ASP.NET Core Razor 编程系列十九——分页
    学习ASP.NET Core Razor 编程系列十八——并发解决方案
    一个屌丝程序猿的人生(九十八)
    一个屌丝程序猿的人生(九十七)
    一个屌丝程序猿的人生(九十五)
  • 原文地址:https://www.cnblogs.com/wander-clouds/p/9949154.html
Copyright © 2011-2022 走看看