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

MATLAP bài tập lớn đại số BÁCH KHOA TP HCM

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 (318.26 KB, 12 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
KHOA KHOA HỌC ỨNG DỤNG
BỘ MÔN TOÁN ỨNG DỤNG
------------

ĐỀ TÀI BÀI TẬP LỚN
MÔN ĐẠI SỐ

TP HCM,Tháng 01/2013


ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
KHOA KHOA HỌC ỨNG DỤNG
BỘ MÔN TOÁN ỨNG DỤNG

BÁO CÁO BÀI TẬP LỚN
ĐỀ TÀI SỐ: 02
GVHD: NGUYỄN KIỀU DUNG
Khoa: Kĩ Thuật Địa Chất & Dầu Khí
Lớp: DC1201
Nhóm: 02
Nhóm sinh viên thực hiện:
Họ & Tên
1/ Nguyễn Toàn Định
2/ Nguyễn Thanh Hưng
3/ Nguyễn Hoàng Nhân
4/ Lương Thái Khang
5/ Lê Văn Đạt
6/ Trần Phú An


7/ Nguyễn Hữu Hoài
8/ Thái Lê Hoàng Bảo
9/ Vũ Văn Tuấn
10/ Nguyễn Quốc Trung
Tp.HCM, tháng 01 năm 2013

MSSV
31200782
31201506
31202521
31201580
31200707
31200027
31201184
31200200
31204320
31204145


ĐỀ TÀI 2:
Câu 1: Nhân hai ma trận với nhau.
Yêu cầu:
Input: Cho phép nhập vào hai ma trận A và B. Chương trình phải kiểm tra
phép nhân có thực hiện được hay không?
Output: Ma trận tích.

Cơ sở lý thuyết và thuật toán:
B1: Nhập ma trận A, B, kiểm tra xem A có nhân được với B không.
B2: Dùng lệnh For
+ Cho i chạy từ 1 đến số dòng của A,bước nhảy là 1, gọi dòng i của A là m

+ Cho j chạy từ 1 đến số cột của B,bước nhảy là 1, gọi cột của j là n
Tích 2 ma trận được tính bằng phép nhân dòng và cột tương ứng.

Nhận xét:
Chương trình của nhóm có thể giải quyết tất cả các trường hợp
nhân 2 ma trận với nhau.


Code của nhóm:
function nhanmatran
A=input('Nhap ma tran A: ');%nhap ma tran A
B=input('Nhap ma tran B: ');%nhap ma tran B
while size(A,2)~=size(B,1);
disp ('A khong nhan duoc voi B');
A=input('Nhap lai ma tran A: ');
B=input('Nhap lai ma tran B: ');
end
for i = 1:1:size(A,1);%cho i chay tu 1 toi so dong cua A,buoc nhay la 1
m=A(i, :);%goi hang i cua A
for j= 1:1:size(B,2);%cho j chay tu 1 to so cot cua B, buoc nhay la 1
n=B(:,j); %goi cot j cua B
h(i,j)=m*n;%nhan hang i voi cot j
end
end
disp('Tich cua ma tran A va B la:');
disp(h);
nhanmatran
end



Bài chạy thử:
Nhap ma tran A: [1 2 3;5 3 2;7 8 9]
Nhap ma tran B: [1 3 4;3 4 5]
A khong nhan duoc voi B
Nhap lai ma tran A: [1 2 5;5 6 8;3 5 7]
Nhap lai ma tran B: [2 5 7;7 5 9;1 1 4]
Tich cua ma tran A va B la:
21 20 45
60 63 121
48 47 94


Câu 2: Tìm ma trận chuyển cơ sở từ E sang F.
Yêu cầu:
Input: cho hai cơ sở E và F.
Output: ma trận chuyển cơ sở P.
Cơ sở lý thuyết và thuật toán:
Nhập ma trận E,ma trận F.
Kiểm tra xem E có là ma trận vuông và hạng của E có bằng số
cột của nó không,nếu số cột của F không bằng hạng của E thì F
không là cơ sở của E.
Tìm thương của ma trận F đối với E.
Ma trận chuyển cơ sở sẽ là chuyển vị của thương số đó.
Kết luận:
Chương trình của nhóm có thể giải quyết tất cả các trường hợp chuyển
cơ sở của 2 ma trận.


CODE
function chuyencs

E=input('nhap ma tran E: ');
%nhap cs E
[m,n]=size(E);
%tim kich thuoc ma tran E
while m~=n || rank(E)~=n
%xem E co phai cs ko
disp('E khong phai la co so')
E=input('nhap lai ma tran E: ');
[m,n]=size(E);
end
F=input('nhap ma tran F: ');
%nhap ma tran F
[a,b]=size(F);
while b~=rank(F) || a~=b || a~=m
disp('F khong phai la co so')
F=input('nhap lai ma tran F: ');
[a,b]=size(F);
end
X=F/E;
%tim ma tran toa do cua F trong E
X=X';
% chuyen vi ma tran X
disp('ma tran chuyen co so E sang F la:')
disp(X)
end


Bài chạy thử:

>> chuyencs

nhap ma tran E: [1 2 4;6 7 8;2 4 8]
E khong phai la co so
nhap lai ma tran E: [1 2 5;5 7 3;8 4 1]
nhap ma tran F: [1 4 7;9 7 5;3 7 1]
ma tran chuyen co so E sang F la:
1.2313 0.6259 -0.5578
0.3673 0.3469

1.4082

-0.2585 0.8299 -0.4354


Câu 3: Đưa dạng toàn phương về chính tắc bằng biến đổi
trực giao:
Cơ sở lý thuyết và thuật toán:

Viết ma trận A của dạng toàn phương
Chéo hóa trực giao ma trận A
Kết luận dạng chính tắc cần tìm

Kết luận:
Chương trình của nhóm có thể giải quyết tất cả các trường hợp đưa toàn phương về
chính tắc bằng biến đổi trực giao.


function dangtoanphuong
clc
clear all
syms x y1 y2 y3 ;

disp('Dua dang toan phuong ve dang chinh tac')
A=input('nhap ma tran toan phuong A=:');
[hangA cotA]=size(A);
if A'==A
matrancheo_x=eye(size(A)).*x;
lamda=solve(det(A-matrancheo_x));
ma_tran_cheo_hoa_D=diag(lamda);
disp('ma tran cheo hoa D=:')
disp(ma_tran_cheo_hoa_D)
switch hangA
case 2
Y=[y1 y2];
y=[y1;y2];
ma_tran_chinh_tac = (Y*ma_tran_cheo_hoa_D*y);
case 3
Y=[y1 y2 y3];
y=[y1;y2;y3];
ma_tran_chinh_tac =(Y*ma_tran_cheo_hoa_D*y);
end


disp(' phuong trinh chinh tac cua dang toan phuong:')
disp(ma_tran_chinh_tac)
else
disp('ma tran A khong doi xung, khong phai dang toan phuong')
disp('chay lai chuong trinh')
end
end



Bài chạy thử:
Dua dang toan phuong ve dang chinh tac
nhap ma tran toan phuong A=:[3 -2 4;-2 6 2;4 2 3]
ma tran cheo hoa D=:
[ 7, 0, 0]
[ 0, 7, 0]
[ 0, 0, -2]

phuong trinh chinh tac cua dang toan phuong:
7*y1^2 + 7*y2^2 - 2*y3^2



×