MatLab Integration Approximations for Given Function

  • Thread starter Thread starter renolovexoxo
  • Start date Start date
  • Tags Tags
    Matlab
renolovexoxo
Messages
23
Reaction score
0

Homework Statement


I need to answer the attached question, but we haven't done anything similar in class and the book isn't proving to be helpful for me. I'm not sure if I have to use matlab, we were given this code but I can't even understand what it is calculating.

% 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 = quad(f,a,b) ;
%exact=exp(b)-exp(a);
exact=-cos(b)-(-cos(a));
error=abs(approx-exact);
disp(approx);
disp(exact);
disp(error);

Any help would be greatly appreciated!
 

Attachments

  • SCAN0036.jpg
    SCAN0036.jpg
    44.8 KB · Views: 584
Physics news on Phys.org
renolovexoxo said:

Homework Statement


I need to answer the attached question, but we haven't done anything similar in class and the book isn't proving to be helpful for me. I'm not sure if I have to use matlab, we were given this code but I can't even understand what it is calculating.

% 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 = quad(f,a,b) ;
%exact=exp(b)-exp(a);
exact=-cos(b)-(-cos(a));
error=abs(approx-exact);
disp(approx);
disp(exact);
disp(error);

Any help would be greatly appreciated!

It looks like a Simpson's rule approximation to the integral ##\int_0^{\pi} \sin(x) \, dx, ## using 20 equal intervals of length π/20. You are supposed also to compare the approximate and exact answers.

Note: I am not a Matlab user and so am unfamiliar with all the syntax and commands, etc., but it is more-or-less obvious what this code is attempting.

RGV
 
Thank you for the help, but you don't need to make me feel bad for not understanding something you see is obvious. I do appreciate you pointing it out to me, I was having hard time seeing if it was the composite version.
 
There are two things I don't understand about this problem. First, when finding the nth root of a number, there should in theory be n solutions. However, the formula produces n+1 roots. Here is how. The first root is simply ##\left(r\right)^{\left(\frac{1}{n}\right)}##. Then you multiply this first root by n additional expressions given by the formula, as you go through k=0,1,...n-1. So you end up with n+1 roots, which cannot be correct. Let me illustrate what I mean. For this...
Back
Top