已知
f(x)=0,求x.
1.二分法求根
要求:
f(x)连续,且在[a,b]上有根
优点:简单可靠
缺点:不能求复根和偶重根
解决:选用一个合适的步长h对[a,b]进行扫描搜索,当发现哪个子区间有根时再用二分法求其中之根。
2.牛顿迭代法
优点:具有平方收敛的速度
缺点:
- 重根情形下为局部线性收敛
- 计算量大(除了要计算函数值还要计算导数值)
- 选取的初始值要靠近精确解(解决:先用二分法求出足够精度的
x0再用牛顿法迭代到收敛为止)
补充知识
1、泰勒公式
将一个在
x=x0处具有n阶导数的函数
f(x)利用关于
(x−x0)的n次多项式来逼近函数的方法。
f(x)=i=0∑ni!f(i)(x0)(x−x0)i+Rn(x)
其中
f(i)(x)代表
x的
i阶导数,剩余的
Rn(x)是泰勒公式的余项,是
(x−x0)n的高阶无穷小。
2、牛顿法对方程重根的处理
- 已知重根的重数m(m>1),利用m构造新的迭代公式
xk+1=xk−mf′(xk)f(xk)(k=0,1,...)
- 未知重根的重数,新迭代公式是
xk+1=xk−[f′(xk)]2−f(xk)f′′(xk)f(xk)f′(xk)(k=0,1,...)
缺点:需要求
f的2阶导数,计算量大,应用前提是
f(x)要简单。