为了账号安全,请及时绑定邮箱和手机立即绑定

自适应正交算法 - 递归到迭代

自适应正交算法 - 递归到迭代

心有法竹 2022-06-30 11:53:17
我想知道是否可以使该算法迭代而不是递归,如果可行,有人可以帮助我吗?public static double adaptiveQuadrature(double a, double b) {    double h = b - a;    double c = (a + b) / 2.0;    double d = (a + c) / 2.0;    double e = (b + c) / 2.0;    double Q1 = h / 6 * (f(a) + 4 * f(c) + f(b));    double Q2 = h / 12 * (f(a) + 4 * f(d) + 2 * f(c) + 4 * f(e) + f(b));    if (Math.abs(Q2 - Q1) <= EPSILON)         return Q2 + (Q2 - Q1) / 15;    else          return adaptiveQuadrature(a, c) + adaptiveQuadrature(c, b);}static double f(double x) {    return Math.exp( - x * x / 2) / Math.sqrt(2 * Math.PI);}非常感谢你的帮助!
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

我不这么认为。步长的大小取决于在初始区间的端点处进行的函数评估,然后在子区间的端点处进行。该模式不是渐进的,您无法组织一个会提前“猜测”步骤的单个循环。

当然,您可以通过显式堆栈进行反递归,但这不会从本质上改变过程的性质。


查看完整回答
反对 回复 2022-06-30
  • 1 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号