1. Trang chủ
  2. » Công Nghệ Thông Tin

MatLab cơ bản

129 368 0
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 đề Introduction To Matlab
Trường học Viện Công Nghệ Thông Tin
Chuyên ngành Kỹ Thuật Máy Tính
Thể loại Bài Giảng
Thành phố Hà Nội
Định dạng
Số trang 129
Dung lượng 1,11 MB

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

Nội dung

Tài liệu MATLAB

Trang 1

I.1 Giới thiệu về phần mềm MatLab

-Là sản phẩm của công ty Phần mềm Matworks

-Có thể chạy trên nhiều chủng loại máy tính khác nhau

-Dùng để giải các bài toán khoa học kỹ thuật

Phần I: Nhập môn ngôn ngữ MatLab

Đặc điểm:dễ sử dụng, các thủ tục trong và ngoàiluôn được hoàn thiện phát triển Có các thủ tục

đồ hoạ rất mạnh dễ dàng kết hợp với quá trìnhtính toán, dễ phát triển cho các ứng dụng khoahọc kỹ thuật Dễ lập trình, chương trinh ngắngọn có hai chế độ làm việc là hội thoại và lậptrình

Trang 2

Khởi động MatLab

-Kích chuột vào biểu tượng MatLab

- Trên cửa sổ lệnh có các menu: File, Edit, Tool, View, Help

và một số nút chức năng Có một cửa sổ lệnh đưa ra kết quảbăng số nhưng có nhiều cửa sổ đồ hoạ

Trang 4

sẽ đưa ra cửa sổ đồ hoạ

Ví Dụ: ezplot(‘sin(x)/x’,[0,10])

Trang 5

-Trên một dòng chúng ta có thể nhập nhiều lệnh các lệnh cách nhau bằng dấu ‟,‘ hoặc ‟;

Nếu viết >>x=2+3; y=x+1, z=y+x;

Kết quả của Z sẽ không được in ra

Trang 6

Một lệnh của MatLab có thể viết trên nhiều hàng

Trong file văn bản chứa các lệnh hoặc hàm của MatLab Để

mở một file văn bản làm như sau:

Trang 8

Ma trận là kiểu dữ liệu cơ bản trong MatLab

»

Trang 11

-Các biến trong MatLab

-Để lưu giữ các hằng trong quá trình tính toán phải gán nó vàocác biến Biến là nơi chứa các Hằng, các biến các biểu thứctrong MatLab Ở chế độ chương trình dùng dấu % để viết lờichú thích

-Tên biến của MatLab bắt đầu bằng chữ cái tiếp theo tối đa là

30 ký tự chữ cái chữ số hoặc dấu gạch chân

-Phân biệt chữ hoa và chữ thường

-MatLab có một số tên biến được định nghĩa sẵn

eps, pi, inf,…:

pi=3.1416; eps=2.2204e-016; inf=vô cùng…

Trang 12

Yêu cầu việc đặt tên biến Không trùng với từ khoá, tên hàm, tên các biến có sẵn

Để xoá đi tên biến không dùng nữa thì dùng lệnh

>>clear tenbien1 tenbien2

Trang 14

Khi cộng trừ các ma trận

thì các ma trận phải có

cùng kích thước Trường

hợp đặc biệt một trong

hai ma trận là vô hướng,

MatLab sẽ hiểu vô hướng

Trang 15

Cij= Aik*Bkj (K chạy từ 1 …n1)

Phép nhân ma trận không giao hoán

Trang 16

» x=A\B

x = 4.0000 -2.4000 0.6000

B =

1 2 3

» A*x ans = 1.0000 2.0000 3.0000

»

Trang 17

X1 X2 X3

=

*

Trang 18

3 -2 -1 1

Trang 19

Để tiện lợi trong quá trình tính toán các biểu thức toán học

MatLab mở rộng thêm các phép tính nhân chia luỹ thừa theo các phần tử tương ứng của 2 ma trận và được ký hiệu là:

.*, ./, .\, .^

A={aij} ; B={Bij}

C=A.*B => cij=aij*bij D=A./B => dij=aij/bij E=A.\B=> Eij=aij.\bij F=A.^B=> Fij=aij^bij

Các phép tính nhân chia luỹ thừa theo các phần tử tương ứng

Trang 21

sin - Sine.

sinh - Hyperbolic sine.

asin - Inverse sine.

asinh - Inverse hyperbolic sine.

cos - Cosine.

cosh - Hyperbolic cosine.

acos - Inverse cosine.

acosh - Inverse hyperbolic cosine.

tan - Tangent.

tanh - Hyperbolic tangent.

atan - Inverse tangent.

.

.

(để Tham khảo đầy đủ các hàm gõ lệnh help elfun )

Các hàm toán học sơ cấp trong MatLab

Trang 22

một ma trận với những thành phần của nó sẽ tương ứng vớihàm trên từng thành phần của ma trận đối số.

Trang 23

-Kiểu dữ liệu logic đóng một vai trò quan trọng trong ngôn

ngữ lập trình, song không có kiểu dữ liệu riêng để Mô tả các đại lượng Logic MatLab dùng các kiểu số để mô tả kiểu này

C=A o B ; {cij}={aij o bij}

Các phép toán Logic trong MatLab

Trang 25

0 1 0

1 0 1

Trang 27

» n=str2num(s)

n = 10

>>n1=n+1 n1 =

11

Trang 28

» s2='hanoi' s2 =

hanoi

» str2mat(s1,s2) ans =

haiduong hanoi

Để tìm hiểu thì gõ lệnh help strfun

Trang 29

Với ma trận chúng ta có thể xử lý trên các phần tử hoặc các

khối hoặc toàn bộ ma trận

3 6 9

4 5

7 8

Trang 31

Thêm hàng hoặc cột vào ma trận

Trang 34

Khởi tạo các ma trận có các giá trị đặc biệt

1 1 1

1 1 1

Trang 35

0.9501 0.6068 0.8913 0.2311 0.4860 0.7621

randn(2,3) ans =

-0.4326 0.1253 -1.1465 -1.6656 0.2877 1.1909

rand n (m,n) tạo ra ma trận

m hàng n cột (tuân theo

quy luật phân bố chuẩn kỳ

vọng =0, phương sai=1)

Trang 36

Chú ý muốn tạo ra các ma trận đặc biệt có

kích thước bằng kích thước của ma trận A

Để biết kích thước của ma trận A thì dùng lệnh: [m,n]=size(A)

Trang 37

Để tạo các véc tơ hàng hoặc cột

zeros(m,1) ones(m,1)

ones(5,1) ans =

1 1 1 1 1

» ones(1,4) ans =

Trang 40

X=A\B

Trang 41

Bai tap

Tao mot ma tran a co cac

phan tu duong va am

Viet chuong trinh tinh tong

cac phan tu am, tong cac

phan tu duong

Trang 42

lại, có những nhóm lệnh chỉ được thực hiện khi thoả mãn những điều kiện nhất định khi đó ta phải sử dụng cấu trúc lệnh điều khiển

Lệnh rẽ nhánh if

if <đk1>

Nhóm lệnh 1 elseif <đk2>

nhóm lệnh 2 elseif<đkn>

nhóm lệnh n else

nhóm lệnh n+1

end

%bai_if.m a=[1 2 3; 3 4 6; 7 5 2];

b=all(a)

if (b(1)==0) disp 'cot 1 co it nhat 1 phan tu =0'

else

disp 'cot 1 khong co phan tu =0'

end

Trang 43

Cấu trúc lệnh điều khiển switch

switch a case 10 disp 'hoc tot' case 9

disp 'hoc tot' case 8

disp 'hoc kha' case 7

disp 'hoc kha' case 6

disp 'trung binh' otherwise

disp 'hoc kem' end

end

Trang 46

Nhập giá trị từ bàn phím

Biến=input(„vào giá trị của biến‟)

Biến=input(„vào giá trị của biến‟,‟s‟) vào xâu ký tư

Trang 47

Ghi các biến ra file bằng lệnh save

Save <filename> <danh sách biến>

Tên file không cần phần mở rộng nó tự động chọn là mat Đây là một file nhị phân nên không đọc được bằng bộ soạn thảo danh sách biến là tên các biến được đặt cách nhau bởi dấu cách

Ví dụ

Save solieu x y z

Nhập các biến số liệu từ file bằng lệnh load

Load <filename> <danh sách biến>

để biết chi tiết dùng help iofun

Trang 48

» eval(x) ans = 4.4142

» x=1

x = 1

» y=feval('sin',x)

y = 0.8415

Trang 49

echo là on thì trước khi thực hiện lệnh trong đoạn chương trình lệnh đó được in ra màn hình Nếu off thì lệnh không được in ra màn hình.

Các hàm người dùng định nghĩa

Cách viết các hàm mới (do người dùng định nghĩa )

-viết ngay trong đoạn chương trình

-Viết ở M_file

Hàm toán tử dùng để tính một biểu thức toán học đơn giản:

G=inline(<xâu ký tự biểu thức >,<ký tự đối số 1>,<ký tự đối số 2>,…)

» z=inline('(sin(x)+y)./(x.^2+y.^2)','x','y')

z = Inline function:

z(x,y) = (sin(x)+y)./(x.^2+y.^2)

» z(1,2) ans = 0.5683

Trang 50

function [<danh sách đối số ra>]=<ten hàm>(<danh sách đối số vào>)

<lời chú giải>

<Thân hàm>

Nên đặt tên hàm trùng với tên M_file

Nếu tên hàm khác tên M-file thì MatLab lấy tên file làm tên hàm.

function [trungbinh] = hamgoiham(x)

%T ính trung bình cộng

n = length(x);

trungbinh = TTB(x,n);

function trungbinh = TTB(x,n) trungbinh = sum(x)/n;

Trang 51

>>giaithua(6)

Trang 53

x0 = x;

y0 = y;

End

Trang 54

Các cửa sổ đồ hoạ

MatLab có thể tồn tại nhiều cửa sổ đồ hoạ đồng thời, mỗi cửa sổ đồ hoạ được xác định bởi 1 số Trên một cửa sổ đồ hoạ ta có thể vẽ nhiều hình con

Trang 55

>> plot('sin(x)',[0,3])

>>subplot(2,1,1)

>> ezplot('tan(x)',[0,3])

Trang 56

Vẽ đồ thị bằng hàm plot

Hàm plot cho phép vẽ đồ thị với dữ liệu được xác định trước

Plot(x,y,<k>) ở đây k có thể là kiểu điểm kiểu đường hoặc kiểu màu (là một xâu ký) x=[0:0.1:1]

y=sin(x)

plot(x, y, ‟r+‟)

Kiểu đường liền nét là dấu’-’,đứt net là dấu ‘- -’, chấm chấm là ‘:’, đường gạch chấm ‘-.’, hình tròn rỗng là ‘o’, …

Kiểu mầu là ‘r’, ‘b’,’w’….

Trang 58

axis off, axis image … tham khảo

Đầy đủ vào help axis

Trang 62

0 1

2

-0.5

0

0.5

Trang 65

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -2

Trang 66

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -2

Trang 68

2 2

Trang 71

sin(x+cos(x))=0

Trang 74

Để xác định toạ độ của các điểm trên đồ thị

Trang 79

Tô màu một đa giác

Trang 81

Vẽ các véc tơ ở tạo độ x=1 n, y=1 m; [m,n]=size(x)=size(y)

Hàm quiver(x,y)

y=randn(10)

y=randn(10)

quiver(x,y)

Trang 83

Đa giác trong không gian

Trang 84

vẽ các mặt cong trong không gian

Để vẽ các mặt cong trong không gian ta phải xác định được toạ độ của các điểm trên mặt (xij, yij, zij) i=1 m, j=1 n toạ độ của cúng được lưu giữ

trong các ma trận có kích thước mn Sau khi xác định được toạ độ chúng ta

sẽ dùng các hàm mesh,surf, pcolar hoặc contour, contour3 để vẽ

Z=(-20x 2 +x)/2+(-15y 2 +y)/2 với (x,y) trong khoảng [-4,4]

Trang 85

z=(-20*cos(x)+y)./2+(5*y.^2+sin(y))./2

Trang 87

Hàm ẩn

x 3 +y 3 -4xy=0

Vẽ đồ thị sự phụ thuộ y vào x

Trang 89

figure(1),pcolor(x,y,z), colormap, gray, shading interp

figure(2),surf(x,y,z)

z=x.*exp(-x.^2-y.^2) z=x.*exp(-x.^2-y.^2)

Trang 90

contour(x,y,eval(f2),[0,0],'b:'), hold off

Giải phương hệ phương

trình

x^3+y^3-4*x*y=0

x*y-1/4=0

Trang 92

[x,t]=meshgrid(linspace(0,2*pi,100),linspac e(0,2*pi,100))

Trang 94

Cau truc vat lieu

Trang 97

Bài toán nội suy và xấp xỉ hàm

Mở đầu: trong thực tế nhiều trường hợp chúng ta phải giải các bài toán có liên quan tới một hàm số biểu diễn sự phụ thuộc giữa đại lượng x và y nhưng biểu thức giải tích của hàm số này ta không biết mà chỉ biết một số hữu hạn các cặp giá trị được cho dưới dạng bảng

xi x1 x2 x3 x4 x5 x6 x7

yi y1 y2 y3 y4 y5 y6 y7

Trong trường hợp phải tính giá trị của y tại các điểm x

không có trong bảng thì người ta phải căn cứ vào các

thông tin biểu diễn sự phụ thụôc này để tính giá trị của y

vì thế bài toán được gọi là bài toán nội suy

Trang 98

Nội suy và xấp xỉ hàm bằng đa thức đại số

Để xác định hệ số của đa thức nội suy trong

Matlab đã có hàm polyfit:

Polyfit(xi,yi,n)

ở đây n là bậc của đa thức

để tính giá trị của đa thức nội suy tại điểm x thì chúng ta dùng hàm polyval.

Polyval(polyfit(xi,yi,n),x)

Trang 100

n=8

Trang 101

n=6

Trang 102

n=4

Trang 103

từ những ví dụ trên chưa đảm bảo đa thức đại số là hàm xấp xỉ tốt với hàm y=f(x) bất

kỳ và bậc đa thức cao cũng chưa đảm bảo cho xấp xỉ tốt hơn.

Trang 104

Đa thức bậc 8

Trang 105

Đa thức bậc 6

Trang 106

để cho xấp xỉ đa thức phù hợp với hàm gốc người

ta có thể đưa ra hai giải pháp sau đây

1 Thay đổi vị trí của các mốc nội suy xi sao cho

Trang 111

Một số dạng nội suy từng đoạn Nội suy theo điểm gần nhất

Điểm x nằm giữa xi và xi+1thì

ynôi suy=yi nếu xi-x<xi+1-x

ynôi suy=yi+1 nếu xi-x>xi+1-x

Nội suy theo đường gấp khúc

Nếu chúng ta cần tính giá trị nội suy của hàm ta sẽ tính tung độ của các điểm nằm trên đường gấp

khúc đó

về mặt toán học: các đa thức nội suy từng đoạn này

là các đa thức bậc 1 được xác định theo công thức

X thuộc [x i ,x i+1 ]; y=y i +((y i+1 -y i )/(x i+1 -x i ) )(x-x i )

Trang 112

Nội suy theo các đa thức bậc 3 ghép trơn hay còn gọi là nội suy spline

Trang 113

y= interp1(xi,yi,x, phương pháp)

'n' nội suy gần nhất

'l' nội suy đường gấp khúc

's' nội suy đa thức bậc 3 ghép trơn

'c' nội suy đa thức bậc 3

Trang 116

'spline' for cubic spline

interpolation

'spline' for cubic interpolation

Trang 117

Nội suy và xấp xỉ hàm bằng đa thức suy rộng

Đa thức suy rộng là một hàm toán học được xác định bởi một tập hợp các hàm cơ sở

xác định và các hệ số tương ứng với các

hàm trong tập hợp cơ sở này Và đa thức

suy rộng được biểu diễn qua tổ hợp tuyến tính của các hàm cơ sở

giả sử chúng ta có tập hợp các hàm

φ1(x), φ2(x), … φn(x)

φ(x) gọi là đa thức suy rộng

Như vậy để xác định một đa thức suy rộng

trên hệ hàm cơ sở φi(x)

Trang 118

giả sử có hàm fx có giá trị cho trong bảng sau

xi x1 y1 x3 x4 x5 x6 x7 xm

yi y1 y2 y3 y4 y5 y6 y7 ym

Chúng ta sẽ nội suy hàm f(x) bằng đa thức suy rộng dựa trên

hệ hàm cơ sở φ1(x).

H àm suy rộng phải đảm bảo

f(xi)=yi với i=1 đến n

Trang 119

hệ phương trình gồm m phương trình, n ẩn số a=[a1, a2, … an] là các ẩn phải tìm

a=A\y

Trang 120

Ví dụ cho dãy số liệu

xi=0:0.5:10;

yi=[2.3447,1.6068,0.8672,-0.1796,-0.4890,-0.9305, -0.9184, 0.3169,1.5604,2.3635,3.0298,3.1946,2.7402,2.7716,1.6578 , 0.5344,0.2113,0.0618,-0.0373, 0.7939,1.6059];

1.Tìm hàm nội suy f(x) của dãy số liệu trên biết rằng f(x) có dạng sau

f(x)=a +bx + cos(x) + dsin(x)

2.vẽ đồ thị của dẫy số và của hàm nội suy

Vậy

hệ hàm cơ sở là

φ(x)=[1, x,cos(x),sin(x) ]

tìm các hệ số a, b,c,d

Trang 121

Chương trình như sau

p=feval(fn,x) y=p*a

function p=fvidu(x)

x=x(:)

p=[ones(size(x)),x,cos(x),sin(x)]

Trang 122

%chương trình chính

xi=0:0.5:10;

yi=[2.3447,1.6068,0.8672,-0.1796,-0.4890,-0.9305, -0.9184,

0.3169,1.5604,2.3635,3.0298,3.1946,2.7402,2.771 6,

Trang 124

Phép nội suy đa thức và đa thức suy rộng còn được gọi là phép nội suy tuyến tính bởi vì hàm nội suy có thể được biểu diễn dưới dạng tổ hợp tuyến tính của các hệ số cần xác định và việc xác địn các hệ số này dẫn đến việc tìm nghiệm hoặc tựa nghiệm của hệ phương trình đại số tuyến tính Trong trường hợp hàm nội suy không phụ thuộc tuyến tính vào các tham số cần tìm thì chúng ta phải tìm nghiệm hoặc tựa nghiệm của hệ phương trình phi tuyến Trong trường hợp này người ta gọi bài toán nội suy

và xấp xỉ hàm là nội suy và xấp xỉ hàm phi tuyến Nói trung việc giả các phương trình phi tuyến rất phức tạp và cần phải biết giá trị gần đúng ban đầu của chúng Điểm khó nhất của việc giải hệ phương trình phi tuyến trong b ài toán nội suy và xấp xỉ phi tuyến là phải biết giá trị gần đúng ban đầu Trong trường hợp số ẩn số nhiều hơn 2 Trong một số trường hợp đặc biệt chúng ta có thể tuyến tính hoá được biểu thức giải tích của hàm nội suy thì việc giải bài toán trở nên đơn giản vì việc xác định các tham số dẫn đến việc giả các hệ phương trình đại số tuyến tính

Trang 125

Một số trường hợp điển hình, hàm nội suy có thể tuyến tính hoá

Trang 126

f(x)= a1+a2x+a3.cos(x+a4)

f(x)=a1+a2x+a3[cos(x).cos(a4)-sin(x)sin(a4)]

f(x)=a1+a2x+a3.cos(x).cos(a4)-a3.sin(x)sin(a4)

A1=a1, A2=a2, A3=a3.cos(a4), A4=-a3 sin(a4)

f(x)=A1+A2+A3cos(x)+A4sin(x)

Tìm A1, A2, A3 ,A4 => a1, a2, a3, a4

Trang 127

f(x)=1/(a1+a2.cos(x)+ a3sin(x) )

Trang 128

The End

Ôn tập tất cả các phần lý thuyết đã học, các bài tập đã ra

Trang 129

Tính gần đúng đạo hàm và tích phân hàm 1 biến

Tính đạo hàm

nhiều bài toán thực tế chúng ta phải tính đạohàm của hàm một biến Trong nhiều trườnghợp chúng ta không biết được biểu thức giảitích hoặc biểu thức giải tích quá phức tạp, côngthức đạo hàm rất dài và phức tạp thì người tathường dùng công thức gần đúng tính đạo hàm

Ngày đăng: 13/12/2013, 21:03

Xem thêm

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w