longbeige.m

来自「基于matlab实现的实质分析实例的计算 对基本的插值的计算 可运行」· M 代码 · 共 67 行

M
67
字号
%龙贝格加速算法(课本71页表2-5)
function r=longbeige(a,b,n,e)

h=b-a;
if a==0
    v=1;
else
    v=f(a);
end

t1=h/2*(v+f(b))
for k=1:n
    k
    s=0;
    x=a+h/2;
    while x<b
        s=s+f(x);
        x=x+h;
    end
    t2=t1/2+h/2*s
    s2=t2+(t2-t1)/3
    if k==1
        h=h/2;
        t1=t2;
        s1=s2;
    else
        c2=s2+(s2-s1)/15
        if k==2
            c1=c2;
            h=h/2;
            t1=t2;
            s1=s2;
            else
                r2=c2+(c2-c1)/63
                if k==3
                    r1=r2;
                    c1=c2;
                    h=h/2;
                    t1=t2;
                    s1=s2;
                else
                    if abs(r2-r1)<e
                        r=r2;
                        break
                    else
                        r1=r2;
                        c1=c2;
                        h=h/2;
                        t1=t2;
                        s1=s2;
                        
                    end
                end
            end
        end
    end
    if k==n
    '加速不够,请增加加速次数'
    end
    
        
       
            
function y=f(x)
y=sin(x)/x;

⌨️ 快捷键说明

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