Tải bản đầy đủ (.pdf) (22 trang)

báo cáo giải tích số phương pháp danielevski tìm trị riêng và vector riêng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.42 MB, 22 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

TRƯỜNG ĐẠI H C BÁCH KHOA HÀ N I ỌỘVIỆN TOÁN NG DỤNG VÀ TIN H C ỨỌ

***

PHƯƠNG PHÁP DANIELEVSKI TÌM TR ÊNG VÀ VECTOR RIÊNG Ị RI

Gi ng viên h ng dả ướ ẫn: TS. Hà Thị Ngọc Y n ế

Sinh viên th c hi n:<b>ựệ</b>

Lớp 125002 H c k 2020.2 HTTTQL K64 – ọ ì –Vũ Trọng Nghĩa 20195985 Vũ Tiến Lâm 20195975 Vũ Quốc Huy 20195967 Nguy n Vễ ăn Lâm <sup>20195974 </sup>Trịnh Xuân Trường 20196003

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>Mục l c ụ</b>

<b>Chương 1: Nhắc l i m t s ạộ ố kiến thức đạ ố</b>i s tuy<b>ến tính</b>... 2

1.1 Tr riêng và vector riêng c a ma tr n ị ủ ậ ... 2

1.2 H s cệ ố ủa đa thức đặc trưng sử dụng khai tri n tr c ti p ể ự ế ... 2

1.3 Khai triển định thức của ma trận – khai tri n Laplace ể ... 3

2.1.2 Đa thức đặc trưng của ma trận Frobenius ... 5

2.2 Phương pháp cho trường hợp lí tưởng ... 5

2.3 Phương pháp cho các trường hợp đặc biệt ... 8

2.3.1 Trường hợp 1 ... 8

2.3.2 Trường hợp 2 ... 9

<b>Chương 3: Tìm vector riêng bằng phương pháp Danilevski ... 10 </b>

3.1 Phương pháp cho trường hợp lí tưởng ... 10

3.2 Phương pháp cho trường hợp lí tưởng ... 11

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>Chương 1: Nhắc lại mộ ốt s kiến thức đại số tuyến tính </b>

1.1 <b>Trị</b> riêng và vector riêng c a ma tr n <b>ủậ</b>

C hoA=( )a<sub>ij</sub> là ma tr n vuông c ậ ỡn n. N u t n t i vector ế ồ ạ u<sub>và s</sub><sub>ố thự</sub><sub>c </sub> sao cho Au= u, khi đó được g i là tr riêng c a ọ ị ủA và u được g i là vector riêng ọứng với trị riêng

Giá tr riêng cị ủa A là nghi m cệ ủa đa thức đặc trưng: ( ) det(K<sub>A</sub> <sub>=</sub> A<sub>−</sub> I

a aa a

= <small>l</small>à tổng các định th c con bứ ậc 2 trên đường chéo chính của A, và cứ như thế…

Cuối cùng, <small>n</small><sub>=</sub>det(A

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

Nhận xét: Có t t c ấ ả<sup>n</sup><sub>k</sub> định th c con bứ ậc ktrên đường chéo chính. Khi đó việc tính tốn h s cệ ố ủa đa thức đặc trưng tương đương với vi c th c hi n: ệ ự ệ

C hoA vàB là hai ma tr n vuông. Ta có các tính ch t sau: ậ ấ• Nếu A thì B

• Nếu A , B <sub>thì A</sub>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

• Nếu A thì A và B có cùng đa thức đặc trưng, vì vậy có cùng tr riêng. ịHơn nữa, nếu B= T<small>−1</small> AT và u là vector riêng của B ứng với thì .T u là vector riêng của A ng vứ ới <small>.</small>

Ta thấy, để tìm giá tr riêng c a m t ma trị ủ ộ ận ta cần tìm đa thức đặc trưng của ma trận đó và từ đó tính nghiệm của đa thức. Phương pháp đơn giản nhất để tìm hệ số của đa thức đặc trưng đó là sử dụng khai triển trực tiếp (phần 1.2), tuy nhiên độ phức tạp thuật toán sẽ là

O( )

2<small>n</small> <sub>. Hay, khi s d ng kh i tri</sub><sub>ử ụ</sub> <sub>ả</sub> <sub>ển theo Laplace để tính đị</sub><sub>nh thức </sub>

cũng cần thực hiện . !n n phép tính.

Ý tưởng của phương pháp Danilevski là đưa ma trận A ban đầu về dạng ma trận Pđồng d ng c ạ ụ thể P là ma tr n Frobenius. Viậ ệc tính đa thức đặc trưng của P d dàng ễđược th c hiự ện. Khi đó, tìm được trị riêng của P, đồng thời cũng là trị riêng của A. 2.1 Ma tr n Frobenius <b>ậ</b>

2.1.1 Khái ni m <b>ệ</b>

Ma tr n Frobenius có dậ ạng:

P =

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>2.1.2 Đa thức đặc trưng của ma trận Frobenius </b>

S d ng khai tri n Laplace theo c t n, ta có: ử ụ ể ộ<small>1</small>

<small>= −+ −</small>

<small>= −−+ −+ −= −+ −−+ −</small>

<small>= = −−−− −−</small>

<b>2.2 Phương pháp cho trườ</b>ng h<b>ợp lí tưở</b>ng

Mục đích chung của phương pháp là đưa ma trận ban đầu v d ng Frobenius qua mề ạ ột số h u hữ ạn các bước. Trường hợp lí tưởng, gi s các ph n t ả ử ầ ử<small>(1)</small>

<small>,1</small> 0

<small>in i n i</small>

a <small>+</small>

<small>−−</small> tại bước biến đổi th ứi + . Ta th c hi1 ự ện như sau:

Bước 1: Đặt ma trận ban đầu A A= <small>(0)</small>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

M A M

A

= <small>−</small>, với các ma tr n ậM<sub>1</sub>, M<small>−1</small> như sau:

và,

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Bước i: Biến đổi ma trận A<small>( )i</small> <sub> thành ma trận </sub><small>( 1)i( )i</small>, <small>1ii</small>

Nhậ Khối lượng phép tính để biến đổ ừA<sub> đến </sub>P c ỡn<small>3</small>− phép nhân và n<small>2</small>

chia. Rõ ràng, phương pháp Danilevski có khối lượng tính tốn giảm hơn so với phương pháp thơng thường.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>2.3 Phương pháp cho các trườ</b>ng h<b>ợp đặc biệt </b>

Ở trường hợp lí tưởng, ta có giả thi t các phần t ế ử<small>( )1,</small> 0

<small>kn kn k</small>

a<sub>− +</sub> <sub>−</sub> . Tuy nhiên, sau các phép biến đổi có th xể ảy ra trường h p mà ợ <small>( )</small>

<small>1,</small> 0

<small>kn kn k</small>

a<sub>− +</sub> <sub>−</sub> <small>=</small> . Ở phần này, ta s xem xét ẽcác phương pháp để xử lý trường hợp đặc biệt đó.

<b>2.3.1 Trường hợp 1 </b>

Trong hàng n k− +1 t n t i ph n t ồ ạ ầ ử <sup>( )</sup><small>k1,</small> 0

<small>n kj</small>

a<sub>− +</sub> với

j n k−

. Khi đó, ma trận có d ng: ạ

Trường h p này, ta hoán v cợ ị ột

j

<sub> và cột </sub><sub>n k</sub><sub>−</sub> , hàng

j

và hàng n k− , s thu ẽđược m t ma tr n m i ộ ậ ớA<small>( )k</small> =C A C<small>−1( )k</small> đồng d ng v i ma trạ ớ ận ban đầu. ớ V i ma tr n ậCnhư sau:

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Lúc này, ph n t ầ ử <small>( )</small>

<small>1,</small> 0

<small>kn kn k</small>

a<sub>− +</sub> <sub>−</sub> , ta th c hi n ti p tự ệ ế ục như với trường h p lí ợtưởng.

<b>2.3.2 Trường hợp 2 </b>

Trong hàng n k− +1 c a ma trủ ận A<small>( )k</small> <sub> không t n t i ph n t </sub><sub>ồ ạ</sub> <sub>ầ ử</sub><small>( )1,</small> 0

<small>kn kj</small>

a<sub>− +</sub> đứng trước <small>( )</small>

<small>1,kn kn</small>

a<sub>− +</sub> <sub>−</sub> . Khi đó, ma trận A<small>( )k</small><sub> có d ng: </sub><sub>ạ</sub>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Biểu di n thành ma tr n khễ ậ ối như hình vẽ:

Hay <small>( )1203</small>

A

<small>=</small> , ta th yấ D là m t kh i Frobenius c3 ộ ố ấp k, ti p tế ục sử ụng dphương pháp Danilevski với ma trận D1. T ừ đó, ta tính giá trị riêng c a ma tr n b ng ủ ậ ằcách đưa về tính giá tr riêng c a 2 ma trị ủ ận D1và 3D

<small>( )k</small> 1 . 3A− I= A − I= D− I D− I

<b>Chương 3: Tìm vector riêng bằng phương pháp Danilevski </b>

<b>3.1 Phương pháp cho trườ</b>ng h<b>ợp lí tưở</b>ng

Gọi

y

<sub> là vector riêng c a ma tr</sub><sub>ủ</sub> <sub>ận </sub>P A P M~ : = <small>1−</small>AM, ta có:

Py y

M AMy yAMy My

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Trong đó,

... . . ... <sup>n</sup> <sup>n</sup> <sup>n</sup>

Vậy x M M<sub>=</sub> <sub>n</sub><sub>−</sub><sub>1</sub> <sub>n</sub><sub>−</sub><sub>2</sub>...M M y<sub>2</sub> <sub>1</sub><sub> là vector riêng ng v i tr riêng </sub><sub>ứ</sub> <sub>ớ ị</sub> <sub>của ma trận A</sub><small>. </small>

Xác định y : Ta có, Py= y

<small>n n</small>

p y p y p y yy y

y<sub>−</sub> y

Chọn y = , suy ra <sub>n</sub> 1 y=( <small>n−1</small>, <small>n−2</small>,..., ,1

Từ đó, ta sẽ thu được vector riêng x<sub> ng v i tr riêng </sub><sub>ứ</sub> <sub>ớ ị</sub> <sub> c a </sub><sub>ủ A</sub>

<b>3.2 Phương pháp cho trường hợp lí tưởng</b>

3.2.1 Tr<b>ườ</b>ng h p 1 <b>ợ</b>

Trong hàng n k− +1 c a ma trủ ận A<small>( )k</small><sub> t n t i ph n t </sub><sub>ồ</sub> <sub>ạ</sub> <sub>ầ ử</sub> <small>( )1,</small> 0

<small>kn kj</small>

a<sub>− +</sub> đứng trước

<small>( )1,kn kn</small>

a<sub>− +</sub> <sub>−</sub> <sub>. Khi đó, để tìm tr ịriêng, ta đã hoán vị hàng </sub>

j

và hàng n k− , cột

j

<sub> và cột </sub>

n k− c a ma trủ ận 𝐴<small>(𝑘)</small> bằng biến đổi:

Do đó, vector riêng của ma tr n sậ ẽ được tính như sau:

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

3.2.2 Tr<b>ườ</b>ng h p 2 <b>ợ</b>

Trong hàng n k− +1 c a ma trủ ận A<small>( )k</small> <sub> không t n t i ph n t </sub><sub>ồ ạ</sub> <sub>ầ ử</sub><small>( )1,</small> 0

<small>kn kj</small>

a<sub>− +</sub> đứng trước <small>( )</small>

<small>1,kn kn</small>

a<sub>− +</sub> <sub>−</sub> <sub>. Trong tr ng h p này, ta </sub><sub>ườ</sub> <sub>ợ</sub> <sub>đưa bài tốn v tìm tr êng c a 2 ma tr</sub><sub>ề</sub> <sub>ị ri</sub> <sub>ủ</sub> <sub>ận </sub>

3.2.3 Gi i quy t v<b>ảế ấn đề </b>

Vấn đề trong tr ng hườ ợp đặc bi t 2 x y ra do vi c chia nh ma tr n ệ ả ệ ỏ A thành ậ<small>( )k</small>

2 ma tr n nh hậ ỏ ơn. Vì vậy, ta sẽ chỉnh sửa thuật tốn tìm giá tr êng ị ri để giữ nguyên kích th c c a ma tr n qua các b c biướ ủ ậ ướ ến đổi b ng cách b qua khơng làm gì và thằ ỏ ực hiện b c ti p theo. ướ ế

Khi ó, sau đ

n −1

b c th c hi n, ma ướ ự ệ trận

A

<small>(n−1)</small>có d ng: ạ

A

<small>−</small> =

a) Tìm giá tr êng ị ri

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Ví d , sau ụ

n −1

b c biướ ến đổi

Ta duy t tu n t cệ ầ ự ác phần t ửa<sub>i i</sub><sub>, 1</sub><sub>−</sub><sub> t d i lên tr </sub><sub>ừ ướ</sub> <sub>ên(</sub>i n= ,1)

Nếu a<sub>i i</sub><small>, 1</small><sub>−</sub> = => Trong hàng i, các ph n t 0 ầ ửa n <small>i i,</small> đế a là các h s c<small>i j,</small> ệ ố ủa đa thức đặc trưng của một ma tr n con vậ ới j thỏa mãn a<sub>j</sub><sub>+</sub><sub>1,</sub><sub>j</sub> là ph n t bầ ử ằng 0 liền trước.

Giải các đa thức đặc trưng thu được các giá tr riêng c a ma trị ủ ận ban đầu.

b) Tìm vector riêng

Xét 2 phương trình cuối: <small>67676</small>

3y 7 y y

+ ==

3 y 7y y

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<small>7</small>y( 3 7) 0

Nhận thấy, <small>2</small>−3 − chính là m t trong nh7 ộ ững đa thức đặc trưng. Nếu là nghi m cệ ủa đa thức đặc trưng, chọn y<sub>7</sub><sub>=</sub>1,y<sub>6</sub><sub>= </sub>Nếu không, y<sub>7</sub> =0, y<sub>6</sub> =0

Xét phương trình 3, 4 , 5

8 2

y y

− − − <sup> với </sup>

y

<small>6</small><sub>và </sub><sub>y </sub><sub>7</sub><sub>đã tính được ở bước trước </sub>

Tương tự như trên,

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

Nếu là nghi m c a ệ ủ ( −7 − , chọn 3) y<sub>2</sub>=1,y<sub>1</sub>= <small>.</small>

Nếu khơng, <small>3456722</small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>Chương 4: Thuật tốn v ví d</b>à <b>ụ minh hoạ </b>

if A[j,k]!=0 v i b t k k = ớ ấ ỳ 0,𝑗 − 2 : //N u t n t i ph n t ế ồ ạ ầ ử đứng trước A[j,j-1] khác 0

Hoán v hàng th k và j- ị ứ 1; Hoán v c t thị ộ ứ k và j- 1; M[k,k] = M[j-1,j-1] = 0; M[k,j-1] = M[j-1,k] = 1; i -= 1;

else: //N u t t c ế ấ ả phầ ử đứng trước A[j,j-1] bằng 0 n t continue;

C *= M;

//B2: TÌM GIÁ TR RIÊNGỊ

j = n; //Đánh dấu vị trị lần xử lý trước eigenvalue []; //Lưu trữ các trị riêng

for i=n-1 down to 0 do{ //Duy t ma tr n t ệ ậ ừ dưới lên if A[i,i-1] == 0 or i==0{

ChaPoly = A[i,i:j]; //H s cệ ố ủa đa thức đặc trưng Thêm vào trước ChaPoly ph n t - ầ ử 1;

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Giải phương trình đa thức với hệ số ChaPoly; Thêm vào eigenvalue các nghi m v a giệ ừ ải được; j = i;

} }

//Thu được danh sách eigenvalue là các tr riêng c a A ị ủ

//B3: TÌM VECTOR RIÊNG

eigenvector = []; //Lưu trữ các vector riêng j = n; //Đánh dấu vị trị lần xử lý trước for value in eigenvalue{ //Duy t t ng tr riêngệ ừ ị y = [];

for i=n-1 down to 0 do{ //Duy t ma tr n t ệ ậ ừ dưới lên if A[i,i-1] == 0 or i==0{

ChaPoly = a[i,j]; //h s cệ ố ủa đa thức đặc trưng Thêm ph n t -ầ ử 1 và trước ChaPoly; f(value) = giá tr cị ủa đa thức h s ChaPoly; ệ ố if f(value)==0{

Thêm vào y các ph n t có giá tr value^k v i k = ầ ử ị ớ 0,𝑗 − 𝑖; }

else{

Tính s = sum(a*b) v i a,b tu n t trong y và arr[j:]; ớ ầ ự

Thêm vào y các ph n t có giá trầ ử ị -s/f(value)*value^k v i k = ớ 0,𝑗 − 𝑖; }

} }

y = y.reverse(); //Vector riêng của ma trận Frobenius y = C*y; //Vector riêng c a ma tr n Aủ ậ

Thêm vào eigenvector vector y vừa tìm được;}

//Thu được danh sách eigenvector các vector riêng ng v i tr riêng trong ứ ớ ịeigenvalue

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

4.2 Ví d minh ho<b>ụạ </b>

VD1: Tìm tr êng và vector riêng c a ma tr n sau ị ri ủ ậ

3 16 8 3910 86 5 94 73 60 295 5 27 5

Ta có các bước gi i b ng phả ằ ương pháp Danilevski như sau

Và thu được k t qu ế ả

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

VD2: Tìm tr êng và vector riêng cị ri ủa ma tr n sauậ

3 42 5 68 6 9 24 0 6 918 4 0 2−

Ta có các bước gi i b ng phả ằ ương pháp Danilevski như sau

Và thu được k t qu ế ả

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

VD3: Tìm tr êng và vector riêng cị ri ủa ma tr n sau ậ

3 42 5 6 10 6 9 2 450 6 6 91 20 4 0 2 90 6 0<sup>−</sup> 8 3

Ta có các bước gi i b ng phả ằ ương pháp Danilevski như sau

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

Và thu được k t qu ế ả

</div>

×