Chương 4: Trị riêng và vector riêng
M-file
1. Tìm hệ số của đa thức đặc trưng của ma trận vuông theo krylov --- P1
2. Tìm hệ số ma trận đặc trưng của ma trận vuông theo phương pháp Leverier --- P1
3. Tìm vecto riêng tương ứng của ma trận theo phương pháp Krylov V=EigVec(A,L) --- P1
4. Tìm trị riêng có modul lớn nhất đó và vecto riêng tương ứng của ma trận vuông A [L,V]=MaxEig(A) --- P1
B- Nội trú
Bài 1: Tìm 3 trị riêng có modul lớn nhất và 2 nhỏ nhất của Ma trận Ma phương cấp 30 --- P2
Bài 2: Tính hệ số của đa thức đặc trưng, chuẩn và số đk loại 2; 2 trị riêng có modul lớn nhất của Ma trận Hilbert cấp 20 --- P2
Bài 3: Tính hệ số của đa thức đặc trưng, các trị riêng và vector riêng tương ứng của các ma trận --- P2
Bài 4:Tính hệ số của đa thức đặc trưng, chuẩn và số điều kiện loại + vô cùng của ma trận vuông cấp 50 --- P2
Bài 5: Tìm ma trận P làm chéo hóa ma trận --- P2
Bài 6: Tìm ma trận P làm chéo hóa trực giao ma trận --- P2
====================
A – M-file
1. Tìm hệ số của đa thức đặc trưng của ma trận vuông theo krylov
%Cai dat ham krylov tinh he so cua da thuc dac trung
function x = krylov(A)
[m,n] = size(A);
if m~=n
disp('??? Error using ==> krylov');
disp('The input matrix must be square');
else
B = zeros(n,n);
v = zeros(n,1);
v(1) = 1;
B(:,1) = v;
for i = 2:n
v = A*v;
B(:,i) = v;
end
c = A*v;
x = -B\c;
x(n+1) = 1;
end
2. Tìm hệ số ma trận đặc trưng của ma trận vuông theo phương pháp Leverier
%ham leverie de tinh he so da thuc dac trung cua ma tran A
function x = leverier(A)
[m,n] = size(A);
if m~=n
disp('???Error using ==> leverie');
disp('The input matrix must be square');
else
s = zeros(1,n);
p = ones(1,n+1);
for i = 1:n
t = 0;
for j = 1:i-1
t = t + p(j) * s(i-j);
end
p(i) = -(sum(diag(A^i)) + t)/i;
s(i) = sum(diag(A^i));
x(i+1) = p(i);
end
x(1) = 1;
end
3. Tìm vecto riêng tương ứng của ma trận theo phương pháp Krylov V=EigVec(A,L)
%Tim vector tuong ung voi tri rieng L da co
function x = EigVect(A,L)
[m,n] = size(A);
if m~=n
disp('???Error using ==> EigVect');
disp('The input matrix must be square');
x = NaN*ones(n,1);
else
p = poly(A);
q(1) = 1;
for i = 2:n
q(i) = L*q(i-1) + p(k);
end
x = rand(n,1);
x = polyval(q,A)*x;
x = x/norm(x);
end
4. Tìm trị riêng có modul lớn nhất đó và vecto riêng tương ứng của ma trận vuông A [L,V]=MaxEig(A)
function [V,L]=maxeig(A)
[m n]=size(A);
if(m~=n)
disp('Matrix must be sqare');
else
x=rand(n,1);
B=A;
L=(A*x)'*x/(x'*x);
L1=realmax;
while abs(L-L1)>1e-12
L1=L;
B=B*B;
x=B*x;
x=x/norm(x);
L=(A*x)'*x/(x'*x);
end
V=x;
end
end
B – Nội trú
Bài 1: Tìm 3 trị riêng có modul lớn nhất và 2 nhỏ nahtas của Ma trận Ma phương cấp 30
>> A=magic(30);
>> [V,D,F]=eigs(A,3,'LM')
>> [V,D,F]=eigs(A,2,'SM')
Bài 2: Tính hệ số của đa thức đặc trưng, chuẩn và số đk loại 2; 2 trị riêng có modul lớn nhất của Ma trận Hilbert cấp 20
>> A=hilb(20);
>> p=poly(A) //tính hệ số của đa thức đặc trưng
>> [V,D,F]=eigs(A,2,'LM')//timg modul lớn nhất
>>C=norm(A,2) //tìm chuẩn loại 2
>>C=norm(A,inf) //tìm chuẩn loại vô cùng
>>C=norm(A,1) //tìm chuẩn loại 1
>> dk=cond(A,2)//số điều kiện loại 2
Bài 3: Tính hệ số của đa thức đặc trưng, các trị riêng và vector riêng tương ứng của các ma trận
>> A=[0 1 3 4;2 0 1 3;3 1 0 2;1 3 2 0];
>> B=[1 -1 5 0;2 3 0 8;3 1 6 7;9 0 7 2];
>> C=[1 1 -3 4;1 1 -2 3;3 2 1 -5;4 3 -5 1];
>> pA=poly(A)
>> pB=poly(B)//tìm hệ số của đa thức đặc trưng
>>pC=poly(C)
>> [V,D]=eig(A) //tìm trị riêng và vetor riêng
>> [V,D]=eig(B)
>> [V,D]=eig(C)
Bài 4:Tính hệ số của đa thức đặc trưng, chuẩn và số điều kiện loại + vô cùng của ma trận vuông cấp 50
>> A=4*eye(50);
>> B=ones(49,1);
>> A=A+2*diag(B,1)+diag(B,-1);
>> C=norm(A,inf)
C = 7
>> DK=cond(A,inf)
DK = 7.0000
Bài 5: Tìm ma trận P làm chéo hóa ma trận
>> A=[2 -1 0 3;1 1 2 -1;-1 2 3 1;0 1 2 1];
>> B=[3 1 1 1;1 3 1 1;1 1 3 1;1 1 1 3];
>> [p,D]=eig(A) //p là ma trận chéo hóa ma trận A tương tự đối với B
p =
0.4932 0.1583 0.8752 -0.6667
0.3768 0.8291 0.4376 -0.6667
0.6096 -0.5124 -0.1459 0.3333
0.4932 0.1583 0.1459 0.0000
D =
4.2361 0 0 0
0 -0.2361 0 0
0 0 2.0000 0
0 0 0 1.0000
>> [p,D]=eig(B)
Bài 6: Tìm ma trận P làm chéo hóa trực giao ma trận
>> A=[2 -1 -1;-1 2 -1;-1 -1 2];
>> B=[1 2 3 4;2 1 2 3;3 2 1 2;4 3 2 1];
>> [p,D]=eig(A)
p =
0.5774 0.2673 0.7715
0.5774 -0.8018 -0.1543
0.5774 0.5345 -0.6172
D =
-0.0000 0 0
0 3.0000 0
0 0 3.0000
>> [p,D]=eig(B)
Bạn đang đọc truyện trên: Truyen247.Pro