MatLab Approximations

• Oct 12th 2012, 10:12 AM
renolovexoxo
MatLab Approximations
I have this problem to do, involving estimating the error for the derivative as well as the Gaussian Approximation. I am having a lot of trouble figuring out if I can alter this code or if I have to write something new. This is the first time I've ever used MatLab, and I could use some help if anyone has any ideas. The assignment is attached. I used this, which was given in class, to do (ii)

% 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=20 ;
%************************************************* *********************
format long g
h=(b-a)/n ;
% Sum the odd index function values, and multiply by 4
sumOdd=0 ;
for i=1:2:n-1
sumOdd=sumOdd+f(a+i*h) ;
end
% Sum the even index function values, and multiply by 2
sumEven=0 ;
for i=2:2:n-2
sumEven=sumEven+f(a+i*h) ;
end
sum=4*sumOdd+2*sumEven+f(a)+f(b) ;
% Then multiply by h/3
approx=h/3*sum ;
%exact=exp(b)-exp(a);
exact=-cos(b)-(-cos(a));
error=abs(approx-exact);
disp(approx);
disp(exact);
disp(error);
• Oct 16th 2012, 01:15 PM
renolovexoxo
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=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