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

GIÁO TRÌNH MATLAB (phụ lục lệnh và hàm)

8 203 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 161,31 KB

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

Nội dung

POLYVALM POLYVALM Ước lượng đa thức ma trận Nếu V là vectơ có các phần tử là các hệ số của đa thức, thì POLYVALMV,X là giá trị của đa thức tại đối số ma trận X.. POLYDER POLYDER Đạo hàm

Trang 1

POLYVALM

POLYVALM Ước lượng đa thức ma trận

Nếu V là vectơ có các phần tử là các hệ số của đa thức, thì POLYVALM(V,X) là giá trị của

đa thức tại đối số ma trận X Xem POLYVAL với cách tính đa thức trong trường hợp đối số thường hoặc mảng

RESIDUE

RESIDUE Tính khai triển từng phần hay thặng dư

[R,P,K] = RESIDUE(B,A) tìm thặng dư, cực và hướng của khai triển từng phần của chia đa thức, B(s) và A(s) Nếu không có nghiệm kép,

B(s) R(1) R(2) R(n)

= - + - + + - + K(s)

A(s) s - P(1) s - P(2) s - P(n)

Các vectơ B và A là các hệ số của các đa thức theo lũy thừa thoái của s Thặng dư trả về trong vectơ cột R, các vị trí cực trong vectơ cột

P, và các hướng trong vectơ dòng K Số các cực là n = length(A)-1 = length(R) = length(P)

Vectơ hệ số hướng là rỗng nếu length(B) < length(A); ngược lại thì

length(K) = length(B)-length(A)+1

Nếu P(j) = = P(j+m-1) là một cực của multplicity m, thì khai triển bao gồm các hạng tử thuộc dạng

R(j) R(j+1) R(j+m-1)

_ + + + -

s - P(j) (s - P(j))^2 (s - P(j))^m

[B,A] = RESIDUE(R,P,K), với 3 đối số nhập và 2 đối số xuất, chuyển khai triển phân số từng phần thành các đa thức với các hệ số trong B và A

Khuyến cáo: Về mặt số, khai triển phân số các

đa thức là biểu hiện của một bài toán yếu Nếu đa thức thức mẫu, A(s), gần đa thức có nghiệm bội, thì các thay đổi nhỏ trong số liệu, kể cả sai số, có thể làm thay đổi lớn trong các cực và thặng dư kết quả Các công thức của bài toán làm cho việc dùng cách biểu diễn cực trống hoặc 0 là thích hợp hơn

POLYFIT

POLYFIT Khớp đường cong đa thức

POLYFIT(x,y,n) tìm các hệ số của đa thức p(x) bậc

n để khớp số liệu, p(x(i)) ~= y(i), theo phương pháp bình phương bé nhất

[p,S] = POLYFIT(x,y,n) trả về các hệ số đa thức

Trang 2

hằng, thì POLYVAL sẽ cho ra các giới hạn sai số chứa ít nhất 50% của dự đoán

Trang 3

POLYDER

POLYDER Đạo hàm đa thức

POLYDER(P) trả về đạo hàm của đa thức có các hệ số là các phần tử của vectơ P POLYDER(A,B) trả về đạo hàm của đa thức A*B [Q,D] = POLYDER(B,A) trả về đạo hàm của đa thức thương B/A, biểu diễn thành Q/D

CONV

Tích chập và nhân đa thức

C = CONV(A, B) tích chập các vectơ A và B Vectơ kết quả có độ dài LENGTH(A)+LENGTH(B)-1 Nếu A và B là các vectơ là các hệ số của đa thức, thì tích chập chúng tương đương nhân hai đa thức

DECONV

Tách chập và chia đa thức

[Q,R] = DECONV(B,A) tách chập các A ra B Kết quả trả về trong vectơ Q và phần dư trong vectơ R để

B = conv(Q,A) + R

Nếu A và B là các vectơ là các hệ số của đa thức, thì tách chập tương đương với chia đa thức Kết quả chí B cho A được thương Q và dư R

Nội suy số liệu

INTERP1

INTERP1 nội suy số liệu 1 chiều (tra cứu bảng)

YI = INTERP1(X,Y,XI) trả về vectơ YI chứa các phần tử tương ứng với các phần tử trong XI và xác định bởi phép nội suy bên trong các vectơ X và Y

Phép nội suy cùng thao tác như " tra cứu bảng

" Mô tả trong các số hạng " tra cứu bảng ",

"bảng" là [X,Y] và INTERP1 " các tra cứu" là các phần tử của XI trong X, và, dựa vào các vị trí của chúng, các giá trị trả về YI nội suy bên trong các phần tử của Y

INTERP1 thực hiện xuất nhiều giá trị tra cứu bảng nếu Y là ma trận Nếu Y là ma trận có length(X) dòng, và N cột, thì INTERP1 trả về ma trận YI cỡ length(XI)xN chứa nhiều kết quả xuất của tra cứu bảng

Ngầm định, INTERP1 dùng nội suy tuyến tính

YI = INTERP1(X,Y,XI,'method') chỉ định các phương pháp khác

Các phương pháp có thể là:

'linear' - nội suy tuyến tính

'spline' - nội suy spline lập phương

'cubic' - nội suy lập phương

Tất cả các phương pháp nội suy đòi hỏi X phải là đơn điệu Phương pháp lập phương 'cubic' cũng đòi hỏi các điểm trong X phải cách đều

Trang 4

x = 0:10; y = sin(x); xi = 0:.25:10; yi =

interp1(x,y,xi); plot(x,y,'o',xi,yi)

INTERP2

INTERP2 nội suy số liệu 2 chiều (tra cứu bảng)

ZI = INTERP2(X,Y,Z,XI,YI) trả về ma trận ZI chứa

các phần tử tương ứng với các phần tử của XI

và YI và xác định bằng phép nội suy bên trong

hàm 2 chiều mô tả bởi các ma trận X, Y, và Z

Các giá trị bên ngoài miền trả về NaN X có

thể là một vectơ dòng, trong trường hợp này

được giả thiết áp dụng vào các cột của Z

Tương tự, Y có thể là vectơ cột và các phần tử

của nó được giả thiết áp dụng qua các dòng

của Z

Phép nội suy cùng thao tác như "table lookup" Mô

tả trong các số hạng " tra cứu bảng ", "bảng"

là TAB = [NaN,Y; X,Z] và INTERP2 "các tra cứu "

là các phần tử của XI trong X, YI trong Y, và,

dựa vào vị trí của chúng, các giá trị trả về ZI

nội suy bên trong các phần tử của Z

Ngầm định, INTERP2 dùng phép nội suy song tuyến

tính

ZI = INTERP2(X,Y,Z,XI,YI,'method') chỉ định phương

pháp khác Các phương pháp có thể là:

'linear' or 'bilinear' - nội suy song tuyến tính

'cubic' or 'bicubic' - nội suy song lập phương

'nearest' - nội suy cận gần nhất

Tất cả các phép nội suy đều đòi hỏi X và Y

là đơn điệu và lưới vuông (nếu chúng được tạo

ra bằng cách dùng MESHGRID) Khoảng cách biến

đổi được xử lý bằng ánh xạ các giá trị đã cho

trong X,Y,XI, và YI vào một miền giá trị cách

đều trước khi nội suy

INTERPFT

INTERPFT Nội suy 1 chiều bằng cách dùng phương

pháp FFT (biến đổi Fourier nhanh)

Y = INTERPFT(X,N) trả về vectơ Y độ dài N nhận

được bằng cách nội suy trong biển đổi Fourier

của X Giả sử x(t) là hàm tuần hoàn theo t

với chu kỳ p, tạo mẫu tai các điểm cách đều,

X(i) = x(T(i)) với T(i) = (i-1)*p/M, i = 1:M, M =

length(X) Rồi y(t) là một hàm tuần hoàn khác

cùng chu kỳ và Y(j) = y(T(j)) với T(j) = (j-1)*p/N,

j = 1:N, N = length(Y) Nếu N là một bội nguyên

của M, thì Y(1:N/M:N) = X

Nếu X là một ma trận, phép nội suy được thực

hiện theo từng cột

INTERPFT, không tham số, là một chương trình mẫu

Trang 5

GRIDDATA

GRIDDATA Lưới dữ liệu

ZI = GRIDDATA(X,Y,Z,XI,YI) trả về ma trận ZI chứa

các phần tử tương ứng với các phần tử của các

ma trận XI và YI, và được xác định bằng phép

nội suy bên trong hàm 2 chiều mô tả bởi các vectơ

(X,Y,Z ) thông thường là không đồng bộ XI có

thể là vectơ dòng, trong trường hợp này nó chỉ

định một ma trận với các cột hằng Tương tự, YI

có thể là vectơ cột và nó chỉ định một ma trận

với các dòng

[XI,YI,ZI] = GRIDDATA(X,Y,Z,XI,YI) trả về XI và YI

tạo nên cách này, đó là giống các ma trận trả

về bởi MESHGRID GRIDDATA dùng phương pháp khoảng

cách đảo

Nội suy Spline

SPLINE

Phép nội suy số liệu spline lập phương

Các vectơ số liệu cho trước X và Y, và một vectơ

hoành độ mới XI, hàm YI = SPLINE(X,Y,XI) dùng

phép nội suy spline lập phương để tìm vectơ YI

tương ứng với XI Đây là một ví dụ để phat sinh

đường cong hình sin thô, rồi nội suy trên một

hoành độ tốt hơn:

x = 0:10; y = sin(x); xi = 0:.25:10; yi =

spline(x,y,xi); plot(x,y,'o',xi,yi)

PP = spline(x,y) trả về dạng-pp của phép nội suy

spline lập phương, để sau đó dùng với ppval, v.v

PPVAL

Ước lượng đa thức từng mảnh

v = ppval(pp,xx) trả về giá trị pp của hàm pp

tại xx

Hàm về xâu chữ

STRINGS

STRINGS Các chuỗi ký tự trong MATLAB

X = 'Any Ch' là một vectơ có các thành phần của

nó là mã ASCII của các ký tự Độ dài của X

là số ký tự Một dấu nháy trong chuỗi được

biểu hiện bằng 2 dấu nháy

X = REAL(X) đặt vectơ vào mã ASCII dạng thập phân

X = SETSTR(X) đặt ngược lại một chuỗi ISSTR(X)

kiểm tra X là một biến chuỗi

Vào lệnh "help strfun" cho danh sách các hàm xử

lý chuỗi

Trang 6

ABS(X) là giá trị tuyệt đối của các phần tử của X Nếu X phức thì ABS(X) là môđun của các phần tử của X Nếu S là biến chuỗi MATLAB thì ABS(S) trả về các giá trị số ASCII thập phân của các ký tự trong chuỗi Không thay đỗi biểu hiện bên trong mà chỉ thay đổi cách in ra

SETSTR

Xem các giá trị số là chuỗi

X = SETSTR(X) có thể dùng cho các vectơ chứa các số nguyên từ 0 đến 255 để biểu hiện mã ASCII cho văn bản Hàm trả về vectơ được hiển thị như văn bản chứ không là các số nguyên

ISSTR

Đúng nếu là chuỗi

ISSTR(S) trả về 1 nếu là chuỗi văn bản, ngược lại trả về 0

BLANKS

Một chuỗi gồm các ký tự trống

BLANKS(n) là một chuỗi gồm n ký tự trống Dùng với DISP, như DISP(['x' BLANKS(20) 'y'])

DISP(BLANKS(n)') di chuyển con trỏ xuống n dòng

DEBLANK

DEBLANK Xóa các ký tự trống ở cuối một chuỗi DEBLANK(S) Xóa các ký tự trống ở cuối một chuỗi và mọi ký tự null trong chuỗi S Ký tự null là một ký tự có trị tuyệt đối bằng 0

STR2MAT

STR2MAT Tạo dạng ma trận văn bản từ các chuỗi riêng biệt

S = STR2MAT(T1,T2,T3, ) tạo ma trận S chứa các chuỗi văn bản T1,T2,T3, là các dòng Tự động thêm mỗi chuỗi các ký tự trống nhằm tạo ra một

ma trận hợp lý Có thể dùng đến 10 chuỗi để tạo S Mỗi tham số văn bản, Ti, có thể chính nó là một ma trận chuỗi Cách này cho phép tạo ra các ma trận chuỗi lớn tùy ý

EVAL

Thực hiện chuỗi chứa biểu thức MATLAB

EVAL(s), với s là một chuỗi, làm cho MATLAB thực hiện như một biểu thức hoặc một lệnh

EVAL(s1,s2) cung cấp khả năng bắt lỗi Nó thực hiện s1 và trả về nếu thao tác thành công Nếu thao tác bị lỗi thì s2 được ước lượng trước khi trả về Nghĩ như lệnh EVAL('try','catch')

[X,Y,Z, ] = EVAL(s) trả về các đối số xuất từ biểu thức trong chuỗi s Các chuỗi nhập vào EVAL thường được tạo ra bằng cách nối các chuỗi con và các biến bên trong cặp ngoặc vuông Ví dụ: Phát sinh một dãy ma trận có tên từ M1 đến M12:

Trang 7

for n = 1:12 , eval(['M' num2str(n) ' =

magic(n)']) , end

Chạy một tệp M-file nguyên bản Các chuỗi tạo

nên các dòng của ma trận D phải cùng độ dài

D = ['odedemo '

'quaddemo'

'fitdemo '];

n = input('Select a demo number: ');

eval(D(n,:))

Đọc và xử lý các tệp data1.dat, data2.dat,

k = 0;

while 1

k = k+1;

datak = ['data' int2str(k)];

filename = [datak '.dat'];

if ~exist(filename), break, end

eval(['load ' filename]);

X = eval(datak);

% Xử lý dữ liệu trong ma trận X

end

STRCMP

So sánh chuỗi

STRCMP(S1,S2) trả về 1 nếu S1 và S2 giống nhau và

ngược lại thì trả vềì 0

FINDSTR

FINDSTR Tìm một chuỗi trong chuỗi khác

K = FINDSTR(S1,S2) trả về các chỉ số bắt đầu của

mọi xuất hiện S2 trong S1

Ví dụ:

s = 'How much wood would a woodchuck chuck?';

findstr(s,'a') trả về 21

findstr(s,'wood') trả về [10 23]

findstr(s,'Wood') trả về []

findstr(s,' ') trả về [4 9 14 20 22 32]

UPPER

Chuyển chuỗi sang chữ hoa

A = upper(a) chuyển mọi ký tự thường trong A

thành ký tự hoa tương ứng, các ký tự khác không

thay đổi

LOWER

Chuyển chuỗi sang chữ thường

b = lower(A) chuyển mọi ký tự hoa trong A thành

ký tự thường tương ứng, các ký tự khác không

thay đổi

ISLETTER

ISLETTER đúng nếu là chữ cái

Với một chuỗi S, thì ISLETTER(S) là 1 cho các chữ

cái, còn lại là 0

Trang 8

ISSPACE đúng nếu là ký tự trống, sang dòng, về đầu dòng, tab, tab đứng, hay sang trang Với chuỗi

S, thì ISSPACE(S) là1 cho các ký tự trống và 0 cho ký tự khác

STRREP

STRREP tìm và thay thế chuỗi

S = STRREP(S1,S2,S3) thay thế S2 trong S1 với chuỗi mới S3

Ví dụ:

s1='This is a good example';

strrep(s1,'good','great') trả về 'This is a great example'

strrep(s1,'bad','great') trả về 'This is a good example'

strrep(s1,'','great') trả về 'This is a good example'

STRTOK

Tìm dấu hiệu trong chuỗi (dấu hiệu là ký tự không là chữ cái hay số)

STRTOK(S,D) trả về dấu hiệu đầu tiên trong S được đánh dấu bởi D Nó cũng có các trả về tùy chọn là phần còn lại của chuỗi gốc D là một mảng các ký tự dấu hiệu Nếu không cho dấu hiệu thì giả thiết là ký tự trống

NUM2STR

NUM2STR Chuyển số sang chuỗi

T = NUM2STR(X) chuyển số vô hướng X sang chuỗi biểu hiện trong T với khoảng 4 chữ số và có một phần mũ nếu cần Hàm này thường dùng để đánh nhãn trong các hình vẽ với các lệnh TITLE, XLABEL, YLABEL và TEXT Một đối số tùy chọn có thể cho để biểu hiện một độ chính xác thay đổi

T = NUM2STR(X,PREC) chuyển số vô hướng X sang chuỗi với một độ chính xác tối đa chỉ định bởi PREC

Ngày đăng: 04/12/2015, 13:33

TỪ KHÓA LIÊN QUAN

w