2022-2023 春学期 矩阵与数值分析 C1 绪论
2022-2023 春学期 矩阵与数值分析 C1 绪论
封面
引言
本文内容来自于对矩阵与数值分析课程资料的整理;
本文所涉及的课程指东北某沿海高校,计算机学院硕士生必修课“矩阵与数值分析”,课程资料包括课程PPT、教材《计算机科学计算 第二版》[1],以及网络资料,师兄的笔记等。
C1 绪论
1.1 计算机科学计算研究对象与特点
该部分介绍了计算机科学计算研究对象与特点;
1.2 误差分析与数值方法的稳定性
误差的来源与分类
误差基本概念与有效数字
相对与绝对误差:
- 绝对误差:设 x 为精确值,a 为 x 的一个近似值,称 x-a 为近似值 a 的绝对误差,简称误差。误差 x-a 可正可负。通常准确值 x 是未知的,因此 x-a 也是未知的。
- 绝对误差界:设 x 为精确值,a 为 x 的一个近似值,若有常数 \(e_a\) 使得 \(|x-a|\leq e_a\) ,则 \(e_a\) 叫做近似值 a 的误差界(限)。它总是正数。显然有 \(a-e_a\leq x\leq a+e_a\)。
- 相对误差:若 \(x\neq0\),则将近似值的误差与准确值的比值\(\frac{x-a}{x}\) 称为近似值 a 的相对误差。相对误差也可正可负。实际计算中,如果真值 x 未知时,通常取 $ \frac{x-a}{x} \approx \frac{x-a}{a}$ 作为 a 的相对误差,条件是 \(\frac{x-a}{x}\) 较小。
- 相对误差界(限):相对误差的绝对值上限叫做相对误差界(限),记为 \(\frac{x-a}{a}\leq\frac{e_a}{|a|}\)。
误差界的取法:当准确值 x 的位置比较多时,人们常常按照四舍五入的原则得到 x 的前几位近似值 a。
* 例如:
\(x = \pi = 3.1415926\cdots\)
取3位:\(a_1 = 3.14, \pi-a_1=0.00159265\cdots\)
取5位:\(a_2 = 3.1416,\pi-a_2=-0.00000735\cdots\)
那么它们的误差界的取法应为:
\(|\pi-3.14|\leq\frac{1}{2}\times 10^{-2},\ |\pi-3.1416|\leq\frac{1}{2}\times10^{-4}\)
有效数字相关
定义:设 x 为精确值,a 为 x 的一个近似值 ,a 由 n 位数组成,自左向右第 i 位为\(a_i\),是 0 到 9 之中的一个数字,且\(i\geq1,\ a_1\neq 0\),表示为: \(a = \pm 10^k\times0.a_1a_2\cdots a_n\cdots\),其中,n 为正整数,k 为整数,如果其绝对误差界 \(|x-a|\leq\frac{1}{2}\times 10^{k-n}\),则称 a 为 x 的具有 n 位有效数字的近似值
有关结论:
- 有效数字位数与小数点的位置无关
- 一般来说,绝对误差与小数位数有关,相对误差与有效数字位数有关
- 如果一个近似值是由精确值四舍五入得到的,那么,从这个近似值的末尾数向前数起直至在五非零数字位置,所属到的数字均为有效数字
求有效数字位数的步骤:首先将近似值表示为定义中 a 的形式,可以得到 k,接下来一句上述定义计算绝对误差界,得到 k-n ,最后即可依据上述数据得到有效数字位数 n 。
* 例如1:
对于 $ e = 2.71828182\cdots$,下面各个值的有效数字的位数。
取 \(a=2.718 = 10^1\times 0.2718,\ k=1\),
其绝对误差界为 \(|e-a|<0.0003<\frac{1}{2}\times10^{-3},\ k-n=-3,\ n=4\),
\(a\) 是 \(e\) 的具有4位有效数字的近似值。
取 \(a_1=2.7182 = 10^1\times 0.27182,\ k=1\),
其绝对误差界为 \(|e-a_1|<0.00009<\frac{1}{2}\times10^{-3},\ k-n=-3,\ n=4\),
\(a_1\) 是 \(e\) 的具有4位有效数字的近似值。
* 例如2:
下列近似值的绝对误差界均为 0.005,问其有效数字的位数。
\(a=138.00,\ b=-0.0312,\ c=0.86\times 10 ^{-4}\)
对于\(a\), \(|x-a|<\frac{1}{2}\times10^{-2},\ k-n=-2\),且 \(a=138.00=0.138\times10^3, k=3,\ n=5\),a 具有5位有效数字。
对于\(b\), \(|x-b|<\frac{1}{2}\times10^{-2},\ k-n=-2\),且 \(b=-0.0312=-0.312\times10^{-1}, k=-1,\ n=1\),b 具有1位有效数字。
对于\(c\), \(|x-c|<\frac{1}{2}\times10^{-2},\ k-n=-2\),且 \(c=0.86\times 10^{-4}, k=-4,\ n=-2\),不满足 \(n\) 为正整数的条件,故 c 具有0位有效数字。
有效数字与相对误差界
关于有效数字与相对误差界有如下定理:
若实数 x 为某个精确值, a 为它的一个近似值,其表达式形式如
\(a=\pm10^k\times0.a_1a_2\cdots a_n\cdots\)
- 如果 a 有 n 位有效数字,则其相对误差满足 \(\frac{|x-a|}{|a|}\leq\frac{1}{2a_1}\times10^{1-n}\).
- 如果其相对误差满足 \(\frac{|x-a|}{|a|}\leq\frac{1}{2(a_1+1)}\times10^{1-n}\),则 a 至少有 n 位有效数字。
其推导过程如下所示:
函数计算的误差估计
针对一元函数:
思路:使用 Taylor 展开计算解决这一问题,例如将 f(x) 在 x=a 展开:
$ f(x)=f(a)+f(a)'(x-a) + \frac{f''(\xi)(x-a)}{2}$
$ |f(x)-f(a)|\leq|f'(a)||x-a|+\frac{|f''(xi)||(x-a)|^2}{2}$
由上式可得,
近似绝对误差估计式为:\(|f(x)-f(a)|\approx|f'(a)||x-a|\)
近似相对误差界为:\(\frac{|f(x)-f(a)|}{|f(a)}\leq\frac{f'(a)}{f(a)}|x-a|\)
* 例如1
计算 \(\sqrt{a}\) 的相对误差界
解: 相对误差界为
\(\frac{\sqrt{x}-\sqrt{a}}{\sqrt{a}}\leq\frac{(\sqrt{x})'|_{x=a}}{\sqrt{a}}|x-a|=\frac{1}{2(\sqrt{a})^2}|x-a|=\frac{1}{2}\frac{|x-a|}{|a|}\)
可知,\(\sqrt{a}\) 的相对误差为 \(a\) 的相对误差的一半
类似的,针对多变元的情况,
如果 \(f(x_1,x_2,\cdots,x_n)\) 为 \(n\) 元函数,自变量 \(x_1,x_2,\cdots,x_n\) 的近似值为 \(a_1,a_2,\cdots,a_n\) ,
则 \(f(x_1,x_2,\cdots,x_n)-f(a_1,a_2,\cdots,a_n)\approx\sum^n_{k=1}(\frac{\partial f}{\partial x_k})_a(x_k-a_k)\)
的函数值的误差界 \(|f(x_1,x_2,\cdots,x_n)-f(a_1,a_2,\cdots,a_n)|\approx\sum^n_{k=1}|(\frac{\partial f}{\partial x_k})_a||x_k-a_k|\)
* 例如2
可利用上述定义计算四则运算的误差估计
\(|f(x_1,x_2)-f(a_1,a_2)|\leq|(\frac{\partial f}{\partial x_1})_{a}|\cdot |x_a-a_1|+|(\frac{\partial f}{\partial x_2})_{a}|\cdot |x_2-a_2|\)
针对加减法 \(f(x_1,x_2)=x_1\pm x_2\), 有 $ |(x_1\pm x_2)-(a_1\pm a_2)|\leq|x_1-a_1|+|x_2-a_2|$
可知:两个近似数相加减,其运算结果的精度不必原始数据的任何一个精度高。
注意:在计算中应避免两个相近的数相减,否则容易导致有效数字的损失
针对乘法 \(f(x_1,x_2)=x_1\cdot x_2\),有 \(|x_1x_2-a_1a_2|\leq |a_2||x_1-a_1|+|a_1||x_2-a_2|\)
针对除法 \(f(x_1,x_2)=\frac{x_1}{x_2}\),有 \(|\frac{x_1}{x_2}-\frac{a_1}{a_2}|\leq\frac{|x_1-a_1|}{|a_2|}+\frac{|a_1||x_2-a_2|}{|a_2|^2}\leq\frac{|a_2||x_1-a_1|+|a_1||x_2-a_2|}{|a_2|^2}\)
可知,计算中应尽力避免小数作除数
数值方法数值稳定性
定义:
用某一种数值方法求一个问题的数值解,如果在方法的计算过程中舍入误差在一定条件下能够得到控制(或者说舍入误差增长不影响产生可靠的结果),则称该方法是数值稳定的;出现与数值稳定相反的情况,则称之为数值不稳定的。(蝴蝶效应?)
* 例如:
可见,两种方法计算得到的误差是有显著区别的。方法一每次都会使误差放大5倍;方法二每次都会使误差缩小为原来的 \(\frac{1}{5}\)。递推计算多次后就会有相当大的差别。而事实上方法一符合通常的思路,因为方法一的起点是已知的;而方法二的起点是未知的,计算难以开始。
一种可能的思路是,由积分中值定理可知,显然积分的结果在 0-1 之间,那不妨假设 \(I_{15}=\frac{1}{2}\),并以此利用方法二反推得到 \(I_7\),这样最后递推计算 8 次后,误差被缩小为原来的 \((\frac{1}{5})^8\),这对于 0-1 之间的结果来说是可以接受的,或者可以取大于 15 的数字开始递推更多次,使得误差被进一步缩小。
避免误差危害的基本原则
- 避免有效数字的损失
- 避免计算机上出现的”大数吃小数“
例如:
- 利用求根公式求解一元二次方程时,若 b 远大于 ac 的积,则 \(\sqrt{b^2-4ac}\approx|b|\),分母中的 $-b\pm\sqrt{b^2-4ac}\approx0 $, 出现了两相近的数相减的情况。
其例子与解决方法如下:
- 避免小数作除法或大数作乘数
- 减少运算次数
- 使用秦九韶算法
例如求 \(p_n(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0\) 的值,可通过如下过程:
\(\begin{aligned}p_n(x)&=a_nx^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0\\&=(a_nx+a_{n-1})x^{n-1}+\cdots+a_1x+a_0\\&=((a_nx+a_{n-1})x+a_{n-2})x^{n-2}+a_{n-3}x^{n-3}+\cdots a_1x+a_0\\&=\cdots=\\&=((\cdots((a_nx+a_{n-1})x+a_{n-2})x+\cdots+a_{2})x+a_1)x+a_0\end{aligned}\)
相较于直接逐项求和计算需要的 \(2n-1\) 次乘法,使用秦九韶算法后,仅需要计算总共 \(n\) 次乘法即可得到所需的结果。
例如:\(P_5(x)=5x^5+x^3-3x^2+x-1\)
\(\begin{aligned}P_5(x)&=5x^5+x^3-3x^2+x-1\\&=5x^5+0x^4+1x^3-3x^2+x-1\\&=((((5x+0)x+1)x-3)x+1)x-1\end{aligned}\)
- 使用泰勒展开
1.3 向量与矩阵范数
范数的概念是复数模的概念的自然推广
向量范数
条件
对任意向量 \(x\) 和 \(y\) 及复数 \(a\in C\),\(f(x)=||x||\)函数满足以下三个条件:
-
非负性
\(||x||\geq0,\ ||x||=0 \Leftrightarrow x=0_{n\times1}\)
-
齐次性
\(||ax||=|a|\cdot||x||\)
-
三角不等式
\(||x+y||\leq||x||+||y||\)
称函数 \(||*||\) 为 上的一个向量范数,是连续函数
常用的向量范数
p-范数
\(||x||_p=(\sum^n_{i=1}|x_i|^p)^{1/p},\ 1\leq p<+\infty\)
特别的,
\(p=1,\ ||x||_1=(\sum^n_{i=1}|x_i|)\),\(|x_i|\) 表示 \(x_i\) 的模
\(p=2,\ ||x||_2=(\sum^n_{i=1}|x_i|^2)^{1/2}=\sqrt{x^Hx}=\sqrt{(x,x)}\),其中 \(x^H\) 表示 向量\(x\) 的共轭转置
\(p=+\infty,\ ||x||_\infty=\max_\limits{ 1\leq i\leq n}|x_i|\)
向量加权范数
* 例如
等价性定理:
设 \(||\cdot||_\beta\) 和 \(||\cdot||_\alpha\) 为 \(C^n\) 上的任意两种向量范数,则存在两个与向量无关的正常数 \(c_1>0,\ c_2>0\),使得 \(c_1||x||_\beta\leq||x||_\alpha\leq c_2||x||_\beta\),并称 \(||\cdot||_\beta\) 和 \(||\cdot||_\alpha\) 为 \(C^n\) 上的等价范数。
这一定理指出了尽管不同范数的值不一定相同,但都可以对向量进行度量。
特别的,
\(||x||_\infty\leq||x||_1\leq n||x||_\infty\)
\(\frac{1}{\sqrt{n}}||x||_1\leq||x||_2\leq||x||_1\)
\(\frac{1}{\sqrt{n}}||x||_2\leq||x||_\infty\leq||x||_2\)
或者
\(||x||_\infty\leq||x||_2\leq||x||_1\leq\sqrt{n}||x||_2\leq n||x||_\infty\)
矩阵范数 (m, F)
矩阵可以看(拉)做一个向量,可以把向量范数的概念直接推广到矩阵上
条件
对任意矩阵 \(A\) 和 \(B\) 及复数 \(a\in C\) ,函数 \(f(A)=||A||\) 满足以下四个条件:
-
非负性
\(||A||\geq0,\ ||A||=0\Leftrightarrow A=0\)
-
齐次性
\(||\alpha A||=|\alpha|\cdot||A||\)
-
三角不等式
\(||A+B||\leq||A||+||B||\)
-
相容性
相比于向量范数,矩阵范数应考虑到矩阵乘法。
对任意矩阵 \(A\in C^{m\times l}\),\(B\in C^{l\times n}\),满足 \(||AB||_{M1}\leq||A||_{M2}\cdot||B||_{M3}\)
满足非负性、齐次性、三角不等式、相容性的函数 \(||\ \ ||\) 称为矩阵范数
对于矩阵 \(A_{m\times n}\),常见的矩阵范数有:
-
\(m_1\) 范数,\(||A||_{m_1}=\sum^m_{i=1}\sum^n_{j=1}|a_{ij}|\);
-
\(F\) 范数,\(||A||_F=(\sum^m_{i=1}\sum^n_{j=1}|a_{ij}|^2)^{1/2}\);
-
\(m_\infty\) 范数,\(||A||_{m_\infty}=\sqrt{m\cdot n}\cdot\max\limits_{ij}|a_{ij}|\);
注意 \(||A||_{m‘_\infty}=\max\limits_{ij}|a_{ij}|\) 不构成 \(A\) 的范数,理由如下图所示:
矩阵范数的等价性定理:设 \(||\cdot||_\beta\) 和 \(||\cdot||_\alpha\) 为 \(C^{n\times n}\) 上的任意两种矩阵范数,则存在两个与矩阵无关的正常数 \(c_1>0,\ c_2>0\),使得 \(c_1||A||_\beta\leq||A||_\alpha\leq c_2||A||_\beta\),并称 \(||\cdot||_\beta\) 和 \(||\cdot||_\alpha\) 为 \(C^{n\times n}\) 上的等价范数。
矩阵范数的性质
定义:
称集合 \(\sigma(A)=\{\lambda|\det(\lambda I-A)=0\}\) 为矩阵 \(A\in C^{n\times n}\) 的谱;也就是 \(A\) 的所有的特征值全体;
称实数 \(\rho(A)=\max|\lambda|\) 为矩阵 \(A\in C^{n\times n}\) 的谱半径;也就是 \(A\) 的绝对值最大的特征值;谱半径不是矩阵的范数。
三个重要定理
定理1:设 \(||\ \cdot\ ||_M\) 为矩阵 \(C^{n\times n}\) 空间的任一矩阵范数,则对任意的 \(n\) 阶方阵 \(A\) 均有 \(\rho(A)\leq||A||_M\),其中 \(\rho(A)\leq||A||_M\) 为 \(A\) 方阵的谱半径
证明:
定理2:对于任给的 \(\varepsilon>0\) ,则存在 \(C^{n\times n}\) 上的一种算子范数 \(||\ \ ||_M\) (依赖矩阵 \(A\) 和常数 \(\varepsilon\)),使得 \(||A||_M\leq\rho(A)+\varepsilon\);
注意:对另一矩阵 \(B\),不等式不一定成立
定理3: 设 \(A\in C^{n\times n}\) ,如果有 \(C^{n\times n}\) 上的一种矩阵范数 \(||\cdot||\),使得 \(||A||<1\) 则
(1)$ I\pm A$ 可逆;
(2)\(||(I\pm A)^{-1}||\leq\frac{||I||}{1-||A||}\);
(3)\(||I-(I\pm A)^{-1}||\leq\frac{||A||}{1-||A||}\);
注:如果 \(\lambda_i,\ i=1,2,\cdots,n\) 是矩阵 \(A\) 的特征值,则矩阵 \(I\pm A\) 的特征值为 \(\mu_i=1\pm\lambda_i,\ i=1,2,\cdots,n\)
证明:
算子范数
由于矩阵与向量的乘积在矩阵计算中经常出现,所以希望矩阵范数与向量范数之间最好有某种协调性
相容性
矩阵范数与向量范数的相容性的定义: 对矩阵范数 \(||\ \ ||_M\) 与向量范数 \(||\ \ ||_V\),有 \(||Ax||_V\leq||A||_M||x||_V\)
显然,不是任意的矩阵范数与任意的向量范数相容。
结论:
- 矩阵 m1-范数与向量 p-范数相容,即 \(||Ax||_P\leq ||A||_{m1}||x||_p\)
- 矩阵 F-范数与向量 2-范数相容,即 \(||Ax||_2\leq||A||_F||x||_2\)
- 对任一矩阵范数均存在与之相容的向量范数
定理1.4(算子范数定义):已知 \(C^m\) 和 \(C^n\) 上的同类向量范数 \(||\cdot||_V\),\(A\) 为 \(m\times n\) 矩阵,定义 \(||A||_M=\max\limits_{x\neq0}\frac{||Ax||_V}{||x||_V}=\max\limits_{||x||_V=1}||Ax||_V\),则 \(||A||_M\) 是一种矩阵范数,且与已知的向量范数相容。
对于矩阵 \(A_{m\times n}\),常用的算子范数有
-
列和范数:\(||A||_1=\max\limits_{1\leq j\leq n}\sum_{i=1}^m|a_{ij|}\)
-
行和范数:\(||A||_\infty=\max\limits_{1\leq i\leq m}\sum^n_{j=1}||a_{ij}||\)
-
谱范数:\(||A||_2=\sqrt{\lambda_\max(A^HA)}=\sqrt{\rho(A^HA)}\),(谱半径开根号)
可以证明:\(||A||^2_2\leq||A||_1||A||_\infty\)
其中 \(\lambda_\max(A^HA)\) 表示矩阵 \(A^HA\) 的最大特征值;(或 \(\sqrt{\rho(A^HA)}\))
特别的,\(||A||_{m_1}\)、\(||A||_F\) 不是算子范数
(下标带 m、F 的是矩阵范数,其他的是矩阵范数中的算子范数?)
* 例如1
针对单位矩阵
* 例如2
*酉矩阵的范数不变性
对于酉矩阵 \(U,\ U^HU=UU^H=I\),(该矩阵与其共轭转置的乘积为单位矩阵),
有 \(||U||_2=1,\ ||AU||_2=||UA||_2=||A||_2\);
推导过程如下:
*F-范数的酉不变性
设 \(A\) 为 \(n\) 阶方阵,则存在 \(n\) 阶酉阵 \(U\) 和 \(V\), 使得 \(||UA||_F=||AV||_F=||UAV||_F=||A||_F\)
推导过程如下:
其他的结论
《计算机科学计算 第二版》 作者: 张宏伟 金光日 施吉林;出版社: 高等教育出版社;页数: 379;定价: 38.1元;装帧: 平装-胶订;ISBN: 9787040365955 出版年:2013;学科主题: 电子计算机 教材 科学计算-高等学校;中图法分类号: TP301.6; 一般附注: 高等学校教材 ↩︎