Help with MATLAB Numerical Integration

UR_Correct
Messages
36
Reaction score
0
First off, I know I can use the trapz or quad functions on matlab, but I want to derive my own numerical integration code.

The problem is more complicated than this, but basically I need to be able to numerically integrate in MATLAB to continue with the homework assignment.

If y = x^2 is the function of interest to be numerically integrated from 0 to 4, this is what I have so far:

x_step = 0.1;

x = 0:x_step:4;
y = x.^2;
y2 = (x.^3)/3;

N = length(y)

for i=1:N-1

int_y(i) = ((y(i)+y(i+1))./2)*x_step %employing trapezoidal rule

end

plot(x,y), hold on, plot(x(1:N-1),y_int,'r'), hold on, plot(x,y2,'g') %just to see if I'm right

It doesn't work. Any suggestions? Can anyone link me to the code for the trapz function for matlab? I looked for a little bit, but couldn't find it. I'm not sure if we can just use trapz, so just to be safe, I wanted to develop the code myself. I can take a numerical derivative pretty easily with matlab, so I don't understand why this won't work for me!

Thanks for any help.
 
Last edited:
Physics news on Phys.org
I figured it out. I forgot to sum the integrations. This thread can be closed.

For anyone interested:

x_step = 0.01;

x = 0:x_step:4;
y = x.^2;
y2 = (x.^3)./3;

N = length(y);
y3 = 0;
for i = 2:N-1
y3 = (y(i)+y(i+1))./2*x_step + y3;
int_y(i) = y3;
endplot(x,y), hold on, plot(x(1:N-1),int_y,'r'), plot(x,y2,'g')
 
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