劈因子法

劈因子法可以求复根也可以求重根, 所以是一种很通用的方法. 一般情况下就是用来求复根, 因为实根, 我们有更多的方法. 所以下面均考虑复根的情况.

假设多项式 $f(x)$ 的精确解为 $x^*$, 它的一个近似解为 $x_0$. 可以知道 $w^*(x) = (x-x^*)(x-\bar{x^*})$ 是 $f(x)$ 的二次因式, $x^*$ 是 $w^*(x)$ 的解. 真实的情况下, 我们是要用 $x_0$ 来求 $x^*$ 的. $x_0$ 是二次多项式 $w(x) = (x-x_0)(x-\bar{x_0})$ 的根, 如果我们能采用某些操作去调整二次多项式 $w(x)$ 使得 $$w(x)+\Delta u x +\Delta v \approx w^*(x)$$ 那么求解 $w(x)+\Delta u x +\Delta v=0$ 即可得到 $x^*$.

设 $w(x) = x^2+ u x+ v$, 切记 $w(x)$ 并不是 $f(x)$ 的因式, 所以 $$f(x) = q(x) w(x) + r(x) \qquad (1)$$ 这里 $r(x)=a x + b$ 是一次因式

现在把 $(1)$ 式中出现的 $q(x),w(x),a,b$ 看成以 $u,v$ 为自变量的式子, 因为 $u,v$ 的改变会使得 $q(x),w(x),a,b$ 发生改变.

设 $w(u,v) = w(x),w(u+\Delta u,v+\Delta v) = w^*(x)$, 那么让 $f(x) = q(u+\Delta u,v+\Delta v)w(u+\Delta u,v+\Delta v) +r(u+\Delta u,v+\Delta v)$, 就会得到 $r(u+\Delta u,v+\Delta v)=0$. 这里是因为 $w^*(x) \mid f(x)$.

由 $r(u+\Delta u,v+\Delta v)=0$ 得 $$\begin{cases}a(u+\Delta u,v+\Delta v)=0\\ b(u+\Delta u,v+\Delta v)=0\end{cases}$$ 将上式在 $(u,v)$ 处泰勒展开得 $$\begin{cases}a+\frac{\partial a}{\partial u}\Delta u + \frac{\partial a}{\partial v}\Delta v=0 \\ b+\frac{\partial b}{\partial u}\Delta u + \frac{\partial b}{\partial v}\Delta v=0\end{cases}$$

$\frac{\partial a}{\partial u},\frac{\partial b}{\partial u}$ 通过 $(1)$ 式左右两边关于 $u$ 求偏导得到, $\frac{\partial a}{\partial v},\frac{\partial b}{\partial v}$ 通过 $(1)$ 式左右两边关于 $v$ 求偏导得到.

大致的计算方法总结如下:

  1. 已知近似解 $x_0$, 求得近似的二次因式 $w(x) = (x-x_0)(x-\bar{x_0})$
  2. $f(x) = q(x) w(x) + ax +b$ 求得 $a,b$
  3. $0=\frac{\partial}{\partial u} \left(q(x) w(x) + ax +b\right)$, 其中 $\frac{\partial w}{\partial u} = x$, 求得 $\frac{\partial a}{\partial u},\frac{\partial b}{\partial u}$
  4. $0=\frac{\partial}{\partial v} \left(q(x) w(x) + ax +b\right)$, 其中 $\frac{\partial w}{\partial v}=1$, 求得 $\frac{\partial a}{\partial v},\frac{\partial b}{\partial v}$
  5. 解方程 $$\begin{cases}a+\frac{\partial a}{\partial u}\Delta u + \frac{\partial a}{\partial v}\Delta v=0 \\ b+\frac{\partial b}{\partial u}\Delta u + \frac{\partial b}{\partial v}\Delta v=0\end{cases}$$

用一个例题来讲述这种方法

例: 用劈因子法求方程 $$f(x)=x^4-3x^3+20x^2+44x+54=0$$ 在 $x_0=2.5+4.5i$ 附近的根.

例题中让我们求解 $x_0=2.5+4.5i$ 附近的根, 那么首先用这个 $x_0$ 来构造一个 $f(x)$ 的近似的二次因式 $$w(x) = (x-x_0)(x-\bar{x_0})=x^2-5x+26.5$$

$f(x) = q(x) w(x) + ax +b$ 求得 $a=8.5,b=-38.75$

\begin{array}{ll} &0=\frac{\partial}{\partial u} \left(q(x) w(x) + ax +b\right)\\ \implies &-q x =\frac{\partial q}{\partial u} w + \frac{\partial a}{\partial u}x + \frac{\partial b}{\partial u}\end{array} 再利用带余除法, 即得 $\frac{\partial a}{\partial u}=-12,\frac{\partial b}{\partial u}=185.5$

\begin{array}{ll} &0=\frac{\partial}{\partial v} \left(q(x) w(x) + ax +b\right)\\ \implies &-q =\frac{\partial q}{\partial v} w + \frac{\partial a}{\partial v}x + \frac{\partial b}{\partial v}\end{array} 再利用带余除法, 即得 $\frac{\partial a}{\partial v}=-7,\frac{\partial b}{\partial v}=23$

解方程 $$\begin{cases}a+\frac{\partial a}{\partial u}\Delta u + \frac{\partial a}{\partial v}\Delta v=0 \\ b+\frac{\partial b}{\partial u}\Delta u + \frac{\partial b}{\partial v}\Delta v=0\end{cases}$$ 即得 $\Delta u =0.0740831 ,\Delta v =1.08729 $

求解二次方程 $x^2 + (-5 + 0.07408312958435205) x + (26.5 + 1.0872860635696824)=0$ 即得 $x_0=2.5+4.5i$ 附近的根 $2.462958435207824+4.639086311980875i$

0 Shares:
发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

You May Also Like