You are on page 1of 33

BỘ GIÁO DỤC VÀ ĐÀO TẠO

ĐẠI HỌC CÔNG NGHỆ TP.HCM

BÁO CÁO THỰC HÀNH TIN


HỌC KỸ THUẬT

SV :Nguyễn Minh Trực

Lớp :20DYSA1

www.hutech.edu.vn
TRANG 1| BÁO CÁO THỰC HÀNH TIN HỌC KỸ THUẬT

BÁO CÁO THỰC HÀNH TIN HỌC KỸ THUẬT

Ấn bản 2019
TRANG 1 > BÁO CÁO THỰC HÀNH TIN HỌC KỸ THUẬT

MỤC LỤC
MỤC LỤC..................................................................................................................1

BÀI 1: CƠ SỞ VỀ MATLAB............................................................................................2

BÀI 2: GUI (GRAPHICAL USER INTERFACE)...............................................................10

BÀI 3: SYMBOLIC.......................................................................................................12

BÀI 4: SIMULINK.......................................................................................................16
BÀI 1: CƠ SỞ VỀ MATLAB 2

BÀI 1: CƠ SỞ VỀ MATLAB

Bài 1.1 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=[2 7 9 7;3 1 5 6;8 1 2 5]


A=
2 7 9 7
3 1 5 6
8 1 2 5
a. A' tìm ma trận chuyển vị của ma trận A
>> A'
ans =
2 3 8
7 1 1
9 5 2
7 6 5
b. A(:,[1 4]) lấy cột 1, 4 của ma trận A
>> A(:,[1 4])
ans =
2 7
3 6
8 5

c. A([2 3],[3 1]) lấy phần tử thứ 2 và 3 của cột 3 và 1

>> A([2 3],[3 1])


ans =
5 3
2 8
3 BÀI 1: CƠ SỞ VỀ MATLAB

d. reshape(A,2,6) lấy lần lượt 2 phần tử liên tiếp trên các cột của ma trận A nối lại
với nhau để tạo thành ma trận 2 hàng, 6cột.
>> reshape(A,2,6)
ans =
2 8 1 9 2 6
3 7 1 5 7 5

e. A(:) tạo ma trận cột từ ma trận A


>> A(:)
ans =
2
3
8
7
1
1
9
5
2
7
6

a. f. [A; A(end,:)] tạo ma trận mới bằng cách thêm dòng cuối của ma trận A vào
ma trận A

>> [A; A(end,:)]


ans =
2 7 9 7
3 1 5 6
8 1 2 5

8 1 2 5
BÀI 1: CƠ SỞ VỀ MATLAB 4

g. A(1:3,:) lấy dòng 1-3 của ma trận A


>> A(1:3,:)
ans =
2 7 9 7
3 1 5 6
8 1 2 5

h. [A ; A(1:2,:)] tạo ma trận mới bằng cách thêm 2 dòng 1&2 của ma trận A vào
ma trận A
>> [A;A(1:2,:)]
ans =
2 7 9 7
3 1 5 6
8 1 2 5
2 7 9 7
3 1 5 6

i. sum(A) lấy tổng từng cột của ma trận A


>> sum(A)
ans =
13 9 16 18

j. sum(A') lấy tổng từng cột của ma trận chuyển vị của ma trận A

>> sum(A')
ans =
25 15 1
5 BÀI 1: CƠ SỞ VỀ MATLAB

k. [ [ A ; sum(A) ] [ sum(A,2) ; sum(A(:)) ] ] tạo ma trận mới bằng cách thêm


dòng tổng từng cột của ma trận A; thêm cột bao gồm các phần tử tổng từng dòng và
tổng tất cả các phần tử của ma trận A vào ma trận A.
>> [[A;sum(A)] [sum(A,2);sum(A(:))]]
ans =
2 7 9 7 25
3 1 5 6 15
8 1 2 5 16
13 9 16 18 56

Bài 1.2 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.

>> A(1,:)
ans =
2 4 1

b. Tạo ma trận B bằng 2 dòng cuối cùng của A.

>> B=A([2 3],:)


B=
6 7 2
3 5 9

c. 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: sum(A(:,1))).

>> cột1=sum(A(:,1))
cột1 =
11
>> cột2=sum(A(:,2))
cột2 =
16
BÀI 1: CƠ SỞ VỀ MATLAB 6

>> cột3=sum(A(:,3))
cột3 =
12

d. Tính tổng các phần tử trên các dòng của A.

>> dòng1=sum(A(1,:))
dòng 1 =
7
>> dòng 2=sum(A(2,:))
dòng 2 =
15
>> dòng 3=sum(A(3,:))
dòng 3 =
17

Bài 1.3 Giải hệ phương trình sau:

2x1 + 4x2 + 6x3 – 2x4 = 0

x1 + 2x2 + x3 + 2x4 = 1

2x2 + 4x3 + 2x4 = 2

3x1 - x2 + 10x4 = 10.

Mã lệnh:

>> syms x1 x2 x3 x4

>> a=2*x1 + 4*x2 + 6*x3 - 2*x4

>> b=x1 + 2*x2 + x3 + 2*x4 - 1

>> c=2*x2 + 4*x3 + 2*x4 - 2

>> d=3*x1 - x2 + 10*x4 - 10

>> [x1,x2,x3,x4]=solve(a,b,c,d,'x1','x2','x3','x4')
7 BÀI 1: CƠ SỞ VỀ MATLAB

Kết quả:

x1 =38/55

x2 =-46/55

x3 =31/55

x4 =39/55

Bài 1.4 Chứng tỏ rằng (A+B)C=AC+BC, với:

Mã lệnh:

>> A=[10 -2;20 4;3 6];

>> B=[3 1;-10 2;0 5];

>> C=[-3 4;6 1];

>> (A+B)*C;

>> (A+B)*C==A*C+B*C

ans =

1 1

1 1

1 1

Bài 1.5 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. x(3) lấy phần tử thứ 3 của x


>> x(3)
ans =
5
BÀI 1: CƠ SỞ VỀ MATLAB 8

b. x(1:7) lấy phần tử thứ 1-7 của x


>> x(1:7)
ans =
3 1 5 7 9 2 6

c. x(1:end) ) lấy phần tử thứ 1 đến cuối của x


>> x(1:end)
ans =
3 1 5 7 9 2 6
d. x(1:end-1) lấy phần tử thứ 1 đến kế cuối của x
>> x(1:end-1)
ans =
3 1 5 7 9 2

e. x(6:-2:1) lấy các phần tử trong khoảng từ phần tử thứ 6 đến 1, vị trí phần tử sau
bằng vị trí phần tử trước cộng với -2
>> x(6:-2:1)
ans =
2 7 1

f. x([1 6 2 1 1]) tạo vector mới bằng cách lấy các phần tử 1 6 2 1 1 của x
>> x([1 6 2 1 1])
ans =
3 2 1 3 3

g. sum(x) tính tổng tất cả các phần tử của x


>> sum(x)
ans =
33
9 BÀI 1: CƠ SỞ VỀ MATLAB

Bài 1.6 Tạo một vector x có 100 phần tử, sao cho: x(n) = (-1) n+1/(2n+1) với n = 0
– 99.

Mã lệnh:
>> n=1:100;
>> xn=((-1).^(n+1))./(2*n+1)

Bài 1.7 Cho phương trình ax2+bx+c=0, giải phương trình dùng hàm roots.

Mã lệnh
>> m=[1 -4 5];
>> x=roots(m)
x=
2.0000 + 1.0000i
2.0000 - 1.0000i
>> polyval(m,2+j*1)
ans =
0
>> polyval(m,2-j*1)
ans =
0

Bài 1.8 Giải phương trình x3- 2x2+4x+5=0. Kiểm chứng kết quả thu được bằng hàm
polyval. Sinh viên có nhận xét gì về kết quả kiểm chứng.

Mã lệnh:
>> m=[1 -2 4 5]
m=
1 -2 4 5
>> x=roots(m)
x=
1.4004 + 2.0693i
1.4004 - 2.0693i
-0.8009
>> polyval(m,1.4004+j*2.0693)
ans =
BÀI 1: CƠ SỞ VỀ MATLAB 10

1.6847e-004 -5.0079e-004i
>> polyval(m,1.4004-j*2.0693)
ans =
1.6847e-004 +5.0079e-004i
>> polyval(m,-0.8009)
ans =
-2.1156e-004

Bài 1.9 Lặp lại bài 1.8 cho phương trình x7-2=0.

Mã lệnh:

Kết quả:

Nhận xét:

Bài 1.10 Thực hiện đoạn chương trình và ghi nhận kết quả.

Kết quả:

Bài 1.11 Thực hiện đoạn chương trình và ghi nhận kết quả.

Kết quả:

Bài 1.12 Thực hiện đoạn chương trình và ghi nhận kết quả.

Kết quả:

Bài 1.13 Thực hiện đoạn chương trình và ghi nhận kết quả.

Kết quả:

Bài 1.14 Thực hiện đoạn chương trình và ghi nhận kết quả.

Kết quả:
11 BÀI 1: CƠ SỞ VỀ MATLAB

Bài 1.15 Thực hiện ghi các công thức toán học.

Mã lệnh:

Bài 1.16 Thực hiện đoạn chương trình và ghi nhận kết quả.

Mã lệnh:

Bài 1.17 Vẽ đồ thị hàm số y1=sinx.cos2x và hàm số y2=sinx 2 trong [0-2], trên
cùng hệ trục tọa độ:

Kết quả:

Bài 1.18 Dùng các hàm semilogx, semilogy, loglog thay thế cho plot.

Mã lệnh:

Kết quả:

e− x
Bài 1.19 Thực hiện như trên cho hàm số y =
2 e−x + 2

Mã lệnh:
x=0:0.01:5
y=exp(-x)./((2*exp(-x))+2)
plot(x,y)
axis([0 5 0 0.5])
xlabel('X')
ylabel('Y')
title('y=exp(-x)./((2*exp(-x))+2)')
legend('y=exp(-x)./((2*exp(-x))+2)')
BÀI 1: CƠ SỞ VỀ MATLAB 12

Kết quả:

Bài 1.20 Vẽ hàm số r = sin (5) trong toạ độ cực:

Kết quả:

Bài 1.21 Vẽ hàm số r = 2sin() + 3cos()

Mã lệnh: >>theta=0:0.05:2*pi;
>> r=2*sin(theta)+3*cos(theta);
>> polar(theta,r)

Kết quả:
13 BÀI 1: CƠ SỞ VỀ MATLAB

Bài 1.22 Vẽ hàm số 2x2 + y2 = 10 ở dạng toạ độ cực.

Mã lệnh:

>>theta=0:0.05:2*pi

>>r=sqrt(10./(2*(cos(theta)).^2+(sin(theta)).^2))

>>polar(theta,r)

Kết quả:

Bài 1.23 Vẽ đồ thị 3D bằng hàm plot3:

Kết quả:

Bài 1.24 Vẽ mặt paraboloid z=x2+y2 trong không gian 3 chiều:

Kết quả:

sin ( √ x + y )
2 2

Bài 1.25 Vẽ mặt z= dùng hàm surf và mesh.


2( √ x + y )
2 2

Hàm mesh
BÀI 1: CƠ SỞ VỀ MATLAB 14

Mã lệnh:

t=-8:0.5:8;
[x,y]=meshgrid(t);
z=(sin(sqrt(x.^2 + y.^2)))./(2*(sqrt(x.^2 + y.^2)))
subplot(2,2,1), mesh(z)
title('mesh(z)')
subplot(2,2,2), meshc(z)
title('meshc(z)')
subplot(2,2,3), meshz(z)
title('meshz(z)')
subplot(2,2,4), waterfall(z)
title('waterfall(z)')

Kết quả:
15 BÀI 1: CƠ SỞ VỀ MATLAB

Hàm Surf

>>t=-8:0.5:8;

[x,y]=meshgrid(t);

z=sin(sqrt(x.^2 + y.^2))./(2*(sqrt(x.^2 + y.^2)))

surf(x,y,z,'FaceColor','interp','EdgeColor','none');
BÀI 1: CƠ SỞ VỀ MATLAB 16

Bài 1.26 Thực hiện đoạn chương trình và ghi nhận kết quả.

Kết quả:

Bài 1.27 Thực hiện đoạn chương trình và ghi nhận kết quả.

Kết quả:

Bài 1.28 Kiểm tra kết quả hàm gptb2 để giải phương trình bậc hai ax2+bx+c=0.

>>[x1,x2]=gptb2(1,6,-7)

Kết quả:

>> a = input('nhap vao gia tri a: ');

b = input('nhap vao gia tri b: ');

c = input('nhap vao gia tri c: ');

delta = b^2 - 4*a*c;

if delta > 0

disp(' pt co 2 nghiem ');

x1 = (-b +sqrt(delta))/(2*a)

x2 = (-b +sqrt(delta))/(2*a)

elseif delta < 0

disp('pt vo nghiem');

else

disp('pt co nghiem kep');

x1 = (-b./(2*a));

x2 = (-b./(2*a));

end

nhap vao gia tri a: 1

nhap vao gia tri b: 6


17 BÀI 1: CƠ SỞ VỀ MATLAB

nhap vao gia tri c: -7

pt co 2 nghiem

x1 =

X2 =

>>[x1,x2]=gptb2(2,7,14)

Kết quả:

>> a = input('nhap vao gia tri a: ');

b = input('nhap vao gia tri b: ');

c = input('nhap vao gia tri c: ');

delta = b^2 - 4*a*c;

if delta > 0

disp(' pt co 2 nghiem ');

x1 = (-b +sqrt(delta))/(2*a)

x2 = (-b +sqrt(delta))/(2*a)

elseif delta < 0

disp('pt vo nghiem');

else

disp('pt co nghiem kep');

x1 = (-b./(2*a));

x2 = (-b./(2*a));

end
BÀI 1: CƠ SỞ VỀ MATLAB 18

nhap vao gia tri a: 2

nhap vao gia tri b: 7

nhap vao gia tri c: 14

pt vo nghiem

>>[x1,x2]=gptb2(0,4,3)

Kết quả:

a = input('nhap vao gia tri a: ');

b = input('nhap vao gia tri b: ');

c = input('nhap vao gia tri c: ');

delta = b^2 - 4*a*c;

if delta > 0

disp(' pt co 2 nghiem ');

x1 = (-b +sqrt(delta))/(2*a)

x2 = (-b +sqrt(delta))/(2*a)

elseif delta < 0

disp('pt vo nghiem');

else

disp('pt co nghiem kep');

x1 = (-b./(2*a));

x2 = (-b./(2*a));

end

nhap vao gia tri a: 0

nhap vao gia tri b: 4

nhap vao gia tri c: 3

pt co 2 nghiem

x1 =
19 BÀI 1: CƠ SỞ VỀ MATLAB

NaN

x2 =

NaN

>>[x1,x2]=gptb2(1,6)

Kết quả:

a = input('nhap vao gia tri a: ');

b = input('nhap vao gia tri b: ');

c = input('nhap vao gia tri c: ');

delta = b^2 - 4*a*c;

if delta > 0

disp(' pt co 2 nghiem ');

x1 = (-b +sqrt(delta))/(2*a)

x2 = (-b +sqrt(delta))/(2*a)

elseif delta < 0

disp('pt vo nghiem');

else

disp('pt co nghiem kep');

x1 = (-b./(2*a));

x2 = (-b./(2*a));

end

nhap vao gia tri a: 1

nhap vao gia tri b: 6

nhap vao gia tri c: 0


BÀI 1: CƠ SỞ VỀ MATLAB 20

pt co 2 nghiem

x1 =

x2 = 0

Bài 1.29 Hàm vdcongdb(a,m,method) để vẽ một số đường cong trong hệ tọa độ


cực, với a là bán kính và m là số đường cong vẽ trên cùng trục tọa độ. Kiểm tra lại hoạt
động của hàm, ví dụ:

>>vdcongdb(1,5,’Becnulli’)

Kết quả:

>>vdcongdb(1,5,’ Astroit’)

Kết quả:

>>vdcongdb(1,5,’Xoanoc’)

Kết quả:

>> vdcongdb(1,5,’saikieu’)

Kết quả:

>> vdcongdb(5,’becnulli’)

Kết quả:

Bài 1.30 Hàm dudoan() để dự đoán kết quả sau mỗi lần tung một xúc xắc đồng
nhất, 6 mặt.

Kết quả:
21 BÀI 1: CƠ SỞ VỀ MATLAB

Kết luận về sự khác nhau giữa script file và hàm không có tham số vào.

Bài 1.31 Viết function xuất ra màn hình bảng cửu chương.

Mã lệnh:

Kết quả:

Bài 1.32 Viết function giaimach(E1,E2,J,R1,R2,C,R3) xuất ra công suất trên E1,
E2, J; dòng điện trên R3.

Viết script md1 nhập các giá trị E1, E2, J, R1, R2, C, R3; dùng function giaimach
để tính và xuất ra các giá trị công suất trên E1, E2, J; dòng điện trên R3.

Mã lệnh:

Kết quả:
BÀI 1: CƠ SỞ VỀ MATLAB 22

BÀI 2: GUI (GRAPHICAL USER


INTERFACE)

Bài 2.33 Thiết kế giao diện và kiểm tra kết quả.

Kết quả:

40 oF = ? 0C

40 oF = ? 0R

40 oF = ? K

Bài 2.34 Thiết kế giao diện và viết mã lệnh.

Mã lệnh:

Kết quả:

n = 4, 2D:

n = 4, 3D:

Bài 2.35 Thiết kế giao diện và viết mã lệnh.

Mã lệnh:

Kết quả:

Bien do = 4:
23 BÀI 1: CƠ SỞ VỀ MATLAB

Bien do = 0.1, sin:

Bien do = 0.2, sinc:

Bien do = 0.3, sa:

Bien do = 0.4, sa^2:

Bài 2.36 Thiết kế giao diện và viết mã lệnh.

Mã lệnh:

Kết quả:

Bài 2.37 Thiết kế giao diện và viết mã lệnh.

Giao diện:

Mã lệnh:

Kết quả:
BÀI 1: CƠ SỞ VỀ MATLAB 24

BÀI 3: SYMBOLIC

Bài 3.38 Dùng hàm diff để xác định đạo hàm của một hàm số.

Kết quả: y= diff(cos(x))

y=

-sin(x)

Bài 3.39 Tính đạo hàm cấp 2 của hàm số sau:


2

y= (1−x ) e x +2 x
Mã lệnh: >> syms x

>> y=diff((1-x)*exp(x^2+2*x),2)

Kết quả:

- 2*exp(x^2 + 2*x)*(2*x + 2) – 2*exp(x^2 + 2*x)*(x – 1) – exp(x^2 +


2*x)*(2*x + 2)^2*(x – 1)

Bài 3.40 Dùng hàm int để tính tích phân.

Kết quả: int(1/(1+x^2))

y=

atan(x)

1 2 2
x (2 x +1)
Bài 3.41 Tính tích phân: y=∫ dx
−1 5(x 3+ 3)

Mã lệnh:
25 BÀI 1: CƠ SỞ VỀ MATLAB

Kết quả:

Bài 3.42 Dùng hàm finverse để tìm hàm ngược.

Kết quả: finverse(1/x)

y=

1/x

Bài 3.43 Vẽ đồ thị

Kết quả: >> subplot(211)

>> ezplot(sin(x)/x)

>> subplot(212)

>> ezplot(sin(x)/x,[0,4*pi])

Bài 3.44 Tính và vẽ đạo hàm của hàm số y = sinx3

Mã lệnh:

Kết quả:

Bài 3.45 Vẽ mặt có phương trình sau:


BÀI 1: CƠ SỞ VỀ MATLAB 26

x
f ( x , y )=
2 x + y2
2

Mã lệnh:

Kết quả:

Bài 3.46 Dùng hàm solve giải phương trình và hệ phương trình.

Kết quả: y=solve(x^3+1==0)

Bài 3.47 Giải phương trình: e x =x

Mã lệnh:

Kết quả:

{
2 2
x sin x − y=7
Bài 3.48 Giải hệ phương trình:
x− y=2

Mã lệnh:

Kết quả:

Bài 3.49 Dùng hàm dsolve giải phương trình và hệ phương trình vi phân.

Kết quả:

Bài 3.50 Giải phương trình y’’ + 3y’ - 4y = e-4x +xe-x

Mã lệnh:

Kết quả:
27 BÀI 1: CƠ SỞ VỀ MATLAB

Bài 3.51 Giải phương trình y’’ - 3y’ + 2y = 3x +5sin2x với điều kiện đầu y(0) = 1
và y’(0) = 1.

Mã lệnh:

Kết quả:

Bài 3.52 Giải hệ phương trình:

với ngõ vào V là hàm bước (hàm heaviside(x)).

Mã lệnh:

Kết quả:

Bài 3.53 Giải phương trình với ngõ vào F(t) là hàm bước.

Mã lệnh:

Kết quả:

Bài 3.54 Giải hệ phương trình:

{ m1 x'1' =−b 1 ( x'1− x'2 ) −K 1 ( x1−x 2 ) +u


m2 x '2' =b1 ( x'1 −x'2 ) + K 1 ( x 1−x 2 ) +b 2 ( w' −x '2 ) + K 2 ( w−x 2 )−u

với ngõ vào u là hàm bước.

Mã lệnh:
BÀI 1: CƠ SỞ VỀ MATLAB 28

Kết quả:
29 BÀI 1: CƠ SỞ VỀ MATLAB

BÀI 4: SIMULINK

Bài 4.55 Tính và vẽ DTFT có dạng:

Kết quả:

Bài 4.56 Mô phỏng tín hiệu AM: V AM (t )=( V 0 +V Ω cosΩt ) cos ω0 t

Sơ đồ khối:

Kết quả:

Bài 4.57 Giải hệ phương trình: { z 1+ z 2=1


−z 1+ z 2=1

Sơ đồ khối:

Kết quả:

Bài 4.58 Giải phương trình: x2 + 3x + 1 = 0

Sơ đồ khối:

Kết quả:

Bài 4.59 Giải phương trình: x′(t) = −2x(t) + u(t)

Sơ đồ khối:

Kết quả:
BÀI 1: CƠ SỞ VỀ MATLAB 30

Bài 4.60 Mô phỏng hệ thống v' = (u – bv)/m

Kết quả:

Bài 4.61 Mô phỏng hệ thống điều khiển tốc độ động cơ DC.

Kết quả:

Bài 4.62

Sơ đồ khối:

Kết quả:

Bài 4.63

Sơ đồ khối:

Kết quả:

You might also like