You are on page 1of 50

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 :LÊ ĐỨC MẠNH

Lớp :20DTDJA1

www.hutech.edu.vn
TRANG 1|🢖 THỰC HÀNH XỬ LÝ TÍN HIỆU SỐ

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

Ấn bản 2019
TRANG 1 > THỰC HÀNH XỬ LÝ TÍN HIỆU SỐ

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 4: SIMULINK 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. A'

>> A'

ans =

2 3 8

7 1 1

9 5 2

7 6 5

b. A(:,[1 4])

ans =

2 7

3 6

8 5

c. A([2 3],[3 1])

ans =

5 3

2 8

d. reshape(A,2,6)
3 BÀI 4: SIMULINK

ans =

2 8 1 9 2 6

3 7 1 5 7 5

e. A(:)

ans =

f. [A;A(end,:)]

ans =

2 7 9 7

3 1 5 6

8 1 2 5

8 1 2 5
BÀI 4: SIMULINK 4

g. A(1:3,:)

ans =

2 7 9 7

3 1 5 6

8 1 2 5

h. [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)

ans =

13 9 16 18

j. sum(A')

ans =

25 15 16

k. [ [ A ; sum(A) ] [ sum(A,2) ; sum(A(:)) ] ]

ans =

2 7 9 7 25
5 BÀI 4: SIMULINK

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.

ans =

2 4 1

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

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))).

sum(A(:,1))

ans =

11

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

sum(A(1,:))

ans =

7
BÀI 4: SIMULINK 6

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:

A=[2 4 6 -2; 1 2 1 2; 0 2 4 2; 3 -1 0 10];

B= [0; 1; 2; 10];

x=inv(A)*B

X = b*inv(A)

Kết quả:

x = 1.5814

-1.6279

0.8605

0.9070

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]

A=

10 -2
7 BÀI 4: SIMULINK

20 4

3 6

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

B=

3 1

-10 2

0 5

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

C=

-3 4

6 1

>> x=(A+B)*C

x=

-45 51

6 46

57 23
BÀI 4: SIMULINK 8

>> y=A*C+B*C

y=

-45 51

6 46

57 23

>> D=x-y

D=

0 0

0 0

0 0

Kết quả:

>> x=(A+B)*C

x=

-45 51

6 46

57 23

>> y=A*C+B*C
9 BÀI 4: SIMULINK

y=

-45 51

6 46

57 23

>> D=x-y

D=

0 0

0 0

0 0

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 =

b. x(1:7)

Lấy phần tử từ 1-7 của X.

>> x(1:7)
BÀI 4: SIMULINK 10

ans =

3 1 5 7 9 2 6

c. x(1:end)

Lấy phần tử từ 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-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 =
11 BÀI 4: SIMULINK

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)

Lấy tổng từng cột của ma trận x

>> sum(x)

ans =

33

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=0:99; >> 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

Hoặc:
BÀI 4: SIMULINK 12

>>m=input('Nhap m :'); Nhap m:[1 -4 5]

>> x=roots(m)

Kết quả:

x=

2.0000 + 1.0000i

2.0000 - 1.0000i

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]

>> x=roots(m)

Kết quả:

x = 1.4004 + 2.0693i

1.4004 - 2.0693i

-0.8009 + 0.0000i

Kiểm chứng:

>> polyval(m,1.4004+j*2.0693)

ans =

1.6847e-04 - 5.0079e-04i

>> polyval(m,1.4004-j*2.0693)

ans =

1.6847e-04 + 5.0079e-04i

>> polyval(m,-0.8009)

ans =
13 BÀI 4: SIMULINK

-2.1156e-04

Nhận xét:

Kết quả ra là số lẻ nên khi thử lại nghiệm bằng hàm polyval kết quả không bằng 0.

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

Mã lệnh:

>> m=[1 0 0 0 0 0 0 -2]

m = 1 0 0 0 0 0 0 -2

>> x=roots(m)

Kết quả:

x = -0.9948 + 0.4790i

-0.9948 - 0.4790i

-0.2457 + 1.0764i

-0.2457 - 1.0764i

1.1041 + 0.0000i

0.6884 + 0.8632i

0.6884 - 0.8632i

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

Kết quả:

>> t = [0:pi/100:2*pi];

>> y = sin(t);

>> plot(t,y);

>> grid on
BÀI 4: SIMULINK 14

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

Kết quả:

>> x = -pi : pi/10 : pi;

>> y = tan(sin(x)) - sin(tan(x));

>>plot(x,y,'..rs','LineWidth',2,'MarkerEdgecolor','k',...'MarkerFaceColor','g','MarkerSize'
,10)

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

Kết quả:

>> t = 0:pi/50:10*pi;

>> plot3(sin(t),cos(t),t)

>> axis square;


15 BÀI 4: SIMULINK

>> grid on

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

Kết quả:

>>subplot(2,3,5

>>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);
BÀI 4: SIMULINK 16

>>title(‘Ham y = $${sin \pi x \over \pi  x}$


$','interpreter','latex')

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

Kết quả:

>>x = -pi:.1:pi; 

>>y = sin(x); 

>>plot(x,y) 

>>xlabel(ʹt = 0 to 2\piʹ,ʹFontsizeʹ,16) 

>>ylabel(ʹsin(t)ʹ,ʹFontsizeʹ,16) 

>>title(ʹ\it{Gia tri cua sin tu zero đến 2 pi}ʹ,ʹFontsizeʹ,16)

>>text(3*pi/4,sin(3*pi/4),ʹ\leftarrowsin(t)=0.707ʹ,ʹFontSizeʹ,12)
>>t = 0:900; 

>>plot(t,0.25*exp(‐0.005*t)) 

>>text(300,.25*exp(.005*300),... ’\bullet\leftarrow\fontname{times}0.25{\
ite}^(0.005{\itt}}  at,...{\itt}=300’,ʹFontSize’,14)
17 BÀI 4: SIMULINK

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

Mã lệnh:

>>text('position',[.2 .5], 'fontsize',14, 'interpreter', 'latex', 'string', ['$$\hbox {magic(3) is } \left( {\matrix{ 8 &
1 & 6 \cr 3 & 5 & 7 \cr 4 & 9 & 2 } } \right)$$']);
>> text('position',[.2 .3], 'fontsize', 14, 'interpreter', 'latex', 'string', ['$$\left[ {\matrix{\cos(\phi) & -\sin(\phi) \
cr \sin(\phi) & \cos(\phi) \cr}} \right] \left[ \matrix{x \cr y} \right]$$']);
>> text('position',[.2 .1], 'fontsize',14, 'interpreter', 'latex', 'string', ['$$L\{f(t)\} \equiv F(s) = \int_0^\infty\!\!
{e^{-st}f(t)dt}$$']);
>> text('position',[.5 .5], 'fontsize',14, 'interpreter', 'latex', 'string', '$$e = \sum_{k=0}^\infty {1 \over {k!} } $
$');
>> text('position',[.5 .3], 'fontsize',14, 'interpreter', 'latex', 'string', ['$$m \ddot y = -m g + C_D \cdot {1 \over
2}\rho {\dot y}^2 \cdot A$$']);
>> text('position',[.5 .1], 'fontsize',14, 'interpreter', 'latex', 'string', '$$\int_{0}^{\infty} x^2 e^{-x^2} dx = \
frac{\sqrt{\pi}}{4}$$');

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

Mã lệnh:

>> [x,y] = meshgrid(-8:.5:8);

>> r = sqrt(x.^2 + y.^2);

>> z = sin(r)./r;

>> mesh(z)
BÀI 4: SIMULINK 18

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ả:

>> x=0:0.01:2*pi;

>> y1=sin(x).*cos(2*x);

>> plot(x,y1)

>> grid on

>> hold on

>> y2=sin(x.^2);

>> plot(x,y2,'k')

>> axis([0 4*pi -1.25 1.25])

>> xlabel('Time')

>> ylabel('Amplitude')

>> title('y1=sinx.cos2x and y2=sin(x^2)')

>> legend('sinx.cos2x','sinx^2')
19 BÀI 4: SIMULINK

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

Mã lệnh:

>> theta=0:0.05:2*pi;

>> r=sin(5*theta);

>> polar(theta,r)

Kết quả:

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

Mã lệnh:

>> x=0:0.01:2*pi;
y1=(exp(-x)/(2*exp(-x)+2));
plot(x,y1)

Kết quả:
BÀI 4: SIMULINK 20

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

>> theta=0:0.05:2*pi;

>> r=sin(5*theta);

>> polar(theta,r)

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)
21 BÀI 4: SIMULINK

Kết quả:

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=sort(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:

>> t=0:pi/50:10*pi;

>> x=sin(t);

>> y=cos(t);

>> z=t;
BÀI 4: SIMULINK 22

>> subplot(121), plot3(x,y,z)

>> grid on

>> subplot(122), plot3(x,y,t.^2)

>> grid on

Kết quả:

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

>> close all

>> t=-5:0.1:5;

>> [x,y]=meshgrid(t);

>> z=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)')
23 BÀI 4: SIMULINK

Kết quả:

sin ( √ ❑ )
Bài 1.25 Vẽ mặt z= dùng hàm surf và mesh.

Mã lệnh:

Surf:

>> t=-8:0.5:8;

>> [x,y]=meshgrid(t);

>> z=(sin(sort(x.^2+y.^2)))./(2*(sort(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)')

Mesh:

>> t=-8:0.5:8;

>> [x,y]=meshgrid(t);
BÀI 4: SIMULINK 24

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

>> surf(x,y,z,'FaceColor','interp','EdgeColor','none');

Kết quả:

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

>>edit 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)

Kết quả:
25 BÀI 4: SIMULINK

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

Mã lệnh:

>>edit function y = tb(x) %Tinh tri trung binh cua cac phan tu [m,n] = size(x);

if m == 1 m = n; end y = sum(x)/m;

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ả:

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

Kết quả:

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

Kết quả:

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

Kết quả:

function [x1,x2]=gptb2(a,b,c) % Giai phuong trinh bac hai ax^2+bx+c=0 % [x1,x2]=gptb2(a,b,c) % Trong do:
x1,x2 la nghiem % a, b, c la 3 he so cua phuong trinh if nargin<3 error('Error! Nhap 3 he so cua phuong trinh')
elseif a==0 x1=-c/b; x2=[];

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

x1 = (-b+sqrt(delta))/(2*a);
BÀI 4: SIMULINK 26

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

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

Kết quả: x1 = 1 x2 = -7 >>[x1,x2]=gptb2(2,7,14)

Kết quả: x1 = -1.7500 + 1.9843i x2 = -1.7500 - 1.9843i

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

Kết quả: x1 = -0.7500 x2 = []

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

Kết quả: Error using gptb2 (line 7) Error! Nhap 3 he so cua phuong trinh

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ụ:

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ả:
27 BÀI 4: SIMULINK

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.

Mã lệnh :

function dudoan()  

% Du doan ket qua sau moi lan tung ngau nhien mot xuc

xac 6 mat  % Chuong trinh lap lai cho den khi nguoi su

dung khong doan tiep  tiep = 'y'; sai=0; dung=0;  

disp('Chao mung ban den voi chuong trinh du doan

xuc xac!')  while(lower(tiep)=='y')  

doan=input('Moi ban du doan ket qua (1-6):');  

kqua=tungxx;  

if (doan ~= kqua)  

disp('Xin loi, ban da doan sai!')  

sai=sai+1;  

else disp('Xin chuc mung!')  

dung=dung+1;  

end  

tiep=input('Ban muon choi tiep(''y''/''n''):');  

end  

disp(['Dung ' num2str(dung) ' trong tong so '


num2str(sai+dung)  ' lan doan'])  
% subfunction -------------- 

function mat = tungxx()  

mat=floor(6*rand(1,1))+1; 

% end  

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

H
BÀI 4: SIMULINK 28

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ả:
29 BÀI 4: SIMULINK

BÀI 2: GUI (GRAPHICAL USER


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

Mã lệnh
% --- Executes on button press in pushbuttonConvert.
function pushbuttonConvert_Callback(hObject, eventdata, handles)

% hObject    handle to pushbuttonConvert (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

doF = str2num(get(handles.editDoF,'String'));

if get(handles.radiobuttonC,'Value') == 1

% Chuyen oC

set(handles.editKQ,'String',num2str((doF-32)*5/9));

elseif get(handles.radiobuttonR,'Value') == 1

%Chuyen oR

set(handles.editKQ,'String',doF+459.7);

else

%Chuyen oK

set(handles.editKQ,'String',(doF-32)*5/9+273.15);

end

% --- Executes on button press in radiobuttonC.

function radiobuttonC_Callback(hObject, eventdata, handles)

% hObject    handle to radiobuttonC (see GCBO)


BÀI 4: SIMULINK 30

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

set(handles.radiobuttonK,'Value',0);

set(handles.radiobuttonR,'Value',0);

set(handles.text2,'String','Celcius degree');

% Hint: get(hObject,'Value') returns toggle state of radiobuttonC

% --- Executes on button press in radiobuttonK.

function radiobuttonK_Callback(hObject, eventdata, handles)

% hObject    handle to radiobuttonK (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

set(handles.radiobuttonR,'Value',0);

set(handles.radiobuttonC,'Value',0);

set(handles.text2,'String','Kelvin degree');

% Hint: get(hObject,'Value') returns toggle state of radiobuttonK

% --- Executes on button press in radiobuttonR.

function radiobuttonR_Callback(hObject, eventdata, handles)

% hObject    handle to radiobuttonR (see GCBO)

% eventdata  reserved - to be defined in a future version of MATLAB

% handles    structure with handles and user data (see GUIDATA)

set(handles.radiobuttonC,'Value',0);

set(handles.radiobuttonK,'Value',0);

set(handles.text2,'String','Rankine degree');
31 BÀI 4: SIMULINK

% Hint: get(hObject,'Value') returns toggle state of radiobuttonR

Kết quả:

40 oF = 4.4444 0C

40 oF = 499.7 0R

40 oF = 277.594 K
BÀI 4: SIMULINK 32

Bài 2.2 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.3 Thiết kế giao diện và viết mã lệnh.

Mã lệnh:

Kết quả:

Bien do = 4:

Bien do = 0.1, sin:


33 BÀI 4: SIMULINK

Bien do = 0.2, sinc:

Bien do = 0.3, sa:

Bien do = 0.4, sa^2:

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

Mã lệnh:

Kết quả:
BÀI 4: SIMULINK 34

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

Giao diện:

Mã lệnh:

Kết quả:
35 BÀI 4: SIMULINK

BÀI 3: SYMBOLIC
Bài 3.1 Dùng hàm diff để xác định đạo hàm của một hàm số.
>> syms x

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

Kết quả:

y =

3*x^2 + 6*x + 2

Bài 3.2 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(exp(x^2+2*x),2)

Kết quả:

y=

2*exp(x^2 + 2*x) + exp(x^2 + 2*x)*(2*x + 2)^2

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

>> y=int(sin(x)-2)
BÀI 4: SIMULINK 36

Kết quả:

y=

- 2*x - cos(x)

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

>> y=int(x^2*(2*x^2+1)/(5*(x^3+3)),-1,1)

Kết quả:

y=

log(2)/15 - (2*pi*3^(1/6))/5 + (3^(2/3)*log(3^(1/3) + 3^(2/3) + 1))/15 -


(2*3^(1/6)*atan(3^(5/6)/(2*(3^(1/3)/2 - 1))))/5 +
(2*3^(1/6)*atan(3^(5/6)/(2*(3^(1/3)/2 + 1))))/5 - (3^(2/3)*log(3^(2/3) - 3^(1/3) +
1))/15 - (2*3^(2/3)*log(3^(1/3) - 1))/15 + (2*3^(2/3)*log(3^(1/3) + 1))/15

>> eval(y)

ans =

0.1024
Bài 3.5 Dùng hàm finverse để tìm hàm ngược.
>> finverse(3*x+2)

Kết quả:

ans =

x/3 - 2/3

Bài 3.6 Vẽ đồ thị


Kết quả:
37 BÀI 4: SIMULINK

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


Mã lệnh:

>> y=diff(sin(x^3))

y=

3*x^2*cos(x^3)

Kết quả:

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


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

Mã lệnh:
>> ezsurf('x/(2*x^2+y^2)')
Kết quả:
BÀI 4: SIMULINK 38

Bài 3.9 Dùng hàm solve giải phương trình và hệ phương trình.
Kết quả:
0.1028 - 0.6655i ans =

-2.2056 + 0.0000i
0.1028 + 0.6655i

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


Mã lệnh:

>> y=solve(exp(x)==x)

Kết quả:

y=

-lambertw(0, -1)

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


Mã lệnh:

>> syms x y

>> [x,y]=solve(x^2*sin(x^2)-y==7,x-y==2)

Kết quả:
39 BÀI 4: SIMULINK

x=

-5.0132041491753126897135846656655

y=

-7.0132041491753126897135846656655

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

, (với y(0) = 1) và hệ phương trình vi phân:

z’ = 3z+4y

y’ = -4z+3y’

z(0) = 0, y(0) = 1

Kết quả:

>> syms x y

>> y=dsolve('Dy=y*tan(x)+cos(x)',x)

y=

(x/2 + sin(2*x)/4)/cos(x) + C5/cos(x)

>> y = simplify(y)

y=

(4*C5 + 2*x + sin(2*x))/(4*cos(x))

>> pretty(y)

4 C5 + 2 x + sin(2 x)

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


Mã lệnh:

>> syms x y

>> y = dsolve('D2y + 3*Dy - 4*y = exp(-4*x)+x*exp(-x)')

y=
BÀI 4: SIMULINK 40

C16*exp(t) - (x*exp(-x))/4 - exp(-4*x)/4 + C17*exp(-4*t)

Bài 3.14 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:

>> syms x y

>> y = dsolve('D2y - 3*Dy - 4*y = 3*x + 5*sin(2*x)','y(0)=1','Dy(0)=1')

y=

exp(-t)*((3*x)/5 + sin(2*x) + 3/5) - (5*sin(2*x))/4-(3*x)/4 + exp(4*t)*((3*x)/20 +


sin(2*x)/4 + 2/5)

Bài 3.15 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.16 Giải phương trình với ngõ vào F(t) là hàm bước.

Mã lệnh:

Kết quả:
41 BÀI 4: SIMULINK

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

{m1 x'1' =−b 1 ( x '1−x '2 ) −K 1 ( x 1−x 2 ) +u m2 x '2' =b1 ( x '1−x '2 ) + K 1 ( x1 −x2 ) + b2 ( w' −x '2 ) + K 2 ( w−x 2 )−u

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

Mã lệnh:

Kết quả:
BÀI 4: SIMULINK 42

BÀI 4: SIMULINK
Bài 4.1 Tính và vẽ DTFT có dạng:

Kết quả:

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

Sơ đồ khối:
43 BÀI 4: SIMULINK

Kết quả:

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

Sơ đồ khối:

• Khối Algebric Constraint trong thư viện Math để giải phương trình
BÀI 4: SIMULINK 44

• Khối Display trong thư viện Sink để hiển thị trị số của nghiệm

• Khối Constant trong thư viện Sources để tạo giá trị 1

• Khối Add trong thư viện Math để tạo phép cộng

• Khối Math Function trong thư viện Math để tạo hàm x2

• Khối Gain trong thư viện Math để tạo hệ số 3

Kết quả:

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

Sơ đồ khối:

• Khối Algebric Constraint trong thư viện Math để giải phương trình

• Khối Display trong thư viện Sink để hiển thị trị số của nghiệm

• Khối Constant trong thư viện Sources để tạo giá trị 1

• Khối Add trong thư viện Math để tạo phép cộng

• Khối Math Function trong thư viện Math để tạo hàm x2

• Khối Gain trong thư viện Math để tạo hệ số 3


45 BÀI 4: SIMULINK

Kết quả:

-0,382

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

Sơ đồ khối:

Khối Gain trong thư viện Math để tạo hệ số 2

• Khối Scope trong thư viện Sink để xem kết quả

• Khối Sum trong thư viện Sink để tạo phép tính

• Khối Signal Generator trong thư viện Sources để tạo nguồn

• Khối Integrator trong thư viện Continuous để tính tích phân

Kết quả:
BÀI 4: SIMULINK 46

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

Để mô phỏng ta dùng các khối:

• Khối Gain trong thư viện Math để tạo hệ số 2

• Khối Scope trong thư viện Sink để xem kết quả

• Khối Signal Generator trong thư viện Sources để tạo nguồn

• Khối Step trong thư viện Continuous để tạo bước nhảy

Kết quả:

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

Kết quả:
47 BÀI 4: SIMULINK

Để mô phỏng ta dùng các khối:

• Khối Gain trong thư viện Math để tạo hệ số 2

• Khối Scope trong thư viện Sink để xem kết quả

• Khối Signal Generator trong thư viện Sources để tạo nguồn

• Khối Step trong thư viện Continuous để tạo bước nhảy

Bài 4.8

Sơ đồ khối:

Kết quả:

Bài 4.9

Sơ đồ khối:

Kết quả:
TRANG 48
BÁO CÁO THỰC HÀNH TIN HỌC KỸ THUẬT

You might also like