2

这是我的代码:

x=0; 
for i=1:100
    x=x+sqrt(((1/((((2*i)-2)^2)*(((2*i)+2)^2)))*16)+8);
end

出于某种原因,我在此操作后不断获得 x 的无穷大值(inf)???

有人可以帮忙解释为什么吗?

4

2 回答 2

1

那是因为您在以下位置除以零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

这种情况下,循环根本没有必要。

于 2012-01-23T17:40:41.567 回答
0

i在您的第一次迭代中等于 1 时,SQRT 的参数等于Inf(即您得到 a 1/0,但您的除以零警告可能已关闭)。

于 2012-01-23T17:41:27.020 回答