Использование трапециевидного правила для аппроксимации интеграла - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь использовать трапециевидный метод в Matlab, чтобы иметь относительную ошибку 1%. Вот мой код:

a=0;b=2;

N=0;k=0;

it=0;is=0;

function y=g(x)

       d=1+x^3+x^4;

       y=x^2*d;

end

sumtn=0.5*(g(a)+g(b));sumt2n=sumtn;

while 1

        k=k+1;%Number of times I split the distance [a,b] in 
        equal parts

        N=2^k;%Number of parts that the distance is being 
        split for every iteration

        h=(b-a)/N;

        for i=1:N-1

                  xi=a+i*h;

                 xi2n=xi-h/2;%for 2*N parts

                 sumtn=sumtn+g(xi);

                 sumt2n=sumt2n+g(xi2n)+g(xi);

        end

       It2n=sumt2n*h/2;

       Itn=sumtn*h;

       Et=abs(It2n-Itn)/3;

       if Et/It2n<=0.01

                break;
      end
end

Результат оказывается примерно в два раза больше ожидаемого значения, поэтому я думаю, что что-то упустил.

...