Professional Documents
Culture Documents
Daisotuyentinh Trong Matlab
Daisotuyentinh Trong Matlab
Hm matlab
A=[1 2 3;2 3 4]
B=[3;2;5]
A*B
2*A+B
A^n
chol(A)
det(A)
diag(v)
eig(A)
[v,d]=eig(A)
eye(n)
hadamard(n)
Hilb
inv(A)
isempty(A)
length(v)
Linspace
max(X)
min(X)
norm
null
ones(n)
pascal(n)
rank(A)
reshape(A)
size(A)
tril(A)
triu(A)
vander(v)
zeros(n)
gs(A)
[Q,R]=qr(A)
[L,U]=lu(A)
roots
polyvalm
polyval
polyfit
A\b
M t
to ma trn c 2,3
to ma trn ct c 3 hng, 1ct.
Tnh tch AB
Tnh 2A + B, v d A=[2 3 1;2 1 0], B=[1 -2 1;2 1 5]
Tnh A^n vi A l ma trn vung
Phn tch ma trn A thnh tch 2 ma trn theo phng php choleski
Tnh nh thc ma trn vung A
To ma trn cho vi cc p/t trn ng cho l cc pt ca vcto v
xut ra tr ring ca ma trn A
xut ra tr ring v vcto ring ca ma trn A, cho ha ma trn
to ma trn n v cp n cho trc.
To ma trn Hadamard cp n.
Ma trn Hilbert
ma trn nghch o ca ma trn A
Kim tra A c ng l ma trn 0 khng.
Tnh di ca vector
To 1 vector cch u nhau
Tr v gi tr ln nht trong vector X
Tr v gi tr nh nht trong vector X
Ma trn trc chun ca cc vector ring
Khong trng
To ma trn cp n c tt c cc pt u bng 1
To ma trn pascal cp n.
Tm hng ma trn A
Thay i kch c ma trn
Kch c ma trn A
Trch ra ma trn tam gic di t ma trn A
Trch ra ma trn tam gic trn t ma trn A
To ma trn Vandermonde da trn vcto v
To ma trn 0 cp n
Trc giao ha Gram-Schmidt ma trn(A)
Phn tch ma trn (A) thnh tch 2 ma trn Q v R
Phn tch ma trn(A) thnh tch 2 ma trn L v U
Tm nghim ca a thc
tnh tr a thc m cc bin l ma trn
Tnh gi tr ca a thc
Xp x bng a thc
Gii h phng trnh Ax = b
Mt s comments.
1/ MATLAB cho php ta nhp s liu t dng lnh. Khi nhp ma trn t bn phm ta phi tun
theo cc quy nh sau :
ngn cch cc phn t ca ma trn bng du , hay du trng
dng du ; kt thc mt hng
bao cc phn t ca ma trn bng cp du ngoc vung [ ]
V d : >> A = [ 1 2 3 ]
kt qu l A =
123
>> A = [1;2;3]
kt qu l A =
1
2
3
2/ Ton t dng chuyn v mt ma trn thc v chuyn v lin hp mt ma trn
phc. Nu ch mun chuyn v ma trn phc, ta dng thm ton t . ngha l phi
vit .. V d:
C = [1 + 2*i
2 - 4*i; 3 + i
2 - 2*j];
X = C'
Y = C.
3/ Ch s: Phn t hng i ct j ca ma trn mn c k hiu l A(i, j). Tuy
nhin ta cng c th tham chiu ti phn t ca mng nh mt ch s, v d A(k) vi
k
= i + (j - 1)m. Cch ny thng dng tham chiu vec t hng hay ct. Trong
trng
hp ma trn y th n c xem l ma trn mt ct di to t cc ct ca ma
trn
ban u. Nh vy vit A(5) c ngha l tham chiu phn t A(2, 2).
xc nh kch thc ca mt ma trn ta dng lnh length(tr v kch thc
ln nht) hay size(s hng v ct). V d:
c = [1 2 3 4; 5 6 7 8];
length(c)
[m, n] = size(c)
4/ Ton t : : Ton t : l mt ton t quan trng ca MATLAB. N xut
hin nhiu dng khc nhau. V d: Lnh :
1:10
to mt vec t hng cha 10 s nguyn t 1 n 10.
Lnh:
100: -7: 50
to mt dy s t 100 n 51, gim 7 mi ln.
Cc biu thc ch s tham chiu ti mt phn ca ma trn. Vit A(1:k, j) l tham
chiu n k phn tu tin ca ct j. Ngoi ra ton t : tham chiu ti tt c cc
phn t ca mt hng hay mt ct. V d:
B = A(:, [1 3 2 ])
to ra ma trn B t ma trn A bng cch i th t cc ct t [1 2 3] thnh [1 3 2]
To ma trn bng hm c sn: MATLAB cung cp mt s hm to cc
ma trn c bn:
zeros
to ra ma trn m cc phn tu l zeros
z = zeros(2, 4)
ones
to ra ma trn m cc phn tu l 1
x = ones(2, 3)
y = 5*ones(2, 2)
rand
to ra ma trn m cc phn t ngu nhin phn bu
d = rand(4, 4)
randn
to ra ma trn m cc phn t ngu nhin phn b trc giao
e = randn(3, 3)
magic(n) to ra ma trn cp n gm cc s nguyn t 1 n n2 vi tng cc hng
bng tng cc ct (n phi ln hn hay bng 3).
pascal(n) to ra ma trn xc nh dng cp n m cc phn t ly t tam gic
Pascal.
Lnh :
pascal(4) to ra ma trn xc nh dng cp 4
- eye(n) to ma trn n v cp n
Lnh:
eye(3) to ma trn n v cp 3
- eye(m, n) to ma trn n v m rng
Lnh:
A I
hang
I|A .
1
Yu cu: Input: cho php nhp vo mt ma trn vung ty . Chng trnh kim tra tnh kh
nghch ca ma trn. Output: Ma trn nghch o:
8/ Tm ma trn nghch o bng cng thc
A1
A1. .
1
PA .
det( A)
Yu cu: Input: cho php nhp vo mt ma trn vung ty . Chng trnh kim tra tnh kh
nghch ca ma trn. Output: Ma trn nghch o:
A1. .
trong
xi
det( Ai )
.
det( A)
khng.
31/ Cho dng ton phng
i trc giao.
32/ Cho dng ton phng
function A=bdsc_bacthang(B)
A=B;
[m,n]=size(A);
h=1;
for k=1:m-1;
for j=h:n;
for i=k:m;
if(A(i,j)~=0)
break;
end;
end;
if(A(i,j)~=0)
break;
end;
end;
if(i~=k)
for l=h:n;
a=A(k,l);
A(k,l)=A(i,l);
A(i,l)=a;
end;
end;
if(j~=h)
h=j;
end;
for i=k+1:m;
if (A(i,h)~=0)
a=A(i,h)/A(k,h);
for j=h:n;
A(i,j)=A(i,j)-a*A(k,j);
end;
end;
end;
h=h+1;
end;
disp('ma tran bac thang');
disp(A);
end
1b/ dng bin i s cp a v dng bc thang, tnh hng v tnh nh thc.
function [B,dinhthuc,hang] = ladder(A) % chuyen ve bac thang
% Dong thoi tim dinh thuc va hang cua ma tran dua vao bdsc
if nargin <1 error ('phai nhap vao ma tran can phan tich');
end;
N = size(A,1);%1 la dong,2 la cot,i la hang,j la cot
m = size(A,2);
l=A;
i=1;
d=0;
if N~=m
dinhthuc ='*phai la ma tran vuong*';
end;
for h=1:N
k=l(h:N,:);
k=k(:,h:m);
for j=1:(m-h+1) % tim phan tu khac khong dau tien theo tt cot hang
for i=1:(N-h+1)
if k(i,j)~=0
e=i;
if h==1
f=j;
end;
if h~=1
f=1;
end;
break;
end;
end;
if k(i,j)~=0
break;
end;
end;
d=d+(e-1)*(N-1)+(f-1)*(m-1);
k=circshift(k, [-(e-1), -(f-1)]);
p=[l(1:(h-1),h:m);k];
l=[l(1:N,1:(h-1)) p];
for g=h:(N-1) % khu cac phan tu theo sau ben duoi
for i=(g+1):N
if l(g,g)~=0
c=l(i,g)/l(g,g);
for j=g:m
l(i,j)=l(i,j)-(c*l(g,j));
end;
end;
if l(g,g)==0
break;
end;
end;
if l(g,g)==0
break;
end;
end;
end;
E=l(2:N,1:m,:); % bien doi de dinh thuc ma tran khong thay doi
F=l(1,1:m);
F=((-1)^d)*F;
B=[F;E];%ma tran B thay the boi B ma xet su thay doi dau hang 1
hang=0;
for s=1:N %tim hang ma tran
i=N+1-s;
for j=1:m
if B(i,j)~=0
hang=i;
break;
end;
end;
if B(i,j)~=0
break;
end;
end;
if N==m % tim dinh thuc ma tran
dinhthuc=1;
for i=1:N
dinhthuc=dinhthuc*B(i,i);
end;
end;
2/ Gii h phng trnh bng phng php Cramer
function [X] = cramer(A,b)
if nargin <2 error ('phai nhap vao ma tran can phan tich');
end;
N = size(A,1);%1 la dong,2 la cot,i la hang,j la cot
m = size(A,2);
if N~=m error ('khong phai la he cramer,nhap lai ma tran he so A');
end;
n = size(b,1);
M = size(b,2);
if n>M
b=b';
if M~=1 error ('kich co he so tu do khong phu hop nhap lai b');
end;
if n~=N error ('kich co he so tu do khong phu hop nhap lai b');
end;
end;
if M>n
if n~=1 error ('kich co he so tu do khong phu hop nhap lai b');
end;
if M~=N error ('kich co he so tu do khong phu hop nhap lai b');
end;
end;
if det(A)==0 error ('det=0,khong the dung phuong phap nay');
end;
l=A;
X=0;
b=b';
for j=1:N
if j==1
l=A;
l(:,j)=[];
l=[b l];
X(1,j)=det(l)/det(A);
end;
if j>=2
if j<N
l=A;
a=l;
x=a(1:N,1:(j-1),:);
y=a(1:N,(j+1):N,:);
l=[x,b];
l=[l y];
X(1,j)=det(l)/det(A);
end;
if j==N
l=A;
l(:,j)=[];
l=[l b];
X(1,j)=det(l)/det(A);
end;
end;
end;
3/ Gii h bng phng php kh Gauss
function [B,X] = gauss(A,b)
if nargin <1 error ('phai nhap vao ma tran can phan tich');
end;
N = size(A,1);%1 la dong,2 la cot,i la hang,j la cot
m = size(A,2)+1;
z = size(b,1);%kiem tra he so tu do
t = size(b,2);
c=b;
if t>z
for j=1:t % chuyen vi ma tran
for i=1:z
b(j,i)=c(i,j);
end;
end;
b=b(:,1:z);
end;
if z>t
b=c;
end;
z = size(b,1);
t = size(b,2);
%if z~=1
%
if t==N error ('kich co he so tu do khong phu hop');
% end;
%end;
%if t~=1 error ('kich co he so tu do khong phu hop.');
%end;
l=[A b];
i=1;
d=0;
for h=1:N
k=l(h:N,:);%chon hang thu h den N
k=k(:,h:m);
%chon cot thu h den m
for j=1:(m-h+1)
for i=1:(N-h+1)
if k(i,j)~=0
e=i;
if h==1
f=j;
end;
if h~=1
f=1;
end;
break;
end;
end;
if k(i,j)~=0
break;
end;
end;%tim phan tu khac 0 dau tien de hoan doi
k=circshift(k, [-(e-1), -(f-1)]);
p=[l(1:(h-1),h:m);k];
l=[l(1:N,1:(h-1)) p];
for g=h:(N-1)
for i=(g+1):N
if l(g,g)~=0
c=l(i,g)/l(g,g);
for j=g:m
l(i,j)=l(i,j)-(c*l(g,j));
end;
end;
if l(g,g)==0
break;
end;
end;
if l(g,g)==0
break;
end;
end;% bien doi so cap khu cac phan tu ben duoi
end;
B=l;
rA=0;
rB=0;
for s=1:N
i=N+1-s;
for j=1:(m-1)
if B(i,j)~=0
rA=i;
break;
end;
end;
if B(i,j)~=0
break;
end;
end;%tim hang ma tran he so
for s=1:N
i=N+1-s;
for j=1:m
if B(i,j)~=0
rB=i;
break;
end;
end;
if B(i,j)~=0
break;
end;
end;% tim hang ma tran mo rong
if rA<rB
X= ('phuong trinh vo nghiem');
end;
if rA==rB
if rA<(m-1)
X= ('phuong trinh co vo so nghiem');
end;
u=0;
if rA==(m-1) %giai nghiem he theo phuong phap khu Gauss
for s=1:(m-1)
i=m-s;
if i==(m-1);
X(i)=B(i,m)/B(i,i);
end;
if i~=(m-1)
for c=1:(s-1)
y=m-c;
u=u+X(y)*B(i,y);
X(i)=(B(i,m)-u)/B(i,i);
end;
end;
u=0;
end;
end;
end;
4/ Tm ma trn nghch o
function [B] = nghichdao (A)% tim ma tran nghich dao theo ma tran phu hop
if nargin <1 error ('phai nhap vao ma tran can phan tich');
end;
N = size(A,1);%1 la dong,2 la cot,i la hang,j la cot
m = size(A,2);
d=0;
a=A;
i=1;
if N~=m
error ('ma tran khong vuong');
end;
l=A;
for h=1:N %bien doi bac thang
k=A(h:N,:);
k=k(:,h:N);
for j=1:(N-h+1)
for i=1:(N-h+1)
if k(i,j)~=0
e=i;
if h==1
f=j;
end;
if h~=1
f=1;
end;
break;
end;
end;
if k(i,j)~=0
break;
end;
end;
d=d+(e-1)*(N-1)+(f-1)*(N-1);
k=circshift(k, [-(e-1), -(f-1)]);
p=[A(1:(h-1),h:N);k];
A=[A(1:N,1:(h-1)) p];
for g=h:(N-1)
for i=(g+1):N
if A(g,g)~=0
c=A(i,g)/A(g,g);
for j=g:N
A(i,j)=A(i,j)-(c*A(g,j));
end;
end;
if A(g,g)==0
break;
end;
end;
if A(g,g)==0
break;
end;
end;
end;
E=A(2:N,1:N,:);
F=A(1,1:N);
F=((-1)^d)*F;
K=[F;E];
dinhthuccha=1;
for i=1:N %tinh dinh thuc
dinhthuccha=dinhthuccha*K(i,i);
end;
for o=1:N
l(o,:)=[];
D=l;
for t=1:N
l(:,t)=[];
N=N-1;
for h=1:N
k=l(h:N,:);
k=k(:,h:N);
for j=1:(N-h+1)
for i=1:(N-h+1)
if k(i,j)~=0
e=i;
if h==1
f=j;
end;
if h~=1
f=1;
end;
break;
end;
end;
if k(i,j)~=0
break;
end;
end;
d=d+(e-1)*(N-1)+(f-1)*(N-1);
k=circshift(k, [-(e-1), -(f-1)]);
p=[l(1:(h-1),h:N);k];
l=[l(1:N,1:(h-1)) p];
for g=h:(N-1)
for i=(g+1):N
if l(g,g)~=0
c=l(i,g)/l(g,g);
for j=g:N
l(i,j)=l(i,j)-(c*l(g,j));
end;
end;
if l(g,g)==0
break;
end;
end;
if l(g,g)==0
break;
end;
end;
end;
E=l(2:N,1:N,:);
F=l(1,1:N);
F=((-1)^d)*F;
G=[F;E];
dinhthuccon=1;
for i=1:N
dinhthuccon=dinhthuccon*G(i,i);
end;
B(o,t)=((-1)^(o+t))*dinhthuccon;
dinhthuccon=1;
l=D;
N=N+1;
end;
l=a;
end;%tim ma tran dinh thuc con
C=B;
for j=1:N % chuyen vi ma tran
for i=1:N
B(i,j)=C(j,i);
end;
end;
B=B/dinhthuccha;
5/Phn tch LU ca ma trn A
function [l,u,dinhthuc] = LU(A)%tam giac duoi,tam giac tren,dinh thuc
if nargin <1 error ('phai nhap vao ma tran can phan tich');
end;
a=A;
N = size(A,1);%1 la dong,2 la cot
m = size(A,2);
if N~=m
A = ('khong la ma tran vuong');
end;
if N==m
l=zeros(N);
u=zeros(N);
for i=1:N
l(i,i)=1;
end;
for j=1:N
u(1,j)=A(1,j);
end;
if u(1,1)== 0
error('khong the phan tich duoc, nhap lai ma tran khac');
end;
for i=2:N
l(i,1)=A(i,1)/u(1,1);
end;
for i=2:N-1
for j=i:N
sum=0;
for k=1:i-1
sum=sum+l(i,k)*u(k,j);
end;
u(i,j)=A(i,j)-sum;
end;
if u(i,i)==0
error('khong the phan tich duoc, nhap lai ma tran khac');
end;
for j=i+1:N
sum=0;
for k=1:i-1
sum=sum+l(j,k)*u(k,i);
end;
l(j,i)=(A(j,i)-sum)/u(i,i);
end;
end;
sum=0;
for k=1:N-1
sum=sum+l(N,k)*u(k,N);
end;
u(N,N)=A(N,N)-sum;
dinhthuc=1;
for i=1:N
dinhthuc = dinhthuc*u(i,i)*l(i,i);
end;
end;
A=a;
6/ Dng qu trnh trc giao Gram-Schmidt a h c lp tuyn tnh v h trc
chun
function orthonormal_basis = Gram_Schmidt_process(A)
matrix_size = size(A);
m = matrix_size(1,1);
n = matrix_size(1,2);
if A == zeros(m,n)
error('There does not exist any type of basis for the zero vector
space.');
elseif n == 1
orthonormal_basis = A(1:m,1)/norm(A(1:m,1));
else
flag = 0;
if is_orthonormal_set(A) == 1
orthonormal_basis = A;
flag = 1;
end
if flag == 0;
if rank(A) ~= n
A = basis_col(A);
end
matrix_size = size(A);
m = matrix_size(1,1);
n = matrix_size(1,2);
orthonormal_basis = A(1:m,1)/norm(A(1:m,1));
for i = 2:n
u = A(1:m,i);
v = zeros(m,1);
for j = 1:(i - 1)
v = v dot(u,orthonormal_basis(1:m,j))*orthonormal_basis(1:m,j);
end
end
end
v_ = u + v;
orthonormal_basis(1:m,i) = v_/norm(v_);
end