Tải bản đầy đủ (.docx) (37 trang)

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH

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 (704.22 KB, 37 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KỸ THUẬT HOÁ HỌC

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH
TÊN ĐỀ TÀI: ĐỀ TÀI 7 VÀ 15
GVHD:
Huỳnh Thị Vu
Lớp bài tập: L11
Nhóm: 4
DANH SÁCH THÀNH VIÊN
1. Nguyễn Hữu Nhơn

1712519

2. Trương Hoàng Thắng

1713255

3. Lý Hoàng Thư

1713422

4. Lý Minh Thy

1713460

5. Hà Lê Ngân

1712273


6. Phan Thanh Phú

1712648

7. Bùi Quang Minh

1712144

8. Quách Nhật Minh

1712193

9. Trần Lan Phương

1712734

10. Trần Duy Nhân

1712450

1


MỤC LỤC

2


A. CÂU 7
Đề bài: Tìm ma trận nghịch đảo

1. YÊU CẦU:
Input: Nhập ma trận A tùy ý
Output: Chương trình kiểm tra tính khả nghịch của mat trận và ma trận nghịch
đảo
2. CƠ SỞ LÝ THUYẾT:
Định nghĩa: Ma trận phụ hợp của ma trận vuông A=( được định nghĩa là:

Với là phần bù đại số của phần tử được tìm bằng cách:


Cho ma trận vuông A cấp n và phần tử (. Định thức của ma trận cấp n-1 suy
ra từ A bằng cách xóa đi dòng thứ i, cột thứ j được gọi là định thức con của
A ứng với phần tử ( , ký hiệu là .
• Định thức con nhân với dấu được gọi là phần bù đại số của phần tử ( , ký
hiệu là .
Định lý: Cho ma trận vuông A , ta luôn có:

Từ định lý này, ta suy ra công thức tìm ma trận nghịch đảo sau:

Qua đó, cho thấy điều kiện tiên quyết để ma trận A khả nghịch chính là det(A)
khác 0.
3. THUẬT TOÁN:
Bước 1: Tìm ma trận phụ hợp bằng các phần bù đại số
Bước 2: Tìm định thức của A bằng phép biến đổi sơ cấp về ma trận bậc thang,
từ đó suy ra định thức của A bằng tích của các phần tử trên đường chéo chính
Bước 3: Tìm ma trận nghịch đảo bằng công thức:
4. CODE:
3



function Matrannghichdao=TimmatrannghichdaocuaA
A=input('Nhap ma tran A');
[m,n]=size(A); %m là số cột, n là số hàng
%Bước thứ nhất: Tìm ma trận phụ hợp
if m==n
%Điều kiện để có ma trận phụ hợp là A phải vuông
for i=1:m
%Cho chạy vòng lặp với i chạy từ 1 đến số hàng của A
for j=1:n %Cho ch?y vòng lăp với j ch?y từ 1 đến số cột của A
B(j,i)=(-1)^(i+j)*det([A(1:i-1,1:j-1),A(1:i-1,j+1:end);A(i+1:end,1:j1),A(i+1:end,j+1:end)]);%Tìm ma trận phụ hợp bằng cách dùng phần bù đại số và sau
đó chuyển vị chúng, vì vậy ta sẽ viết B(j,i) thay vì B(i,j)
end;
end;
else disp('Ma tran khong vuong nen ta khong tinh duoc Pa')%Ma trận A nếu không
vuông sẽ không tính được thuật toán sẽ dừng lại tại đây và chương trình báo lỗi
end;
%Bước thứ hai: Tìm định thức A bằng cách đưa về bậc thang sau đó det(A) sẽ bằng
tích các phần tử trên đường chéo chính
h=1;
for k=1:m-1
%Cho k chạy từ 1 đến m-1
for j=h:n
%Ứng với mỗi giá trị k đang chạy thì ta cho j(biến chỉ cột) chạy từ h
đến n
for i=k:m %Ứng với mỗi giá trị j đang chạy ta lại cho i(biến chỉ hàng) chạy từ k
đến m
if(A(i,j)~=0)%i và j chạy cho đến khi phần tử hàng i cột j của ma trận khác 0,
nghĩa là quét ma trận từng cột 1 từ trên xuống cho đến khi gặp 1 phần tử khác 0
break; %Nếu phần tử hàng i cột j khác 0 thì nó sẽ dừng lại và bỏ lệnh for
đang chứa nó và bắt đầu chạy lại từ for j=h:n

end;
end;
if(A(i,j)~=0);
break;
end;
end;
if(i~=k)
%Nếu i khác k ta sẽ phải chuyển cho các phần tử của ma trận nằm
trên hàng đó với hàng kế nó để tạo ma trận bậc thang
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;
4


if(A(i,h)~=0)
a=A(i,h)/A(k,h);%Nếu phần tử A này khác 0 ta sẽ gán cho a là thương của phép
chia của phần tử dưới cho phần tử trên
for j=h:n;
A(i,j)=A(i,j)-a*A(k,j);%Tạo ma trận bậc thang
end;
end;
end;

h=h+1;
%Cho h bằng h+1 và lăp lại từ bước k=1: m-1
end;
%Kết thúc lệnh tìm ma trận bậc thang
dinhthuc=1;
for i=1:n %Cho i chạy từ 1 đén n (số hàng của ma trận A) để tính định thức
dinhthuc=dinhthuc*A(i,i);%Định thức được tính bằng các phần tử trên đường chéo
chính (A(1,1)*A(2,2)*...*A(n,n))
end;
detA=dinhthuc;
%Bước thứ ba: Tìm ma trận nghịch đảo
if detA~=0 %Nếu detA = 0 thì ma trận A không khả nghịch
Matrannghichdao = 1/(detA).*B;
else disp('Ma tran khong kha nghich')
end;
5. VÍ DỤ:
a) Với ma trận vuông có định thức khác 0:

b) Với ma trận vuông có định thức bằng 0:

c) Ma trận nhập vào không vuông thì điều gì xảy ra ?

5


6. KẾT QUẢ
Chương trình hoạt động với mọi ma trận vuông có định thức khác 0 nhập vào.
Chương trình cho ta kết quả là ma trận nghịch đảo của ma trận đó

6



B. CÂU 15
Đề bài: Cho ánh xạ tuyến tính f, biết ma trận của f trong cơ sở E là A. Tìm cơ sở và số
chiều của nhân (Ker) và ảnh (Imf) của ánh xạ tuyến tính
1. YÊU CẦU:
Input: nhập ánh xạ f
Output: số chiều và cơ sở của Ker và Imf
2. CƠ SỞ LÝ THUYẾT:
* Cơ sở và số chiều của Kerf:
x ∈ ker f ⇔ f(x) = 0 ⇔ [f(x)]E = AE[x]E = 0
Ta lại có [x] = E[x]E ⇒ cơ sở của ker f
Rút gọn cơ sở của ker f ta được dim(ker f)
*Cơ sở và số chiều của Imf:
Đặt E = {e1,e2,…en}. Thì [e1]E =
[f(e1)]E = AE[e1]E
Tương tự, ta suy được công thức:
[f(e)]E = AEIn
Lại có: f(e) = E[f(e)]E
Imf =<f(e1), f(e2),…>. Lập ma trận tìm được cơ sở của Imf và hạng của Imf
3. THUẬT TOÁN:
Bước 1: nhập ma trận A
Bước 2: nhập ma trận cơ sở E
* Kerf
Bước 3: Tìm nghiệm của AE[x]E = 0, tìm được [x]E
Bước 4: Tìm ker ( hay [x]) với [x] = E[x]E
Bước 5: Tìm cơ sở của ker
Bước 6: Tìm hạng của ker
* Imf
Bước 7: Tìm số hàng của E

7


Bước 8: Tìm [f(e)]E với [f(e)]E = AEIn
Bước 9: Tìm f(e) với f(e) = E[f(e)]E cũng là imf
Bước 10: Tìm cơ sở của Imf
Bước 11: Tìm số chiều của Imf
4. CODE:
clc
clear all
A=input('Nhap ma tran VUONG A')
E=input('Nhap ma tran VUONG co so E')
%tim ker
XE = null(A,'r') %x trong E
ker = E*XE %X hay ker
CSker = rref(ker)%tìm co so c?a ker
rank(CSker) %so chieu ker
%tim imf
n = size(E,1) %tim so hang cua E
FE = A*eye(n) %tim F trong E
imf = E*FE %tim imf
CSimf = rref(imf) %tim co so imf
rank(CSimf) %so chieu cua imf
5. VÍ DỤ:
VD1: E = {(1;1;1);(1;0;1);(1;1;0)}
A=

8



9


10


VD2: E = {(1;2;1);(1;1;2);(1;1;1)}
A=

11


6. KẾT QUẢ
Chương trình hoạt động với mọi ma trận vuông và cơ sở vuông nhập vào. Chương
trình cho ta kết quả là nhân và ảnh của ma trận đó ứng với cơ sở đã cho.

12


C. CÂU LỆNH THỰC HIỆN TRONG COMMAND
WINDOW
7.1. Ma trận - Định thức

(Lý Hoàng Thư1713422, Lý Minh Thy1713460)
Câu 1: Đưa ma trận về dạng bậc thang
A=[3 5 7 2;1 2 3 4;-2 -3 3 2;1 3 5 4];
B=[A(2,:);A(1,:);A(3,:);A(4,:)]
C=[B(1,:);B(2,:)-3*B(1,:);B(3,:)+2*B(1,:);B(4,:)-B(1,:)]
D=[C(1,:);C(2,:);C(3,:)+C(2,:);C(4,:)+C(2,:)]
disp ('Ma tran bac thang cua A la:'),D


13


Câu 2: Cho . Chứng tỏ r(A)=r(=r()
A=[0 2 -4;-1 -4 5;3 1 7;0 5 -10];
a=rank(A)
b=rank(A*A’)
c=rank(A’*A)

Câu 3: Cho , , . Tính
A = [1 2 1;-1 1 -2];
B = [-1 2;0 2;-1 1];
C = [2 1 0;-1 1 1;0 2 -1];
2*A*C-(C*B)’

Câu 4: Cho Với giá trị nào của m thì A khả nghịch?
syms m;
A=[1 1 1 1;2 3 -1 4;-1 1 0 2;2 2 3 m];
disp (‘De A kha nghich, m=’)
m~=solve(det(A)==0)

14


Câu 5: Cho ma trận . Tính
A = [2 3 1;3 4 2;5 3 -1];
disp(‘Ma tran phu tro,’)
P = det(A)*inv(A)


Câu 6: Cho . Tính f(A), với .
syms x;
A=[2 1 1;3 1 2;1 -1 0];
I=[1 0 0;0 1 0;0 0 1];
disp(‘voi , f(A)=’)
A^2-2*A-3*I

15


Câu 7: Tính
syms a b c x;
A = [a+x x x;x b+x x;x x c+x];
det(A)

Câu 8: Cho . Tính det (2AB)
A=[3 -2 6;5 1 4;3 1 1];
B=[1 1 -1;0 2 5;1 -3 7];
det(2*A*B)

Câu 9: Cho . Tính det ()

16


A = [-1 3 2;2 1 0;4 3 1];
det(A^2)

Câu 10: Giải phương trình ma trận X=
A=[0 -8 3;1 -5 9;2 3 8];

B=[-25 23 -30;-36 -2 -26;-16 -26 7];
X=inv(A)*B

17


7.2. Hệ phương trình
Câu 1: Tìm số nghiệm của hệ phương trình ( Hà Lê Ngân 1712273)

A=[1 2 3 4;2 1 2 3;3 2 1 2;4 3 2 1]
b=[7;6;7;18]
Ab=[A b]
rank(A)
rank(Ab)
%rank(A)=rank(Ab)=4 => hệ đã cho có một nghiệm duy nhất

18


Câu 2: ( Hà Lê Ngân 1712273)
Giải hệ phương trình theo phương pháp Cramer:

A=[1 2 -1;2 3 -3;3 2 5]
A1=[12 2 -1;4 3 -3;-8 2 5]
A2=[1 12 -1;2 4 -3;3 -8 5]
A3= [1 2 12;2 3 4;3 2 -8]
det(A)
%det(A) khác 0 nên hệ là hệ Cramer
%X là nghiệm của hệ
X= [det(A1)/det(A);det(A2)/det(A);det(A3)/det(A)]


19


Câu 3: (Quách Nhật Minh 1712193)
Tìm m để hệ phương trình sau vô nghiệm

syms m
A=[1 3 1;-2 -6 (m-1);4 12 (3+m^2)]
b=[-1;4;m-3]
Ab=[A b]
Ab(2,:)=Ab(2,:)+2*Ab(1,:);Ab(3,:)=Ab(3,:)-4*Ab(1,:)
Ab(3,:)=Ab(3,:)-(m-1)*Ab(2,:)
%Hệ vô nghiệm khi rank(A) khác rank(Ab) => 3-m phải khác 0
solve(3-m)
%Vậy m khác 3 thì hệ vô nghiệm

20


Câu 4: (Quách Nhật Minh 1712193)
Với giá trị nào của m thì hệ phương trình sau có nghiệm không tầm thường:

syms m
A=[1 2 1;2 1 3;3 3 m]
%Hệ có nghiệm không tầm thường khi det(A)=0
det(A)
solve(ans)
%Hệ có nghiệm không tầm thường khi m=4


21


Câu 5: (Quách Nhật Minh 1712193)

Tìm m để hệ vô số nghiệm

1 -1
1
-1 2
2
-1
0
1
2 1-2m -1

2
-2
1
m+2

2
1
m
1

Code:
syms m
A=[1 -1 1 2;-1 2 2 -2;-1 0 1 1;2 1-2*m -1 m+2]
b=[2;1;m;1]

Ab=[A b]
Ab(2,:)=Ab(2,:)+Ab(1,:);Ab(3,:)=Ab(3,:)+Ab(1,:);Ab(4,:)=Ab(4,:)-2*Ab(1,:)
Ab(3,:)=Ab(3,:)+Ab(2,:);Ab(4,:)=Ab(4,:)-(3-2*m)*Ab(2,:)
Ab(4,:)=Ab(4,:)-((6*m-12)/5)*Ab(3,:)
%Phương trình vô số nghiệm khi rank(A)=rank(Ab) và bé hơn 4
22


solve(Ab(4,4))
solve(Ab(4,5))
%Vậy m=2 thì hệ vô số nghiệm

23


7.3. Không gian Vecto

(Trương Hoàng Thắng 1713255, Bùi Quang Minh 1712144)
Câu 1: Tìm hạng và họ con ĐLTT cực đại của họ vecto

Code
syms
M= [1 1 1 0;1 -2 1 1;2 1 2 -1]
disp('Ta dung phep bien doi so cap ve dang ma tran bac thang')
rref(M)
disp('Vay hang cua ma tran la 3')
disp('Vay ho con doc lap tuyen tinh cuc dai cua M la 3 co so {(1,0,1,0),(0,1,0,0),
(0,0,0,1)}’)

Câu 2: Tìm cơ sở và số chiều của không gian con:

24


Code
syms
V=[1 2 1 -1; 3 1 0 5; 0 5 -3 8]
rref(V)
disp('So chieu cua V bang 3')
disp('Co so cua khong gian con {(1,0,0,5/3),(0,1,0,0),(0,0,1,-8/3)}')

Câu 3: Tìm cơ sở và số chiều của không gian con:

Code
syms
disp('Co so cua khong gian con V chinh la khong gian nghiem cua phuong trinh
Ax=[0]')
A=[1 1 -1 0; 2 0 -1 -1]
null(A,'r')
disp('Vay co so cua C la {(1/2,1/2,1,0),(1/2,-1/2,0,1)}')
disp('Vay so chieu cua khong gian con V=2')

25


×