【问题标题】:Initial guess for Newton Raphson牛顿拉夫森的初步猜测
【发布时间】:2012-04-18 19:54:48
【问题描述】:

如何根据 A、B 和 C 确定方程 Ax+Bsin(x)=C 的初始猜测? 我正在尝试使用 Newton Raphson 解决它。 A、B 和 C 将在运行时给出。

有没有其他方法比牛顿拉夫森更有效?

【问题讨论】:

标签: algorithm math newtons-method


【解决方案1】:

最佳初始猜测是根本身,因此找到“最佳”猜测并不真正有效。

任何猜测最终都会给你一个有效的解决方案,只要f'(x0) != 0 用于任何步骤,它只出现在cos(x) 的零点处,对于任何整数k 都是k*pi + pi/2

我会尝试x0 = C * pi,看看它是否有效。

但是,您最大的问题是函数的周期性。牛顿的方法对于你的函数来说会很慢(如果它甚至可以工作的话),因为sin(x) 会一遍又一遍地来回移动x0


注意事项:

在牛顿的方法中,你注意到f'(xn) 在分母中的位置吗? f'(x) 无限次接近0。如果你的f'(x) = 0.0001(或任何接近零的地方,这有可能发生),你的xn+1 会被扔到离xn 很远的地方。

更糟糕的是,由于f'(x) 是一个周期函数,这可能会一遍又一遍地发生,这意味着牛顿方法甚至可能永远不会收敛到任意的x0

【讨论】:

  • 我要解决的问题是 spoj.pl/problems/TRIGALGE 。现在我看到了 Newton Raphson 方法的问题。正常二等分给出 TLE(超出时间限制)。现在我正在考虑将 Bisection 与 Newton Raphson's 混合。有没有更好的办法?
  • 我会先尝试 Bisection 进行几次迭代,以找到牛顿法的正确猜测,然后使用牛顿法进行更准确的近似。
  • anyguess 将给出有效解决方案的说法是不正确的:例如,参见 heref'(x) 无限次接近零的说法本身也不正确——这完全取决于A 的值(如果B = 0,则没有明显的周期性分量) .整个问题是不适定的,因为可能有无限多的解决方案,并且每个解决方案的有用性都没有由 OP 指示。只是说。
  • @RodyOldenhuis:我写的时候没有考虑太多,所以忽略了一些细节,假设了一些我不应该有的东西。
  • 好吧,已经有一段时间了,而且,鉴于当时的 OP,我完全理解你的立场。我评论主要是为了让随机路人更加了解这个答案中的缺点。
【解决方案2】:

最简单的“好”近似是假设 sin(x) 近似为零,因此设置:

x0 = C/A

【讨论】:

    【解决方案3】:

    好吧,如果 A、B 和 C 是实数且不为 0,则 (B+C)/A 是最高根的上引号,(C-B)/A 是最低根的下引号,如 -1 <= sin(x) <= 1。你可以从这些开始。

    【讨论】:

      【解决方案4】:

      牛顿法适用于任何猜测。问题很简单, 如果有一个方程,我猜 x0=100 最好的解决方案是 x0=2 我知道答案是 2.34* 通过使用世界上的任何猜测,您最终会得到 2.34* 该方法说选择一个猜测,因为如果没有一个有效的猜测,它将需要许多不舒服的解决方案,没有人愿意重复该方法 20 次 并且猜测解决方案并不难 你只是找到一个关键点- 例如,3 太大,2 太小 所以答案在 2 到 3 之间 但是如果你猜 2 你猜 50 你仍然会得到正确的解决方案。 就像我说的,它只会花你更长的时间 我自己测试了这个方法 我猜 1000 到一个随机方程 我知道最好的猜测是 4 答案在 4 到 5 之间 我选择了 1000 花了我很多时间 但几个小时后,我从 1000 降至 4.something 如果您以某种方式找不到关键点,您实际上可以输入一个等于 x0 的随机数,然后最终您将得到正确的解决方案 不管你猜的是什么数字。

      【讨论】:

      • 请更好地格式化您的答案。跟随你的想法真的很难。
      猜你喜欢
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-29
      • 2022-01-10
      • 2015-03-04
      • 1970-01-01
      相关资源
      最近更新 更多