Example 5.34Solve $$\begin{bmatrix} 1 & 2 & 3 & 1 \ 2 & 1 & 1 & 1 \ 1 & 2 & 1 & 0 \ 0 & 1 & 1 & 2 \end{bmatrix} \begin{bmatrix} x \ y \ z \ t \end{bmatrix} = \begin{bmatrix} 5 \ 3 \ 4 \ 0 \end{bmatrix}$$
Solution 消元顺序为 $$\begin{bmatrix} 1 & 2 & 3 & 1 \ 0 & -3 & -5 & -1 \ 0 & 0 & -2 & -1 \ 0 & 1 & 1 & 2 \end{bmatrix} \begin{bmatrix} x \ y \ z \ t \end{bmatrix} = \begin{bmatrix} 5 \ -7 \ -1 \ 0 \end{bmatrix}, \begin{bmatrix} 1 & 2 & 3 & 1 \ 0 & 1 & \frac{5}{3} & \frac{1}{3} \ 0 & 0 & -2 & -1 \ 0 & 0 & -\frac{2}{3} & \frac{5}{3} \end{bmatrix} \begin{bmatrix} x \ y \ z \ t \end{bmatrix} = \begin{bmatrix} 5 \ \frac{7}{3} \ -1 \ -\frac{7}{3} \end{bmatrix}$$
$$\begin{bmatrix} 1 & 2 & 3 & 1 \ 0 & 1 & \frac{5}{3} & \frac{1}{3} \ 0 & 0 & 1 & \frac{1}{2} \ 0 & 0 & 0 & 2 \end{bmatrix} \begin{bmatrix} x \ y \ z \ t \end{bmatrix} = \begin{bmatrix} 5 \ \frac{7}{3} \ \frac{1}{2} \ -2 \end{bmatrix}$$
对上三角化过程的应用给出 $t = -1, z = 1, y = 1$ and $x = 1$ .
显然,如果, 在图所示的算法中 5.10, $A(i, i)$ 在任意时刻均为零, 该方法将失效. 它是, 事实上, 也被发现有利于该方法的稳定性,即具有 $A(i, i)$ 尽可能大. 因此,在 (5.27) 通常会进行一 ‘部分主元消元法(partial pivoting),使该列中绝对值最大的元素, $\max_{i \leq p \leq n} |A(p, i)|$ , 被选中,并通过交换方程使其成为主元. 在图 5.11 部分主元消元法(列主元法)包含在 elim procedure:
Figure 5.11
消元法步骤 (5.26) 带部分主元选取.
function A= elimpp(m,n,a)
% elimpp implements Gaussian elimination
% with partial pivoting for an mxn matrix a
% remove semicolons at the ends of lines 8,11,12 and 13
% to print all
for k=1:m-1
if k<n
M=max(abs(a(k:m,k)));
if M>0 %ensures pivot is non-zero
kk=k;while abs(a(kk,k))<M,kk=kk+1;end
a([k,kk],:)=a([kk,k],:); % row swap
a(k,:)=a(k,:)/a(k,k);
a(k+1:m,k:n)=a(k+1:m,k:n)-a(k+1:m,k)*a(k,k:n);
end
end
A=a;
end