作业帮 > 综合 > 作业

matlab中的while循环逻辑变量的值是真,循环会无限吗?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 01:26:13
matlab中的while循环逻辑变量的值是真,循环会无限吗?

tic
while 1
toc
end
你就知道了.
按CTRL+C可以退出循环
再问: 为什么还能给出结果呢?例如: n=1;oldsum=-1;newsum=0; while newsum>oldsum oldsum=newsum;newsum=newsum+n^(-4);n=n+1; end newsum
再答: tic是设置时间的起点 toc是计算出到tic的运行时间,所以每一次循环,显示一个运行的时间. n=1; oldsum=-1; newsum=0; while newsum>oldsum oldsum=newsum; newsum=newsum+n^(-4); n=n+1 %这里去掉分号,也会显示出n end newsum
再问: 不加分号确实会显示n的值,但是我想问最后执行结果给出的newsum=1.0823,是如何给出的呢?不是无限循环吗,为什么给出确定的n=9743呢?
再答: 这个不是无限循环啊. 主要是 n^-4到了一定程度,接近于零。由于浮点数精度有限,只要n^-4到这个精度, oldsum和newsum就相等了。 就退出循环了。 如果 n=1; oldsum=-1; newsum=0; while newsum>=oldsum %如果有等号的话,应当是无限循环 oldsum=newsum; newsum=newsum+n^(-4); n=n+1 %这里去掉分号,也会显示出n end newsum