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