问题标签 [fixed-point-iteration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
210 浏览

loops - 使用带有公差的割线法进行迭代

我试图找出当我在枫树中运行割线迭代达到一定容差时需要多少次迭代。但是,我收到了一个错误代码,所以如果有人能指出我的代码中的错误所在,我将不胜感激。

亲切的问候。

x0 = 1.22, x1 = 0.8843478306, 容差 1*e-6 > abs(x1-x0) 多少次迭代才能达到容差?

0 投票
2 回答
159 浏览

haskell - 我怎样才能避免<> 在哈斯克尔?

下面的程序导致<<loop>>GHC。

...明显地。事后看来。

发生这种情况是因为walk正在计算一个固定点,但有多个可能的固定点。当列表推导到达图形遍历的末尾时,它“询问” ; 的下一个元素answer。但这正是它已经在尝试计算的。我想我认为程序会到达列表的末尾,然后停止。

我不得不承认,我对这段漂亮的代码有点感伤,希望我能让它工作。

  • 我应该怎么做?

  • 我如何预测“打结”(指表达式中的值,说明如何计算值)是一个坏主意?

0 投票
1 回答
41 浏览

c - 关于移动窗口 Newton-Raphson 方法的定点实现的问题

这是我正在参考的参考文章:C 中任何更快的 RMS 值计算?

  1. 参数是否sample已经是定点值并且已经按 S 缩放?

  2. 是否sum_squares正在更改为以下行中的定点值?

static uint32_t sum_squares = 1UL * SAMPLES * INITIAL * INITIAL;

  1. 下面的线是为了抵消sample上面的平方吗?此外,这是整数除法,这意味着小数部分将被截断。这个可以吗?我们不会失去精度吗?

sum_squares / SAMPLES

  1. 如果sum_squares是定点值,倒数第二行的 2 不也应该改为定点值吗?
0 投票
0 回答
20 浏览

r - 来自 SQUAREM 包的 R fpiter 函数:使用太多观察值时 if (res < tol) 出错

我正在为一个经济项目 n R 做一些模拟,我使用 SQUAREM 包中的 fpiter 函数来确定一些定点平衡。一切都很好,但是当我使用太多观察值时(12 个变量的截止值约为 22500 行,但只有行数很重要),我收到以下错误消息:

经过几次试验和错误,我的猜测是,这似乎是由于计算而意外发生的。

我想知道是否有些人在使用 fpiter 函数(或更一般地使用 SQUAREM 包)时遇到了同样的问题,如果是这样,他们试图使其工作的原因是什么。也许我应该使用另一个包。我搜索了论坛和文档,但没有找到任何有用的信息。很抱歉没有提供我的代码,但它很长,我认为它不会有用。

感谢你的帮助 !

最好的,

0 投票
2 回答
119 浏览

fortran - 如何在 Fortran 中验证非线性系统的迭代公式是否会收敛

如何在Fortran中验证非线性系统的迭代公式是否会收敛到附近的根(x,y)

支持符号计算的编程语言很容易。但是如何在 Fortran 中做到这一点?就像获取组件函数的偏导数并检查它们是否在根附近有界。但我不能在 fortran 中做到这一点,或者不知道如何做到这一点。如果有人现在给我一些关于以下非线性系统的想法,或者如果可能的话,这对我来说将是一个很大的帮助。

我想在这种情况下使用定点迭代方法

主要系统:

迭代形式(给定):


定理(我遵循)

图片

问题是,我需要检查(x0,y0)=(4.4,1.0) 周围某个区域的偏导数\sqrt(7-Y)的有界性。-\sqrt(X-4)我可以在 fortran 中编写偏导函数,但是如何评估这么多值并检查它是否在(4.4,1.0).

更新

一种可能正确的解决方案是获取(4.4,1.0)类似的值数组(4.4-h,1.0-h)*(4.4+h,1.0+h)并评估定义的偏导函数并近似它们的有界性。我在 Fortran 中没有遇到过这样的问题,所以任何关于这方面的建议也可以帮助我很多。

0 投票
0 回答
19 浏览

dynamic-programming - 如何在 R 中使用贝尔曼方程执行值迭代?

我有一个贝尔曼方程和一个值函数 V(x, i)。我的目标是通过迭代找到期望值 EV(x,i)。我猜 EV^0 的初始值为 0。从最初的猜测中,我计算 EV^1 如下:

在此处输入图像描述

并迭代直到收敛。上面,y 是 x 的未来值,j 是 i 的未来值,P(y|x,i) 是一个 4×4 的转移矩阵,即参数集(与线性函数 u 一起已知) beta 是折扣因子。

我已经尝试使用 R 中的 MDPtoolbox 包来解决这个问题,但是 - 据我所知 - 这不会让您尝试函数,只能使用实际数字。如果有人知道如何编码,请告诉我!

0 投票
2 回答
93 浏览

haskell - 在 Haskell 中更优雅地表达“case ... of”模式

我遇到了一种我认为可以更优雅地表达的模式:

我有两个功能f1,f2 :: Int -> Int(它们的含义不相关),一个process :: Int -> Int执行以下操作:

  • 如果f1 x产生的结果x1与 不同x,则重复该过程x1
  • 否则,如果f2 x产生x2不同于x,则重复该过程x2
  • 最后,停止进程并返回x

我的case ... of实现如下:

这会产生以下警告:

任何人都可以阐明哪些模式是重叠的,以及如何process更优雅地实现?

0 投票
1 回答
108 浏览

java - 如何在 Java 中实现函子的不动点

我最近发现了如何以 某种迂回的方式在 Java 中模拟高阶类型,就像这样

这里H编码一个高阶类型,它接受一个类型参数F,它本身接受参数T

现在这让我想知道,我们可以用它来实现一些更高级的结构吗?例如,Haskell 中的 Fix等函子的不动点及其相应的变态

0 投票
2 回答
45 浏览

python - 如何使 Python 在 For 循环内的第 n 次迭代中打印一些东西?

我想先说我对 Python 非常陌生,并且只是在研究生院的特定课程中开始使用它。

我编写了一个脚本来使用迭代方法(例如定点法、二分法和 Newton-Raphson 方法)来查找函数的根。我的算法的python代码如下:

定点法:

二分法:

牛顿-拉夫森方法:

虽然我的脚本能够成功找到我感兴趣的方程的根源,但我遇到了一个更简单的问题。基本上,我想告诉我的程序,如果在最大迭代后,我的容差条件不满足,打印“方法失败”。

但是,当我在最大迭代次数设置为 100 且容差设置为 0.0001 时尝试不覆盖的函数时,我的代码不会打印我想要的语句。

我的语法是否适合失败打印语句?

在我编写的函数的上下文中,像“如果 i==MAXIT 和 f(x0) > tol”这样的条件有意义吗?

在我努力改进 Python 时,我将不胜感激任何和所有关于这个问题的建议。

谢谢你。