Code for a simpson's rule approximation of the integral of sin(x)/x

1 Ansicht (letzte 30 Tage)
Evan H
Evan H am 14 Okt. 2015
Beantwortet: Geoff Hayes am 14 Okt. 2015
I'm trying to do a simpson's approximation for the integral of sin(x)/x. This is what I have so far, for some reason the answer diverges as the number of sub-intervals (N) increases. Wondering if anyone can see what I'm doing wrong.
Function Hw5Num6(a,b,N)
dx = (b - a)/N;
% create our result variable
integral = 0;
% loop over the elements in the sum
for k=1:(N/2)
x = a + ((2*k)-1)*dx;
i = 4*(sin(x)/x);
if x==0
i = 4*1;
end
end
for k=1:((N-2)/2)
h = a + (2*k)*dx;
j = 2*(sin(h)/h);
if h==0
j = 2*1;
end
end
y = (sin(a))/a;
if a==0
y = 1;
end
z = (sin(b))/b;
integral = (dx/3)*(y + z + i + j);
return

Antworten (1)

Geoff Hayes
Geoff Hayes am 14 Okt. 2015
Evan - it isn't clear to me where you are performing your sums for each iteration of either loop. I see that you are setting an i and j to some value (note you should rename these two local variables as MATLAB also uses these same named variables to represent the imaginary number) but you are not summing up the result from each iteration.

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by