bai tap can ban va nang cao

12 610 4
bai tap can ban va nang cao

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài tập Matlap

TUẦN 2: MA TRẬN MẢNG Mở chương trình MATLAB thực hiện các bài tập sau trong cửa sổ Command line: 1. Cho x = [3 1 5 7 9 2 6], kết quả các biểu thức sau đây là gì ? • x(3)=5 • x(1:7)=3 1 5 7 9 2 6 • x(1:end)= 3 1 5 7 9 2 6 • x(1:end-1)= 3 1 5 7 9 2 • x(6:-1:1) = 2 7 1 • x([1 6 2 1 1])= 3 2 1 3 3 • sum(x)= 33 2. Cho ma trận A = [ 2 4 1 ; 6 7 2 ; 3 5 9], viết câu lệnh thực hiện • Gán hàng thứ 1 của A cho một vectơ tên x1  x1=A(1,:) • Gán 2 hàng cuối cùng của A cho một vectơ tên y • C1: y=A([2 3],:) • C2: y=A([end-1 end],:) • Tính tổng các cột của A • sum(A,1) // sum(A) • Tính tổng các hàng A • sum(A,2) e. Tính độ lệch chuẩn trung bình mỗi cột của A(độ lệch chuẩn trung bình được tính bằng độ lệch chuẩn (standard deviation) chia cho căn bậc 2 của số phần tử dùng để tính giá trị trung bình. Phương pháp tính Độ Lệch chuẩn Standard Deviation từ một dãy n giá trị cho trước x 1 , x 2 , .x n : 1. Tìm Trung bình (mean) của dãy số đã cho ví dụ : (x 1 +x 2 + .+x n )/n 2. Với mỗi phần tử trong dãy số đã cho, tính độ lệch (deviation) của nó so với Trung Bình-mean 3. Tính bình phương của các giá trị thu được ở bước 2. 4. Tìm mean của các bình phương độ lệch tìm được ở bước 3. Các giá trị này được biết đến như là variance σ 2 . 5. Tính căn bậc hai (square root) của variance ta được kết quả cần tìm. Xem ví dụ cụ thể : Cho dãy số gồm 8 số Dãy 8 số này có trung bình là 5 Xem sét sự khác biệt từng phần tử của nó với trị trung bình Sau đó tính trung bình các bình phương độ lệch trên ta được Population Standard Deviation Thông thường phức tạp hơn ta áp dụng một cách chính xác để có độ lệch chuẩn mẫu : tức không chia 8 mà chia cho 7 ở phép tính cuối này . (vì 8-1=7 ) . Sample Standard Deviation + Nếu chưa hiểu rõ thì có thể xem thêm tại đây (http://minimaxg.congdongit.org/DlChuan.pdf ) Vậy trở lại câu e : Tính độ lệch chuẩn trung bình mỗi cột của A(độ lệch chuẩn trung bình được tính bằng độ lệch chuẩn (standard deviation) chia cho căn bậc 2 của số phần tử dùng để tính giá trị trung bình. Ta có 2 4 1 6 7 2 3 5 9 A     =       >>B=mean(A) B = 3.6667 5.3333 4.0000 >>C=[B;B;B] C = 3.6667 5.3333 4.0000 3.6667 5.3333 4.0000 3.6667 5.3333 4.0000 >>E=A-C E = -1.6667 -1.3333 -3.0000 2.3333 1.6667 -2.0000 -0.6667 -0.3333 5.0000 >>F=E.*E F = 2.7778 1.7778 9.0000 5.4444 2.7778 4.0000 0.4444 0.1111 25.0000 >> G=sum(F) G = 8.6667 4.6667 38.0000 >> H=G/(size(A,1)-1) H = 4.3333 2.3333 19.0000 >> L=sqrt(H) L = 2.0817 1.5275 4.3589 . (Sample Standard Deviation) >>e= L/sqrt(size(A,1)) = 1.2019 0.8819 2.5166 Hoặc chỉ cần gõ N = size(A,1), e = std(A)/sqrt(N) e = 1.2019 0.8819 2.5166 Cú pháp std(X,0,1) cho cột std(X,0,2) cho hàng với độ lệch mẫu tính bởi N-1 Cú pháp std(X,1,1) cho cột std(X,1,2) cho hàng với độ lệch tính bởi N 3. Cho ma trận: C=[6 9 5 1; 8 7 2 3 ; 1 3 4 4 ; 5 2 8 2] , D=[4 8 ; 3 7 ; 2 3; 5 1] a. Tạo ma trận E1 là 2 cột nằm giữa của ma trận C sử dụng toán tử ‘:’ E1=C(:,[2 3]) => E1 = 9 5 7 2 3 4 2 8 b. Tạo ma trận E2 từ hàng 1 2 cột 2 3 của ma trận C sử dụng toán tử ‘:’ E2= c. Tạo ma trận E3 bằng cách ghép 2 ma trận E1 D với nhau. d. Tìm tích C 24 D 12. • E3=[E1 D] • B=C(2,4)*D(1,2)=24 4. Cho các vectơ x = [1 4 8], y = [2 1 5] A = [3 1 6 ; 5 2 7], xác định biểu thức nào sau đây viết đúng cho kết quả hợp lý. Nếu không đúng, giải thích vì sao ? Sử dụng lệnh whos có thể có ích trong bài này. a. x + y >Đúng >>x+y ans = 3 5 13 b. x + A > Sai vì hai ma trận khác kích cỡ • ??? Error using ==> + • Matrix dimensions must agree. c. x' + y > Sai vì hai ma trận khác kích cỡ • ??? Error using ==> + • Matrix dimensions must agree. d. A - [x' y'] > Sai vì hai ma trận khác kích cỡ • ??? Error using ==> - • Matrix dimensions must agree e. [x ; y'] > Sai vì hai ma trận khác kích cỡ • ??? Error using ==> vertcat • All rows in the bracketed expression must have the same • number of columns. f. [x ; y] > Đúng ans = 1 4 8 2 1 5 g. A - 3 > Đúng ans = 0 -2 3 2 -1 4 5. Cho ma trận A = [2 7 9 7 ; 3 1 5 6 ; 8 1 2 5], giải thích kết quả các lệnh sau: a. reshape(A,2,6) ans = 2 8 1 9 2 6 3 7 1 5 7 5 Nếu >> reshape(A,2,9) sẽ lỗi ??? Error using ==> reshape To RESHAPE the number of elements must not change. b. [ [ A ; sum(A) ] [ sum(A,2) ; sum(A(:)) ] ] >>[ [ A ; sum(A) ] ans = 2 7 9 7 3 1 5 6 8 1 2 5 13 9 16 18 Nếu có sai sót sẽ báo ??? Error using ==> vertcat All rows in the bracketed expression must have the same number of columns >> [ sum(A,2) ; sum(A(:)) ] ans = 25 15 16 56 >>X= [ [ A ; sum(A) ] [ sum(A,2) ; sum(A(:)) ] ] X= 2 7 9 7 25 3 1 5 6 15 8 1 2 5 16 13 9 16 18 56 Nếu có sai sót sẽ báo ??? Error using ==> vertcat All rows in the bracketed expression must have the same number of rows 6. Cho ma trận A = [2 7 9 7 ; 3 1 5 6 ; 8 1 2 5], viết lệnh thực hiện a. Gán các cột lẻ của A cho ma trận B >> B=A(:,1:2:end) B = 2 9 3 5 8 2 b. Gán các cột chẵn của A cho ma trận C >> C=A(:,2:2:end) C = 7 7 1 6 1 5 c. chuyển A thành ma trận 4 hàng 3 cột >> reshape(A,4,3) ans = 2 1 2 3 1 7 8 9 6 7 5 5 d. Tìm ma trận với các phần tử giá trị nghịch đảo của mỗi phần tử trong A >> B=1./A B = 0.0826 0.1575 0.0461 0.1976 0.3745 0.0695 -0.2994 -0.1266 0.1083 e. Tính ma trận với các phần tử căn bậc 2 của mỗi phần tử trong A >> C=sqrt(A(:,:)) C = 3.4799 2.5199 4.6583 2.2494 1.6340 3.7921 0 + 1.8276i 0 + 2.8107i 3.0381 7. Cho lệnh tạo dãy F như sau: >> randn('seed',123456789) >> F = randn(5,10); a. Xem help giải thích các lệnh trên. 123456789 Specifies the seed of the pseudorandom number generator to use for the next call to the randn function. d = randn('seed') Returns the seed of the pseudorandom number generator. b.Tính giá trị trung bình của mỗi cột gán kết quả cho vectơ tên avg. avg = mean(F) c. Tính độ lệch chuẩn của mỗi cột gán kết quả cho vectơ tên s. s = std(F) 8. Dự đoán kết quả của các câu lệnh sau kiểm tra lại bằng Matlab: a. x = ones(1,10) ones( hàng , cột ) x = b. y =zeros(5,1) zeros(hàng,cột) 1 1 1 1 1 1 1 1 1 1 y = 0 0 0 0 0 c. z = linspace(1,4,5) z = 1.0000 1.7500 2.5000 3.2500 4.0000 d. t = logspace(1,3,3) e. u = rand(2,4) t = 10 100 1000 ans = 0.3784 0.8537 0.4966 0.8216 0.8600 0.5936 0.8998 0.6449 9. Cho ma trận A=[12.11 -7.9 9.23; 5.06 6.35 21.7;-3.34 2.67 14.38] viết lệnh Matlab để: a. Tìm ln của giá trị tuyệt đối tất cả các phần tử của A >>A=abs(A(:,:)); >> log(A(:,:)) ans = 2.4940 2.0669 2.2225 1.6214 1.8485 3.0773 1.2060 0.9821 2.6658 b. Tìm log cơ số 10 của giá trị tuyệt đối tất cả các phần tử của A >>A=abs(A(:,:)); >> log10(A(:,:)) ans = 1.0831 0.8976 0.9652 0.7042 0.8028 1.3365 0.5237 0.4265 1.1578 c. Tìm sin, cos của tất cả các phần tử của A. >> sin(A(:,:)) ans = -0.4407 -0.9989 0.1935 -0.9402 0.0668 0.2871 0.1971 0.4543 0.9707 >> cos(A(:,:)) ans = 0.8977 -0.0460 -0.9811 0.3407 0.9978 -0.9579 -0.9804 -0.8908 -0.2405 D1. Làm tròn những phần tử của A đến số nguyên gần nhất. >> round(A) ans = 12 -8 9 5 6 22 -3 3 14 D2. Làm tròn những phần tử của A đến số nguyên lớn hơn. Làm tròn về dương >> ceil(A) ans = 13 -7 10 6 7 22 -3 3 15 D3. Làm tròn những phần tử của A đến số nguyên nhỏ hơn. Làm tròn về âm >> floor(A) ans = 12 -8 9 5 6 21 -4 2 14 D4. Làm tròn những phần tử của A về 0 >> fix(A) ans = 12 -7 9 5 6 21 -3 2 14 e. xét dấu những phần tử của A >> sign(A) ans = 1 -1 1 1 1 1 -1 1 1 f. Tìm giá trị lớn nhất nhỏ nhất của mỗi cột của A. >> max(A) ans = 12.1100 6.3500 21.7000 >> min(A) ans = -3.3400 -7.9000 9.2300 g. Sắp xếp những phần tử trong mỗi cột của A theo thứ tự tăng dần. >> sort(A) ans = -3.3400 -7.9000 9.2300 5.0600 2.6700 14.3800 12.1100 6.3500 21.7000 h. Sắp xếp những phần tử trong mỗi cột của A theo thứ tự giảm dần. >> B=sort(A) B = -3.3400 -7.9000 9.2300 5.0600 2.6700 14.3800 12.1100 6.3500 21.7000 >> A=B(end:-1:1,:) A = 12.1100 6.3500 21.7000 5.0600 2.6700 14.3800 -3.3400 -7.9000 9.2300 i. Tìm cỡ của ma trận A. >> [m,n]=size(A) m = 3 n = 3 10. Giải các phương trình tuyến tính sau: a)* Ta thành lập các phương trình ma trận : A= [2 1 5 1 ;1 1 -3 -4; 3 6 -2 1;2 2 2 -3] B= [5; -1 ; 8 ; 2] A áp dụng giải phương trình ma trận bằng ma trận nghịch đảo ta có: A.X=B => X=A\B Vậy nghiệm của hệ là * b)-------------------------------------------------------------------------------------------------------------------- Ta thành lập các phương trình ma trận : A=[1 1 1 1 ; 1 2 3 4 ; 2 3 5 9;1 1 2 7] B=[2 ;2 ;2 ;2] Tương tự ta có >>X=A\B X = -2 9 -6 1 1 2 3 4 x 2 1 5 1 5 x 1 1 3 4 1 . x 3 6 2 1 8 x 2 2 2 3 2             − − −       =       −       −       1 2 3 4 x 1 1 1 1 2 x 1 2 3 4 2 . x 2 3 5 9 2 x 1 1 2 7 2                   =                   1 2 3 4 x 2 x 0.2 x 0 x 0.8             =             1 2 3 4 x 2 x 9 x 6 x 1 −             =     −         MATLAB EXERCISES 2 ——Basic array exercises 1. Given x = [3 1 5 7 9 2 6], explain what the following commands "mean" by summarizing the net result of the command. 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. Given the array A = [ 2 4 1 ; 6 7 2 ; 3 5 9], provide the commands needed to a. assign the first row of A to a vector called x1 b. assign the last 2 rows of A to an array called y c. compute the sum over the columns of A d. compute the sum over the rows of A e. compute the standard error of the mean of each column of A (NB. the standard error of the mean is defined as the standard deviation divided by the square root of the number of elements used to compute the mean.) 3. Given the arrays x = [1 4 8], y = [2 1 5] and A = [3 1 6 ; 5 2 7], determine which of the following statements will correctly execute and provide the result. If the command will not correctly execute, state why it will not. Using the command whos may be helpful here. a. x + y b. x + A c. x' + y d. A - [x' y'] e. [x ; y'] f. [x ; y] g. A - 3 4. Given the array A = [2 7 9 7 ; 3 1 5 6 ; 8 1 2 5], explain the results of the following commands: a. A' b. A(:,[1 4]) c. A([2 3],[3 1]) . được ở bước 3. Các giá trị này được biết đến như là variance σ 2 . 5. Tính căn bậc hai (square root) của variance ta được kết quả cần tìm. Xem ví dụ cụ thể. If Pr(|t| > 2.132 ) = 0.1 with 4 degrees of freedom, are any of the mean values in the vector avg statistically different from 0? ANSWERS 2. A = [ 2

Ngày đăng: 12/09/2013, 00:14

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan