牛顿法求解二元方程组的计算器

目录

本文提供了一个交互式计算器,使用牛顿法[1]近似求解两个变量的方程组。计算器近似求解方程组的解(如果存在),并提供每次迭代的所有值表格,便于教学使用。

牛顿法求解方程组

牛顿法是一种数值方法,通过迭代从一个近似解开始,找到方程的根。当处理方程组时,该方法自然扩展为考虑雅可比矩阵及其行列式。

单变量牛顿法

假设我们需要求解以下方程 \[ f(x) = 0 \] 泰勒展开式 \( f(x+\Delta x) \) 为 \[ f(x+\Delta x) \approx f(x) + \Delta x f'(x) \] 现在我们解 \( f(x+\Delta x) = 0 \),得到 \[ f(x) + \Delta x f'(x) = 0 \] 得到 \[ \Delta x \approx - \dfrac{f(x)}{f'(x)} \] 假设我们知道方程根的一个近似值 \( x_n \),则近似根 \( x_{n+1} \) 定义为 \[ \Delta x = x_{n+1} - x_n \] 可以表示为 \[ x_{n+1} \approx x_{n} - \dfrac{f(x)}{f'(x)} \]

方程组与雅可比矩阵

考虑一个含有两个变量 \( x \) 和 \( y \) 的方程组: \[ \begin{align*} f(x, y) &= 0 \\ g(x, y) &= 0 \end{align*} \] 该系统的雅可比矩阵 \( J \) 表示为: \[ J = \begin{bmatrix} \frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \\ \frac{\partial g}{\partial x} & \frac{\partial g}{\partial y} \end{bmatrix} \]

牛顿法的更新公式

牛顿法用于方程组的更新公式为: \[ \begin{aligned} \Delta x &= \frac{-f \cdot g_y + g \cdot f_y}{\text{D}} \\\\ \Delta y &= \frac{-g \cdot f_x + f \cdot g_x}{\text{D}} \end{aligned} \] 因此 \[ \begin{aligned} x_{n+1} &\approx x_n + \frac{-f \cdot g_y + g \cdot f_y}{\text{D}} \\\\ y_{n+1} &\approx y_n + \frac{-g \cdot f_x + f \cdot g_x}{\text{D}} \end{aligned} \] 其中 \( f \) 和 \( g \) 是在当前 \( (x_n, y_n) \) 处评估的函数。
\( f_x, f_y, g_x, g_y \) 是函数 \( f \) 和 \( g \) 对 \( x \) 和 \( y \) 的偏导数。
\(\text{D} = f_x \cdot g_y - f_y \cdot g_x\) 是雅可比矩阵的行列式。

迭代过程

牛顿法通过上述公式迭代更新变量 \( x \) 和 \( y \),直到满足停止准则为止。常见的停止准则包括:
收敛容差:当连续迭代之间的差异小于某个阈值时停止。
最大迭代次数:达到最大迭代次数时停止。
1. 初始化:从 \( x \) 和 \( y \) 的初始猜测值开始: 获得接近方程组解的初始猜测值的一种方法是绘制 \( f(x,y) \) 和 \( g(x,y) \) 的图形,近似它们的交点,并使用它们作为初始猜测值。 图形的交点
2. 评估函数及其导数:计算当前 \( (x, y) \) 处的 \( f(x, y) \)、\( g(x, y) \) 及其偏导数。
3. 计算行列式:计算雅可比矩阵的行列式。
4. 更新变量:使用牛顿法更新公式计算 \( \Delta x \) 和 \( \Delta y \)。
5. 迭代:使用 \( \Delta x \) 和 \( \Delta y \) 更新 \( x \) 和 \( y \),并重复直到达到收敛条件或最大迭代次数。
6. 容差 \( \epsilon \) 用于测试 \( f(x,y) \) 和 \( g(x,y) \) 的绝对值如下:
当 \( |f(x,y)| \lt \epsilon \) 和 \( |g(x,y)| \lt \epsilon \) 时,迭代过程停止。
7. 计算器一次近似一个解。
牛顿法为求解两个变量方程组提供了一种强大而高效的方法,前提是初始猜测值足够接近实际解,并且函数在解的邻域内可微。

计算器









结果

迭代次数 \( x \) \( y \) \( f(x, y) \) \( g(x, y) \)


更多参考文献和链接

《大学微积分 - 早期超越》- Joel Hass, Maurice D. Weir, George B. Thomas, Jr., Christopher Heil - ISBN-13 : 978-0134995540
《微积分》- Gilbert Strang - MIT - ISBN-13 : 978-0961408824
《微积分 - 早期超越》- James Stewart - ISBN-13: 978-0-495-01166-8