lời giải của bài giảng matlab full
Trang 1VD99: Tính tổng: s= 1 + ½ + 1/3 + +1/1000
>> S=0;
>> for i=1:1000
S=S+1/i;
end
>> S
S =
7.4855
VD 100: Đảo ngược dãy số: [7 5 3 6 4 2 1 0 9 8]
>> x=[7 5 3 6 4 2 1 0 9 8];
>> for i=1:5
n=x(i);
x(i)=x(11-i);
x(11-i)=n;
end
>> x
x =
8 9 0 1 2 4 6 3 5 7
VD 101: Ch0 D=[4 10 3 7 9 5 20; 2 7 4 9 6 12 27] Tính x=D(1)-D(2)
>> D=[4 10 3 7 9 5 20; 2 7 4 9 6 12 27];
>> for i=D
x=i(1)-i(2)
end
x =
2
x =
3
x =
Trang 2-2
x =
3
x =
-7
x =
-7
VD 102: Viết chương trình cho ra 1 ma trận có 3x4 mà phần tử ở hàng icột j là 1/(i+j)
(lồng nhiều vòng lặp for)
>> for i=1:3
for j=1:4
M(i,j)=1/(i+j);
end
end
>> M
M =
0.5000 0.3333 0.2500 0.2000
0.3333 0.2500 0.2000 0.1667
0.2500 0.2000 0.1667 0.1429
VD 103: Ma trận Vandermonde là ma trận có các cột là lũy thừa của 1 vecto v tức là A(I,j) – v(i)^(n-j) Hãy viết ma trận Vandermonde với v=(1:0.5:3)
VD 104:Lập chương trình tính số Esp là số dương nhỏ nhất có thể ghi trong máy (tức là số mà 1+Esp vẫn cho giá trị lớn hơn 1 ở trong máy tính) Tính số lần lặp?
>> dem=0
Trang 3dem =
0
>> dem=0
dem =
0
>> dem=0;
>> Eps=1;
>> while (1+Eps)>1
Eps=Eps/2;
dem=dem+1;
end
>> format long g
>> Eps=Eps*2
Eps =
2.22044604925031e-016
>> dem
dem =
53
VD 105:Tìm số n lớn nhất để giai thừa của nó (n!) là 1 số không vượt quá 10^100
>> n=1;
>> while factorial(n)<1e100
n=n+1;
end
>> n
n =
70
>> factorial(70)
ans =
1.19785716699699e+100
Trang 41.71122452428141e
Ví dụ 106: Tính tiền nước sạch của hộ gia đình
Vào M-file tạo hàm:
function ttt = tiennuoc( sntt )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
if sntt <= 20
ttt = sntt*5300;
elseif sntt <= 30
ttt = 20*5300 + (sntt - 20)*7500;
elseif sntt <=40
ttt = 20*5300 + 10*7500 + (sntt - 30)*8300;
else
ttt = 20*5300 + 10*7500 +10*8300 +(sntt - 40)*10000;
>> ho_A=15;
>> T=tiennuoc(ho_A)
T =
79500
>> ho_B=21;
>> T=tiennuoc(ho_B)
T =
113500
>> ho_C=35;
>> T=tiennuoc(ho_C)
T =
222500
>> ho_D=73;
>> T=tiennuoc(ho_D)
T =
Trang 5594000