753085848 发表于 2010-11-22 21:08

关于数值积分的程序

function =TX(f,a,b,eps)
h=b-a;
n=1;
eps=1e-3;
T1=0;
T2=1/2*h*(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b));
while abs(T2-T1)>eps
    h=h/2;
    T1=T2;
    x=a+h;
    s=0;
    while x<b
        s=s+subs(sym(f),findsym(sym(f)),x);
        x=x+h;   
    end
    T2=1/2*(T1+h*s);
    n=n+1;
end
I=T2+1/3*(T2-T1);
:Q 这是一个关于变步长梯形积分的程序,但是怎么调试就是得不出正确的结果,请各位帮忙看看。帮忙修改一下,顺便指出我的错误,感激不尽!

753085848 发表于 2010-11-23 17:43

自己修改过的,是正确的!
function =FHTX(f,a,b,ep)
a=a+eps;
h=b-a;
n=1;
ep=1e-6;
T1=1/2*h*(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b));
tol=1;
while tol>ep
    u=h/2;
    x=a+u;
    H=0;
    while x<b
        H=H+subs(sym(f),findsym(sym(f)),x);
        x=x+h;   
    end
    T2=1/2*(T1+h*H);
    tol=abs(T2-T1);
    h=u;
    T1=T2;
    n=n+1;
end
I=T2+1/3*(T2-T1);
页: [1]
查看完整版本: 关于数值积分的程序