Tải bản đầy đủ (.pdf) (6 trang)

Matlab - Tin học ứng dụng - Bài tập pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (751.67 KB, 6 trang )

Bài giảng Tin Ứng dụng 2 – Matlab 7
- 61 -
8. PHẦN BÀI TẬP
Bài tập số1:
Tính toán sóng theo số liệu sau:
T = 8 s, H
o
= 2 m, α
o
= 30
o
.
•G嫕gi trị cho 3 biến T, Ho, alpha0.
•T嫕h Co.
•T嫕h L
o
•Mở 1 file disperse.m bằng cách gõ>> edit disperse
•Với file mới mở hãy gõ vào nội dung sau:function [L] = disperse(h, Lo)
L = Lo;
err = Inf;
while err > 0.1;
Ltry = Lo * tanh(2*pi*h / L);
err = abs(Ltry - L);
L = Ltry;
end;
•Ta đã thiết lập được hàm tính L từ các giá trị h và Lo cho trước
•Hãy thiết lập một vec-tơh chứa độ sâu khác nhau: 3 m, 3.2 m, , 4 m. Tính L tại
các độ sâu cho bởi h.
•T嫕h C tương ứng với L
•Tính sin_alpha theo công thức
sinα= sinα


o
* C / Co(chú ý đơn vị độ !)
•T嫕h alpha (d嫕g lệnh asin)
•T嫕h Kr = sqrt(cosα
o
/ cosα)
•T嫕h Ksh theo c嫕g thức Ksh =
•Tính H = Ho × Ksh × Kr
•Ghi lại c嫕 gi trị của H
Bài giảng Tin Ứng dụng 2 – Matlab 7
- 62 -
•Viết kết quả ra file ketqua.txt
Bài tập số2
Quan hệ giữa vận chuyển bùn cát S và lưu tốc u có quan hệ dạng: S = au
b
. Để xác
định các hệ số a và b người ta tiến hành thí nghiệm và thu được kết quả sau:
u (m/s) 0.2 0.35 0.57 0.68 0.81 0.96 1.12
S
(m
3
/s.m)
0.0002 0.0018 0.0159 0.0282 0.0609 0.1258 0.2858
1) Hãy nhập các giá trị u và S vào hai vec-tơ, sau đó tính X và Y là logarit tương
ứng của u và S.
2) Vẽ đồ thị điểm của X và Y.
3) Hai hệ số a và b được xác định bằng cách dựa vào quan hệ:
log S = log a + b log u, hay Y = b X + log a.
Sử dụng hàm polyval để tính b và log a trong phương trình trên nhưsau:
p = polyval(X, Y, 1)

Phần tử đầu của vec-tơp chính là b; phần tử thứ 2 của p bằng log a.
Hãy tính a.
4) Vẽ đồ thị đường thẳng: Y = b X + log a lên cùng hệ trục với các điểm chấm ở
câu 2).
Bài tập số3
1) Một chuỗi số liệu đo đạc vận tốc dòng chảy được phát sinh bởi:
t = 0:0.5:48;
N là dãy số ngẫu nhiên có chiều dài bằng length(t)
u = 0.4 + 0.12 sin(2πt / 24) + 0.05 N
2) Tính ứng suất tiếp tại ven bờ, biết
C = 60 m
0.5
/s
τ = ρ g u
2
/ C
2
Thiết lập subplot 3 hàng × 1 cột. Hai vùng trên vẽ hai đồ thị u ~ t, τ~ t.
3) Nếu bờ có thành phần đất sét với ứng suất tiếp tới hạn τ
c
= 0.65 N/m
2
, hãy chỉ
ra xem có bao nhiêu thời điểm xuất hiện τ> τ
c
.
Bài giảng Tin Ứng dụng 2 – Matlab 7
- 63 -
4) Công thức xói lở đường bờ được xác định bởi:
Hãy tính khoảng cách xói lở E.

E = 10 (τ– τ
c
) nếu τ> τ
c
= 0 trường hợp còn lại
Vẽ E ~ t lên vùng đồ thị dưới cùng tạo bởi subplot.
Bài tập số4:
Cho véctơX = [10 20 30] và Y = [10 40 30].
1. Tính diện tích tam giác tạo bởi 3 đỉnh có tọa độ X(1)Y(1), X(2)Y(2),
X(3)Y(3).
2. Tổng quát hơn, tính diện tích đa giác n cạnh (trên mặt phẳng 2 chiều) với tọa độ
xi và yi của đỉnh thứ i cho bởi phần tử thứ i của véctơX và Y tương ứng (do đó X
và Y là 2 véctơcó cùng chiều dài = n).
LỜI GIẢI
Bài tập số1:
Hướng dẫn: tạo một script file có tên baitap1.m, soạn thảo nội dung dưới đây, và
ghi lại. Sau đó chạy file này, ta sẽ thu được kết quả.
% baitap1
% Inputs: T, H0, alpha0
% Outputs: C0, L0, L
%
clear all;
g=9.81;
T=8;
H0=2;
alpha0=30;
%
L0=g*T^2/(2*pi)
C0 = L0/T;
h=[3:0.2:4]

% n=length(h);
% for i = 1:n
Bài giảng Tin Ứng dụng 2 – Matlab 7
- 64 -
% L(i)=disperse(h(i), L0);
% end;
L = disperse(h,L0); % Wave length
C=L/T % Wave celerity
sin_alpha=sin(alpha0)/C0*C
alpha = asin(sin_alpha) % arcsin
Kr=sqrt(cos(alpha0)./cos(alpha)) % Refraction coefficient
k=2*pi./L % Wave number
Ksh=sqrt(1./tanh(k.*h)/(1+2*k.*h/sinh(2*k.*h))) % Shoaling coefficient
H=H0*Ksh.*Kr % Wave height
Bài tập số2:
Hướng dẫn: tạo một script file có tên baitap2.m, soạn thảo nội dung dưới đây, và
ghi lại. Sau đó chạy file này, ta sẽ thu được kết quả.
(Bài này làm theo các bước nhưtrên lớp: tính log(u), log(S), vẽ lên trục tọa độ
thường (không vẽ lên trục loga vì ở đây ta đã tính giá trị của loga rồi), và xác định
các hệ số a, b của đường thẳng một cách gần đúng trên đồ thị).
Bài tập số3:
Hướng dẫn: tạo một script file có tên baitap3.m, soạn thảo nội dung dưới đây, và
ghi lại. Sau đó chạy file này, ta sẽ thu được kết quả.
clear all;
t=0:0.5:48
N=rand(1,length(t));
u=0.4+0.12*sin(2*pi*t/24)+0.05*N
plot(N);
hold on;
plot(u,'+');

C=60;
Rho = 1000;
g=9.81;
To = Rho*g/C^2*u.^2
plot(t,To)
hold on
grid on
Toc = 0.65
10 * (To - Toc) .* (To > Toc) + 0 .* (To <= Toc)
Bài tập số4:
Hướng dẫn: Lần lượt thực hiện các bước sau:
1. Tạo một script file có tên baitap4.m, soạn thảo nội dung dưới đây, và ghi lại.
Bài giảng Tin Ứng dụng 2 – Matlab 7
- 65 -
function Sdagiac = dientich(x,y);
% Tinh dien tich da giac
n = length (x);
m = length (y);
if m ~=n
'Error: 2 vecto X va Y can co chieu dai bang nhau!'
else
Sdagiac = 0;
for i = 1:(n-1)
Sdagiac = Sdagiac + 0.5*(y(i)+y(i+1))*(x(i+1)-x(i));
end
Sdagiac = Sdagiac + 0.5*(y(n)+y(1))*(x(1)-x(n));
end
2. Vừa rồi ta đã tạo ra một hàm mới trong Matlab, với tên là hàm dientich. Sử
dụng hàm này ta có thể dễ dàng tính được diện tích đa giác nói chung và tam giác
nói riêng bằng cách gọi hàm từcửa sổ nhập lệnh

>> dientich(X,Y) 
Lưu ý rằng hàm tính diện tích ngầm định rằng 2 véc tơX, Y ở đây đã chứa số liệu
cho trước về tọa độ các đỉnh của đa giác theo nhưquy ước. Hơn nữa, khi nhập tọa
độ ta đánh số các đỉnh từ 1 đến n theo chiều kim đồng hồ.
* Để tính diện tích tam giác S với chiều dài 3 cạnh cho trước là a, b, c, bạn có thể
thử thuật toán khác nhưsau:
))()(( cpbpappS 
với p=(a+b+c)/2 là một nửa chu vi.
Bài giảng Tin Ứng dụng 2 – Matlab 7
- 66 -
9. TÀI LIỆU THAM KHẢO:
1. Matlab R14 - Helps & Demos, The Mathworks, Inc., 2004
2. David F. Griffths, An introduction to Matlab, Department of Mathematics-
The University of Dundee – Sweden, 1996
3. John M. Stockie, A Whirlwind Tour of MATLAB for Students of CS 3113,
Department of Mathematics and Statistics, University of New Brunswick -
Canada, 2003
4. Bill Mason, Introduction to Matlab, Northeastern University - College of
Computer and Information Science – USA, 2003.
5. Tobin A. Driscoll, Crash course in MATLAB, Department of Mathematical
Sciences - University of Delaware – USA, 2006
6. Nguyễn Hoàng Hải & Nguyễn Việt Anh, Lập trình Matlab và ứng dụng,
NXB Khoa học và Kỹ thuật – Hà Nội, 2005
7. Nguyễn Phùng Quang, Matlab & Simulink dành cho kỹ sưđiều khiển tự
động, NXB Khoa học & Kỹ thuật – Hà Nội, 2006
8. Nguyễn Phương Thảo, Programming in Matlab, handouts, 2007
9. ĐH. Thủy Lợi, Matlab version 7.0 cơbản, Khóa tin học nâng cao cho cán
bộ giảng dạy của dự án 95 bộ NN&PTNT, handouts, 2007
10.Knight A., Basics of MatLab® and beyond, CRC Press, 2000
11.Timothy A. Davis & Kermit Sigmon, Matlab® Primer, Chapman &

Hall/CRC
12.R. J. Braun, Beginning Matlab Exercises, Department of Mathematical
Sciences – University of Delaware – USA.

×