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.
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:
- Thực hành Matlab cơ bản - Worksheet 5_Cơ bản về lập trình trong Matlab.pdf