Professional Documents
Culture Documents
Lớp :20DYSA1
www.hutech.edu.vn
TRANG 1| 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 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:
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
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
8 1 2 5
BÀI 1: CƠ SỞ VỀ MATLAB 4
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
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
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(1,:)
ans =
2 4 1
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ò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
x1 + 2x2 + x3 + 2x4 = 1
Mã lệnh:
>> syms x1 x2 x3 x4
>> [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
Mã lệnh:
>> (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:
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
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ả:
Kết quả:
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
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ả:
Kết quả:
Kết quả:
sin ( √ 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);
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ả:
if delta > 0
x1 = (-b +sqrt(delta))/(2*a)
x2 = (-b +sqrt(delta))/(2*a)
disp('pt vo nghiem');
else
x1 = (-b./(2*a));
x2 = (-b./(2*a));
end
pt co 2 nghiem
x1 =
X2 =
>>[x1,x2]=gptb2(2,7,14)
Kết quả:
if delta > 0
x1 = (-b +sqrt(delta))/(2*a)
x2 = (-b +sqrt(delta))/(2*a)
disp('pt vo nghiem');
else
x1 = (-b./(2*a));
x2 = (-b./(2*a));
end
BÀI 1: CƠ SỞ VỀ MATLAB 18
pt vo nghiem
>>[x1,x2]=gptb2(0,4,3)
Kết quả:
if delta > 0
x1 = (-b +sqrt(delta))/(2*a)
x2 = (-b +sqrt(delta))/(2*a)
disp('pt vo nghiem');
else
x1 = (-b./(2*a));
x2 = (-b./(2*a));
end
pt co 2 nghiem
x1 =
19 BÀI 1: CƠ SỞ VỀ MATLAB
NaN
x2 =
NaN
>>[x1,x2]=gptb2(1,6)
Kết quả:
if delta > 0
x1 = (-b +sqrt(delta))/(2*a)
x2 = (-b +sqrt(delta))/(2*a)
disp('pt vo nghiem');
else
x1 = (-b./(2*a));
x2 = (-b./(2*a));
end
pt co 2 nghiem
x1 =
x2 = 0
>>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
Kết quả:
40 oF = ? 0C
40 oF = ? 0R
40 oF = ? K
Mã lệnh:
Kết quả:
n = 4, 2D:
n = 4, 3D:
Mã lệnh:
Kết quả:
Bien do = 4:
23 BÀI 1: CƠ SỞ VỀ MATLAB
Mã lệnh:
Kết quả:
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ố.
y=
-sin(x)
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ả:
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ả:
y=
1/x
>> ezplot(sin(x)/x)
>> subplot(212)
>> ezplot(sin(x)/x,[0,4*pi])
Mã lệnh:
Kết quả:
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.
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ả:
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ả:
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ả:
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
Kết quả:
Sơ đồ khối:
Kết quả:
Sơ đồ khối:
Kết quả:
Sơ đồ khối:
Kết quả:
Sơ đồ khối:
Kết quả:
BÀI 1: CƠ SỞ VỀ MATLAB 30
Kết quả:
Kết quả:
Bài 4.62
Sơ đồ khối:
Kết quả:
Bài 4.63
Sơ đồ khối:
Kết quả: