Thực hành Matlab cơ bản - Worksheet 5: Cơ bản về lập trình trong Matlab

Mục đích:

Worksheet này giới thiệu về các lệnh cơ bản trong lập trình MATLAB.

Yêu cầu:

- Sinh viên thực hành bằng phần mềm Matlab trên phòng máy, đọc kỹ phần luyện tập

trước khi làm bài tập.

- Kết quả được lưu lại trong thư mục MSSV_HoTen

- Thời gian thực hành: 4 tiết.

pdf6 trang | Chuyên mục: MATLAB | Chia sẻ: dkS00TYs | Lượt xem: 3754 | Lượt tải: 1download
Tóm tắt nội dung Thực hành Matlab cơ bản - Worksheet 5: Cơ bản về lập trình trong Matlab, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
THỰC HÀNH MATLAB CƠ BẢN 
1 Thái Duy Quý – thaiduyquy@gmail.com 
WORKSHEET 05: CƠ BẢN VỀ LẬP TRÌNH TRONG MATLAB 
--Thái Duy Quý ITFac – thaiduyquy@gmail.com – 
Mục đích: 
Worksheet này giới thiệu về các lệnh cơ bản trong lập trình MATLAB. 
Yêu cầu: 
- Sinh viên thực hành bằng phần mềm Matlab trên phòng máy, đọc kỹ phần luyện tập 
trước khi làm bài tập. 
- Kết quả được lưu lại trong thư mục MSSV_HoTen 
- Thời gian thực hành: 4 tiết. 
Luyện tập: 
Các phát biểu điều kiện if, else, elseif 
Cú pháp của if: 
 if 
 end 
Nếu cho kết quả đúng thì phần lệnh trong thân của if được thực hiện. 
Các phát biểu else và elseif cũng tương tự. 
Ví dụ 2.7: Ta xét chương trình doantuoi. m để đoán tuổi như sau: 
clc 
disp(‘Xin chao! Han hanh duoc lam quen’); 
 x = fix(30*rand); 
 disp(‘Tuoi toi trong khoang 0 ‐ 30’); 
 gu = input(‘Xin nhap tuoi cua ban: ‘); 
if gu < x 
 disp(‘Ban tre hon toi’); 
 elseif gu > x 
 disp(‘Ban lon hon toi’); 
THỰC HÀNH MATLAB CƠ BẢN 
2 Thái Duy Quý – thaiduyquy@gmail.com 
 else 
 disp(‘Ban bang tuoi toi’); 
 end 
Lệnh rẽ nhánh switch 
Cú pháp của switch như sau : 
 switch 
 case n1 : 
 case n2 : 
 . . . 
 case nn : 
 otherwise : 
 end 
Lệnh lặp while 
Vòng lặp while dùng khi không biết trước số lần lặp. Cú pháp như sau: 
while 
 end 
Xét chương trình in ra chuỗi “Xin chao” lên mà hình với số lần nhập từ bàn phím xinchao.m 
như sau: 
 clc 
 disp(ʹxin chaoʹ); 
 gu = input(ʹNhap so lan in: ʹ); 
i = 0; 
while i ~= gu 
 disp([ʹXin chaoʹ i]); 
 i = i + 1 
 end 
Lệnh lặp for 
Vòng lặp for dùng khi biết trước số lần lặp. Cú pháp như sau: 
THỰC HÀNH MATLAB CƠ BẢN 
3 Thái Duy Quý – thaiduyquy@gmail.com 
for = : : 
Ta xây dựng chương trình đoán số doanso.m: 
clc 
x = fix(100*rand); 
n = 7; 
t = 1; 
for k = 1:7 
 num = int2str(n); 
 disp([ʹBan co quyen du doan ʹ, num, ʹ lanʹ]); 
 disp(ʹSo can doan nam trong khoang 0 ‐ 100ʹ); 
 gu = input(ʹNhap so ma ban doan: ʹ); 
 if gu < x 
 disp(ʹBan doan nho honʹ); 
 elseif gu > x 
 disp(ʹSo ban doan lon honʹ); 
 else 
 disp(ʹBan da doan dung. Xin chuc mungʹ); 
 t = 0; 
 break; 
end 
 n = n ‐ 1; 
end 
if t > 0 
 disp(ʹBan khong doan ra roiʹ); 
 numx = int2str(x); 
 disp([ʹDo la so: ʹ, numx]); 
end 
THỰC HÀNH MATLAB CƠ BẢN 
4 Thái Duy Quý – thaiduyquy@gmail.com 
Bài tập 
Bài 1 : 
Viết các script để tính các hàm sau: 
 h(T) = T - 10 khi 0 < T < 100 
 = 0.45 T + 900 khi T > 100 
Thử các trường hợp: T = 5 và T = 110. 
 f(x) = -1 nếu x < 0 
 = 0 nếu x = 0 
 = 1 nếu x > 0 
So sánh với hàm sign của MATLAB. 
 t(y) = 200 khi y <= 10,000 
 = 200 + 0.1 (y - 10,000) khi 10,000 < y <= 20,000 
 = 1,200 + 0.15 (y - 20,000) khi 20,000 < y <= 50,000 
 = 5,700 + 0.25 (y - 50,000) khi 50,000 < y 
Thử các trường hợp: a. y = 5,000 
 b. y = 17,000 
 c. y = 25,000 
 d. y = 75,000 
Bài 2 : 
Cho vector x = [1 8 3 9 0 1], viết các dòng lệnh để 
a. Tính tổng tất cả các phần tử. (So sánh kết quả với lệnh sum.) 
b. Viết hàm tính tổng dãy con từ 1 đến j. (So sánh kết quả với lệnh cumsum.) 
Bài 3: 
Viết script để tính trong một vector các số ngẫu nhiên (sử dụng lệnh rand): 
a. Có bao nhiêu phần tử đứng trước một phần tử đầu tiên có giá trị nằm trong khoảng 0.8 
đến 0.85. 
b. Có bao nhiêu phần tử trong khoảng [01, 0.4] đứng trước phần tử đầu tiên có giá trị lớn 
hơn trung bình của vector đó. (Dự đoán kết quả trước khi thực thi lệnh.) 
Bài 4: 
THỰC HÀNH MATLAB CƠ BẢN 
5 Thái Duy Quý – thaiduyquy@gmail.com 
 Viết một script yêu cầu nhập một nhiệt độ Fahrenheit rồi chuyển sang độ Celcius tương 
ứng. Script vẫn chạy đến khi không nhập nhiệt độ nữa thì thôi. [Sử dụng hàm isempty.] 
 Viết một script yêu cầu: Nhập liên tục các số, dừng lại khi nhập 0, và xuất ra trung bình 
cộng của các số dương và trung bình cộng của các số âm của dãy số nói trên 
Bài 5: 
 Giải hệ phương trình 
ax by c
dx ey f
 

 
 Ở đây phải nhập a,b,c,d,e,f 
 Viết script cho phép nhập vào a, b, c. Sau đó giải phương trình bậc hai 2 0ax bx c   
Bài 6: 
Lập chương trình tính n! , knC , nx (Không dùng hàm của Matlab) 
Bài 7: 
Tính giá trị của số Pi sử dụng chuỗi 
2
2 2
1
8 1
16 (2 1) (2 1)n n n
 



  
Giá trị của n cần đạt đến bao nhiêu để độ chính xác là 1e-12 ? Độ chính xác là bao nhiêu khi n 
= 100? 
Bài 8: 
Dãy số Fibonacci có mối quan hệ sau: Fn = Fn-1 + Fn-2, với F0 = F1 = 1. 
a. Tính 10 số Fibonacci đầu tiên. 
b. Trong 50 số Fibonacci đầu tiên, tính tỷ lệ Fn / Fn-1. Nhận xét gì các giá tỷ lệ này so với 
“tỷ lệ vàng” ( (1 + sqrt(5))/2 ). 
Bài 9: 
Viết hàm sinh ngẫu nhiên ma trận các số nguyên: 
 function A = randint(a,b,M,N) 
trong đó a và b là các chận dưới và chận trên, còn M và N là kích thước của ma trận (số dòng, 
số cột). 
a. Thử lại với các dòng lệnh như sau: 
 x = randint(10,17,100000,1); 
 hist(x,10:17) 
THỰC HÀNH MATLAB CƠ BẢN 
6 Thái Duy Quý – thaiduyquy@gmail.com 
 Nhận xét biểu đồ mô tả. 
 b. Thử lại với các dòng lệnh như sau: 
 x = randint(-30,5,100000,1); 
 hist(x,-30:5) 
 x = randint(-45,-35,100000,1); 
 hist(x,-45:-35) 
 x = randint(7,-2,100000,1); 
 hist(x,-2:7) 
 xem lại điều kiện tham số cho đúng. 
-- Hết -- 

File đính kèm:

  • pdfThực hành Matlab cơ bản - Worksheet 5_Cơ bản về lập trình trong Matlab.pdf
Tài liệu liên quan