|
|
1
3
那个错误阻止你进入一个永不结束的循环。您可以改用此函数,但是,使用1e+56或更高版本可能永远不会结束…
|
|
|
2
1
跟进@c_©sararquero的答案,就“避免递归”这一部分而言,这是很好的,但实际上并不能解决问题的根源——浮点不精确。这些问题可能会影响递归和非递归实现:您需要(1)重新构造问题以避免不精确性;(2)设置最大迭代次数以避免无限循环结果;或(3)使用更高精度的算法(例如。
如下所示,对于大值 不 进入无限循环需要500次迭代,因此1447次迭代的崩溃(在上面@ruibarradas的注释中提到)可能来自无限循环。 下面是@c_©sararquero函数的增强版本,它设置了最大迭代次数并打印出有关进度的信息:
对于100,一切看起来都是合理的——猜测与答案之间的距离平滑地收敛到容忍度。
如果我们使用更大的论据(尽管我们仍然得到了正确的答案),事情看起来更有问题:
同样地…
在1e54和1e56之间的某个地方,我们切换到一个无限循环(或者一个如果我没有施加最大迭代次数的话将是无限的循环)。
我还没有花时间去弄清楚数值下溢问题是如何工作的:一般的想法是,如果我们试图加上/减去非常不同量级的项,我们将得到下溢。特别地,
我做了一些数值实验;我们没有 总是 陷入循环。
|
|
|
Hard_Course · 用另一列中的值替换行的最后一个非NA条目 8 月前 |
|
Mark R · 使用geom_sf()删除地球仪上不需要的网格线 8 月前 |
|
|
Joe · 根据对工作日和本周早些时候的日期的了解,找到一个日期 8 月前 |
|
Ben · 统计向量中的单词在字符串中出现的频率 8 月前 |
|
|
TheCodeNovice · R中符号格式的尾随零和其他问题[重复] 8 月前 |
|
dez93_2000 · 在R管道子功能中引用管道对象的当前状态 8 月前 |
|
|
Mankka · 如何在Ggplot2中绘制均匀的径向图 8 月前 |