Mẫu 1
BỘ MÔN ĐIỆN TỬ – VIỄN THÔNG
Lớp ĐTV 50 - ĐH
-o0o-
BÁO CÁO THỰC HÀNH
TIN HỌC ỨNG DỤNG
Họ và tên sinh viên:
ĐỖ TRỌNG BÁCH
Giáo viên hướng dẫn:
NGUYỄN MẠNH CƯỜNG
Hải phòng, tháng 11 năm 2011
NỘI DUNG
Bài 1: Tính bằng tay các biểu thức sau, rồi thử lại bằng Matlab:
a. 2 / 2 * 3
b. 6 – 2 / 5 + 7 ^ 2 – 1
c. 10 / 2 \ 5 – 3 + 2 * 4
d. 3 ^ 2 / 4
e. 3 ^ 2 ^ 2
f. 2 + round(6 / 9 + 3 * 2) / 2 – 3
Trả lời:
Thực hiện phép tính trên matlab:
a. 2 / 2 * 3 =3
b. 6 – 2 / 5 + 7 ^ 2 – 1 =53.6000
c. 10 / 2 \ 5 – 3 + 2 * 4 =6
d. 3 ^ 2 / 4 =2.2500
e. 3 ^ 2 ^ 2 =81
f. 2 + round(6 / 9 + 3 * 2) / 2 – 3 =2.500
Bài 2: Dùng Matlab tính các biểu thức sau:
3+ 4
5+ 2
b. 2π 2
2
1−
3+ 2
c.
2
1+
3− 2
d. 1000(1 + 0.15 /12)60
a.
Trả lời:
a. (3+4)/(5+sqrt(2))=1.0943
b. 2*pi*pi=19.7392
c.(1-(2/(3+2)))/(1+(2/(3-2)))=0.2
d.1000*(1+0.15/12)^60=2.1072e+0.03
Bài 3:Giải phương trình bậc hai sau bằng cách thực hiện từng bước, sau
đó kiểm tra với hàm trong Matlab?
x 2 − 3 x + 2 =0;
Trả lời:
>> a=input('nhap a=')
b=input('nhap b=')
c=input('nhap c=')
if a==0 & b==0
disp('pt co vo so no')
elseif a==0 & b~=0
disp('pt co no la')
x=-c/b
elseif a~=0
d=b*b-4*a*c;
if d<0
disp('pt vo no')
elseif d==0
disp('pt co no kep')
x1=-b/(4*a)
x2=-b/(4*a)
elseif d>0
x1=(-b+sqrt(d))/(2*a)
x2=(-b-sqrt(d))/(2*a)
end
end( ấn enter)
nhap a=1
a=
1
nhap b=-3
b=
-3
nhap c=2
c=
2
x1 =
2
x2 =
1
Bài 4: Tạo một số ngẫu nhiên có giá trị từ 0 đến 10?
Trả lời:
x=randint(1,1,[0 10]) ( ấn enter)
x =2
Bài 5:
Tạo một số ngẫu nhiên có giá trị từ 0 đến 100?
Trả lời:
x=randint(1,1,[0 100]) ( ấn enter)
x=
49
Bài 6: Tạo một vector chứa các số nguyên từ 31 đến 75?
Trả lời:
a=[31:1:75] ( ấn enter)
a=
Columns 1 through 16
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
Columns 17 through 32
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
Columns 33 through 45
63 64 65 66 67 68 69 70 71 72 73 74 75
Bài 7: Cho x = [3 1 5 7 9 2 6], dự đoán kết quả các dòng lệnh sau và thử lại
bằng Matlab:
a. x(3)
b. x(1:7)
c. x(1:end)
d. x(1:end-1)
e. x(6:-2:1)
f. x([1 6 2 1 1])
g. sum(x)
Trả lời:
>> x=[3 1 5 7 9 2 6] ( ấn enter)
x=
3
1
5
7
>> x(3) ( ấn enter)
9
2
6
ans =
5
>> x(1:7) ( ấn enter)
ans =
3
1
5
7
9
2
6
2
6
>> x(1:end) ( ấn enter)
ans =
3
1
5
7
9
>> x(1:end-1) ( ấn enter)
ans =
3
1
5
7
9
2
>> x(6:-2:1) ( ấn enter)
ans =
2
7
1
>> x([1 6 2 1 1]) ( ấn enter)
ans =
3
2
1
3
3
>> sum(x) ( ấn enter)
ans =
33
Bài 8: Cho x = [2 5 1 6].
a. Cộng thêm 16 vào tất cả các phần tử.
b. Cộng thêm 3 vào các phần tử ở vị trí lẻ.
c. Lấy căn bậc 2 tất cả các phần tử.
d. Bình phương tất cả các phần tử.
Trả lời:
>> x=[2 5 1 6] ( ấn enter)
x=
2
5
1
6
>> x+16( ấn enter)
ans =
18 21 17 22
>> x([1 3])+3( ấn enter)
ans =
5
4
>> sqrt(x) ( ấn enter)
ans =
1.4142 2.2361 1.0000 2.4495
>> x.^2( ấn enter)
ans =
4 25
1 36
Bài 9: Cho x, y lần lượt là các vector cột. x = [3 2 6 8]’, y = [4 1 3 5]’.
a. Lấy tổng các phần tử của x cộng thêm vào từng phần tử của y.
b. Luỹ thừa mỗi phần tử của x với số mũ tương ứng là các phần tử của y.
c. Chia các phần tử của y với các phần tử tương ứng của x.
d. Nhân các phần tử của x với các phần tử tương ứng của y, đặt trong
vector z.
e. Tính tổng các phần tử của z, gán cho w.
f. Tính x.* y – w.
g.Tích vô hướng của x và y
Lưu ý: x’ là ma trận chuyển vị của x
Trả lời:
>> x=[3;2;6;8] ( ấn enter)
x=
3
2
6
8
>> y=[4;1;3;5] ( ấn enter)
y=
4
1
3
5
>> sum(x)+y( ấn enter)
ans =
23
20
22
24
>> x.^y( ấn enter)
ans =
81
2
216
32768
>> y./x( ấn enter)
ans =
1.3333
0.5000
0.5000
0.6250
>> z=x.*y
z=
12
2
18
40
>> w=sum(z)
w=
72
>> x.*y-w
ans =
-60
-70
-54
-32
>> sum(x.*y)
ans =
72
>> n=input('nhap n=')
nhap n=4
n=
4
>> a=[2:2:2*n]
a=
2
4
6
8
>> b=[10:-2:-2*n] ( ấn enter)
b=
10
8
6
4
2
0 -2 -4 -6 -8
>> c=[1/1 1/2 1/3 1/4] ( ấn enter)
c=
1.0000 0.5000 0.3333 0.2500
>> d=[0 1/2 2/3 3/4] ( ấn enter)
d=
0 0.5000 0.6667 0.7500
Bài 10: Cho x = [1 4 8], y = [2 1 5] và A = [3 1 6 ; 5 2 7]. Xét xem dòng
lệnh nào hợp lệ, dự đoán kết quả, giải thích; rồi thử lại bằng Matlab :
a. x + y
b. x + A
c. x’ + y
d. A – [x’ y’]
e. [x ; y’]
f. [x ; y]
g. A – 3
h. x*A; x.*A; A*x; A.*x
i. A/y; A./y
Trả lời:
>> x=[1 4 8] ( ấn enter)
x=
1
4
8
>> y=[2 1 5] ( ấn enter)
y=
2
1
5
>> A=[3 1 6;5 2 7] ( ấn enter)
A=
3
5
1
2
6
7
>> x+y( ấn enter)
ans =
3 5 13
>> x+A( ấn enter)
??? Error using ==> plus
Matrix dimensions must agree.
>> x'+y( ấn enter)
??? Error using ==> plus
Matrix dimensions must agree.
>> A-[x' y'] ( ấn enter)
??? Error using ==> minus
Matrix dimensions must agree.
>> [x,y'] ( ấn enter)
??? Error using ==> horzcat
CAT arguments dimensions are not consistent.
>> [x;y] ( ấn enter)
ans =
1
2
4
1
8
5
>> A-3( ấn enter)
ans =
0 -2
2 -1
3
4
Bài 11: Cho A = [2 7 9 7 ; 3 1 5 6 ; 8 1 2 5], dự đoán kết quả, giải thích; rồi
thử lại bằng Matlab:
a. A’
b. A(:,[1 4])
c. A([2 3], [3 1])
d. reshape(A, 2, 6)
e. A(:)
f. flipud(A)
g. fliplr(A)
h. [A; A(end,:)]
i. A(1:3,:)
j. [A; A(1:2, :)]
k. sum(A)
l. sum(A’)
m. sum(A, 2)
n. [ [ A ; sum(A) ] [ sum(A,2) ; sum(A(:)) ] ]
Trả lời:
>> a=[2 7 9 7;3 1 5 6;8 1 2 5] ( ấn enter)
a=
2
3
8
7
1
1
9
5
2
7
6
5
>> a'( ấn enter)
ans =
2
7
9
7
3
1
5
6
8
1
2
5
>> a(:,[1 4]) ( ấn enter)
ans =
2
3
8
7
6
5
>> a([2 3],[3 1]) ( ấn enter)
ans =
5
2
3
8
>> reshape(a,2,6) ( ấn enter)
ans =
2
3
8
7
1
1
9
5
2
7
6
5
>> flipud(a) ( ấn enter)
ans =
8
3
2
1
1
7
2
5
9
5
6
7
>> fliplr(a) ( ấn enter)
ans =
7
6
5
9
5
2
7
1
1
2
3
8
>> [a;a(end,:)] ( ấn enter)
ans =
2
3
8
8
7
1
1
1
9
5
2
2
7
6
5
5
>> a(1:3,:) ( ấn enter)
ans =
2
3
8
7
1
1
9
5
2
7
6
5
>> [a;a(1:2,:)] ( ấn enter)
ans =
2
3
8
2
3
7
1
1
7
1
9
5
2
9
5
7
6
5
7
6
>> sum(a) ( ấn enter)
ans =
13
9 16 18
>> sum(a') ( ấn enter)
ans =
25 15 16
>> sum(a,2) ( ấn enter)
ans =
25
15
16
>> [[a;sum(a)][sum(a,2);sum(a(:))]]
??? [[a;sum(a)][sum(a,2);sum(a(:))]]
|
Error: Unbalanced or unexpected parenthesis or bracket.
Bài 12: Cho ma trận A = [2 4 1 ; 6 7 2 ; 3 5 9], viết lệnh Matlab để
a. Gán cho vector x là dòng thứ nhất của A.
b. Gán cho ma trận y là hai dòng còn lại (cuối) của A.
c. Tính tổng theo dòng ma trận A.
d. Tính tổng theo cột ma trận A.
e. Tìm giá trị lớn nhất và nhỏ nhất của ma trận.
f. Tính tổng các phần tử của A
Trả lời:
>> a=[2 4 1;6 7 2;3 5 9] ( ấn enter)
a=
2
6
3
4
7
5
1
2
9
>> x=a(1,:) ( ấn enter)
x=
2
4
1
>> y=a([2 3],:) ( ấn enter)
y=
6
3
7
5
2
9
>> sum(a,2) ( ấn enter)
ans =
7
15
17
>> sum(a) ( ấn enter)
ans =
11 16 12
>> sum(a(:))( ấn enter)
ans =
39
>> [r,c]=size(a) ( ấn enter)
r=
3
c=
3
>> min=a(1,1) ( ấn enter)
min =
2
>> for i=1:r( ấn enter)
for j=1:c( ấn enter)
if min>a(i,j) ( ấn enter)
min=a(i,j); ( ấn enter)
end( ấn enter)
end( ấn enter)
end( ấn enter)
>> min
min =
1
Bài 13:Tạo các véc tơ sau:
a.[2,4,6,8,….,2n]
b.[10,8,6,4,….,-2n]
c.[1,1/2.1/3,1/4,1/5,….,1/n]
Trả lời
a. >> n=input('nhap n =') ( ấn enter)
disp(2:2:2*n) ( ấn enter)nhap n =5( ấn enter)
n=
5
2 4 6 8 10
b. >> n=input('nhap n =') ( ấn enter)
disp(10:-2:-2*n) ( ấn enter)
nhap n =5( ấn enter)
n=
5
10 8 6 4 2 0 -2 -4
c. >> n=input('nhap n =') ( ấn enter)
for i=1:n( ấn enter)
a(i)=1/i( ấn enter)
end( ấn enter)
disp('a') (ấn enter)
-6
-8 -10
nhap n =5( ấn enter)
n=
5
a=
1
2
3
4
4
a=
1.0000
a=
0.5000
3.0000
4.0000
4.0000
1.0000
0.5000
0.3333
4.0000
4.0000
0.5000
0.3333
0.2500
4.0000
0.5000
0.3333
0.2500
0.2000
a=
1.0000
a=
1.0000
a
Bài 14:Tìm số lớn nhất và nhỏ nhất của một dãy số?
Trả lời:
>> n=input('nhap so phan tu n =')
while n<=0 | n>20
n=input('n =')
end( ấn enter)
for i=1:n
a(i)=input('a(i)=')
end
for i=1:(n-1)
for j=(i+1):n
if a(i)>a(j)
tg=a(i)
a(i)=a(j)
a(j)=tg
end
end
end
max=a(n)
min=a(1) ( ấn enter)
nhap so phan tu n =5
n=
5
a(i)=3
a=
3
a(i)=4
a=
3
4
a(i)=2
a=
3
4
2
4
2
1
4
2
1
5
4
2
1
5
4
3
1
5
a(i)=1
a=
3
a(i)=5
a=
3
tg =
3
a=
2
a=
2
tg =
2
a=
1
4
3
1
5
4
3
2
5
3
3
2
5
3
4
2
5
2
4
2
5
2
4
3
5
a=
1
tg =
4
a=
1
a=
1
tg =
3
a=
1
a=
1
tg =
4
a=
1
2
3
3
5
2
3
4
5
a=
1
max =
5
min =
1
Bài 15: Giải phương trình sau:
X^3 - 3*x + 1=0; 3*x^4 – 3*x^2 + x – 1=0
Trả lời:
>> roots([1 0 -3 1])
ans =
-1.8794
1.5321
0.3473
>> roots([3 0 -3 1 -1])
ans =
-1.2229
1.0000
0.1114 + 0.5101i
0.1114 - 0.5101i
Bài 16:Vẽ đồ thị y=sin(x)?
Trả lời:
x=linspace(0,2*pi,30)
y=sin(x)
plot(x,y) ( ấn enter)
x=
Columns 1 through 7
0
0.2167
0.4333
0.6500
0.8666
1.0833
1.3000
Columns 8 through 14
1.5166
1.7333
1.9500
2.1666
2.3833
2.5999
2.8166
3.6832
3.8999
4.1166
4.3332
5.1999
5.4165
5.6332
5.8499
Columns 15 through 21
3.0333
3.2499
3.4666
Columns 22 through 28
4.5499
4.7666
4.9832
Columns 29 through 30
6.0665
6.2832
y=
Columns 1 through 7
0
0.2150
0.4199
0.6052
0.7622
0.8835
0.9635
Columns 8 through 14
0.9985
0.9868
0.9290
0.8277
0.6877
0.5156
0.3193
Columns 15 through 21
0.1081 -0.1081 -0.3193 -0.5156 -0.6877 -0.8277 -0.9290
Columns 22 through 28
-0.9868 -0.9985 -0.9635 -0.8835 -0.7622 -0.6052 -0.4199
Columns 29 through 30
-0.2150 -0.0000
Bài 17:Vẽ 2 đồ thị hình sin vói điều kiện là điểm đầu đồ thị này là điểm
cuối đồ thị kia?
Trả lời:
>> x=linspace(0,2*pi,30)
y=sin(x)
plot(x,y)
hold on
x=linspace(2*pi,4*pi,30)
z=sin((pi/4)*x)
plot(x,z) ( ấn enter)
x=
Columns 1 through 7
0
0.2167
0.4333
0.6500
0.8666
1.0833
1.3000
Columns 8 through 14
1.5166
1.7333
1.9500
2.1666
2.3833
2.5999
2.8166
3.6832
3.8999
4.1166
4.3332
5.1999
5.4165
5.6332
5.8499
Columns 15 through 21
3.0333
3.2499
3.4666
Columns 22 through 28
4.5499
4.7666
4.9832
Columns 29 through 30
6.0665
6.2832
y=
Columns 1 through 7
0
0.2150
0.4199
0.6052
0.7622
0.8835
0.9635
Columns 8 through 14
0.9985
0.9868
0.9290
0.8277
0.6877
0.5156
0.3193
Columns 15 through 21
0.1081 -0.1081 -0.3193 -0.5156 -0.6877 -0.8277 -0.9290
Columns 22 through 28
-0.9868 -0.9985 -0.9635 -0.8835 -0.7622 -0.6052 -0.4199
Columns 29 through 30
-0.2150 -0.0000
x=
Columns 1 through 7
6.2832
6.4998
6.7165
6.9332
7.1498
7.3665
7.5832
8.4498
8.6665
8.8831
9.0998
Columns 8 through 14
7.7998
8.0165
8.2331
Columns 15 through 21
9.3164
9.5331
9.7498
9.9664 10.1831 10.3998 10.6164
Columns 22 through 28
10.8331 11.0497 11.2664 11.4831 11.6997 11.9164 12.1330
Columns 29 through 30
12.3497 12.5664
z=
Columns 1 through 7
-0.9754 -0.9239 -0.8458 -0.7432 -0.6192 -0.4773 -0.3216
Columns 8 through 14
-0.1566
0.0129
0.1821
0.3460
0.4999
0.6393
0.7603
0.9997
0.9897
0.9511
0.8851
0.3949
0.2337
0.0656 -0.1043
Columns 15 through 21
0.8593
0.9335
0.9808
Columns 22 through 28
0.7935
0.6790
0.5448
Columns 29 through 30
-0.2712 -0.4303
Bài 18:Vẽ biểu đồ hình tròn và biểu đồ hình cột biểu diễn số học sinh khá,
giỏi , trung bình và yếu kém trong lớp:
Xếp loại
Giỏi
Khá
Trung bình
Yếu kém
Trả lời
+Vẽ biểu đồ hình tròn
>> a=[2 26 27 15];
pie(a,a==max(a));
title('xep loai'); ( ấn enter)
Số học sinh
2
26
27
15
+Vẽ biểu đồ hình cột
>> a=[4 26 27 15];
pareto(a)
title('xep loai'); ( ấn enter)
Bài 19:Vẽ tam giác bất kì với các đỉnh nhập từ bàn phím?
Trả lời:
ya=input('Nhap tung do diem A ya = ' );
xb=input('Nhap hoanh do diem B xb = ');
yb=input('Nhap tung do diem B yb = ');
xc=input('Nhap hoanh do diem C xc = ');
yc=input('Nhap tung do diem C yc = ');
if xa==xb
x1=ya:yb;
y1=((xb-xa)*x1+yb*xa-xb*ya)/(yb-ya);
x2=xa:xc;
y2=((yc-ya)*x2+xc*ya-xa*yc)/(xc-xa);
x3=xb:xc;
y3=((yc-yb)*x3+xc*yb-xb*yc)/(xc-xb);
plot(y1,x1,x2,y2,x3,y3)
else