Re: MatLab Approximations
This is what I've been able to come up with. Does anyone see any issues with it that would be what is preventing it from running?
% f(x), the function to integrate
% f= @(x) x^4-2*x ;
% f= @(x) exp(x);
f=@(x) sin(x);
% a, the lower limit of integration
a=0 ;
% b, the upper limit of integration
b=pi ;
% b=1.0;
% n, the number of segments. Note that this number must be even.
N=10 ;
%************************************************* *********************
format long g
h=(b-a)/n ;
s=0;
for i=1:1:n
if i<=1
s=(-3*f(a+(i-1)*h)+4*f(a+i*h)-f(a+(i-1)*h))/2*h;
elseif 1<i<n
s=(f(a+(i+1)*h)-f(a+(i-1)*h))/2*h;
elseif i>=n
s=(f(a+(i-1)*h)-4*f(a+i*h)+3f(a+(i-1)*h))/2*h;
end
approx=s ;
%exact = quad(f,a,b) ;
%exact=exp(b)-exp(a);
exact=-cos(b)-(-cos(a));
error=abs(approx-exact);
disp(error);
% f(x), the function to integrate
% f= @(x) x^4-2*x ;
% f= @(x) exp(x);
f=@(x) sin(x);
% a, the lower limit of integration
a=-1.0 ;
% b, the upper limit of integration
b=1.0 ;
% b=1.0;
% n, the number of segments. Note that this number must be even.
n=10 ;
%************************************************* *********************
format long g
h=(b-a)/n ;
sum=h/3*(f((a+(i-1)*h)+f(a+i*h))/2)+h/2*(-1*sqrt(1/3))+ (f((a+(i-1)*h)+f(a+i*h))/2)+h/2*sqrt(1/3) ;
for i=1:1:n
approx=sum
%exact = quad(f,a,b) ;
%exact=exp(b)-exp(a);
exact=-cos(b)-(-cos(a));
error=abs(approx-exact);
disp(approx);
disp(exact);
disp(error);