intgauss.m

来自「高斯积分算法」· M 代码 · 共 39 行

M
39
字号
function q=IntGauss(ff,aa,bb,nn,AK,XK)

ta=(bb-aa)./2;
tb=(aa+bb)./2;
switch nn
    case 1,
        q=2.*ta.*subs(sym(ff),findsym(ff),tb);
    case 2,
        q=ta.*(subs(sym(ff),findsym(sym(ff)),ta.*0.5773503+tb)+...
            subs(sym(ff),findsym(sym(ff)),-ta.*0.5773503+tb));
        
    case 3,
        q=ta.*(0.55555556.*subs(sym(ff),findsym(sym(ff)),ta.*0.7745967+tb)+...
            0.55555556.*subs(sym(ff),findsym(sym(ff)),-ta.*0.7745967+tb)+...
            0.88888889.*subs(sym(ff),findsym(sym(ff)),tb));
           
    case 4,
        q=ta.*(0.3478548.*subs(sym(ff),findsym(sym(ff)),ta.*0.8611363+tb)+...
            0.3478548.*subs(sym(ff),findsym(sym(ff)),-ta.*0.8611363+tb)+...
            0.6521452.*subs(sym(ff),findsym(sym(ff)),ta.*0.3398810+tb)...
            +0.6521452.*subs(sym(ff),findsym(sym(ff)),-ta.*0.3398810+tb));
  
        
    case 5,
        q=ta.*(0.2369269.*subs(sym(ff),findsym(sym(ff)),ta.*0.9061793+tb)+...
            0.2369269.*subs(sym(ff),findsym(sym(ff)),-ta.*0.9061793+tb)+...
            0.4786287.*subs(sym(ff),findsym(sym(ff)),ta.*0.5384693+tb)...
            +0.4786287.*subs(sym(ff),findsym(sym(ff)),-ta.*0.5384693+tb)+...
            0.5688889.*subs(sym(ff),findsym(sym(ff)),tb));
    case 7
        q=ta.*(0.1294849662.*subs(sym(ff),findsym(sym(ff)),ta.*0.9491079123+tb)+...
            0.1294849662.*subs(sym(ff),findsym(sym(ff)),-ta.*0.9491079123+tb)+...
            0.2797053915.*subs(sym(ff),findsym(sym(ff)),ta.*0.7415311856+tb)...
            +0.2797053915.*subs(sym(ff),findsym(sym(ff)),-ta.*0.7415311856+tb)+...
            0.3818300505.*subs(sym(ff),findsym(sym(ff)),ta.*0.4058451514+tb)...
            +0.3818300505.*subs(sym(ff),findsym(sym(ff)),-ta.*0.4058451514+tb)+...
            0.4179591837.*subs(sym(ff),findsym(sym(ff)),tb));
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?