Upload
thach-nguyenhuu
View
321
Download
1
Embed Size (px)
Citation preview
BỘ MÔN ĐIỆN TỬ – VIỄN THÔNGLớp ĐTV 50 - ĐH
-o0o-
BÁO CÁO THỰC HÀNH
TIN HỌC ỨNG DỤNG
Hải phòng, tháng 11 năm 2011
Họ và tên sinh viên:
ĐỖ TRỌNG BÁCHGiáo viên hướng dẫn:
NGUYỄN MẠNH CƯỜNG
Mẫu 1
NỘI DUNGBà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 * 3b. 6 – 2 / 5 + 7 ^ 2 – 1c. 10 / 2 \ 5 – 3 + 2 * 4d. 3 ^ 2 / 4e. 3 ^ 2 ^ 2f. 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 =3b. 6 – 2 / 5 + 7 ^ 2 – 1 =53.6000c. 10 / 2 \ 5 – 3 + 2 * 4 =6d. 3 ^ 2 / 4 =2.2500e. 3 ^ 2 ^ 2 =81f. 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:
a.
b.
c.
d. Trả lời: a. (3+4)/(5+sqrt(2))=1.0943b. 2*pi*pi=19.7392c.(1-(2/(3+2)))/(1+(2/(3-2)))=0.2d.1000*(1+0.15/12)^60=2.1072e+0.03Bà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?
=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/belseif 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) endend( ấ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 9 2 6
>> x(3) ( ấn enter)
ans =
5
>> x(1:7) ( ấn enter)
ans =
3 1 5 7 9 2 6
>> x(1:end) ( ấn enter)
ans =
3 1 5 7 9 2 6
>> 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 =
33Bà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à yLư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 + yb. x + Ac. x’ + yd. A – [x’ y’]e. [x ; y’]f. [x ; y]g. A – 3h. 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 1 6 5 2 7
>> x+y( ấn enter)
ans =
3 5 13>> x+A( ấn enter)??? Error using ==> plusMatrix dimensions must agree.
>> x'+y( ấn enter)??? Error using ==> plusMatrix dimensions must agree.
>> A-[x' y'] ( ấn enter)??? Error using ==> minusMatrix dimensions must agree.
>> [x,y'] ( ấn enter)??? Error using ==> horzcatCAT arguments dimensions are not consistent.
>> [x;y] ( ấn enter)
ans =
1 4 8 2 1 5
>> A-3( ấn enter)
ans =
0 -2 3 2 -1 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 7 9 7 3 1 5 6 8 1 2 5
>> a'( ấn enter)
ans =
2 3 8 7 1 1 9 5 2 7 6 5
>> a(:,[1 4]) ( ấn enter)ans =
2 7 3 6 8 5
>> a([2 3],[3 1]) ( ấn enter)ans =
5 3 2 8
>> reshape(a,2,6) ( ấn enter)
ans =
2 8 1 9 2 6 3 7 1 5 7 5
>> flipud(a) ( ấn enter)
ans =
8 1 2 5 3 1 5 6 2 7 9 7
>> fliplr(a) ( ấn enter)ans =
7 9 7 2 6 5 1 3 5 2 1 8
>> [a;a(end,:)] ( ấn enter)
ans =
2 7 9 7 3 1 5 6 8 1 2 5 8 1 2 5
>> a(1:3,:) ( ấn enter)
ans =
2 7 9 7 3 1 5 6 8 1 2 5
>> [a;a(1:2,:)] ( ấn enter)
ans =
2 7 9 7 3 1 5 6 8 1 2 5 2 7 9 7 3 1 5 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 4 1 6 7 2 3 5 9
>> x=a(1,:) ( ấn enter)
x =
2 4 1
>> y=a([2 3],:) ( ấn enter)
y =
6 7 2 3 5 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ờia. >> n=input('nhap n =') ( ấn enter)disp(2:2:2*n) ( ấn enter)nhap n =5( ấn enter)
n =
5
2 4 6 8 10b. >> 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 -6 -8 -10c. >> 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)
nhap n =5( ấn enter)
n =
5
a =
1 2 3 4 4
a =
1.0000 0.5000 3.0000 4.0000 4.0000
a =
1.0000 0.5000 0.3333 4.0000 4.0000
a =
1.0000 0.5000 0.3333 0.2500 4.0000
a =
1.0000 0.5000 0.3333 0.2500 0.2000
aBà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)=')endfor 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 endendmax=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
a(i)=1
a =
3 4 2 1
a(i)=5
a =
3 4 2 1 5
tg =
3
a =
2 4 2 1 5
a =
2 4 3 1 5
tg =
2
a =
1 4 3 1 5
a =
1 4 3 2 5
tg =
4
a =
1 3 3 2 5
a =
1 3 4 2 5
tg =
3
a =
1 2 4 2 5
a =
1 2 4 3 5
tg =
4
a =
1 2 3 3 5
a =
1 2 3 4 5
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.5101iBà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
Columns 15 through 21
3.0333 3.2499 3.4666 3.6832 3.8999 4.1166 4.3332
Columns 22 through 28
4.5499 4.7666 4.9832 5.1999 5.4165 5.6332 5.8499
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
Columns 15 through 21
3.0333 3.2499 3.4666 3.6832 3.8999 4.1166 4.3332
Columns 22 through 28
4.5499 4.7666 4.9832 5.1999 5.4165 5.6332 5.8499
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
Columns 8 through 14
7.7998 8.0165 8.2331 8.4498 8.6665 8.8831 9.0998
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
Columns 15 through 21
0.8593 0.9335 0.9808 0.9997 0.9897 0.9511 0.8851
Columns 22 through 28
0.7935 0.6790 0.5448 0.3949 0.2337 0.0656 -0.1043
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 Số học sinhGiỏi 2Khá 26
Trung bình 27Yếu kém 15
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)
+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
x1=xa:xb; y1=((yb-ya)*x1+xb*ya-xa*yb)/(xb-xa); 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(x1,y1,x2,y2,x3,y3)end(ấn enter)Nhap hoanh do diem A xa = 1Nhap tung do diem A ya = 1Nhap hoanh do diem B xb = 2Nhap tung do diem B yb = 2Nhap hoanh do diem C xc = 3Nhap tung do diem C yc = 4(ấn enter)
Bài 20:Vẽ đường tròn nội tiếp tam giác? Trả lời:>> disp('nhap toa do diem a')xa=input('xa=')ya=input('ya=')disp('nhap toa do diem b')xb=input('xb=')yb=input('yb=')disp('nhap toa do diem c')xc=input('xc=')yc=input('yc=')ab=sqrt((xa-xb)^2+(ya-yb)^2)bc=sqrt((xb-xc)^2+(yb-yc)^2)ca=sqrt((xc-xa)^2+(yc-ya)^2)while ab+bc<=ca,ac+bc<=ab,bc+ca<=ac disp('nhap lai toa do cac diem a,b,c') xa=input('xa=')ya=input('ya=')disp('nhap toa do diem b')xb=input('xb=')disp('nhap toa do diem c')xc=input('xc=')yc=input('yc=')end%ve tam giacu=[xa xb xc xa]v=[ya yb yc ya]plot(u,v,'linewidth',2)hold on%ve duong tron noi tiep tam giacdisp('tam duong tron noi tiep tam giac,i=')x1=(bc*xa+ca*xb+ab*xc)/(ab+bc+ca)y1=(bc*ya+ca*yb+ab*yc)/(ab+bc+ca)disp('tinh ban kinh truong tron noi tiep tam giac,r:')p=(ab+bc+ca)/2;%nua chu vi tam giacs=sqrt(p*(p-bc)*(p-ca)*(p-ab));%dien tich tam giacr=s/pt=0:0.01:360x=r*cos(t)+x1y=r*sin(t)+y1plot(x,y,'linewidth',2)axis square equalnhap toa do diem a
xa=1
xa =
1
ya=1
ya =
1
nhap toa do diem bxb=2
xb =
2
yb=3
yb =
3
nhap toa do diem cxc=4
xc =
4
yc=3(ấn enter)
Bài 21:Vẽ đường tròn ngoại tiếp tam giác? Trả lời: a=input('Nhap hoanh do tam duong tron'); b=input('Nhap tung do tam duong tron'); r=input('Nhap ban kinh duong tron'); t=-2*pi:0.001:2*pi;x=r*sin(t)+a;y=r*cos(t)+b;xa=input('Nhap hoanh do xa=');while xa>a+r|xa<a-r xa=input('Nhap lai xa=')end ya=-sqrt(r^2 - (xa-a)^2)+b; xb=input('Nhap hoanh do xb='); while (xb > a+r )| (xb < a-r) xa=input('Nhap lai xa=') end
yb=sqrt(r^2 - (xb-a)^2)+b; xc=input('Nhap hoanh do xc=');while (xc > a+r) | (xc < a-r) xc=input('Nhap lai xc=')end yc=-sqrt(r^2 - (xc-a)^2)+b; x1=xa:xb; y1=((yb-ya)*x1+xb*ya-xa*yb)/(xb-xa); x2=xb:xc; y2=((yc-yb)*x2+xc*yb-xb*yc)/(xc-xb); x3=xa:xc; y3=((yc-ya)*x3+xc*ya-xa*yc)/(xc-xa); ab=sqrt(((xa-xb)^2)+((ya-yb)^2)) bc=sqrt(((xc-xb)^2)+((yc-yb)^2)) ac=sqrt(((xa-xc)^2)+((ya-yc)^2))plot(x,y,x1,y1,x2,y2,x3,y3)grid on text(a,b,'I')text(xa,ya,'A')text(xb,yb,'B')text(xc,yc,'C')axis squareaxis equal
Nhap hoanh do tam duong tron1Nhap tung do tam duong tron1Nhap ban kinh duong tron3Nhap hoanh do xa=2Nhap hoanh do xb=3Nhap hoanh do xc=4( ấn enter)
ab =
5.1623
bc =
2.4495
ac =
3.4641
Bài 22:Tính tiền thuế của một người có thu nhập x triệu/năm và có y người phụ thuộc.Vẽ biểu đồ biểu diễn mối quan hệ giữa tiền thuế và tiền hoàn thuế? Trả lời:x=input('thu nhap 1 nam =')y=input('so nguoi phu thuoc =')while x<=0 x=input('x=')endwhile y < 0 y=input('y')endz=x-48-19.2*yif z<=48
disp('khong phai dong thue') disp('z')elseif z<=60 t=z*0.05 disp('tien thue')elseif z<=120 t=(z-60)*0.1+60*0.05 disp('tien thue')elseif z<=216 t=(z-120)*0.15+60*0.1+60*0.05 disp('tien thue')elseif z<=354 t=(z-216)*0.2+(216-120)*0.15+60*0.1+60*0.05 disp('tien thue')endTHT=x*0.1-ta=[THT t]pie(a,a==max(a))title('tien thue va tien hoan thue') ( ấn enter)
thu nhap 1 nam =300
x =
300
so nguoi phu thuoc =1
y =
1
z =
232.8000
t =
26.7600
tien thue
THT =
3.2400
a =
3.2400 26.7600