TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH VIỆN KỸ THUẬT HUTECH ---- BÁO CÁO MÔN TIN HỌC KỸ THUẬT Giáo viên hướng dẫn: Ths. Phạm Nguyễn Nhựt Thanh Sinh viên thực hiện: Tạ Hoàng Quân Lớp: 21DTDA1 Khóa: 2021-2025 TP.HCM, ngày 13 tháng 10 năm 2022 Trang 1 LỜI NÓI ĐẦU Lời đầu tiên, em xin gửi lời tri ân sâu sắc đến Thầy Phạm Nguyễn Nhựt Thanh, người đã trực tiếp giảng dạy chúng em bộ môn “ Tin học Kỹ thuật” Trong quá trình học tập và tìm hiểu về “Phần mềm MATLAB” của bộ môn này, em đã nhận được sự giảng dạy và hướng dẫn rất tận tình, tâm huyết của Thầy. Trong thời gian làm việc với thầy, em không những học hỏi được nhiều kiến thức bổ ích mà còn học được tinh thần làm việc đầy thoải mái và nhanh nhẹn. Từ những kiến thức mà Thầy truyền đạt, em xin trình bày bài báo cáo của mình về những gì đã được học và tìm hiểu về phần mềm này để gửi đến giảng viên.
Mặc dù đã rất cố gắng hoàn thiện lượng bài tập lớn với tất cả kiến thức được học và sự nỗ lực của bản thân, nhưng em chắc rằng không thể tránh khỏi được những thiếu sót. Em kính mong nhận được sự đóng góp từ giảng viên để bài báo cáo của em được hoàn thiện hơn. Lời nói cuối cùng, em kính chúc Giảng viên luôn dồi dào sức khỏe, hạnh phúc và thành công hơn nữa trong sự nghiệp “trồng người” để tiếp tục dìu dắt nhiều thế hệ học trò đến với những bến bờ tri thức. Và em xin chân thành cảm ơn gia đình, bố mẹ, những người luôn ở bên cạnh ủng hộ, giúp đỡ em có thời gian thực hiện bài báo cáo và hết lòng hỗ trợ em về mặt tinh thần trong suốt thời gian thực hiện.
Em xin chân thành cảm ơn! Trang 2 BÀI 1 :CƠ SỞ VỀ MATLAB 1.1 GIỚI THIỆU MATLAB(Matrix laboratory ) là phần mềm dùng để giải các bài toán kỹ thuật, đặc biệt là các bài toán liên quan đến ma trận.MATLAB cung cấp các toolboxes, tức các hàm mở rộng môi trường MATLAB để giải quyết các vấn đề đặc biệt như xử lý tín hiệu số,hệ thống điều khiển,mạng neuron,fuzzy logic,mô phỏng v. Cửa sổ biểu tượng của chương trình MATLAB: Hình 1.1: Cửa sổ khởi động của Matlab Trang 3 Cửa sổ làm việc của Matlab: Hình 1.2: Cửa sổ làm việc của Matlab Cửa sổ lệnh Command window: A = pi/2 B = sin(A) B=1 Trang 4 Cửa sổ wordspace: Gõ lệnh : edit Cửa sổ edit hiện ra: 1.Các phép toán và toán tử Đoạn chương trình giải phương trình bậc 2: Trang 5 Nhập ma trận A = [16 3 2 13; 5 10 11 8;9 6 7 12;4 15 14 1]; Thực hiên lênh: sum (A) Toán tử “:” 1:10 Tạo dãy số từ 100 đến 51, cách đều nhau 7 Trang 6 Tạo ma trận bằng hàm có sẵn - Linspace: tạo một vectơ có giá trị cách đều nhau - Zeros : tạo một ma trận phần tử bằng 0 Trang 7 Ones : tạo một ma trận phần tử bằng 1 Rand: tạo ra ma trận các phân từ ngẫu nhiên phân bố đều Trang 8 Eye(n): tạo ra ma trận đơn vị Pascal(n): tạo ra tam giác Pascal Trang 9 Nối ma trận a= ones (3, 3): b= 5*one (3, 3); c= [a+2; b]; Xóa hàng và cột Trang 10 Đa thức Giá trị đa thức tại điểm s=2 Xác định nghiệm đa thức 1.1 LẬP TRÌNH TRONG MATLAB If , Else, Elseif: Chương trình đoán tuổi Trang 11 Kết quả Chương trình đón tuổi Trang 12 While In ra chuỗi ‘Xin chao’ 1.2 CÁC FILE VÀ HÀM Scrip file f=[1 1]; i= 1; while (f(i) +f (i+1)) <1000 f (i + 2) = f(i)+f(i+1); i = i+1 end plot (f) Trang 13 Giá trị hàm lân cận giá trị -0.2 Bài tập 1:Vẽ đồ thị của hàm số Nhập đoạn chương trình : t = [0:pi/100:2*pi]; y = sin(t); plot(t,y,'.';); Kết quả : Hình 1.3:Vẽ đồ thị hình sin Ví dụ 1.10: Kiểu đường vẽ Nhập đoạn chương trình : x = -pi: pi/10: pi; y = tan(sin(x)) sin(tan(x)); Trang 14 plot(x,y,'rs','lineWidth',2,'MarkeredgeColor','k ',.'MarkerfaceColor','g','MarkerSize',10) Kết quả: Hình 1.4 : Vẽ hàm số tan(sin(x))-sin(tan(x)) Ví dụ 1.11:Vẽ với hai trục y Nhập đoạn chương trình : t = 0:900; A = 1000;b = 0.005;z2 = sin(b*t); z1 = A*exp(-a*t); plotyy(t,z1,t,z2,'semilogy','plot'); Trang 15 Kết quả: Hình 1.5: Vẽ hai trục y Bài tập 1.3: Vẽ đường cong 3D Nếu x,y,z là 3 vector có cùng độ dài thì plot3 sẽ vẽ đường cong 3D. t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t) Kết quả: Hình 1.3: Vẽ đồ thị 3D Trang 16 Bài 1.4: Vẽ nhiều trục tọa độ Ta dùng hàm subplot để vẽ nhiều trục tọa độ x=linspace(0,2*pi); y1=sin(x);y2=cos(x);y3=2*exp(-x).*sin(x); x1=linspace(-2*pi,2*pi); y4=sinc(x1); subplot(221);plot(x,y1);title('ham y= sinx'); subplot(222);plot(x,y2);title('ham y= cosx'); subplot(223);plot(x,y3);title('ham y= 2e^{-x}sinx'); subplot(224);plot(x1,y4);title('ham y= $${sin \pi x \ pver \pi x}$$','interpreter','later') Kết quả: Hình 1.4: Ví dụ dùng subplot Bài 1.5 Ghi nhãn trên các trục tọa độ MATLAB cung cấp các lệnh ghi nhãn lên độ họa gồm : title thêm nhãn vào đồ họa xlabel thêm nhãn vào trục x ylabel thêm nhãn vào trục y Trang 17 zlabel thêm nhãn vào trục z legend thêm chú giải vào đồ thị text hiển thị chuỗi văn bản ở vị trí nhất định gtext đặt văn bản kên đồ họa nhờ chuột x = -pi:0.707', 'Fontsize', 12) Kết quả: Hình 1.5: Thêm nhãn vào trục đồ thị Bài 1.6 Đồ thị đặc biệt: a. Khối và vùng : Đồ họa khối và vùng biểu diễn số liệu của vector hay ma trận.
MATLAB cung cấp các hàm đồ họa khối và vùng : bar hiển thị các cột của ma trận m*n như là m nhóm,mỗi nhóm có n bar. Trang 18 barh hiển thị các cột của ma trận m*n như là m nhóm,mỗi nhóm có n bar nằm ngang. bar3 hiển thị các cột của ma trận m*n như là m nhóm,mỗi nhóm có n bar dạng 3D. bar3h hiển thị các cột của ma trận m*n như là m nhóm,mỗi nhóm có n bar dạng 3D nằm ngang.
Mặc định,mỗi phần tử của ma trận được biểu diễn bằng một bar Ví dụ 1.14: Nhập đoạn chương trình : a=[5 2 1;6 7 3;8 6 3;5 5 5;1 5 8]; subplot (211) ;bar (a) ; subplot (212) ;bar3 (a) ; Kết quả: b.Xếp chồng đồ thị: Trang 19 Ta có thể xếp chồng số liệu trên đồ thị thanh bằng cách tạo ra một trục khác trên cùng một vị trí và như vậy ta có một trục y độc lập với bộ số liệu khác.15: TCE=[515 420 370 250 135 120 60 201]; nhdo = [29 23 27 25 20 23 23 27]; ngay=0:5:35; bar(ngay, nhdo) ; xlabel ('Ngay' ) ; ylabel ('nhiet do (^ {0}C)'); h1= gca; h2= axes ('Position', get (h1, 'Position')) ; plot(ngay,TCE,'LineWidth',3) set (h2, 'YAxislocation', 'right', 'Color', 'none', 'XTickLabel',[]) set (h2, 'XLim', get (h1, 'XLim' ) , 'Layer', 'top') set (h2, 'YAxislocation', 'right', 'Color', 'none', 'XTickLabel', []) Kết quả : Trang 20 Hình 1.15: Ví dụ xếp chồng đồ thị c.Đồ họa vùng: Hàm area hiển thị đừng cong tại từ một vector hay từ một cột của ma trận.Nó vẽ các giá trị của một cột của ma trận thành một đường cong riêng và tô đầy vùng không gian gữa các đường cong và trục x.16: Y = [5 2 1; 6 7 3; 8 6 3; 5 5 5; 1 5 8]; area (Y); Trang 21 Kết quả: Hình 1.16: Hiển thị đồ thị dạng vùng d. Đồ thị pie: Đồ thị pie hiển thị theo tỉ lệ phần tram của một phần tử của một vector hay một ma trận so với tổng các phần tử.Pie và pie3 tạo ra đồ thị 2D và 3D.2 54 65]; x1 = sum(x); explode = zeros(size(x2)); Trang 22 [c,offset] = max(x2); explode(offset) = 1; subplot(221);pie(x2,explode); subplot(222);pie3(x2,explode); Kết quả: Hình 1.17: Đồ thị pie dạng 2D và 3D Bài 1.Các lệnh cơ bản Lệnh mesh và surf tạo ra mặt 3D từ ma trận dữ liệu. Gọi ma trận dữ liệu là z mà mỗi phần tử của nó z(i,j) xác định tung độ của mặt thì mesh(z) tạo ra một lưới có màu thể hiện mặt z còn surf tạo ra một mặt có màu z.Đồ thị các hàm hai biến L Bước thứ nhất để thể hiện 2 biến z=f(x,y) là tạo ma trận x và y chứa các tọa đôh trong miền xác định của hàm. Hàm meshgrid sẽ biến đổi vùng xác định bởi hai Trang 23 vector x và y thành ma trận x và y.
Sau đó ta dung ma trận này để đánh giá hàm./r; mesh(z) Kết quả: Hình 1.18: Vẽ hình 3D của hàm 2 biến Bài tập ôn tập: Câu 1. Cho ma trận A = [2 4 1; 6 7 2; 3 5 9], các lệnh cần thiết để: a. Lấy dòng đầu tiên của ma trận A. Tạo ma trận B bằng 2 dòng cuối cùng của A.
Tính tổng các phần tử trên các cột của A. (gợi ý: tính tổng các phần tử trên cột 1: Trang 24 d. Tính tổng các phần tử trên các dòng của A. GIẢI: a : >> A(1,:) ans = 2 4 1 b : >> B = A(2:3,:) B= 6 7 2 3 5 9 c : >> sum(A(:,1)) ans = 11 >> sum(A(:,2)) ans = 16 >> sum(A(:,3)) ans = 12 d : >> sum(A(1,:)) ans = 7 >> sum(A(2,:)) ans = Trang 25 15 >> sum(A(3,:)) ans = 17 Câu 2: Cho ma trận A = [2 7 9 7; 3 1 5 6; 8 1 2 5], giải thích kết quả của các lệnh sau: a.
A' :chuyển vị của A b. Cho vector x = [3 1 5 7 9 2 6], giải thích kết quả của các lệnh sau: a. sum(x) GIẢI: a : >> X(3) ans = 5 Giải thích : lấy phần tử thứ 3 trong vecto X b : >> X(1:7) ans = 3 1 5 7 9 2 6 Giải thích: Lấy phần tử thứ 1 đến phần tử thứ 7 c : >> X(1:end) ans = 3 1 5 7 9 2 6 Giải thích: Lấy phần tử thứ 1 đến cuối của vecto d : >> X(1:end-1) ans = 3 1 5 7 9 2 Giải thích: Lấy phần tử thứ 1 đến phần tử kề cuối của vecto e : >> X(6:-2:1) ans = Trang 30 2 7 1 Giải thích: Lấy từ phần tử 1 đến 6 rồi lấy phần Tử thứ 6 lùi đi 2 phần Từ rồi đến phần Tử tiếp lùi đi 2 phần tử đến phần tử 1 f : >> X([1 6 2 1 1]) ans = 3 2 1 3 3 Giải thích: Lấy phần tử thứ 1, thứ 6, thứ 2, thứ 1, thứ 1 g : >> sum(X)\ ans = 33 Giải thích: tính tổng các phần tử có trong vecto X e− x Câu 4. Vẽ đồ thị hàm số y = −x 2e +2 GIẢI: x=0:0.
Vẽ hàm số r = 2sin() + 3cos() GIẢI: theta=0:0.1 TẠO GUI Khởi động cửa sổ tạo GUI bằng cách chọn New >App>GUIDE Trang 32 VÍ DỤ TẠO GUI Đố i tượ ng Thô ng số Button String: Convert Tag: pushbuttonConvert 3 Radio Button String: Celcius, Rankine, Kelvin Value: 1.