先说下:牛顿,你真是各种学科的大神神人物。初中,高中物理占了一半不够,你还占了数学一席之地,我膜拜你,我全家膜拜你。
牛顿迭代法解非线性方程f(x)=0,是把非线性方程线性化的一种近似方法。关键原理如下:
1)把f(x)在点x0的某邻域内展开成泰勒级数 f(x) = f(x0)+(x-x0)f'(x0)+(x-x0)^2*f''(x0)/2! +… ,
2)取其线性部分(即泰勒展开的前两项),并令其等于0,即f(x0)+f'(x0)(x-x0)=0 ,以此作为非线性方程f(x) = 0的近似方程,
3)若f'(x0)≠0,则其解为x1=x0-f(x0)/f'(x0), 这样,得到牛顿迭代法的一个迭代关系式:x(n+1)=x(n)-f(x(n))/f'(x(n))。
为什么弄这个题呢?因为笔试有个题,求N的平方根。
方法:
1)二分迭代
2)二分迭代的基础上,在某个点附近,使用牛顿迭代减少迭代次数
牛顿迭代法伪代码:
x 为已知,初始值为x0
for 1:迭代次数
x = x - f'(x0)/f(x0)
最后:
牛顿迭代,以后我记住你一辈子。