While loop will not stop running?

I have this code to develop the partial sum of (1/k^2). However, when I run the code, the while loop does not stop. Any help with this problem?
function [sum1,error,steps] = psum(tol)
k=1;
sum1=1/(k).^2;
answer=(pi.^2)/6;
error=abs(answer-sum1);
while error>tol
k=1/(k+1)^2;
term=sum1+(1/(k).^2);
sum1=sum1+term
error=abs(answer-sum1)
end
steps=k

 采纳的回答

James Tursa
James Tursa 2016-11-14
编辑:James Tursa 2016-11-14
You are corrupting the value of k and not doing the term summing properly. These lines:
k=1/(k+1)^2;
term=sum1+(1/(k).^2);
should be this instead:
k = k + 1;
term=(1/(k).^2);
SIDE NOTE: "error" is the name of an intrinsic MATLAB function, so it would be best to use a different name for your variable (e.g., err).

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 MATLAB 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by