Bài tập thực hành matlab cơ bản

7 10.5K 249
Bài tập thực hành matlab cơ bản

Đang tải... (xem toàn văn)

Thông tin tài liệu

TÀI LIỆU THAM KHẢO VỀ BÀI TẬP THỰC HÀNH MATLAB CƠ BẢN.

BÀI TẬP THỰC HÀNH MATLAB BẢN1. Làm quen Matlab1.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 – 3g. 2 + floor(6 / 9 + 3 * 2) / 2 – 3h. 2 + ceil(6 / 9 + 3 * 2) / 2 – 3k. fix(4/9)+fix(3*(5/6))1.2 Dự đoán kết quả xuất ra màn hình:a. 2 ; 4b. 2 / 4c. 2 \ 4d. 2 , 4e. 2 : 41.3 Cho x = 2, y = 3. Dự đoán lần lượt các kết quả tiếp theo:z = xy = y +zx = y + x – z x + y – z 1.4 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 Matlab23 2x x− +=0; 22x x− +=01.5 Tạo một số ngẫu nhiên giá trị từ 0 đến 1 ------------------//--------------------- 0 đến 100 ------------------//--------------------- n đến m (n<m) ( n,m nhập vào)1.6 Giải các phương trình sau 33 1 0x x− + = 4 23 3 1 0x x x− + − =1.7 Cho a =36 b =15. Tính bằng tay các biểu thức sau, rồi thử lại bằng Matlaba. mod(a,b)b. rem(a,b)c. gcd(a,b)d. lcm(a,b)2. Vector2.1 Tạo một vector chứa các số nguyên từ 31 đến 75.Tạo một vector 10 phần tử giá trị nguyên được lấy ngẫu nhiên trong khoảng [0, 100]Tạo một vector 10 phần tử giá trị nguyên được lấy ngẫu nhiên trong khoảng [-20 ,10] 2.2 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)2.3 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ử.2.4 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 y: x’ là ma trận chuyển vị của x2.5 Tạo các vector x sau a. [2, 4, 6, 8, … 2n]b. [10, 8, 6, 4, 2, 0, -2, -4 .-2n]c. [1, 1/2, 1/3, 1/4, 1/5, … 1/n]d. [0, 1/2 2/3, 3/4, 4/5, … (n-1)/n]Lưu y: nhập vào giá trị n2.6 Tạo vector x với các phần tử là xn = (-1)n+1/(2n - 1). Tính tổng 100 phần tử đầu tiên của x.3. Ma trận3.1 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 – 33.2 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(:)) ] ]3.3 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 A3.4 Hãy tạo ra ma trận 4x4 giá trị nguyên nằm trong khoảng [-10,10] , Sau đó:a. Cộng mỗi phần tử của ma trận cho 15b. Bình phương mỗi phần tử của ma trậnc. Cộng thêm 10 vào các phần tử ở dòng 1 và dòng 2d. Cộng thêm 10 vào các phần tử ở cột 1 và cột 43.5 Cho vectơ x=[2 4 1 6], y=[5 9 1 0]. Hãy tạo ra ma trậna. 4x6 toàn là số 0,b. 4x5 toàn là số 1, ma trận đơn vị 5x5b. B tính chất: dòng 1 và 4 giá trị là vectơ x, dòng 2 và 3 giá trị là vectơ yc. C tính chất: cột 1 và 3 giá trị là vectơ x, cột 2 và 4 giá trị là vectơ y3.6 Cho A = [2 7 9 7 ; 3 1 5 6 ; 8 1 2 5; 1 2 3 5], viết lệnh Matlab đểa. Gán cho ma trận B là các cột ở vị trí chẵnb. Gán cho ma trận C là các dòng ở vị trí lẻc. Gán lại A thành chuyển vị của nód. Tính nghịch đảo mọi phần tử của Ae. Lấy căn bậc hai mọi phần tử của A3.7 Giải các phương trình tuyến tính sau:1 2 3 41 2 3 41 2 3 41 2 3 42 5 53 4 13 6 2 82 2 2 3 2x x x xx x x xx x x xx x x x+ + + =+ − − = −+ − + =+ + − = 1 2 3 41 2 3 41 2 3 41 2 3 422 3 4 22 3 5 9 22 7 2x x x xx x x xx x x xx x x x+ + + =+ + + =+ + + =+ + + =4. Vẽ đồ thị4.1 Vẽ đồ thị hàm số x, x3, ex và e^(x2) với 0 < x < 44.2 Vẽ đồ thị hàm số f(x) = sin(1/x) với 0.01 < x < 0.1.4.3 Vẽ hai hàm 2y x= và s n3xy i=trên cùng một đồ thị, ghi chú thích4.4 Vẽ hàm số 33 1y x x= − + sử dụng hàm plot và fplot5. Biểu thức logic5.1 Cho x = [1 5 2 8 9 0 1] và y = [5 2 2 6 0 0 2], giải thích kết quả các dòng lệnh sau:a. x > y b. y < xc. x == yd. x <= ye. y >= xf. x | yg. x & yh. x & (-y)i. (x > y) | (y < x)j. (x > y) & (y < x)5.2 Cho x = 1:10 và y = [3 1 5 6 8 2 9 4 7 0], dự đoán kết quả, giải thích và thử lại bằng Matlab:a. (x > 3) & (x < 8)b. x(x > 5)c. y(x <= 4)d. x( (x < 2) | (x >= 8) )e. y( (x < 2) | (x >= 8) )f. x(y < 0)Từ BT 5.2 này, ta đã một kỹ thuật trích các giá trị của một vector theo chỉ số là một biểu thức logic, hay nói gọn hơn là chỉ số logic.5.3 Cho x = [3 15 9 12 -1 0 -12 9 6 1], viết lệnh thực hiện:a. Chuyển các giá trị dương thành giá trị 0.b. Chuyển các bội số của 3 thành số 3.c. Nhân các giá trị chẵn cho 5.d. Gán cho vector y các giá trị lớn hơn 10 của x.e. Chuyển các giá trị nhỏ hơn trung bình cộng thành giá trị 0.5.4 Tạo vector x = randperm(35). Viết các lệnh để tính giá trị hàm sau sử dụng chỉ số logic:y(x) = 2 nếu x < 6 = x - 4 nếu 6 <= x < 20 = 36 - x nếu 20 <= x <= 35Thử lại kết quả bằng cách vẽ đồ thị hàm số này qua một số dòng lệnh.6. Câu lệnh ifDự đoán kết quả và thử lại bằng Matlab:6.1 if n > 1 a. n = 7 m = ? m = n+1 b. n = 0 m = ? else c. n = -10 m = ? m = n – 1 end6.2 if z < 5 a. z = 1 w = ? w = 2*z b. z = 9 w = ? elseif z < 10 c. z = 60 w = ? w = 9 - z d. z = 200 w = ? elseif z < 100 w = sqrt(z) else w = z end6.3 if T < 30 a. T = 50 h = ? h = 2*T + 1 b. T = 15 h = ? elseif T < 10 c. T = 0 h = ? h = T – 2 else h = 0 end6.4 if 0 < x < 10 a. x = -1 y = ? y = 4*x b. x = 5 y = ? elseif 10 < x < 40 c. x = 30 y = ? y = 10*x d. x = 100 y = ? else y = 500 endViết các script để tính các hàm sau: 6.5 h(T) = T - 10 khi 0 < T < 100 = 0.45 T + 900 khi T > 100 Thử các trường hợp: a. T = 5. b. T = 110. 6.6 f(x) = -1 nếu x < 0 = 0 nếu x = 0 = 1 nếu x > 0So sánh với hàm sign của MATLAB.6.7 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 < yThử các trường hợp: a. y = 5,000 b. y = 17,000 c. y = 25,000 d. y = 75,000 7. Vòng lặp 7.1 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.)7.2 Tạo ma trận M x N các số ngẫu nhiên (dùng lệnh rand). Chuyển các giá trị nhỏ hơn 0.2 thành 0, các giá trị lớn hơn hay bằng 0.2 thành 1. 7.3 Cho x = [4 1 6] và y = [6 2 7], tính các mảng/vector/ma trận sau a. aij = xiyj b. bij = xi/yj c. ci = xiyi, tính tổng các phần tử của c. d. dij = xi/(2 + xi + yj)7.4 Viết script để tính trong một vector các số ngẫu nhiên (sử dụng lệnh rand): a. bao nhiêu phần tử đứng trước một phần tử đầu tiên giá trị nằm trong khoảng 0.8 đến 0.85. b. bao nhiêu phần tử trong khoảng [01, 0.4] đứng trước phần tử đầu tiên 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.) 7.5 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.]7.6 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ên7.7 Cần tổng số 50 từ 3 loại bạc 1, 2 và 5 đồng. Viết đoạn cript để tìm tất cả các phương án thể.7.8 Giải hệ phương trình ax by cdx ey f+ =+ = Ở đây phải nhập a,b,c,d,e,f7.9 Viết script cho phép nhập vào a, b, c. Sau đó giải phương trình bậc hai 20ax bx c+ + =8. Lập trình8.1 Lập chương trình tính n! , knC, nx (Không dùng hàm của Matlab)8.2 Viết hàm tính giá tri lớn nhất và nhỏ nhất của ma trận (Không sử dụng hàm max va min)8.3 Sắp xếp lại 1 vectơ theo chiều tăng dần của các phần tử 8.4 Tính giá trị của số Pi sử dụng chuỗi22 218 116 (2 1) (2 1)nn 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?8.5 Dãy số Fibonacci 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 ). 8.6 Đa thức Legendre (Pn(x)) được định nghĩa qui nạp như sau (n+1) Pn+1(x) - (2n+1) Pn(x) + n Pn-1(x) = 0 Trong đó P0(x) = 1, P1(x) = x và P2(x) = (3x2 - 1)/2. Tính 3 đa thức Legendre tiếp theo và vẽ 6 đa thức này trong khoảng [-1,1].8.7 Viết script yêu cầu nhập một số tự nhiên n, rồi dựa vào giá trị của nó thực hiện hoài việc chuyển giá trị: Trong khi n lớn hơn 1, thay giá trị của nó bằng n/2 nếu n chẵn và nếu n lẻ thì thay bằng (3*n+1). Tính chiều dài dãy lặp lại.Ví dụ: n =10, dãy số là 5, 16, 8, 4, 2, 1, do đó chiều dài dãy là 6. Vẽ đồ thị mô tả chiều dài l dãy lặp lại ứng với các giá trị của n từ 2 đến 30. Ví dụ khi n = 10, l = 6; khi n = 15, l = 17… nhận xét gì8.8 Viết hàm tính tích dãy con bắt đầu từ phần tử đầu tiên của một vector. Cho vector x, tích dãy con thứ j bằng pj = (x1)(x2) . (xj) với j chạy từ 1 đến chiều dài l của vector x. Viết hàm bằng 2 cách: a. Sử dụng vòng lặp for. b. Sử dụng hàm sẵn prod. So sánh kết quả với hàm cumprod.8.9 Giống như bài 8.8 nhưng thay hàm tính tích bằng hàm tính tổng. 8.10 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) 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. . BÀI TẬP THỰC HÀNH MATLAB CƠ BẢN1. Làm quen Matlab1 .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. 15 9 12 -1 0 -12 9 6 1], viết lệnh thực hiện:a. Chuyển các giá trị dương thành giá trị 0.b. Chuyển các bội số của 3 thành số 3.c. Nhân các giá trị chẵn

Ngày đăng: 12/10/2012, 14:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan