實(shí)對(duì)稱矩陣的標(biāo)準(zhǔn)形(完整版)實(shí)用資料_第1頁(yè)
實(shí)對(duì)稱矩陣的標(biāo)準(zhǔn)形(完整版)實(shí)用資料_第2頁(yè)
實(shí)對(duì)稱矩陣的標(biāo)準(zhǔn)形(完整版)實(shí)用資料_第3頁(yè)
實(shí)對(duì)稱矩陣的標(biāo)準(zhǔn)形(完整版)實(shí)用資料_第4頁(yè)
實(shí)對(duì)稱矩陣的標(biāo)準(zhǔn)形(完整版)實(shí)用資料_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

實(shí)對(duì)稱矩陣的標(biāo)準(zhǔn)形(完整版)實(shí)用資料(可以直接使用,可編輯完整版實(shí)用資料,歡迎下載)

§6實(shí)對(duì)稱矩陣的標(biāo)準(zhǔn)形實(shí)對(duì)稱矩陣的標(biāo)準(zhǔn)形(完整版)實(shí)用資料(可以直接使用,可編輯完整版實(shí)用資料,歡迎下載)由第五章得到,任意一個(gè)對(duì)稱矩陣都合同于一個(gè)對(duì)角矩陣,換句話說(shuō),都有一個(gè)可逆矩陣使成對(duì)角形.現(xiàn)在利用歐氏空間的理論,第五章中關(guān)于實(shí)對(duì)稱矩陣的結(jié)果可以加強(qiáng).這一節(jié)的主要結(jié)果是:對(duì)于任意一個(gè)級(jí)實(shí)對(duì)稱矩陣,都存在一個(gè)級(jí)正交矩陣,使成對(duì)角形.引理1設(shè)是實(shí)對(duì)稱矩陣,則的特征值皆為實(shí)數(shù).對(duì)應(yīng)于實(shí)對(duì)稱矩陣,在維歐氏空間上定義一個(gè)線性變換A如下:A.(1)顯然A在標(biāo)準(zhǔn)正交基(2)下的矩陣就是.引理2設(shè)是實(shí)對(duì)稱矩陣,A的定義如上,則對(duì)任意,有(A,)=(,A),(3)或定義12歐氏空間中滿足等式(3)的線性變換稱為對(duì)稱變換.容易看出,對(duì)稱變換在標(biāo)準(zhǔn)正交基下的矩陣是實(shí)對(duì)稱矩陣.用對(duì)稱變換來(lái)反映實(shí)對(duì)稱矩陣,一些性質(zhì)可以看得更清楚.引理3設(shè)A是對(duì)稱變換,是A-子空間,則也是A-子空間.引理4設(shè)是實(shí)對(duì)稱矩陣,則中屬于的不同特征值的特征向量必正交.定理7對(duì)于任意一個(gè)級(jí)實(shí)對(duì)稱矩陣,都存在一個(gè)級(jí)正交矩陣,使成對(duì)角形.下面來(lái)看看在給定了一個(gè)實(shí)對(duì)稱矩陣之后,按什么辦法求正交矩陣使成對(duì)角形.在定理的證明中看到,矩陣按(1)式在中定義了一個(gè)線性變換.求正交矩陣的問(wèn)題就相當(dāng)于在中求一組由的特征向量構(gòu)成的標(biāo)準(zhǔn)正交基.事實(shí)上,設(shè)是的一組標(biāo)準(zhǔn)正交基,它們都是的特征向量.顯然,由到的過(guò)渡矩陣就是是一個(gè)正交矩陣,而就是對(duì)角形.根據(jù)上面的討論,正交矩陣的求法可以按以下步驟進(jìn)行:1.求出的特征值.設(shè)是的全部不同的特征值.2.對(duì)于每個(gè),解齊次方程組求出一個(gè)基礎(chǔ)解系,這就是的特征子空間的一組基.由這組基出發(fā),按定理2的方法求出的一組標(biāo)準(zhǔn)正交基.3.因?yàn)閮蓛刹煌?,所以根?jù)這一節(jié)引理4,向量組還是兩兩正交的.又根據(jù)定理7以及第七章§5的討論,它們的個(gè)數(shù)就等于空間的維數(shù).因此,它們就構(gòu)成的一組標(biāo)準(zhǔn)正交基,并且也都是的特征向量.這樣,正交矩陣也就求出了.例已知求一正交矩陣使成對(duì)角形.應(yīng)該指出,在定理7中,對(duì)于正交矩陣我們還可以進(jìn)一步要求事實(shí)上,如果求得的正交矩陣的行列式為-1,那么取那么是正交矩陣,而且顯然.如果線性替換的矩陣是正交的,那么它就稱為正交的線性替換.正交的線性替換當(dāng)然是非退化的.用二次型的語(yǔ)言,定理7可以敘述為:定理8任意一個(gè)實(shí)二次型都可以經(jīng)過(guò)正交的線性替換變成平方和,其中平方項(xiàng)的系數(shù)就是矩陣的特征多項(xiàng)式全部的根.最后指出,這一節(jié)的結(jié)果可以應(yīng)用到幾何上化簡(jiǎn)直角坐標(biāo)系下二次曲線的方程,以及討論二次曲線的分類.在直角坐標(biāo)系下,二次曲線的一般方程是(5)令則(5)可以寫成(6)經(jīng)過(guò)轉(zhuǎn)軸,坐標(biāo)變換公式為或者其中為正交變換且,在新坐標(biāo)系中,曲面的方程就是根據(jù)上面的結(jié)果,有行列式為1的正交矩陣使這就是說(shuō),可以作一個(gè)轉(zhuǎn)軸,使曲面在新坐標(biāo)系中的方程為其中這時(shí),再按照是否為零的情況,作適當(dāng)?shù)囊戚S與轉(zhuǎn)軸就可以把曲面的方程化成標(biāo)準(zhǔn)方程.譬如說(shuō),當(dāng)全不為零時(shí),就作移軸于是曲面的方程化為其中.矩陣求逆標(biāo)準(zhǔn)算法(VB)源碼2006-11-2913:49類別:默認(rèn)本程序依據(jù)矩陣初等變換的基本原理編寫,算法較為繁瑣,但易于理解適合VB初學(xué)者。本程序適合任何(n*n)的矩陣求逆,對(duì)于不可逆矩陣有提示信息,并結(jié)束程序本程序在XP,VB6.0下調(diào)試通過(guò)本程序由本人原創(chuàng),請(qǐng)慎用。如有疑問(wèn),或調(diào)試有誤,請(qǐng)聯(lián)系本人QQ30360126本程序可在VB6.0內(nèi)任何地方用calljzqn(qa(),na()))語(yǔ)句調(diào)用其中qa()是輸入的矩陣數(shù)組,調(diào)用此函數(shù)后na()為返回的逆矩陣數(shù)組注意:調(diào)用本程序前不要聲明na()的維數(shù),僅用dimna()即可。請(qǐng)不要試圖對(duì)一個(gè)病態(tài)矩陣求逆、否則計(jì)算結(jié)果未必是你想要的病態(tài)矩陣是指行列式計(jì)算結(jié)果極其接近于零的矩陣PublicSubjzqn(qa(),na())Dima()n=UBound(qa,1)ReDimna(n,n)ReDima(n,2*n)Fori=1TonForj=1Tona(i,j)=qa(i,j)NextjNextiFori=1TonForj=n+1To2*nIfj-i=nThena(i,j)=1Elsea(i,j)=0EndIfNextjNextiFori=1TonIfa(i,i)=0ThenForq=iTonIfa(q,i)<>0ThenForw=iTo2*nzj=a(i,w)a(i,w)=a(q,w)a(q,w)=zjNextwExitForEndIfNextqIfq>nThenMsgBox"此矩陣不可逆":ExitSubEndIfFork=2*nToiStep-1a(i,k)=a(i,k)/a(i,i)NextkForj=i+1TonIfa(j,i)<>0ThenFork=2*nToiStep-1a(j,k)=a(j,k)/a(j,i)-a(i,k)NextkEndIfNextjNextiFori=nTo1Step-1Ifa(i,i)=0ThenForq=i-1To1Step-1Ifa(q,i)<>0ThenForw=iTo2*nzj=a(i,w)a(i,w)=a(q,w)a(q,w)=zjNextwExitForEndIfNextqEndIfFork=2*nToiStep-1a(i,k)=a(i,k)/a(i,i)NextkForj=i-1To1Step-1Ifa(j,i)<>0Thenxxx=a(j,i)Fork=2*nTo1Step-1a(j,k)=a(j,k)/xxx-a(i,k)NextkEndIfNextjNextiFori=1TonForj=1Tonna(i,j)=a(i,j+n)NextjNextiEndSub調(diào)用示例:下面代碼隨機(jī)產(chǎn)生一個(gè)10*10的矩陣,并求逆,打印于窗體PrivateSubCommand1_Click()Dima(10,10),b()ClsRandomizeFori=1To10Forj=1To10a(i,j)=Int(Rnd*100)Printa(i,j);NextjPrintNextiPrintCalljzqn(a(),b())Fori=1To10Forj=1To10PrintFormat(b(i,j),"0.000"),NextjPrintNextiEndSub矩陣運(yùn)算是數(shù)值運(yùn)算中經(jīng)常碰到的,“磚頭”拋出多天,尚未“引出玉來(lái)”,我自己再來(lái)個(gè)補(bǔ)充吧!矩陣求逆上面給出的程序,雖然可以使用,但遠(yuǎn)不完善,更不精煉。下面將其修改一下,例如:使用IIF()函數(shù)簡(jiǎn)化判斷分支語(yǔ)句,將“約化”過(guò)程合并,添加一個(gè)矩陣無(wú)逆的判斷,……。但還是屬于小打小鬧的修修補(bǔ)補(bǔ),希望諸位能挑出程序中的問(wèn)題、缺陷,諸位版主和大俠們能從賜以高水平的程序代碼,不勝感謝!修改后的矩陣求逆代碼如下:源程序壓縮文件如下:矩陣求逆程序代碼Dima()AsSingleDimi%,j%,k%,am!,tt%,at!,bt!PrivateSubCommand1_Click()n=InputBox("請(qǐng)輸入方陣的階數(shù)N")ReDima(n,2*n)AsSingleFori=1TonForj=1Tona(i,j)=InputBox("請(qǐng)輸入a("&i&","&j&")的值")a(i,j+n)=IIf(i=j,1,0)?使用IIf()函數(shù),簡(jiǎn)化此判斷結(jié)構(gòu)Nextj,iPrint"原矩陣的增廣矩陣元素"Fori=1TonForj=1To2*nPrinta(i,j);"";NextjPrintNexti'________________________________________________Fork=1Ton'換列主元運(yùn)算,在主元列找出絕對(duì)值最大的值作主元at=Abs(a(k,k))tt=kForj=k+1Tonbt=Abs(a(j,k))Ifat<btThenat=bttt=jEndIfNextjIftt<>kThenForj=kTo2*nam=a(k,j):a(k,j)=a(tt,j):a(tt,j)=amNextjEndIfIfat<0.0001ThenPrint"此矩陣不可逆"'逆矩陣計(jì)算'------------------------------------------------am=1/a(k,k)Forj=kTo2*na(k,j)=a(k,j)*amNextj'____________________________________Fori=1TonIfk<>iThenam=a(i,k)Forj=1To2*na(i,j)=a(i,j)-a(k,j)*amNextjEndIfNextiNextk'------------------------------------------------Print"所求逆矩陣"Fori=1TonForj=n+1To2*nPrinta(i,j);"";NextjPrintNextiEndSub矩陣運(yùn)算,是數(shù)值計(jì)算中經(jīng)常碰到的。這里獻(xiàn)上的小程序,只能是學(xué)習(xí)參考,對(duì)于矩陣的階數(shù)很大的實(shí)際使用和對(duì)于病態(tài)(條件數(shù)較大)矩陣,如何計(jì)算?特別是如何求逆?顯然這里的程序力不從心,所以敬請(qǐng)版主大俠們獻(xiàn)出愛(ài)心!兩矩陣的加、減,很簡(jiǎn)單,就是現(xiàn)應(yīng)元素的加、減。條件是兩矩陣行、列數(shù)都相等。兩矩陣的相乘,分為左乘和右乘;條件是右矩陣的行數(shù)等于左矩陣的列數(shù);乘法規(guī)則麻煩點(diǎn),請(qǐng)參看有關(guān)參考材料。矩陣求逆,是矩陣運(yùn)算中比較麻煩的,也是用出較多的。求助未得,只好自己來(lái)個(gè)粗糙的,這次給出的程序是包括選主元的,一般滿秩矩陣都可以求出其逆矩陣。但是效率有問(wèn)題,對(duì)于病態(tài)矩陣求出的逆矩陣精度欠佳,不一定滿足需要。為了大家使用方便,將源程序傳上。[attachmentid=498][attachmentid=499][attachmentid=500][attachmentid=501]在網(wǎng)上收尋了行列式求值的,發(fā)現(xiàn)沒(méi)有能用的,版主以前對(duì)最小二乘法多次曲線擬合算法解說(shuō)里有行列試求值的程序,我調(diào)試下了,沒(méi)能成功,不知道到是不是那里出錯(cuò)了?現(xiàn)在獻(xiàn)上一個(gè)比較精確的矩陣求逆算法,希望大家能研究出一種行列式求值的的程序!SubJSJZNZA(WS,DA)DimDNZ()AsDoubleYS=WS*(WS+1)/2ReDimDNZ(YS)Fori=1ToWSDI=(i-1)*(WS-i/2)Forj=iToWSk=DI+jDNZ(k)=DA(i,j)NextjNextiFori=1ToWSDI=(i-1)*(WS-i/2)Forj=iToWSs=DNZ(DI+j)Ifi=1ThenGoTo156'(156)EndIfFork=1Toi-1DK=(k-1)*(WS-k/2)s=s-DNZ(DK+i)*DNZ(DK+j)/DNZ(DK+k)Nextk156:Ifj=iThen'(156)DNZ(DI+j)=1/(s+0.0000001)GoTo160'(160)EndIfDNZ(DI+j)=s*DNZ(DI+i)160:Nextj'(160)NextiFori=1ToWS-1DI=(i-1)*(WS-i/2)Forj=i+1ToWSs=(-1)*DNZ(DI+j)If(i+1)>(j-1)ThenGoTo168'(168)EndIfFork=i+1Toj-1DK=(k-1)*(WS-k/2)s=s-DNZ(DI+k)*DNZ(DK+j)Nextk168:DNZ(DI+j)=s'(168)NextjNextiFori=1ToWS-1DI=(i-1)*(WS-i/2)Forj=iToWSDJ=(j-1)*(WS-j/2)Ifj=iThens=DNZ(DI+j)GoTo174'(174)EndIfs=DNZ(DI+j)*DNZ(DJ+j)174:Ifj=WSThen'(174)GoTo178'(178)EndIfFork=j+1ToWSDK=(k-1)*(WS-k/2)s=s+DNZ(DI+k)*DNZ(DJ+k)*DNZ(DK+k)Nextk178:DNZ(DI+j)=s'(178)NextjNexti'Fori=1ToWSDI=(i-1)*(WS-i/2)Forj=1ToWSDJ=(j-1)*(WS-j/2)LetK1=DI+jLetK2=DJ+iIfj<iThenDA(i,j)=DNZ(K2)ElseIfj>=iThenDA(i,j)=DNZ(K1)EndIfNextjNextiReDimDNZ(1)EndSub最近想寫一個(gè)求矩陣逆陣的函數(shù),上網(wǎng)一搜,有一個(gè)叫作高斯約旦法求矩陣的方法,用C寫的,我沒(méi)看明白,網(wǎng)上大部分都是抄來(lái)抄去,全都一個(gè)樣,所以我按照這個(gè)算法的思想,用VB寫了一個(gè)這樣的函數(shù)。代碼如下:OptionExplicit'先寫一個(gè)函數(shù)用于交換兩個(gè)數(shù)的函數(shù)PrivateSubswap(byrefaAsDouble,byrefbAsDouble)DimcAsDoublec=aa=bb=cEndSub'下面是求矩陣逆陣的函數(shù)PublicFunctionInv(m()AsDouble)AsDouble()DimiAsIntegerDimjAsIntegerDimkAsIntegerDimnAsIntegerDimtempAsDouble'從第k行、第k列開始的右下角子陣中選取絕對(duì)值最大的元素,并記住次元素在的行號(hào)和列號(hào),'在通過(guò)行交換和列交換將它交換到主元素位置上.這一步稱為全選主元n=UBound(m,1)Dimiw()AsIntegerDimjw()AsIntegerDimfMaxAsDoubleReDimiw(0Ton),jw(0Ton)AsIntegerFork=0TonfMax=0Fori=kTonForj=kTonIfAbs(m(i,j))>fMaxThenfMax=Abs(m(i,j))iw(k)=ijw(k)=jNextjNextiIfiw(k)<>kThenFori=0Tonswapm(k,i),m(iw(k),i)NextiEndIfIfjw(k)<>kThenFori=0Tonswapm(i,k),m(i,jw(k))NextiEndIfNextk''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''在m右邊增加一個(gè)單位陣,構(gòu)成一個(gè)m的增廣矩陣mmDimmm()AsDoubleReDimmm(0Ton,0To2*n+1)Fori=0TonForj=0Tonmm(i,j)=m(i,j)NextjNextiFori=0TonForj=n+1To2*n+1Ifi=j-n-1Thenmm(i,j)=1Elsemm(i,j)=0EndIfNextjNexti'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''通過(guò)初等行變換(即高斯消去法)使原矩陣變?yōu)閱挝魂?,則右邊的單位陣即是原矩陣的逆陣Fork=0Ton-1Fori=k+1Tontemp=mm(i,k)/mm(k,k)Forj=0To2*n+1mm(i,j)=mm(i,j)-mm(k,j)*tempNextjNextiNextkFork=nTo1Step-1Fori=k-1To0Step-1temp=mm(i,k)/mm(k,k)Forj=2*n+1To0Step-1mm(i,j)=mm(i,j)-mm(k,j)*tempNextjNextiNextkFori=0TonDimsAsDoubles=mm(i,i)Forj=0To2*n+1mm(i,j)=mm(i,j)/sNextjNexti'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''輸出變換后的右邊的矩陣Fori=0TonForj=0Tonm(i,j)=mm(i,j+n+1)NextjNexti'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''根據(jù)在全選主元過(guò)程中所記錄的行、列交換的信息進(jìn)行恢復(fù),恢復(fù)的原則如下:在全選主元過(guò)程中,'先交換的行(列)后進(jìn)行恢復(fù);原來(lái)的行(列)交換用列(行)交換來(lái)恢復(fù)。Fork=nTo0Step-1Ifjw(k)<>kThenFori=0Tonswapm(k,i),m(jw(k),i)NextiEndIfIfiw(k)<>kThenFori=0Tonswapm(i,k),m(i,iw(k))NextiEndIfNextkInv=mEndFunction有必要在這里說(shuō)明一下,為什么會(huì)有選主元這個(gè)過(guò)程呢?我開始也不理解,后來(lái)去圖書館查線性代數(shù)相關(guān)資料,終于弄明白了。大意是這樣的,對(duì)于有些矩陣,矩陣中某個(gè)元素的一個(gè)很小的變動(dòng),會(huì)引起最后計(jì)算結(jié)果誤差很大,甚至是面目全非。我們稱這種矩陣為病態(tài)矩陣。但有些時(shí)候不正確的計(jì)算方法也會(huì)使一個(gè)正常的矩陣在運(yùn)算中表現(xiàn)出病態(tài)。對(duì)于高斯消去法來(lái)說(shuō),如果主元(即對(duì)角線上的元素)上的元素很小,在計(jì)算時(shí)就會(huì)表現(xiàn)出病態(tài)的特征.計(jì)算機(jī)在計(jì)算浮點(diǎn)數(shù)時(shí)不是絕對(duì)精確的,有一定的舍入誤差.這點(diǎn)小小的誤差最終會(huì)使結(jié)果大出所料,(家可以用一個(gè)二階的小矩陣試一下,將11位置上的數(shù)定為0.00001,其他地方都用個(gè)位數(shù)就行了).所以要通過(guò)全選主元法來(lái)使對(duì)角線上的元素最大.求完逆陣后,再按原順序換回去就可以得到原矩陣的逆陣了.個(gè)人感覺(jué),有點(diǎn)復(fù)雜了(尤其是行變換時(shí))歡迎大家對(duì)我的程序作出一些改進(jìn),不甚感激!用矩陣的初等變換求逆矩陣一、問(wèn)題提出在前面我們以學(xué)習(xí)了用公式求逆矩陣,但當(dāng)矩陣A的階數(shù)較大時(shí),求A*很繁瑣,此方法不實(shí)用,因此必須找一種更簡(jiǎn)單的方法求逆矩陣,那么如何找到一種簡(jiǎn)單的方法呢?(餓了再吃)二、求逆矩陣方法的推導(dǎo)(“潤(rùn)物細(xì)無(wú)聲”“化抽象為自然”)我們已學(xué)習(xí)了矩陣初等變換的性質(zhì),如1.定理2.4對(duì)mxn矩陣A,施行一次初等行變換,相當(dāng)于在A的左邊乘以相應(yīng)m階初等矩陣;對(duì)A施行一次初等列變換,相當(dāng)于在A的右邊乘以相應(yīng)的n階初等矩陣。2.初等矩陣都是可逆矩陣,其逆矩陣還是初等矩陣。3.定理2.5的推論A可逆的充要條件為A可表為若干初等矩陣之積。即4.推論A可逆,則A可由初等行變換化為單位矩陣。(1)由矩陣初等變換的這些性質(zhì)可知,若A可逆,構(gòu)造分塊矩陣(A︱E,其中E為與A同階的單位矩陣,那么(2)由(1)式代入(2)式左邊,上式說(shuō)明分塊矩陣(A︱E經(jīng)過(guò)初等行變換,原來(lái)A的位置變換為單位陣E,原來(lái)E的位置變換為我們所要求的,即三,講解例題1.求逆矩陣方法的應(yīng)用之一例解:四,知識(shí)拓展2.求逆矩陣方法的應(yīng)用之二利用矩陣的初等行變換也可以判斷一個(gè)矩陣是否可逆,即分塊矩陣(A︱E經(jīng)過(guò)初等行變換,原來(lái)A的位置不能變換為單位陣E,那么A不可逆。例解:而上面分塊矩陣的第一塊第二行全為零,它不可能變換為單位矩陣,所以A不可逆。3.求逆矩陣方法的應(yīng)用之三利用矩陣初等行變換解矩陣方程(“潤(rùn)物細(xì)無(wú)聲”)對(duì)一般的矩陣方程求解,我們可以先求,然后求X=B。現(xiàn)在我們介紹另外一種方法求矩陣方程。其實(shí)在推導(dǎo)求逆矩陣方法的過(guò)程就是求解矩陣方程的過(guò)程,因?yàn)榍缶褪乔蠼饩仃嚪匠痰慕?,而?duì)一般的矩陣方程只要將中的E換成B,然后利用初等行變換,即其中的B即為所求矩陣方程的X。例解:傳遞閉包Warshall方法計(jì)算可達(dá)矩陣簡(jiǎn)要介紹①在集合X上的二元關(guān)系R的傳遞閉包是包含R的X上的最小的傳遞關(guān)系。R的傳遞閉包在數(shù)字圖像處理的圖像和視覺(jué)基礎(chǔ)、圖的連通性描述等方面都是基本概念。一般用B表示定義在具有n個(gè)元素的集合X上關(guān)系R的n×n二值矩陣,則傳遞閉包的矩陣B+可如下計(jì)算:B+=B+B2+B3+……+(B)n②式中矩陣運(yùn)算時(shí)所有乘法都用邏輯與代替,所有加法都用邏輯或代替。上式中的操作次序?yàn)锽,B(B),B(BB),B(BBB),……,所以在運(yùn)算的每一步我們只需簡(jiǎn)單地把現(xiàn)有結(jié)果乘以B,完成矩陣的n次乘法即可。://93337/ism/cal_warshall_get_r_mat_detail.phpWarshall在1962年提出了一個(gè)求關(guān)系的傳遞閉包的有效算法。其具體過(guò)程如下,設(shè)在n個(gè)元素的有限集上關(guān)系R的關(guān)系矩陣為M:(1)置新矩陣A=M;(2)置k=1;(3)對(duì)所有i如果A[i,k]=1,則對(duì)j=1..n執(zhí)行:A[i,j]←A[i,j]∨A[k,j];(4)k增1;(5)如果k≤n,則轉(zhuǎn)到步驟(3),否則停止。所得的矩陣A即為關(guān)系R的傳遞閉包t(R)的關(guān)系矩陣。在《離散數(shù)學(xué)》中都提及了該算法。Warshall算法映射到有向圖中設(shè)關(guān)系R的關(guān)系圖為G,設(shè)圖G的所有頂點(diǎn)為u1,u2,…,un,則t(R)的關(guān)系圖可用該方法得到:若G中任意兩頂點(diǎn)ui和uj之間有一條路徑且沒(méi)有ui到uj的弧,則在圖G中增加一條從ui到uj的弧,將這樣改造后的圖記為G’,則G’即為t(R)的關(guān)系圖。G’的鄰接矩陣A應(yīng)滿足:若圖G中存在從ui到uj路徑,即ui與uj連通,則A[i,j]=1,否則A[i,j]=0。這樣,求t(R)的問(wèn)題就變?yōu)榍髨DG中每一對(duì)頂點(diǎn)間是否連通的問(wèn)題。相乘矩陣,就為所有節(jié)點(diǎn)的關(guān)系圖,也就是當(dāng)前條件下的關(guān)系矩陣。對(duì)于相乘矩陣,進(jìn)行疊代,疊代的過(guò)程為,行取值,然后計(jì)算值中對(duì)應(yīng)的每一行的值取并集,得到當(dāng)前行的關(guān)系集合。取完所有行,得到了一個(gè)新的轉(zhuǎn)移矩陣再對(duì)轉(zhuǎn)移矩陣進(jìn)行進(jìn)行求解。Warshall的疊代次數(shù)比逐次平方法的運(yùn)行效率要高。如果圖中的頂點(diǎn)是有序的排列,只要進(jìn)行一次Warshall運(yùn)算就可以獲得可達(dá)矩陣。您輸入原始矩陣matrix_A為一個(gè)方陣結(jié)果如下第1次迭代當(dāng)前0號(hào)要素a的可達(dá)集合(b,f,a)1號(hào)要素b的可達(dá)集合c,e,b5號(hào)要素f的可達(dá)集合c,f0號(hào)要素a的可達(dá)集合b,f,a當(dāng)前0號(hào)要素a的可達(dá)集合(b,f,a,c,e)當(dāng)前1號(hào)要素b的可達(dá)集合(c,e,b)2號(hào)要素c的可達(dá)集合b,c4號(hào)要素e的可達(dá)集合f,e1號(hào)要素b的可達(dá)集合c,e,b當(dāng)前1號(hào)要素b的可達(dá)集合(c,e,b,f)當(dāng)前2號(hào)要素c的可達(dá)集合(b,c)1號(hào)要素b的可達(dá)集合c,e,b,f2號(hào)要素c的可達(dá)集合b,c當(dāng)前2號(hào)要素c的可達(dá)集合(b,c,e,f)當(dāng)前3號(hào)要素d的可達(dá)集合(a,d)0號(hào)要素a的可達(dá)集合b,f,a,c,e3號(hào)要素d的可達(dá)集合a,d當(dāng)前3號(hào)要素d的可達(dá)集合(a,d,b,f,c,e)當(dāng)前4號(hào)要素e的可達(dá)集合(f,e)5號(hào)要素f的可達(dá)集合c,f4號(hào)要素e的可達(dá)集合f,e當(dāng)前4號(hào)要素e的可達(dá)集合(f,e,c)當(dāng)前5號(hào)要素f的可達(dá)集合(c,f)2號(hào)要素c的可達(dá)集合b,c,e,f5號(hào)要素f的可達(dá)集合c,f當(dāng)前5號(hào)要素f的可達(dá)集合(c,f,b,e)當(dāng)前6號(hào)要素g的可達(dá)集合(b,g)1號(hào)要素b的可達(dá)集合c,e,b,f6號(hào)要素g的可達(dá)集合b,g當(dāng)前6號(hào)要素g的可達(dá)集合(b,g,c,e,f)第1次迭代得到的轉(zhuǎn)移矩陣如下:第2次迭代當(dāng)前0號(hào)要素a的可達(dá)集合(b,f,a,c,e)1號(hào)要素b的可達(dá)集合c,e,b,f5號(hào)要素f的可達(dá)集合c,f,b,e0號(hào)要素a的可達(dá)集合b,f,a,c,e2號(hào)要素c的可達(dá)集合b,c,e,f4號(hào)要素e的可達(dá)集合f,e,c當(dāng)前0號(hào)要素a的可達(dá)集合(b,f,a,c,e)當(dāng)前1號(hào)要素b的可達(dá)集合(c,e,b,f)2號(hào)要素c的可達(dá)集合b,c,e,f4號(hào)要素e的可達(dá)集合f,e,c1號(hào)要素b的可達(dá)集合c,e,b,f5號(hào)要素f的可達(dá)集合c,f,b,e當(dāng)前1號(hào)要素b的可達(dá)集合(c,e,b,f)當(dāng)前2號(hào)要素c的可達(dá)集合(b,c,e,f)1號(hào)要素b的可達(dá)集合c,e,b,f2號(hào)要素c的可達(dá)集合b,c,e,f4號(hào)要素e的可達(dá)集合f,e,c5號(hào)要素f的可達(dá)集合c,f,b,e當(dāng)前2號(hào)要素c的可達(dá)集合(b,c,e,f)當(dāng)前3號(hào)要素d的可達(dá)集合(a,d,b,f,c,e)0號(hào)要素a的可達(dá)集合b,f,a,c,e3號(hào)要素d的可達(dá)集合a,d,b,f,c,e1號(hào)要素b的可達(dá)集合c,e,b,f5號(hào)要素f的可達(dá)集合c,f,b,e2號(hào)要素c的可達(dá)集合b,c,e,f4號(hào)要素e的可達(dá)集合f,e,c當(dāng)前3號(hào)要素d的可達(dá)集合(a,d,b,f,c,e)當(dāng)前4號(hào)要素e的可達(dá)集合(f,e,c)5號(hào)要素f的可達(dá)集合c,f,b,e4號(hào)要素e的可達(dá)集合f,e,c2號(hào)要素c的可達(dá)集合b,c,e,f當(dāng)前4號(hào)要素e的可達(dá)集合(f,e,c,b)當(dāng)前5號(hào)要素f的可達(dá)集合(c,f,b,e)2號(hào)要素c的可達(dá)集合b,c,e,f5號(hào)要素f的可達(dá)集合c,f,b,e1號(hào)要素b的可達(dá)集合c,e,b,f4號(hào)要素e的可達(dá)集合f,e,c,b當(dāng)前5號(hào)要素f的可達(dá)集合(c,f,b,e)當(dāng)前6號(hào)要素g的可達(dá)集合(b,g,c,e,f)1號(hào)要素b的可達(dá)集合c,e,b,f6號(hào)要素g的可達(dá)集合b,g,c,e,f2號(hào)要素c的可達(dá)集合b,c,e,f4號(hào)要素e的可達(dá)集合f,e,c,b5號(hào)要素f的可達(dá)集合c,f,b,e當(dāng)前6號(hào)要素g的可達(dá)集合(b,g,c,e,f)第2次迭代得到的轉(zhuǎn)移矩陣如下:第3次迭代當(dāng)前0號(hào)要素a的可達(dá)集合(b,f,a,c,e)1號(hào)要素b的可達(dá)集合c,e,b,f5號(hào)要素f的可達(dá)集合c,f,b,e0號(hào)要素a的可達(dá)集合b,f,a,c,e2號(hào)要素c的可達(dá)集合b,c,e,f4號(hào)要素e的可達(dá)集合f,e,c,b當(dāng)前0號(hào)要素a的可達(dá)集合(b,f,a,c,e)當(dāng)前1號(hào)要素b的可達(dá)集合(c,e,b,f)2號(hào)要素c的可達(dá)集合b,c,e,f4號(hào)要素e的可達(dá)集合f,e,c,b1號(hào)要素b的可達(dá)集合c,e,b,f5號(hào)要素f的可達(dá)集合c,f,b,e當(dāng)前1號(hào)要素b的可達(dá)集合(c,e,b,f)當(dāng)前2號(hào)要素c的可達(dá)集合(b,c,e,f)1號(hào)要素b的可達(dá)集合c,e,b,f2號(hào)要素c的可達(dá)集合b,c,e,f4號(hào)要素e的可達(dá)集合f,e,c,b5號(hào)要素f的可達(dá)集合c,f,b,e當(dāng)前2號(hào)要素c的可達(dá)集合(b,c,e,f)當(dāng)前3號(hào)要素d的可達(dá)集合(a,d,b,f,c,e)0號(hào)要素a的可達(dá)集合b,f,a,c,e3號(hào)要素d的可達(dá)集合a,d,b,f,c,e1號(hào)要素b的可達(dá)集合c,e,b,f5號(hào)要素f的可達(dá)集合c,f,b,e2號(hào)要素c的可達(dá)集合b,c,e,f4號(hào)要素e的可達(dá)集合f,e,c,b當(dāng)前3號(hào)要素d的可達(dá)集合(a,d,b,f,c,e)當(dāng)前4號(hào)要素e的可達(dá)集合(f,e,c,b)5號(hào)要素f的可達(dá)集合c,f,b,e4號(hào)要素e的可達(dá)集合f,e,c,b2號(hào)要素c的可達(dá)集合b,c,e,f1號(hào)要素b的可達(dá)集合c,e,b,f當(dāng)前4號(hào)要素e的可達(dá)集合(f,e,c,b)當(dāng)前5號(hào)要素f的可達(dá)集合(c,f,b,e)2號(hào)要素c的可達(dá)集合b,c,e,f5號(hào)要素f的可達(dá)集合c,f,b,e1號(hào)要素b的可達(dá)集合c,e,b,f4號(hào)要素e的可達(dá)集合f,e,c,b當(dāng)前5號(hào)要素f的可達(dá)集合(c,f,b,e)當(dāng)前6號(hào)要素g的可達(dá)集合(b,g,c,e,f)1號(hào)要素b的可達(dá)集合c,e,b,f6號(hào)要素g的可達(dá)集合b,g,c,e,f2號(hào)要素c的可達(dá)集合b,c,e,f4號(hào)要素e的可達(dá)集合f,e,c,b5號(hào)要素f的可達(dá)集合c,f,b,e當(dāng)前6號(hào)要素g的可達(dá)集合(b,g,c,e,f)第3次迭代得到的轉(zhuǎn)移矩陣如下:實(shí)對(duì)稱矩陣與二次型§6.1Gram-Schmidt正交化過(guò)程1.用Schmidt正交化方法將向量組標(biāo)準(zhǔn)正交化。解:設(shè),那么

2.證明對(duì)于任意的可逆實(shí)矩陣,恒有上三角正線矩陣,使為正交矩陣。證明:可逆實(shí)矩陣是實(shí)的列滿秩矩陣,故有本節(jié)的命題3知,有上三角正線矩陣,使的列向量組為標(biāo)準(zhǔn)正交向量組,所以為正交矩陣。

§6.2實(shí)對(duì)稱矩陣的標(biāo)準(zhǔn)形(一1.求正交矩陣,使為對(duì)角矩陣,其中為.解:的特征多項(xiàng)式為

故的特征根為1,3,7。下面求它們對(duì)應(yīng)的一個(gè)特征向量:解方程,可得它的一個(gè)解為;解方程,可得它的一個(gè)解為;解方程,可得它的一個(gè)解為。把它們分別正交化得:

令,則即為所求的正交矩陣。

2.將上題中的矩陣化為規(guī)范形,并求出合同變換矩陣。解:于是的規(guī)范形為,合同變換矩陣。

3.設(shè)是階實(shí)對(duì)稱矩陣,如果對(duì)任意維列向量都有,則。

證明:對(duì)任意的,有。取,有,即;再取,有,而

于是有,而是對(duì)稱矩陣,故,所以。

4.設(shè)為三階實(shí)對(duì)稱矩陣,且滿足,求的兩個(gè)邊準(zhǔn)形。解:由知滿足方程,故的極小多項(xiàng)式。因?yàn)閷?shí)對(duì)稱,特征根均為實(shí)數(shù),極小多項(xiàng)式在實(shí)數(shù)域上可分解到一次式,而是實(shí)數(shù)域上的質(zhì)式,所以,即,于是的法式為

的特征根為,從而在正交變換下的標(biāo)準(zhǔn)形為的規(guī)范形為。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論