习题一 T1

给出求下三角矩阵的逆矩阵的详细算法.

利用类似 Gauss 消元法的想法即可,这里为方便起见不选主元(仅仅在每次循环时多一步检查列绝对值最大元的操作),处理第 列时,先消去严格下三角部分的数值:

然后乘数值使得 位为 .

% Input: 矩阵 A
% Output: A 的逆矩阵,就地操作
 
for j = 1:n
	% 计算对角线元素
	A(j,j) = 1 / A(j,j);
	% 计算当前列的下方非对角元素
	for i = j+1:n
		A(i,j) = (-A(i, j:i-1) * A(j:i-1, j)) / A(i,i);
	end
end

经过 MATLAB 验证准确.

习题一 T7

对称且 ,并假定经过一步 Gauss 消去之后, 具有如下形式

证明 仍然是对称阵.

证明与解:设题中经过一步之后的矩阵 .考虑经过一次 Gauss 消去之后 当中的元素. 其中 整体第 列(其中 以及 )的元素为:

而根据 是对称阵,容易得到

这说明 是对称阵.

习题一 T9

有三角分解,指出当把 Gauss 消去法应用于 矩阵 时,怎样才能不必存储 而解出 ?需要多少次乘法运算.

证明与解:首先对 ,先作行变换使得其中的 变为上三角,也就是说先对整体做一次类似前代法的操作:

% 记 B = [A,b]
for j = 1:n-1
	% 按列
	for k = j+1:n
	% 逐行操作
		B(k,1:n+1) = B(k,1:n+1) - B(k,j) * B(j,1:n+1)/B(j,j)
	end
end

其中乘法次数应该为

然后对于上三角矩阵,再通过行变换将其变为对角阵:

for j = n:-1:2
	for k=1:j-1
		B(k,1:n+1) = B(k,1:n+1) - B(k,j) * B(j,1:n+1)/B(j,j)
	end
end

这里和先前的操作是对称的,同样需要 次乘法操作.

最后还需要把对角线元素都化为 ,共 次乘法操作,综上加起来共有 次乘法操作.

习题一 T11

并且 阶非奇异阵,矩阵

称为 中的 Schur 余阵,证明:如果 有三角分解,那么经过 步 Gauss 消去以后, 正好等于 的矩阵 .

证明: 不难发现

左侧的矩阵实际上就是 Gauss 变换矩阵 ,计算过程就是消元过程,根据消元计算过程的唯一性, .

习题一 T16

形如 的矩阵称作 Gauss-Jordan 变换,其中 . (1) 假定 非奇异,试给出计算其逆元的方式;

(2) 向量 满足何种条件才能保证存在 ,使得

(3) 给出一种利用 Gauss-Jordan 变换求 的逆矩阵 的算法,并且说明 满足何种条件才能保证你的算法能够进行到底.

证明与解:

(1) 考虑分块矩阵:

可作初等变换使得

因此考虑 的左上角部分即可,同样利用另一种方式的初等变换,即直接消元:

因此

(2) 先变换为

因此仅需保证 的第 个分量不为 即可.

(3) 根据 (1) 和 (2) ,将 表示为列向量集合

我们要求

因此,利用 Gauss-Jordan 变换求

个线性方程组即可,利用 Gauss 消元法时,每一步的 Gauss 变换矩阵形如 Gauss-Jordan 阵.

根据 (2) ,算法能进行到底的条件就是对于每个 ,其第 个分量不为 .