I'm trying to approximate the integral of a function using the composite Simpson's rule. This means I'll have to input a function, the maximum and minimum of the interval, and an number of integration nodes. Specifically, the exercise demands that I use the interval [0,10].
Now, I've written the code for the Simpson's rule, and it works. The problem is when I try to use an interval that starts with 0, like it happens in the exercise. For example, let's imagine I have this function:
x=1:100;y(x)=x.^2;plot(x,y(x));
When the Simpson rule calls for y(0), I get an error message indicating that the subscript must be a positive integer. Now, I understand why this must be. The variable x is defined as a vector, and there's no "0" subscript in that vector; it has to be 1, or 2,1, etc. But I need to be able to get a value for the function at 0 in order for the Simpson's rule to work. How can I circumvent this issue? Is there a way to define x so that y(x) can accept fractions, negative numbers or zero?
Here's my code for the CSR by the way:
function F=simpsonc(y,a,b,N)h=(b-a)/N; f=zeros(N+1,1); f(1)=a;f(N+1)=b;y1=0;y2=0; for z=2:N f(z)=a+z*h; endfor z=2:(N/2); y2=y2+y(f(2*z-1));endfor z=2:(N/2)-1; y1=y1+y(f(2*z));end F=(h/3)*(y(a)+y(b)+4*y2+2*y1);end
Best Answer