这是我的代码:
x=0;
for i=1:100
x=x+sqrt(((1/((((2*i)-2)^2)*(((2*i)+2)^2)))*16)+8);
end
出于某种原因,我在此操作后不断获得 x 的无穷大值(inf)???
有人可以帮忙解释为什么吗?
那是因为您在以下位置除以零i==1
: 看看在(2*i)-2
哪里i==1
。
我只能猜测您实际上打算i
用作-1
. 在这种情况下,将循环更改为:
x=0;
for k=1:100 x=x+sqrt(((1/((((2*i)-2)^2)*(((2*i)+2)^2)))*16)+8); end
在这种情况下,循环根本没有必要。
当i
在您的第一次迭代中等于 1 时,SQRT 的参数等于Inf
(即您得到 a 1/0
,但您的除以零警告可能已关闭)。