Numerical Methods Using MATLAB(4版)-03-Linear Systems

引自Numerical Methods Using MATLAB(4版)书籍,如有侵权请联系删除

前言

这一章主要讲求解Ax=b的方法。

学习过程

其中前面的内容都是在讲向量和矩阵,学过线代即可跳过。

方法一 高斯消除 Gauss Elimination

高斯消除主要分为两个步骤,一个为前向消除,一般指将矩阵化简为上三角矩阵,另一个为后向替代,指从最后一行开始替代求解。
其中,如果遇到对角线元素为0时,我们无法除0消除,这时候我们可以交换行使得对角线为0。
在运算过程中,我们可能会遇到计算误差,然后在逐步计算中传播误差,因此我们可以通过局部比例交换来解决这个问题。就是行交换,如何判断哪行交换可以更小的减少误差这点没看懂。好像是选出每行的最大绝对值,再让每列除最大绝对值,将权重最大的交换到前面?

病态矩阵:有一种矩阵它会因为微小的干扰而对结果产生较大的相对误差,比如近似于奇异矩阵,行列式近似于0,等式几乎都是平行等等这些情况。

方法二 LU分解 LU Factorization

非奇异矩阵A可以分解为A=LU。其中L为下三角矩阵,其对角线都为1,U为上三角矩阵,其对角线不为0。
也有可能A不能分解为LU,这时候可以通过排列矩阵P使得PA=LU

方法三 Jacobi迭代

使用直接法会使得产生错误后这个错误就一直存在了,但是迭代法可以在之后将错误调整回来。
该迭代原理举例:
-2x+y+5z=15

4x-8y+z=-21

4x-y+z=7.

则迭代式可以为:
x_{k+1}=\frac{-15+y_k+5z_k}{3}

y_{k+1}=\frac{21+4x_k+z_k}{8}

z_{k+1}=7-4x_k+y_k

如果对角线元素大于其行上所有元素绝对值之和,则称是严格对角的。即如果A是严格对角的,那么AX=B有唯一解X=P。迭代式迭代的过程数列\{P_k\}最后会收敛到P。同理,Gauss-Seidel迭代也是如此。

方法四 Gauss-Seidel迭代

我们可以加速Jacobi迭代的收敛速度,于是提出了该方法。
对Jacobi迭代中的例子,Gauss-Seidel迭代的迭代式可以为:
x_{k+1}=\frac{-15+y_k+5z_k}{3}

y_{k+1}=\frac{21+4x_{k+1}+z_k}{8}

z_{k+1}=7-4x_{k+1}+y_{k+1}

Jacobi迭代和Gauss-Seidel迭代很相似,但在某些情况下,会出现Gauss-Seidel迭代不收敛而Jacobi迭代收敛的情况。

方法五 牛顿法拓展

对于多个方程式求解,牛顿法迭代也是一种方法,但是怎样的迭代式收敛,我们需要判断其前提条件。
Jacobi矩阵可以表示为J(x,y)=\begin{bmatrix} \frac{\partial f_1}{\partial x} \ \ \frac{\partial f_1}{\partial y} \\ \frac{\partial f_2}{\partial x} \ \ \frac{\partial f_2}{\partial y} \\ \end{bmatrix}

那么函数变化可以表示为\begin{bmatrix}\partial u \\ \partial v \\ \partial w \end{bmatrix}=J(x_0,y_0,z_0)\begin{bmatrix}\partial x \\ \partial y \\ \partial z \end{bmatrix}

定理:对于三维的不动点迭代来说,如果初始值(p_0,q_0,r_0)近似于不动点(p,q,r),且满足
|\frac{\partial g_1}{\partial x}(p,q,r)|+|\frac{\partial g_1}{\partial y}(p,q,r)|+|\frac{\partial g_1}{\partial z}(p,q,r)|<1,

|\frac{\partial g_2}{\partial x}(p,q,r)|+|\frac{\partial g_2}{\partial y}(p,q,r)|+|\frac{\partial g_2}{\partial z}(p,q,r)|<1,

|\frac{\partial g_3}{\partial x}(p,q,r)|+|\frac{\partial g_3}{\partial y}(p,q,r)|+|\frac{\partial g_3}{\partial z}(p,q,r)|<1,

那么这个迭代可以收敛到(p,q,r)
其迭代公式为:
p_{k+1}=g1(p_k,q_k,r_k)

q_{k+1}=g2(p_k,q_k,r_k)

r_{k+1}=g3(p_k,q_k,r_k)

方法六 Seidel迭代

针对牛顿法改进。
p_{k+1}=g1(p_k,q_k,r_k)

q_{k+1}=g2(p_{k+1},q_k,r_k)

r_{k+1}=g3(p_{k+1},q_{k+1},r_k)

对于非线性方程组的牛顿迭代

\begin{bmatrix} u-u_0 \\ v-v_0 \\ \end{bmatrix}=\begin{bmatrix} \frac{\partial}{\partial x}f_1(x_0,y_0) \ \ \frac{\partial }{\partial y}f_1(x_0,y_0) \\ \frac{\partial}{\partial x}f_2(x_0,y_0) \ \ \frac{\partial}{\partial y}f_2(x_0,y_0) \\ \end{bmatrix}\begin{bmatrix} x-x_0 \\ y-y_0 \\ \end{bmatrix}.
=>J(p_0,q_0)·\Delta P=-F(p_0,q_0)
=>\Delta P \approx -J(p_0,q_0)^{-1}F(p_0,q_0)
=>P1=P_0+\Delta P=P0 -J(p_0,q_0)^{-1}F(p_0,q_0)

词汇学习

octant 八分圆
orthogonal 正交的
determinant 行列式
scalar 标量
tractable 易处理的
cofactor 辅因子
invertible 可逆的
pivoting 交换
pivotal 关键的
equilibrate 平衡
perturbation 干扰
prone 俯卧
permutation 排列

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。