Đang tải... (xem toàn văn)
9 Chương 3: Tìm vector riêng bằng phương pháp Danilevski ..... ịHơn nữa, nếu B= T−1 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 .Ta thấy, để tìm giá tr
Trang 1TRƯỜ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:ựệ
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 20195974 Trịnh Xuân Trường 20196003
Trang 2Mục l c ụ
Chương 1: Nhắc l i m t s ạộ ố kiến thức đạ ối s tuyến tính 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
Chương 3: Tìm vector riêng bằng phương pháp Danilevski 10
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
Trang 3Chương 1: Nhắc lại mộ ốt s kiến thức đại số tuyến tính
1.1 Trị riêng và vector riêng c a ma tr n ủậ
C hoA=( )aij là ma tr n vuông c ậ ỡn n N u t n t i vector ế ồ ạ uvà số thực 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(KA = A− I
a aa a
= là 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, n=det(A
Trang 4Nhận xét: Có t t c ấ ảnk định th c con bứ ậc ktrên đường chéo chính Khi đó việc tính toá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 thì A
Trang 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−1 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 .
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( )2n Hay, khi s d ng kh i triử ụ ả ển theo Laplace để tính định thức
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 ậ
2.1.1 Khái ni m ệ
Ma tr n Frobenius có dậ ạng:
P =
Trang 62.1.2 Đa thức đặc trưng của ma trận Frobenius
S d ng khai tri n Laplace theo c t n, ta có: ử ụ ể ộ1
= −+ −
= −−+ −+ −= −+ −−+ −
= = −−−− −−
2.2 Phương pháp cho trường hợp lí tưở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 ả ử ầ ử(1)
,1 0
in i n i
a +
−− 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= (0)
Trang 7M A M
A = −, với các ma tr n ậM1, M−1 như sau:
và,
Trang 8Bước i: Biến đổi ma trận A( )i thành ma trận ( 1)i( )i, 1ii
Nhậ Khối lượng phép tính để biến đổ ừA đến P c ỡn3− phép nhân và n2
chia Rõ ràng, phương pháp Danilevski có khối lượng tính toán giảm hơn so với phương pháp thông thường
Trang 92.3 Phương pháp cho các trường hợp đặc biệt
Ở trường hợp lí tưởng, ta có giả thi t các phần t ế ử( )1, 0
kn kn k
a− + − Tuy nhiên, sau các phép biến đổi có th xể ảy ra trường h p mà ợ ( )
1, 0
kn kn k
a− + − = Ở phần này, ta s xem xét ẽcác phương pháp để xử lý trường hợp đặc biệt đó
2.3.1 Trường hợp 1
Trong hàng n k− +1 t n t i ph n t ồ ạ ầ ử ( )k1, 0
n kj
a− + 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 và cột n k− , hàng j và hàng n k− , s thu ẽđược m t ma tr n m i ộ ậ ớA( )k =C A C−1( )k đồng d ng v i ma trạ ớ ận ban đầu ớ V i ma tr n ậCnhư sau:
Trang 10Lúc này, ph n t ầ ử ( )
1, 0
kn kn k
a− + − , ta th c hi n ti p tự ệ ế ục như với trường h p lí ợtưởng
2.3.2 Trường hợp 2
Trong hàng n k− +1 c a ma trủ ận A( )k không t n t i ph n t ồ ạ ầ ử( )1, 0
kn kj
a− + đứng trước ( )
1,kn kn
a− + − Khi đó, ma trận A( )k có d ng: ạ
Trang 11Biểu di n thành ma tr n khễ ậ ối như hình vẽ:
Hay ( )1203
A = , 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
( )k 1 3A− I= A − I= D− I D− I
Chương 3: Tìm vector riêng bằng phương pháp Danilevski 3.1 Phương pháp cho trường hợp lí tưởng
Gọi y là vector riêng c a ma trủ ận P A P M~ : = 1−AM, ta có:
Py y
M AMy yAMy My
Trang 12Trong đó,
n n n
Vậy x M M= n−1 n−2 M M y2 1 là vector riêng ng v i tr riêng ứ ớ ị của ma trận A
Xác định y : Ta có, Py= y
n n
p y p y p y yy y
y− y
Chọn y = , suy ra n 1 y=( n−1, n−2, , ,1
Từ đó, ta sẽ thu được vector riêng x ng v i tr riêng ứ ớ ị c a ủ A
3.2 Phương pháp cho trường hợp lí tưởng
3.2.1 Trường h p 1 ợ
Trong hàng n k− +1 c a ma trủ ận A( )k t n t i ph n t ồ ạ ầ ử ( )1, 0
kn kj
a− + đứng trước
( )1,kn kn
a− + − Khi đó, để tìm tr ịriêng, ta đã hoán vị hàng j và hàng n k− , cột j và cột
n k− c a ma trủ ận 𝐴(𝑘) bằng biến đổi:
Do đó, vector riêng của ma tr n sậ ẽ được tính như sau:
Trang 133.2.2 Trường h p 2 ợ
Trong hàng n k− +1 c a ma trủ ận A( )k không t n t i ph n t ồ ạ ầ ử( )1, 0
kn kj
a− + đứng trước ( )
1,kn kn
a− + − Trong tr ng h p này, ta ườ ợ đưa bài toán v tìm tr êng c a 2 ma trề ị ri ủ ận
3.2.3 Gi i quy t vảế ấn đề
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 ậ( )k
2 ma tr n nh hậ ỏ ơn Vì vậy, ta sẽ chỉnh sửa thuật toá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(n−1)có d ng: ạ
A − =
a) Tìm giá tr êng ị ri
Trang 14Ví d , sau ụ n −1 b c biướ ến đổi
Ta duy t tu n t cệ ầ ự ác phần t ửai i, 1− t d i lên tr ừ ướ ên(i n= ,1)
Nếu ai i, 1− = => Trong hàng i, các ph n t 0 ầ ửa n i i, đế a là các h s ci j, ệ ố ủa đa thức đặc trưng của một ma tr n con vậ ới j thỏa mãn aj+1,j 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: 67676
3y 7 y y
+ ==
3 y 7y y
Trang 157y( 3 7) 0
Nhận thấy, 2−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 y7=1,y6= Nếu không, y7 =0, y6 =0
Xét phương trình 3, 4 , 5
8 2
y y
− − − với y6và y 7đã tính được ở bước trước
Tương tự như trên,
Trang 16Nếu là nghi m c a ệ ủ ( −7 − , chọn 3) y2=1,y1= .
Nếu không, 3456722
Trang 17Chương 4: Thuật toán v ví dà ụ minh hoạ
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;
Trang 18Giả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
Trang 194.2 Ví d minh hoụạ
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 ế ả
Trang 20VD2: 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 ế ả
Trang 21VD3: 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− 8 3
Ta có các bước gi i b ng phả ằ ương pháp Danilevski như sau
Trang 22Và thu được k t qu ế ả