1. Trang chủ
  2. » Giáo án - Bài giảng

ứng dụng matlab trong chuyên ngành

20 327 3
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề ứng dụng Matlab trong chuyên ngành
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Kỹ thuật phần mềm, Ngôn ngữ lập trình, Điều khiển tự động
Thể loại Báo cáo môn học
Thành phố Hà Nội
Định dạng
Số trang 20
Dung lượng 473 KB

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

Nội dung

giao trinh co ban maplap

Trang 1

øng dông matlab trong

chuyªn ngµnh

Phần I: Bổ túc về MATLAB

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

Trang 2

1a

1 : một số đặc điểm của ngôn ngữ lập trình matlab

1) Tên biến, tên hàm và câu giải tích

Tên biến , tên hàm :

+ Phân biệt chữ Hoa và chữ Thường

+ Bắt đầu bằng chữ cái ( không được dùng hầu hết các dấu)

+ Nhiều nhất chỉ được 31 k tự

− Câu giải thích sau dấu ( % )

2) Câu lệnh, dòng lệnh

Tên lệnh (từ khóa): viết chữ thường

Các câu lệnh cách nhau bằng dấu chấm phẩy (;) nếu viết cùng một dòng

− Dùng dấu ba chấm ( ) để ngắt một phần câu lệnh xuống dòng tiếp theo

3) Soạn thảo văn bản chương trình: Tương tự như soạn thảo trong Word

Lưu ý : Tên file (hay tên tệp) cũng được quy định như tên biến

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

Trang 3

1 : một số đặc điểm của ngôn ngữ lập trình matlab

4) Lập trình trong cửa sổ lệnh Command Window

>> Viết dòng lênh 1 rồi ấn phím <Enter> để thực hiện lệnh

>> Viết dòng lênh 2 rồi ấn phím <Enter> để thực hiện lệnh

>> ………

Chỉ thích hợp cho các bài toán nhỏ

Lưu ý:

+ Xóa màn hình bằng lệnh clc + Dùng các phím mũi tên ↑ ↓ hoặc < page Up/ Dowm> để dịch chuyển lên xuống

5) Lập trình trong cửa sổ Mfile

Không cần khai báo trước các biến và các hàm

( trừ trường hợp sử dụng thêm các chương trình con − Xem phần sau)

− Viết lần lượt từng dòng lệnh rồi ghi vào một file

+ Không dùng dấu cách và hầu hết các dấu

+ Nhiều nhất là 31 ký tự

− Chạy chương trình bằng lệnh ( Run trong Menu Debut) hoặc ấn F5 )

Home

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

3

Trang 4

1 : một số đặc điểm của ngôn ngữ lập trình matlab

Viết trong cửa sổ Mfile

Dòng đầu tiên khai báo chương trình con bằng từ khóa function

+ Nếu có nhiều biến ra:

function [out1, out2] = Tên_hàm ( các biến đầu vào)

+ Nếu chỉ có duy nhất một biến ra:

function out = Tên_hàm (Các biến đầu vào)

+ Nếu chỉ sử dụng như một file dữ liệu :

function Tên_hàm

− Viết từng dòng lệnh như chương trình chính

Phân biệt biến toàn cục và biến địa phương

+ Biến toàn cục :

Có tác dụng cả trong chương trình chính và trong chương trình con

Phải khai báo các biến toàn cục bằng từ khóa global

global bien_1 bien_2 bien_3

(ở cả chương trình chính và trong chương trình con)

+ Biến địa phương : Chỉ có tác dụng trong chương trình con

Ghi lại thành một file: Tên file phải trùng với tên hàm

− Cách gọi function vào chương trình chính:

Viết tại vị trí cần thiết trong chương trình chính: Tên_hàm( giá trị đầu vào )

6) Chương trình con ( file hàm): function file Home

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

Trang 5

2 : nhập dữ liệu và hiện thị kết quả

2.1.Nhập dữ liệu:

1) Khai báo trực tiếp trong câu lệnh:

Gán trực tiếp một giá trị: x= a;

− Gán một khoảng giá trị: x= a : Dx : b; Biết trước bước biến thiên

x= linspace( a, b, n) Biết trước khoảng biến thiên

x= logspace( a, b, n) theo thang logarit

for x = a : Dx : b Tính theo vòng lặp

……… …

end

2) Lệnh input x = input (‘ Nhập giá trị x=’ )

3) Gọi vào từ một file dữ liệu

2.2 Các lệnh hiện thị kết quả:

1) Lênh  disp (‘ chuỗi ký tự’) hiện thị thông báo bằng chữ

disp ( biến) hiện thị giá trị của biến hoặc hàm số

2) Lệnh fprintf (‘ chuỗi ký tự \ n ‘) hiện thị dòng thông báo và xuống dòng

fprintf ( ‘ %3d %8.3f \ n ’, x1, x2) hiện thị giá trị biến x1, x2

fprintf ( ‘ x1= %3d %12s \ n ’, x1, ch) − hiện thị kết hợp ký tự và số

Lưu ý : d ( số nguyên); f ( số thực); s ( xâu ký tự)

y=2*x ; không hiện thị giá trị y

Home

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

5

Trang 6

3 : c¸c phÐp to¸n th«ng dông

3.1 C¸c phÐp to¸n th«ng dông

1) C¸c to¸n tö:

C¸c phÐp to¸n sè häc: + * / ^ ;

C¸c phÐp to¸n ma trËn vµ m¶ng: + − * / \ ; (.*) ; (.^) ; (./) ; (.\) ]

2) To¸n tö g¸n: =

3) C¸c hµm to¸n häc th«ng dông: Xem b¶ng 3.1

3.2 C¸c phÐp to¸n Logic

1) C¸c dÊu to¸n tö quan h : == ; ~= ; < ; <= ; > ; >= ệ

2) C¸c to¸n tö logic: and ( & ); or( | ); not( ~ ); xor

Home

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

Trang 7

3 : các phép toán thông dụng

Lượng giác

Toán thông dụng

1 sin(x) Hàm sin 1 abs(x) | x | trị tuyệt đối

2 cos(x) Hàm cos 2 sqrt(x) Căn bậc 2

3 tan(x) Hàm tg 3 log(x) logrit tự nhiên lnx

4 asin(x) Hàm ngược của sin 4 log10(x) loggarit cơ số 10

5 acos(x) Hàm ngược của cos 5 exp(x) e x

6 atan(x) Hàm ngược của tg 6 sign(x) Hàm dấu

7 sinh(x) Hàm sin hy pe bolic 7 round(x) Làm tròn số về số nguyên

8 cosh(x) Hàm cos hy pe bolic 8 rem(x) Phần dư của phép chia

9 tanh(x) Hàm tang hy pe bolic 9 fix(x) Xấp xỉ không

10 asinh(x) Hàm ngược của sin hy pe bolic 10 floor(x) Xấp xỉ âm vô cùng

11 acosh(x) Hàm ngược của cos hy pe bolic 11 ceil(x) Xấp xỉ dương vô cùng

12 atanh(x) Hàm ngượccủa tang hypebolic 12 real(x) Tính phần thực của số phức

13 imag(x) Tính phần ảo của số phức

14 angle(x) Tính góc của số phức

15 abs(X) Tính biên độ số phức

…………

Bảng 3.1. Các hàm toán học thông dụng

Home

2 sinh

x

x e

=

2 cosh

x

=

x x

x x

e e

e

e

+

=

tanh

x x

x x

e e

e e anh −−

+

=

cot

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

7

Trang 8

4 : các vòng lặp và điều khiển

4.1 Các lệnh vòng lặp

1) Vòng lặp xác định : for … end

for i = n1 : Dn : n2

……

for j = m1 : Dm : m2 < Công việc >

end

………

end

Lưu ý :

Nếu i, j dùng để làm chỉ số cho các biến, các hàm thì i, j phải là

các số nguyên dương khác 0 ( i> 0; j >0 )

Có thể dùng bươc biến thiên âm ( D < 0 ) để thực hiện xếp thứ

tự giảm dần của dãy số liệu

2) Vòng lặp không xác định : While … end

while <Điều kiện so sánh>

end

3) Thoát khỏi vòng lặp bằng lệnh break, erro

Home

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

Trang 9

4 : c¸c vßng lÆp vµ ®iÒu khiÓn

4.2 C¸c c©u lÖnh ®iÒu kiÖn

1) CÊu tróc lùa chän theo ®iÒu kiÖn if … else … end

if ®iÒu kiÖn 1

C«ng viÖc theo ®iÒu kiÖn 1

elseif ®iÒu kiÖn 2

C«ng viÖc theo ®iÒu kiÖn 2

elseif

………

else

C«ng viÖc kh«ng theo c¸c ®iÒu kiÖn trªn

end

2) CÊu tróc lùa chän theo gi¸ trÞ ®Çu vµo switch … case

Switch BiÓu_thøc_®Çu_vµo

case gi¸ trÞ 1

nhãm lÖnh 1

case gi¸ trÞ 2

nhãm lÖnh 2

……….

otherwise

nhãm lÖnh kh¸c

end

Home

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

9

Trang 10

5 : mảng và ma trận

5.1 Mảng một chiều ( Vec tơ)

1) Vec tơ hàng : V = [ x1 , x 2 , , x i , , x n ] n phần tử

2) Véc tơ cột : C= [ x 1 ; x 2 ; ; x i ; ; x n ]

3) Đổi vec tơ hàng thành cột: C = V‘ ( Dùng dấu nháy đơn) 4) Đọc phần tử thứ i : y = V(i);

5) Đọc số phần tử : N = length (V) 6) Giá trị lớn nhất, nhỏ nhất max (V); min (V) 7) Tìm phần tử : find ( Điều kiện tìm)

k = find ( V > a) k là chỉ số các phần tử có giá trị V( k ) > a

k = find ( V == max(V)) Tìm chỉ số phần tử có giá trị lớn nhất 8) Các phép toán vec tơ:

- Cộng, trừ hai véc tơ cùng kích thước: V = V1 + V2 ; V = V1 ã V2

- Nhân, chia hai véc tơ cùng kích thước: V = V1.*V2 ; V = V1./V2

- Nâng lên lũy thừa: P = V.^k 9) Tạo một vec tơ

- Gán trực tiếp

V = a : dX : b hoặc V = [ a : dX : b ] Các phần tử cách đề nhau

V = [ X 1 X 2 X i X n ] Các phần tử rời rạc

V = [ V1 V2 P ] V1, V2, P là các vec tơ hàng

C = [ C1 ; C2 ; C3 ] C1, C2, C3 là các vec tơ cột

Home

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

Trang 11

5 : mảng và ma trận

5.2 Các lệnh về Mảng và Ma trận

1) Nhập giá trị cho các phần tử của ma trân: A(i,j) = X 2) Xóa phần tử : A(i,j) = [ ] - Xóa phần tử A(i,j) A(: , j ) = [ ] − xóa di cột j của ma trận A

A(i , : ) = [ ] xóa di dòng i của ma trận A

3) Đọc các phần tử của ma trân A(m,n)

C = A(i,j) ; C = A( :, j); C = A( i, :); C = A( i, [ n1 : n2]); C=A(i, [ 3 4 6] )

4) Tìm kích thước ma trân:

[m, n] = size(A) A là một ma trận ; m số hàng ; n số cột

5) Tìm phần tử fìnd ( Điều kiện so sánh) 6) Tìm giá trị lớn nhất và nhỏ nhất: max(A) ; min(A)

Chú ý : Dấu hai chấm ( : ) đại diện cho tất cả các hàng hoạc các cột

Home

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

11

Trang 12

5 : mảng và ma trận

6) Các phép toán Mảng và Ma trận:

Các phép toán về mảng

C= A + B ; Ci,j = Ai,j + Bi,j ; A, B phải cùng kích thước

C = A B ; Ci,j = Ai,j Bi,j ; A, B phải cùng kích thước

C= A.*B ; Ci,j = Ai,jBi,j ; A, B phải cùng kích thước

C= A./B ; Ci,j = Ai,j/Bi,j ; A, B phải cùng kích thước

C= A.\B ; Ci,j = Ai,j/Bi,j ; A, B trái cùng kích thước

C= A.^p ; Ci,j = (Ai,j)^p ; p − hằng số

Các phép toán về ma trận

D= A + B; D= A B; Cộng / trừ: A, B phải cùng kích thước

D = A*B ; Nhân ma trận: Số cột B = Số hàng A ;

X = A/B ; Chia phải , như giải Ptr ( X*A= B )

X = A\B ; Chia trái , như giải Ptr (A*X = B )

D = det (A) Tính định thức ma trận vuông :

D = A’ Ma trận chuyển vị :

D = inv (A) Ma trận nghịch đảo :

sum (A) Tổng các cột

sum (A,2) Tổng các hàng

ứng dụng : Giải hệ phương trình đại số

AX = B ; Hệ nghiệm là: x = A\B (Số ẩn = Số Ptr)

AX = B ; Hệ nghiệm là : x = inv(A’*A)*A’*B (Số ẩn <= Số Ptr)

Home

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

Trang 13

6 : các lệnh về đa thức

Đa thức bậc n : y = anxn + an-1xn-1 + … + akxk + … + a2x2 + a1x + a0 ( 1 )

Véc tơ hàng hệ số: a = [ a n , a n-1 , … , a i , … , a 2 , a 1 , a 0 ] (2)

1) Nghiệm của đa thức: r = roots (a) r = [ x 1 ; x 2 ; … ; x i ; … ; x n ] Tìm đa thức từ hệ nghiệm y = poly (r)

2) Nhân đa thức : c = conv (a,b)

3) Cộng đa thức : d = a + b ; trong đó d i = a i + b i hoặc d = polyadd ( a, b)

4) Chia đa thức : [q, r] = deconv (a, b) ; r là phần dư

5) Đạo hàm đa thúc: h = polyder (a,x)

6) Tính giá trị đa thúc: y = polyva l (a,x)

7) Tìm hệ số hồi quy thực nghiệm: p = polyfit ( x, y, n)

x = [ x 1 x 2 … x i … x m ] m là số thí nghiệm

y = [ y 1 y 2 … y i … y m ] n là bậc củ a đa thức hồi quy y = f(x)

Chú ý: - Véc tơ hệ số phải sắp xếp theo thứ tự giảm dần từ a n đến a 0

Home

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

13

Trang 14

7 : các lệnh về hàm symbolic

Khai báo biến: x = sym ( ‘x’ ); y = sym (‘y’) hoặc syms x y k t syms x y k t : real

Home

collect(E) Thu gọn các hệ số

expand(E) Khai triển biểu thức

factor(E) Phân tích thành thừa số

simlify(E) Đơn giản (rút gọn) biểu thức

pretty(E) Hiện thi theo dạng toán học thong thường

[num den]=numden(E) Tử số (num) và mẫu số (den) của hàm hữu tỷ

sub(E, old, new) Thay thế biến số old → new

double(E) Tính giá trị hàm Symbolic

poly2sym(p) Chuyển vec tơ hế số p thành đa thức Symbolic

sym2poly(E) Chuyển biểu thức E thành vec tơ các hệ số

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

Trang 15

7 : các lệnh về hàm symbolic

Các hàm toán học trong symbolic Home

solve(E) Giải phương trình đại số, siêu việt

solve( E1 , E2) Giải hệ phương trình

int(E, a, b) Tích phân giới hạn trong khoảng [ a b ]

dsolve(Dy) Giải phương trình vi phân thường

dsolve(Dy, y0) Giải phương trình vi phân với điều kiện đầu

dsolve(Dx, Dy, x0, y0) Giải hệ phương trình vi phân cấp 1

fminbnd( ‘function’, x1, x2) Tìm cực tiểu hàm 1 biến trong khoảng [x1 x2]

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

15

Trang 16

8 : các lệnh Văn bản ( xâu ký tự )

Khai báo xâu ký tự : S = xâu ký tự ( để giữa hai dấu nháy)

S có thể là một vec tơ hàng, cột hoặc một mảng 2 chiều

Home

disp( xâu ký tự ) ‘ ’ Hiển thị xâu ký tự trên màn hình

fprintf( xâu ký tự ) ‘ ’ Viết dạng xâu ký tự ra file hoặc ra màn hình

int2str(X) Chuyển số nguyên x sang xâu ký tự

mat2str(A) Chuyển ma trận số A thành xâu ký tự các số

num2str(X) Chuyển số x thành xâu ký tự

str2num (S) Chuyển xâu ký tự sang số

strcat( S1, S2, ) Nối các xâu thành véc tơ hàng

strvcat( S1, S2, ) Nối các xâu thành vec tơ cột

length (S) Chiều dài xâu ký tự

size(M) Kích thước của một ma trận

Lưu ý: Có thể sử dụng một số tính chất của vec tơ, mảng nhiều chiều để tạo

ra một xâu ký tự mới từ các xâu ký tự thành phần:

Ví dụ: S = [ S1 S2 ‘ ABC’ S3 ]

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

Trang 17

9 : các lệnh Về đồ họa

Home

plot ( x, y) Vẽ một điểm; (x, y) là tọa độ một điểm

plot ( [ x1 x2] , [ y1 y2] ) Vẽ đoạn thẳng từ điểm (x1,y1) đến điểm (x2,y2)

plot (x,y, kiểu_đường,màu) Vẽ một đường; x, y – hai vec tơ số

plot (x, y1, x, y2, ) Vẽ nhiều đường trên cùng hệ tọa độ

plot ( M) Vẽ một hoặc nhiều đường; M là một ma trận

plot3 ( x , y ,z) Đường cong không gian

[X Y] = meshgrid (x,y) Tạo ra một mạng số liệu [X, Y] từ các số liệu x, y

mesh (X, Y, Z ) Mặt cong trong không gian Z= f(X,Y)

contour(X,Y,Z) Đường đồng mức

ezplot( f(x) , x, y)‘ ’ Vẽ đồ thị với hàm Symbolic

fplot( f(x) , [ xmin xmax])‘ ’ Vẽ đồ thị với hàm Symbolic

polar ( goc, bán kính) Vẽ đồ thị tọa độ cực

subplot( m, n, p ) Vẽ nhiều đồ thị trên một cửa sổ (m, n số hàng/cột) p là thứ tự đồ thị

Loglog(x,y) Đồ thị có tỉ lệ trục dạng logarit

Semilogx(x,y) Chỉ có trục x dùng tỉ lệ logarit

Semilogy(x,y) Chỉ có trục y dùng tỉ lệ logarit

9.1 Các lệnh về vẽ đồ thị

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

17

Trang 18

9 : các lệnh Về đồ họa

Home

figure( k ) Gán chỉ số cho cửa sổ đồ họa thứ k

hold on ; hold off Mở ( tắt) chế độ vẽ nhiều đồ thị trên một hệ tọa độ

grid on ; grid off Hiện thị ( ẩn ) lưới đồ thị

axis ([xmin xmax ymin ymax]) Gán giới hạn các trục đồ thị

xlabel( Nhãn trục x) Viết nhãn trục x

ylabel( Nhãn trục y); zlabel( Nhãn trục z)

title ( Tiêu đề đồ thị ) Tiêu đề đồ thị

legend ( X1 , X2 , )‘ ‘ ‘ ’ … Ký hiệu các đường đồ thị

text (x, y, Xâu ký tự ) Viết xâu ký tự tạ tọa độ (x, y)

gettext ( Xâu ký tự )‘ ‘ Hiện xâu ký tự tại vị trí nhấn chỏ chuột trên đồ thị

( hay sử dụng num2str để chuyển số thành chữ)

9 2 Trục tọa độ, Tiêu đề, Chú giải đồ thị

9 3 Hiệu chỉnh đồ thị

Trên cửa sổ đồ họa có nhiều lệnh cho phép trục tiếp hiệu chỉnh lại đồ thị:

2

1

3

4

5

6

7

8

9

10

12

13

14

15

16

17

18

19

20

11

Ngày đăng: 28/09/2013, 14:04

HÌNH ẢNH LIÊN QUAN

Bảng 3.1.  Các hàm toán học thông dụng - ứng dụng matlab trong chuyên ngành
Bảng 3.1. Các hàm toán học thông dụng (Trang 7)

TỪ KHÓA LIÊN QUAN

w