目錄
前言
一、排列矩陣是什么?
二、三角形矩陣
總結(jié)
前言
????????上一篇文章講了線性方程組的高斯消元法?。本文是一個輔助概念,講解上文得到的P矩陣和L與U矩陣所代表的排列矩陣和上三角矩陣。
一、排列矩陣是什么?
? ? ? ? 排列矩陣(permutation matrix)是單位矩陣經(jīng)過行列交換而得到的新矩陣。它在每行或每列上有且僅有一個1,其他元素都為0.例如:
? ? ? ? 如上一篇文章所說,對任意矩陣A左乘一個排列矩陣P,就是對矩陣A的行進(jìn)行排列。如果對任意矩陣A右乘一個排列矩陣P,就是對矩陣A的列進(jìn)行排列。
? ? ? ? Matlab中提供了一種快速建立排列矩陣的方法:
即用一個排列向量(permutation vector)作為行或者列的索引,對于上面那個排列矩陣P,設(shè)p為排列向量,則有:
p = [1,3,2];
即,第一行的第一列是1,第二行的第三列是1,第三行的第2列是1.
此時,P*A 和A(p,:)都表示對A進(jìn)行行排列;而A*P和A(:,p)都表示對A進(jìn)行列排列。
clear,clc
p=[1 3 2];
P=[1 0 0;0 0 1;0 1 0];
A=[10 -7 0;-3 2 6;5 -1 5];
P*A
A(p,:)
A*P
A(:,p)
輸出如下:
輸出結(jié)果確實符合所需排列要求。?
這兩種方式都可以在Matlab中講矩陣進(jìn)行排列。更接近傳統(tǒng)數(shù)學(xué)表達(dá)方式,而則會占用更少的內(nèi)存,且運算速度更快。
二、三角形矩陣
????????三角形矩陣就是所有非零元素集中在主對角線之上或之下。如果所有非零元素在主對角線之上,叫上三角矩陣(upper triangular)如果所有非零元素在主對角線之下,叫下三角矩陣。
? ? ? ? 特別地,如果主對角線上的元素都為1,則可以叫做單位三角矩陣。
如上一節(jié)的例子:
就是一個單位下三角矩陣(unit lower triangualr)。
?如果系數(shù)矩陣為三角矩陣,則對于方程,其中U為n階方陣,b為列向量。則求其解x可以如下有兩種算法。
%% 從b向量中逐個減去矩陣U列的倍數(shù)
x=zeros(n,1);
for k=n:-1:1
x(k)=b(k)/U(k,k);
i=(1:k-1)';
b(i)=b(i)-x(k)*U(i,k);
end
%% 使用U矩陣的行和解出的部分x作內(nèi)積
x=zeros(n,1);
for k=n:-1:1
j=k+1:n;
x(k)=(b(k)-U(k,j)*x(j))/U(k,k);
end
總結(jié)
????????本文講解了兩種特殊矩陣。分別是排列矩陣P和三角矩陣U。這兩種特殊矩陣在求解方程組的時候經(jīng)常用到。上一節(jié)留下了一個公式:LU=PA,結(jié)合本講可以知道。L是消元過程的乘子,是一個單位下三角矩陣;U是消元后最后得到的系數(shù)矩陣,它是一個上三角矩陣;P是一個排列矩陣。文章來源:http://www.zghlxwxcb.cn/news/detail-726040.html
? ? ? ? 至此,準(zhǔn)備工作結(jié)束,下一節(jié)開始講解矩陣的LU分解。文章來源地址http://www.zghlxwxcb.cn/news/detail-726040.html
到了這里,關(guān)于排列矩陣和三角矩陣——Matlab解線性方程組(2)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!