2012-04-05 65 views
1

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

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

+1

我认为这应该在http://math.stackexchange.com/?as=1上。 – marspzb 2012-04-05 03:58:40

回答

3

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

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

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

然而,你最大的问题是你的函数的周期性。牛顿的方法将缓慢(如果它甚至可以)为你的功能,因为sin(x)会一次又一次地来回移动x0


注意事项:

在牛顿法,你注意一下f'(xn)在分母? f'(x)无限次地接近0。如果你的f'(x) = 0.0001(或接近于零的任何地方,有可能发生),你的xn+1得到很远离xn

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

+0

我想解决的问题是http://www.spoj.pl/problems/TRIGALGE/。现在我看到了牛顿拉夫森方法的问题。正常平分给出TLE(超出时间限制)。现在我正在考虑将Bisection和Newton Raphson混合在一起。有没有更好的方法? – 2012-04-05 04:45:13

+0

我会先尝试二分法进行几次迭代,以找到牛顿方法的一个体面的猜测,然后使用牛顿的方法进行更准确的近似。 – Blender 2012-04-05 04:58:23

+0

任何*猜测都会给出有效解决方案的说法不正确:例如,请参阅[此处](http://en.wikipedia.org/wiki/Newton%27s_method#Failure_of_the_method_to_converge_to_the_root)。 f'(x)'无限多次接近零的表述也不是*本身*正确 - 完全取决于'A'的值(如果'B = 0',则没有明显的周期性分量)。整个问题是不适当的,因为可能有无限多的解决方案,而且每一个的用处都没有被OP指出。只是说。 – 2012-08-19 21:05:26

1

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

x0 = C/A 
0

好吧,如果A,B和C是真实的,不同于0,那么(B+C)/A是最高根的高位报价,(C-B)/A是最低根的低位报价,因为-1 <= sin(x) <= 1。你可以从这些开始。

0

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

+0

请更好地格式化您的答案。真的很难跟随你的想法。 – 2017-05-21 19:23:57