目录
简介
牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。
1.牛顿迭代法解单个非线性方程
1.1 用泰特公式数学推导
迭代逼近零点的真值
迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代算法是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。
1.2 例题求解
比如下面的方程组
e^x - y^2 = 0
2x + 5*y^2 =0
消元y后
为 e^x+2/5x=0
就可以用牛顿迭代法解题,当然先要给定或者找出一个自变量范围,然后设定一个初值开始跌代。
笔算
如果初值合适,第二次迭代精确度就足够高了。
1.3 java 代码示例
public static double sqrt(double c) {
if (c < 0) {
return Double.NaN;
}
double err = 1e-15;
double t = c;
while ((Math.exp(t)+0.4*t)/(Math.exp(t)+0.4) > err * t) {
t = t-(Math.exp(t)+0.4*t)/(Math.exp(t)+0.4)
}
return t;
}
2.牛顿迭代法解非线性方程组
2.1 数学推导牛顿迭代法解非线性方程组
将解单个非线性方程的方法推广, 解非线性方程组的核心思路是构造了一个多元的矩阵函数F(x)=0,这个矩阵函数的自变量是也是一个矩阵。
2.2通过同一个实例解题
e^x - y^2 = 0
2x^2 + 5*y^2 =0
构造矩阵函数F(x)=0,采用牛顿迭代法和雅可比矩阵的解法。
要点是求出雅可比矩阵,并且先对矩阵化简减少计算量。
笔算
如果初值合适,第二次迭代精确度就足够高了,且同时对x,y两个未知数一起迭代。
2.3 方程组代码
方程组的解法代码更复杂,代码水平太差,后面回来再补上。
一起加油!