【数值计算】数值线性代数

2021年06月12日    Author:Guofei

文章归类: 0x55_数值计算    文章编号: 5502


版权声明:本文作者是郭飞。转载随意,但需要标明原文链接,并通知本人
原文链接:https://www.guofei.site/2021/06/12/numerical_linear_algebra.html

Edit

基本问题

数值线性代数主要包括以下三个问题

  1. 解线性方程组的问题。给定 $Ax=b$,求 x
  2. 线性最小二乘问题。$\arg\min\limits_{x\in R^n} \mid\mid Ax-b \mid\mid_2$
  3. 求A的部分或全部 特征值、对应的 特征向量

数值线性代数的 必要性:线性代数的一些定理,证明过程非常漂亮,但对应的计算量大的惊人

设计算法的 主要技巧:矩阵分解

敏度分析与误差分析,误差两个来源:原始数据本身的误差(可能来自测量)、计算过程产生的误差。所以需要两个理论

  1. 敏度分析
  2. 误差分析

算法复杂度和收敛速度。

  1. 复杂度分析:90年代之前只考虑乘除,90年代后的计算机加减乘除速度相差无几,所以都考虑
  2. 不能完全依据运算量来评价算法快慢,现代计算机运算速度远高于数据传输数独,所以算法的速度很大程度上取决于数据传输两。
  3. 对于迭代算法,还需要分析收敛速度。$\mid\mid x_k-x \mid\mid \leq c\mid\mid x_{k-1}-x \mid\mid^n$ 称为n次收敛,显然n越大越好

线性方程组消元法

Gauss消元法,适用于

  1. 中小规模的线性方程组,阶数不超过1000
  2. 系数矩阵稠密
  3. 没有任何特殊结构

思路:解方程 $Ax=b$,

  1. 把A分解为 $A=P^{-1}LU$,其中P是排列矩阵,L是下三角矩阵,U是上三角矩阵,
  2. 就可以把问题分解为:$Ly=Pb,Ux=y$,
  3. 三角矩阵对应的解法大为简化。

上面算法的问题:如果某主元不为0但很小,在计算机精度下的计算结果差很多。 解决:$PAQ=LU$

对于正定矩阵,有更好的办法:
若 A 正定,那么纯在下三角矩阵 L,使得 $A=LL^T$(Cholesky分解定理)

分块矩阵:可以分块处理,大大节省内存和计算量

参考文献

《数值线性代数》北京大学出版社,徐高方


您的支持将鼓励我继续创作!
WeChatQR AliPayQR qr_wechat