My instructions are to calculate the result and absolute error for each partial sum: N = 10, 160, and 640. I am supposed to be getting the sum and error value for each N, but I am only getting the sum and error values for 640 only. I do not know why this is the case, as N equals 10, 160 and 640.
PLEASE DO NOT GIVE ME A COMPLETE ANSWER. I WOULD JUST LIKE TO KNOW WHAT I AM DOING WRONG. THANK U.
This is what I have so far:
for N=[10 160 640]
sum=0;
for n=1:N
y=1/n^2
sum=sum+y;
end
sum
error=((pi^2)/6)-sum
end

3 Kommentare

You could vectorize the whole thing.
n=1:640;
s=cumsum(1./(n.^2));
e=abs(pi^2/6-s);
Kyle Donk
Kyle Donk am 14 Jan. 2020
I have to use a for loop for this and most of the time we are not allowed to use Matlab's built-in functions.
Image Analyst
Image Analyst am 14 Jan. 2020
Kyle, did you see my Answer (below)??? I already gave you hints for solving it using your current for loop.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Image Analyst
Image Analyst am 14 Jan. 2020

0 Stimmen

Don't use sum as the name of your variable since that's already the name of a built-in function.
You need to assign N outside the loop and then get it inside the loop (method 1), OR use a counter to get the iteration number (method 2).
N=[10 160 640] % Method 1
for k = 1 : length(N)
thisN = N(k)
% more code to compute this sum.
end
Then you need to compute thisSum(k) and also index the error with the iteration loop counter:
thisError(k) = ((pi^2)/6) - thisSum(k);
so that you will have an error value for every iteration.

1 Kommentar

Image Analyst
Image Analyst am 18 Jan. 2020
Kyle, did this solve it? If so, please accept this answer, and any other answers for your other questions/threads. Thanks in advance.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-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