複製鏈接
請複製以下鏈接發送給好友

三對角矩陣

鎖定
線性代數中,三對角矩陣矩陣的一種,它“幾乎”是一個對角矩陣。準確來説:一個三對角矩陣的非零係數在如下的三條對角線上:主對角線、低對角線、高對角線。在許多物理問題中,三對角矩陣常常作為原始數據出現,因此它們本身是很重要的,這種矩陣僅有(2n-1)個獨立的元素。由三對角矩陣確定特徵值由一些較有效的方法,常見的有兩種:QR法、特徵多項式法。
中文名
三對角矩陣
外文名
Tridiagonal Matrix [1] 
屬    性
矩陣
類    型
數學術語
特    點
非0元素排列在三條對角線上
應用領域
數值分析,工程結構動力分析

三對角矩陣定義

形如
的n×n矩陣A稱為三對角矩陣,其中第(i,j)個元素在j>i+1和j<i-1時為零。 [2] 

三對角矩陣三對角矩陣的建立

三對角矩陣分析矩陣特點

三對角矩陣M是一個對角矩陣,當且僅當
時,有M(i,j)=0。在一個nxn的三對角矩陣T中,非0元素排列在如下的三條對角線上:
(1)主對角線即i=j;
(2)主對角線之下的對角線(稱低對角線)即i=j+1;
(3)主對角線之上的對角線(稱高對角線)即i=j-1。
這三條對角線上的元素總數為3n-2,故可以使用一個擁有3n-2個位置的一維數組來描述T,因為僅需要存儲三條對角線上的元素。 [3] 

三對角矩陣矩陣實例

考察如下所示的4×4三對角矩陣:
三對角矩陣上共有10個元素,如果把這些元素逐行映射到t中,則有t[0:9]=[2,1,3,1,3,5,2,7,9,0];如果逐列映射到t上,則有t[0:9]=[2,3,1,1,5,3,2,9,7,0];如果按照對角線的次序(從最下面的對角線開始)進行映射,則有t[0:9]=[3,5,9,2,1,2,0,1,3,7]。 [3] 

三對角矩陣建立該三對角矩陣的程序

利用Store函數把傳入的x值存儲在相應的三對角矩陣中,並通過switch語句判斷其所在位置。具體程序如下:
#include "stdio.h"

#define n 10
int t[3*n];

void Store(intx,int i,int j)

{//把x存為T(i,j)
  
  if(i<1 || j<1 ||i>n ||j>n)
  
    {printf("數組出界!");
  
     exit(1);
  
    }
  
  switch(i-j){
  
    case 1:t[i-2]=x;break;//低對角線
  
    case 0:t[n+i-2]=x;break;//主對角線
  
    case -1:t[2*n+i-2]=x;break;//高對角線
  
    default:
  if(x!=0)
    
    {
    
      printf("非對角線上元素值必須為零");
    
      exit(1);
    
    }
  
  }

}

void main()
{
  
int i,j;
  
int D[n][n];
     
   for(i=0;i<n;i++)
        
      for(j=0;j<n;j++)
           
      Store(D[i][j],i,j);

}

三對角矩陣確定三對角矩陣的特徵值

三對角矩陣QR法

QR法對於三對角矩陣來説是很好的,在這個方法中,矩陣被分解成以下形式:
,其中
正交矩陣
上三角矩陣。產生如下的矩陣序列:將
化成乘積形式
,則
定義為
一般來説,對於
化成
,其中
是正交矩陣,
是上三角矩陣,則
被定義為
以相反次序乘積式,即
。因為
是正交矩陣,
是對稱的,與
有相同的特徵值。我們定義
成這樣的形式:
是三對角矩陣,最終
趨於變為對角陣,其對角線上的元素給出原矩陣的特徵值。

三對角矩陣特徵多項式法

特徵多項式法可以像特徵多項式
的根一樣確定特徵值。有一種有效的方法來構造三對角矩陣的特徵多項式。使用符號法可以求特徵值的歸類,從而形成一個Sturmian序列。然後用對分法試位法來求精確的特徵值。由Householder變換得到的對稱三對角矩陣的特徵多項式為:
其中,i=1,2,...,n,有:
向前的Sturm序列可以表示為:
因此,有

三對角矩陣實例

求下述三對角矩陣的特徵多項式:
解:把該矩陣與特徵多項式的一般形式作比較,則有
比較這兩個矩陣,得到
的表達式中代入
的值並化簡,得到:
[4] 
參考資料
  • 1.    林雲寰.英俄漢數學詞彙:廣東科技出版社,1991.12:第534頁
  • 2.    (英)G.M.菲利普斯 P.J.泰勒.數值分析的理論及其應用.上海:上海科學技術出版社,1980:228-229
  • 3.    汪傑等編著.數據結構經典算法實現與習題解答.北京:人民郵電出版社,2004:45-46
  • 4.    PALLAB GHOST著.數值方法(C++描述).北京:清華大學出版社,2008:203-205