预备知识 泰勒公式 :
f(x) = f(x0)(x-x0)^0/0! + f'(x0)(x-x0)^1/1! + f''(x0)(x-x0)^2/2! + ... + Rn(x)
先举例求解f(x) = 0这个方程,可以用一阶泰勒展开,同时省略最高次项,得到
f(x) = f(x0) + f'(x0)(x-x0), f(x) = 0 即近似 f(x0) + f'(x0)(x-x0) = 0,求得x = x0 - f(x0)/f'(x0)(1.1),这个求得的x只是近似地使f(x) = 0,但其比x0更能使f(x)逼近于0,所以可由式1.1进化得到迭代公式 Xn+1 = Xn - f(Xn)/f'(Xn),如此迭代下去,直至收敛,或小于给定阈值
同理,,对于自变量数目为1的情况,我们现在要求f(x)的极值点,就是求其驻点,即求解f'(x) = 0,过程同上,只不过这次需要二阶泰勒展开即可,
即f(x) = f(x0)+ f'(x0)(x-x0) + f''(x0)(x-x0)^2/2!(1.2)
对于自变量数目大于1的情况,对于式子1.2,要做相应改变,x0变为列向量xk,f'(x0)变为对每个自变量求偏导数构成的列向量,记gk,f''(x0)变为海森矩阵,记hk,则得到迭代公式为 Xk = Xk - gk/hk,迭代直至收敛,或小于阈值