计算无穷级数,单精度时的收敛情况。
n = 0;
sum = single(0);
while(1)
n = n + 1;
if mod(n, 100000) == 0
disp(num2str(n));
end
if(sum + single(1/n) == sum)
break;
end
sum = sum + single(1/n);
end
disp(['Single precision: ' 'n = ' num2str(n)]);
n在大概两百万的时候收敛,但是换了一个变量名,sum->sum_single
n = 0;
sum_single = single(0);
while(1)
n = n + 1;
if mod(n, 100000) == 0
disp(num2str(n));
end
if(sum_single + single(1/n) == sum_single)
break;
end
sum_single = sum_single + single(1/n);
end
disp(['Single precision: ' 'n = ' num2str(n)]);
就跑不出来了,这什么奇葩情况??!!