今天在图书馆借了一本《高效能程序员的修炼》,内容幽默风趣。(其实我是看到作者是stack overflow创始人,才借的)。看到几十页中有一个例子是关于求平方根的,代码很简单,但是```第一次没看懂····才知道原理是根据牛顿-拉夫逊方法即牛顿迭代法,具体细节大家可以百度一下。
private double SquareBootAppr(int n)
{
double r=n/2;
wh...
分类:
其他好文 时间:
2014-09-16 17:28:50
阅读次数:
230
SCIP 1.1.7的一个练习。牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别...
分类:
其他好文 时间:
2014-09-13 21:20:05
阅读次数:
306
我只能想出二分的方法,而且还不一定能写出最简洁的代码。无论刷多少遍,牛顿迭代法我都想不到,莫名有种悲哀的感觉:智力是硬伤啊。就算如此,却还要一遍遍不厌其烦地刷,这才是最悲剧的。多说无益,上代码。 二分:class Solution {public: int sqrt(int x) { ...
分类:
其他好文 时间:
2014-09-01 17:18:13
阅读次数:
144
最近一个哥们,是用牛顿迭代法求解一个四变量方程组的最优解问题,从网上找了代码去改进,但是总会有点不如意的地方,迭代的次数过多,但是却没有提高精度,真是令人揪心! 经分析,发现是这个方程组中存在很多局部的极值点,是用牛顿迭代法不能不免进入局部极值的问题,更程序的初始值有关! 发现自己好久没有是用Mat...
分类:
其他好文 时间:
2014-08-31 01:38:20
阅读次数:
571
牛顿迭代
详细介绍见维基百科 http://zh.wikipedia.org/wiki/牛顿法
举一个栗子
找平方根
给一个数a,求其平方根。
设其平方根为x 则有 x^2 - a = 0,设函数f(x) = x^2 - a,
取x0的初值尽量靠近a的平方根(因为初值的选择影响迭代的次数)
根据 f(x0) = (x0 - x).f’(x0)
...
分类:
其他好文 时间:
2014-08-21 13:21:34
阅读次数:
298
题目链接:uva 10428 - The Roots
题目大意:给定一个n次一元多项式,求出所有解。
解题思路:牛顿迭代法,对于任意给定x,通过牛顿迭代法可以趋近距离x最近的解x0。每次找到一个解后,用多项式除法除掉x?x0后继续求解。
牛顿迭代法:xi+1=xi?f(x)f′(x)
#include
#include
#include
using namesp...
分类:
其他好文 时间:
2014-08-21 11:31:34
阅读次数:
233
求解立方根或者是平方根甚至是N次方根,均可用牛顿迭代法求解。牛顿迭代法如下所示:#include #include #include #include #include #include using namespace std;double Lifanggen(double src){ double...
分类:
其他好文 时间:
2014-08-17 16:49:32
阅读次数:
260
原题:
Implement int sqrt(int x).
Compute and return the square root of x.
==============================以下为引用====================================
牛顿迭代法
为了方便理解,就先以本题为例:
计算x2 = n的解,令f(...
分类:
其他好文 时间:
2014-08-14 16:51:18
阅读次数:
263
求一个正数N的开方, 并且可以指定精度, 要求不能用库函数sqrt方法一:如下所示,先求sqrt(N)的整数部分,再求小数点后1位,2位 ... ...方法二:牛顿迭代法,根据公式 Ai+1 = (Ai+number/Ai)/2 ,其中Ai 的初始值,即A1任取,如1,2,3 ...// 求一个正数...
分类:
其他好文 时间:
2014-07-27 22:00:29
阅读次数:
251
UVA 10428 - The Roots
题目链接
题意:给定一个一元多次方程组,要求求出所有根
思路:利用牛顿迭代法 xn+1=xn?f(xn)/f′(xn),不断迭代就能求出较为精确的值,然后由于有的方程可能有多解,每次解得一个X后,就把原式子除以(x
- X),这个是肯定能整除的,把方程降阶然后继续用牛顿迭代法直到求出所有解
代码:
#include
#...
分类:
其他好文 时间:
2014-07-26 02:48:56
阅读次数:
181