1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

BÀI TẬP THỰC HÀNH MATLAB CƠ BẢN

24 45 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 223 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

bài tập thực hành matlab cơ bản dành cho những người mới học, mới tìm hiểu về matlab bài tập thực hành matlab cơ bản dành cho những người mới học, mới tìm hiểu về matlab bài tập thực hành matlab cơ bản dành cho những người mới học, mới tìm hiểu về matlab

Trang 1

Bài tập này cô tải trên mạng, các em có thể làm thêm để hiểu về matlab

BÀI TẬP THỰC HÀNH MATLAB CƠ BẢN

Kiểm Tra : roots([1 -1 2]) =0.5000 + 1.3229i , 0.5000 - 1.3229i

1.5 Tạo một số ngẫu nhiên có giá trị từ 0 đến 1 >> a=rand

Tạo một số ngẫu nhiên có giá trị từ 0 đến 100 >> b=100*rand

Trang 2

Tạo một số ngẫu nhiên có giá trị từ n đến m (n<m) ( n,m nhập vào)

• Ghi M-file như sau :

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 Matlab

a mod(a,b)=9 chia lấy dư // MOD(x,y) is x - n.*y where n = floor(x./y)

b rem(a,b)=-6 chia lấy dư // REM(x,y) is x - n.*y where n = fix(x./y)

c gcd(a,b)= 3 ước số chung lớn nhất

d lcm(a,b)= !! bội số chung nhỏ nhất

>> lcm(a,b)

??? Error using ==> lcm

Input arguments must contain positive integers (a b phải cùng là số dương )

2 Vector

2.1 Tạo một vector chứa các số nguyên từ 31 đến 75 >>A=31:75

Tạo một vector có 10 phần tử có giá trị nguyên được lấy ngẫu nhiên trong khoảng [0, 100]

Trang 3

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

c Chia các phần tử của y với các phần tử tương ứng của x >>y./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 >>z=x.*y

e Tính tổng các phần tử của z, gán cho w >>w=sum(z)=72

f Tính x * y – w >> x.*y-w = -60 ; -70 ; -54 ; -32

g.Tích vô hướng của x và y

Lưu y: x’ là ma trận chuyển vị của x

2.5 Tạo các vector x sau

Lưu y: nhập vào giá trị n

2.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.n=input('Nhap n :')

format rat

Trang 4

x =((-1).^((1:n)+1))./((2.*(1:n) - 1))

n=100

>> sum(x)

ans = 1529/1953

3 Ma trận

3.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 + y = 3 5 13

b x + A = ??? Error using ==> + Matrix dimensions must agree c x’ + y = Matrix dimensions must agree d A – [x’ y’] = Matrix dimensions must agree e [x ; y’] All rows in the bracketed expression must have the same number of columns f [x ; y] 1 4 8

2 1 5

g A – 3 0 -2 3

2 -1 4

3.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’= 2 3 8

7 1 1

9 5 2

7 6 5

b A(:,[1 4]) ans = 2 7

3 6

8 5

c A([2 3], [3 1]) ans = 5 3

2 8

d reshape(A, 2, 6) ans = 2 8 1 9 2 6

3 7 1 5 7 5

e A(:) = 2

3

8

7

1

1

9

5

Trang 5

2

7

6 5

Trang 6

f flipud(A)

ans =

8 1 2 5

3 1 5 6

2 7 9 7

g fliplr(A) ans = 7 9 7 2

6 5 1 3

5 2 1 8

h [A; A(end,:)] ans = 2 7 9 7

3 1 5 6

8 1 2 5

8 1 2 5

i A(1:3,:) ans = 2 7 9 7

3 1 5 6

8 1 2 5

j [A; A(1:2, :)] ans = 2 7 9 7

3 1 5 6

8 1 2 5

2 7 9 7

3 1 5 6

k sum(A) ans = 13 9 16 18

l sum(A’) ans = 25 15 16

m sum(A, 2) ans = 25

15

16

n [ [ A ; sum(A) ] [ sum(A,2) ; sum(A(:)) ] ] ans = 2 7 9 7 25

3 1 5 6 15

8 1 2 5 16

13 9 16 18 56

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 >>x=A(1,:)

b Gán cho ma trận y là hai dòng còn lại (cuối) của A >>y=A(end-1:end,:)

c Tính tổng theo dòng ma trận A >>sum(A,2)

Trang 7

3.5 Cho vectơ x=[2 4 1 6], y=[5 9 1 0] Hãy tạo ra ma trận

a 4x6 toàn là số 0,b 4x5 toàn là số 1, ma trận đơn vị 5x5

>> zeros(4,6) >> ones(4,5) >> eye(5,5)

b B có tính chất: dòng 1 và 4 có giá trị là vectơ x, dòng 2 và 3 có giá trị là vectơ y

Trang 8

5 Biểu thức logic

5.1 Cho x = [1 5 2 8 9 0 1] ,y = [5 2 2 6 0 0 2] giải thích kết quả các dòng lệnh sau:

x = 1 5 2 8 9 0 1

y = 5 2 2 6 0 0 2

a x > y = 0 1 0 1 1 0 0

b y < x = 0 1 0 1 1 0 0

c x == y = 0 0 1 0 0 1 0

d x <= y = 1 0 1 0 0 1 1

e y >= x = 1 0 1 0 0 1 1

f x | y = 1 1 1 1 1 0 1

g x & y = 1 1 1 1 0 0 1

h x & (-y) = 1 1 1 1 0 0 1

i (x > y) | (y < x) 0 1 0 1 1 0 0

j (x > y) & (y < x) 0 1 0 1 1 0 0

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) =0 0 0 1 1 1 1 0 0 0

b x(x > 5) = 6 7 8 9 10

c y(x <= 4) = 3 1 5 6

d x( (x < 2) | (x >= 8) ) = 1 8 9 10

e y( (x < 2) | (x >= 8) ) = 3 4 7 0

f x(y < 0) = Empty matrix: 1-by-0

Từ BT 5.2 này, ta đã có 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 >> x(x>0)=0

b Chuyển các bội số của 3 thành số 3 >> x(mod(x,3)= =0)=3

c Nhân các giá trị chẵn cho 5 >> x(mod(x,2)= =0)=x(mod(x,2)= =0)*5

d Gán cho vector y các giá trị lớn hơn 10 của x >> y=x(x>10)

e Chuyển các giá trị nhỏ hơn trung bình cộng thành giá trị 0 >> x(x<mean(x))=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

y(x) = x - 4 nếu 6 <= x < 20

y(x) = 36 - x nếu 20 <= x <= 35

>> y(x<6)=2

>> y((x>=6)&(x<20))=x((x>=6)&(x<20))-4

>> y((x>=20)&(x<=35))=36-x((x>=20)&(x<=35))

6 Câu lệnh if

Dự đoán kết quả và thử lại bằng Matlab:

6.1 if n > 1 a n = 7 m = ? = 8

m = n+1 b n = 0 m = ? = -1

else c n = -10 m = ? = -11

m = n – 1

end

6.2 if z < 5 a z = 1 w = ? =2

w = 2*z b z = 9 w = ? = 0

elseif z < 10 c z = 60 w = ? = 1921/248

w = 9 - z d z = 200 w = ? = 200

elseif z < 100

w = sqrt(z)

Trang 10

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.)

Trang 11

1 3 6 10

1 2 4 5

4 8 8 8

4 15 16 17

Vậy kết quả giống nhau

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

Trang 12

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 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.x=rand(1,10);

Trang 13

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.]

F=input('Nhap vao nhiet do Fahrenheit : ')

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ên

Trang 14

C , x (Không dùng hàm của Matlab) n

n=input('Nhap he so giai thua can tinh vao day:');

while n<0|n~=round(n)

disp('Phai nhap mot so nguyen duong')

n=input('Nhap lai he so giai thua can tinh :')

Trang 15

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 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

Trang 17

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:

Trang 18

• Ở đây chúng ta có 10 giá trị x ngẫu nhiên từ 10>17

hist(x,-2:7) (tuy ngược nhưng không sao)

xem lại điều kiện tham số cho đúng

Trang 19

TUẦN 2: MA TRẬN VÀ MẢNG

Mở chương trình MATLAB và 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ì ?

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

Trang 20

Cú pháp std(X,0,1) cho cột và 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 và std(X,1,2) cho hàng với độ lệch tính bởi N

• 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

Trang 21

??? Error using ==> reshape

To RESHAPE the number of elements must not change.

b [ [ A ; sum(A) ] [ sum(A,2) ; sum(A(:)) ] ]

Nếu có sai sót sẽ báo

??? Error using ==> vertcat

All rows in the bracketed expression must have the same

Nếu có sai sót sẽ báo

??? Error using ==> vertcat

All rows in the bracketed expression must have the same

Trang 23

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

Ngày đăng: 13/07/2021, 13:52

TỪ KHÓA LIÊN QUAN

w