Tải bản đầy đủ - 0 (trang)
2 Các hàm ma trận .

2 Các hàm ma trận .

Tải bản đầy đủ - 0trang

54

norm(A,1)

norm(A, 2)

norm(A, inf)

norm(A, p)

norm(A, ‘fro’)

normest(A)

null(A)

orth(A)

poly(A)

polyvalm(A)

qr(A)

qrdelet(Q, R, j)

qrinsert(Q, R, j, x)

rank(A)

rcond(A)

sqrtm(A)

subspace(A, B)

svd(A)

svds(A, K)

trace(A)



Tiêu chuẩn 1

Tiêu chuẩn 2

Vô cùng

Tiêu chuẩn P (chỉ đối với vector)

Tiêu chuẩn F

Tiêu chuẩn 2 ớc lợng cho ma trận lớn

Khoảng rỗng

Tính trực giao

Đa thức đặc trng

Tính giá trị của ma trận

Xác định trực giao tam giác

Xoá cột tõ thõa sè QR

ChÌn cét trong thõa sè QR

Sè cđa hàng hoặc cột độc lập

Ước lợng điều kiện thuận nghịch

Ma trận gốc bình phơng

Góc giữa hai điểm

Phân tích giá trị đơn

Một số các giá trị đơn

Tổng các phần tử chéo



7.3 Ma trận đặc biệt

MATLAB đa ra một số các ma trận đặc biệt, trong đó một số chúng có

những ứng dụng rộng rãi trong các phép toán. Nhìn chung những ma trận đó

là:

>> a = [1 2 3; 4 5 6];

>> b = find(a>10)

b=

[ ]

ở đây b là ma trận rỗng. MATLAB trả lại ma trận rỗng khi phép toán không có

kết quả. Trong ví dụ trên không có phần tử nào của a lớn hơn 10. Ma trận rỗng

không cã kÝch cì, nhng tªn biÕn cđa chóng vÉn tån tại trong không gian làm

việc.

>> zeros(3)

% Ma trận không 3 hµng, 3 cét (3x3).

ans=

0

0

0

0

0

0

0

0

0

>> ones(2,4)

% Ma trËn mét 2 hµng, 4 cột (2x4).

ans=

1

1

1

1

1

1

1

1

>> zeros(3) + pi

ans=

3.1416

3.1416

3.1416

3.1416

3.1416

3.1416



55

3.1416



3.1416



3.1416



Ví dụ trên về tạo ma trận 3x3 với các phần tử đều là .

>> rand(3,1)

ans=

0.2190

0.0470

0.6789

ma trận 3x1 gồm các phần tử là số cung cấp bởi hàm random giữa 0 và 1.

>> randn(2)

ans=

1.1650

0.6268



0.0751

0.3516



ma trận 2x2 của các số cung cấp bởi hàm random với giá trị trung bình là 0.

Thuật toán cho hàm rand và randn có thể tìm thấy trong S.K>Park and

K.W.Miller,Random Number Generator: Good Ones Are Hard to Find,” Comm.

ACM, 32, 10, Oct. 1988-1201.

>> eye(3)

ans=

1

0

0

Ma trËn ®ång



0

0

1

0

0

1

nhÊt 3x3



>> eye(3,2)

ans=

1

0

0

1

0

0

Ma trËn ®ång nhÊt 3x2

Ngoài ra để chỉ kích cỡ của một ma trận, bạn có thể dùng hàm size để tạo

một ma trận cã kÝch cì gièng nh ma trËn kh¸c:

>> A = [1 2 3; 4

>> ones(size(A))

ans=

1

1

1

1



5



6];



1

1



ma trËn mét cã cïng kÝch cỡ với ma trận A.

Các ma trận trên và các ma trận đặc biệt khác đợc giới thiệu trong bảng sau:

Các ma trận đặc biệt

[ ]

Ma trận rỗng

compan

Tạo ma trận rỗng

eye

Ma trận đồng nhất

gallery

Ma trận kiểm tra nhỏ vài phần tư



56

hadamard

hankel

hilb

invhilb

magic

ones

pascal

rand

randn

rosser

toeplitz

vander

wilkinson

zeros



Ma trËn Hadamard

Ma trËn Hankel

Ma trËn Hilbert

Chun thµnh ma trËn Hilbert

Ma trận vuông, giá trị các phần tử bằng từ 1 đến giá

trị số phần tử

Ma trận 1

Ma trận tam giác Pascal

Ma trận với các phần tử ngẫu nhiên từ 0 đến 1.

Ma trận ngẫu nhiên thông thờng với giá trị trung

bình bằng 0

Ma trận kiểm tra đối xứng trục chÝnh

Ma trËn Toeplitz

Ma trËn Vandermond

Ma trËn kiÓm tra Wilkinson

Ma trËn không



Ví dụ

Vấn đề: Ta có mạch điện nh trong hình 7.1 đợc mô tả bằng phơng trình

điện áp nút khi nguồn đa vào là sóng hình sin.



Hình 7.1

E = 10o;

R1 = 2; L = 10j; C = ; R2 = 10.

ở đây vi là điện áp giữa nút thứ i và đất. Hỏi điện áp tại mỗi nút là bao nhiêu?

Giải pháp: Đây là vấn đề về phân tích pha. Phơng pháp giải bài này là

giải phơng trình trên, và chuyển các kết quả về dạng thời gian. Trong MATLAB

giải pháp sẽ là:

function circuit

% circuit.m script file to solve circuit proplem

A(1,1)=1/2;

% poke in nonzero values as needed

A(1,2)=-1/2;

A(2,1)=-1/2;

A(2,2)=1/2 + 0.2j + 1/10j;

A(2,3)= -1/10j;

A(3,2)=-1/10j;

A(3,3)=1/10 + 1/10j;

y=[-1 0 0]';

% right hand side vector

v=A\y

% complex solution



57

vmag=abs(v)

% solution magnitudes

vphase=angle(v)*180/pi

% solution phase in degrees

theta=linspace(0,2*pi);

% plot results in time

v1=vmag(1)*cos(theta-vphase(1));

v2=vmag(2)*cos(theta-vphase(2));

v3=vmag(3)*cos(theta-vphase(3));

thd=theta*180/pi;

plot(thd,v1,thd,v2,thd,v3)

Sau khi chạy chơng trình trên, kết quả sẽ là:

v =

-4.0000 + 6.0000i

-2.0000 + 6.0000i

2.0000 + 4.0000i

vmag =

7.2111

6.3246

4.4721

vphase =

123.6901

108.4349

63.4349



58

Hình 7.2



---------------------oOo---------------------



chơng 8

các phép tính LOGIC Và QUAN Hệ

Thêm vào những to¸n tư ‘trun thèng’, MATLAB cung cÊp to¸n tư logic và

quan hệ. Bạn có thể quen thuộc với những phép toán này, nếu bạn đã làm quen

với các ngôn ngữ lập trình khác. Mục đích của những toán tử và hàm này là

để trả lời câu hỏi True_False (đúng_sai).

Đối với các số thì trong toán tử logic và quan hệ quy định các số khác không

là True còn số không là False. Kết quả của phép toán logic và quan hệ đa ra là

1 cho True, 0 cho False.

8.1 Toán tư quan hƯ

To¸n tư quan hƯ MATLAB bao gåm tÊt cả các phép so sánh:

Toán tử quan hệ

<

<=

>

>=

==

~=



ý nghĩa

nhỏ hơn

nhỏ hơn hoặc bằng

lớn hơn

lớn hơn hoặc bằng

bằng

không bằng



Toán tử quan hệ MATLAB có thể dùng để so sánh hai mảng có cùng kích cỡ

hoặc so sánh một mảng với một số đơn. Trong trờng hợp thứ hai, số đơn so

sánh với tất cả các phần tử của mảng, kết quả tr¶ vỊ gièng nh kÝch cì cđa m¶ng.

VÝ dơ:

>> A = 1:9, B = 9 - A

A=

1

2

3

B=

8

7

6

>> tf = A>4

tf=

0

0

0

0



4



5



6



7



8



9



5



4



3



2



1



0



1



1



1



1



1



59

t×m kiếm các phần tử của A mà lớn hơn 4. KÕt qu¶ b»ng 0 khi A 4, b»ng 1 khi

A>4.

>> tf = (A==B)

tf=

0

0

0



0



0



0



0



0



0



Tìm kiếm các phần tử của A mà bằng với B. Chú ý sự khác nhau giữa = và

== dùng để so sánh hai biến và trả về 1 khi chóng b»ng nhau, 0 khi chóng kh¸c

nhau; = dùng để gán kết quả đa ra của toán tử cho một biến.

>> tf = B - (A>2)

tf=

8

7

5

4

3

2

1

0

-1

Tìm các phần tử A>2 và bị trừ bởi vector B. Ví dụ này chỉ ra rằng kết quả đa ra của toán tử logic là một mảng số bao gồm các số không và một, chúng cũng

có thể dùng trong các phép to¸n sè häc.

>> B = B + (B==0)*eps

B=

Columns 1 through 7

8.0000 7.0000

6.0000

5.0000 4.0000

3.0000

2.0000

Columns 8 through 9

1.0000 0.0000

Ví dụ trên đa ra cách thay thế các phần tử của B mà trùng với không bằng số

đặc biệt của MATLAB là eps, có giá trị xấp xỉ 2.2e-16. Cách thay thế này đôi

khi có ích là tránh trờng hợp chia cho số kh«ng nh vÝ dơ sau:

>> x = (-3:3)/3

-1.0000 -0.6667

-0.3333

0

0.3333

0.6667

1.0000

>> sin(x)./x

Warning: Divide by zero

ans=

0.8415

0.9276

0.9816

NaN

0.9816

0.9276

0.8415

Tính toán hàm sin(x)/ x đa ra một cảnh báo vì phần tử thứ t bằng không,

sin(0)/ 0 không đợc định nghĩa, MATLAB trả lại NaN ( nghĩa là không phải là

một số) tại vị trí đó trong kết quả. Thử lại ví dụ trên, sau khi thay thế phần tử

có giá trị bằng không bằng số eps:

>> x = x + (x==0)*eps;

>> sin(x)/x

ans=

0.8415 0.9276

0.9816



1.0000



0.9816



0.9276



0.8415



B©y giê sin(x)/ x tại x = 0 đa ra kết quả giới hạn chÝnh x¸c.

8.2 To¸n tư Logic

To¸n tư logic cung cÊp mét cách diễn đạt mối quan hệ phủ định hay tổ hợp.

Toán tử logic MATLAB bao gồm:



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

2 Các hàm ma trận .

Tải bản đầy đủ ngay(0 tr)

×