Tải bản đầy đủ - 0 (trang)
3 Sự biểu diễn biểu thức đặc trưưng của MATLAB

3 Sự biểu diễn biểu thức đặc trưưng của MATLAB

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

165

>> x = sym('x')

>> diff(cos(x))

ans =

-sin(x)



% tạo một biến đặc trng x

% đối của cos(x ) với biến số là x



>> sym('a','b','c','d' )% tạo biến số đặc trng a, b, c và d

>> M = [a, b, c, d]

% tạo một ma trận đặc trng

M =

[a, b]

[c, d]

>> det(M)

% tìm định thức của ma trận đặc trng M

ans =

a*b - b*c

Trong ví dụ đầu tiên, x đợc định nghĩa nh một biến đặc trng trớc khi nó

đợc sử dụng trong biểu thức, tơng tự nh vậy biến số phải đợc gán một giá trị trớc khi chúng đợc sử dụng. §iỊu nµy cho phÐp MATLAB xem xÐt cos(x) nh mét

biĨu thực đặc trng, và do vậy dif(cos(x)) là một phép toán đặc trng hơn là

một phép toán số học. Trong ví dụ số 2, hàm syms thờng đợc định nghĩa là

một số biến số đặc trng. syms(a, b ) tơng ®¬ng víi a = sym('a');

b=

sym('b' ); . MATLAB biÕt r»ng M=[a, b; c, d ] là một ma trận đặc trng bởi

vì nó chứa đựng một biến số đặc trng, và do đó det(M) là một phép toán

đặc trng.

Trong MATLAB, câu lệnh func arg tơng đơng với func(arg), trong đó

func là một hàm, còn arg là một chuỗi đối số kí tự. MATLAB phân biệt syms

a b c d và syms(a, b, c, d ) là tơng đơng nhng nh các bạn biết công

thức đầu tiên dễ thực hiện hơn.

Chúng ta xem xét kĩ hơn ví dụ thứ hai đã nªu ë trªn:

>> a = 1; b = 2; c = 3; d = 4

% định nghĩa biến số a ®Õn

d

>> M = [a,b;c,d]

% M lµ mét ma trËn sè

M=

1

2

3

4

>> size(M)

%M lµ mét ma trËn bËc hai

ans =

2

2

>> class(M)

% Cã những loại đối tợng nào là M?

ans =

double

>> M = '[a, b; c, d ]'

% M là một chuỗi đặc trng

M =

[a, b :c, d ]

>> size(M)

% M lµ mét vector hµng cđa 9 kÝ tù

ans =

1

9

>> class( M )



166

ans =

char

>> M = sym('[a,b;c,d ]')

M=



% một đối tợng đặc trng nhng

% không phải là một ma trận



[a,b;c,d]

>> size(M)

% M là một vector 3 phần tử (2 dấu

phảy )

ans =

1

3

>> class(M)

ans =

sym

>> syms a b c d

% định nghĩa biến số đặc trng a đến d

>> M = [a,b;c,d]

% M là một ma trận đặc trng

M =

[a, b]

[c, d]

>> size(M)

ans =

2

2

>> class(M)

ans =

sym

>> a = 1; b = 2 ; syms c d

% định nghĩa một biến cố định từ a

>> M = [a,b;c,d]

M=

[1, 2]

[c, d]

>> size(M)

ans=

sym



% M lµ mét ma trận đặc trng từ a đến d



Trong ví dụ này, M đơc định nghĩa theo 5 cách:

Kiểu thứ nhất: nó gần giống với ma trận bậc hai.

Kiểu thứ hai là một chuỗi kí tự.

Kiểu thứ ba là một đối tợng đặc trng hợp lệ, nhng nó không thể sử dụng

trong mọi trờng hợp.

Kiểu thứ t là một ma trận bậc hai.

Kiều cuối cùng cho tháy biến số là biến đặc trng có kết hơp trong biểu thc

đặc trng để tạo thành ma trận đặc trng.

Biểu thức đặc trng không có biến đợc gọi là hàm đặc trng. Khi hàm

đặc trng hiển thị, chúng đôi khi khó mà phân biệt đợc với số nguyên. Ví dụ:

>> f=sym(3)

f=



%tạo một hằng đặc trng



167

3

>> class(f)

ans=

sym

>> g = sym(pi)

g=

pi

>> class(g)

ans=

sym

>> h = sym(sin(pi/4))

h=

sqrt(1/2)

>> class(h)

ans=

sym



% kiểu của đối tợng f là gì



20.4 Biến đặc trng

Khi làm việc với biểu thức đặc trng có nhiều hơn một biến đặc trng,

chính xác hơn một biến là biến độc lập. Nếu MATLAB không chỉ ra đâu là

biến độc lập thì nó sẽ nhận biến nào gần x nhất theo thứ tự chữ cái.

Biến độc lập đôi khi còn đợc gọi là biến tự do. Bạn có thể yêu cầu

MATLAB chỉ ra biến nào trong biểu thức đặc trng. Để biết đợc ta sử dụng hµm

findsym:

>> syms a s t u omega i j

>> findsym(a*t+s/(u+3),1)

ans =

u

>> findsym(sin(a+omega),1)

ans =

omega

>> findsym(3*i + 4*j)

ans =

' '



% định nghĩa các biến đặc trng

% u là gần x nhất

% omega gần x nhất

% i và j tơng tự nh sqrt(-1)



Nếu findsym không tìm thấy biến đặc trng, nó sẽ trả lại chuỗi rỗng.

20.5 Phép toán trên biểu thức đặc trng

Giả sử bạn đã tạo tạo đợc biểu thức đặc trng, bạn rất có thể muốn thay

đổi nó bằng bất cứ cách nào. Bạn muốn lấy ra một phần của biểu thức, kết hợp

hai biêu thức hoặc tìm một giá trị số của một biểu thức đặc trng. Có rất

nhiều công cụ cho phép bạn làm điều này.

Tất cả các hàm đặc trng, ( với vài điểm đặc biệt sẽ nói ở phần sau) dựa

trên các biểu thức đặc trng và các mảng đặc trng. Kết quả giống nh một số

nhng nó là một biểu thức đặc trng. Nh chúng ta đã nói ở trên, bạn có thể tìm



168

ra đâu là kiểu số nguyên, một chuỗi đặc trng hoặc một đối tợng đặc trng

bằng cách sử dụng hàm class từ MATLAB cơ sở.

20.6 Tách các tử số và mẫu số

Nếu biểu thức của bạn là một đa thức hữu tỉ hoặc có thể mở rộng tới

một đa thức hữu tỉ tơng đơng ( bao gồm toàn bộ các phần tử của tử số có

chung mẫu số), bạn có thể tách tử số và mẫu số bằng cách sử dụng hàm

numden. Ví dô:

m = x2, f = a x2/( b-x)

g = 3 x 2 /2 + 2 x /3 -3/5.

h = (x2 + 3)/ ( 2 x - 1 ) + 3x/(x-1)

numden tổ hợp hoặc hữu tỉ hoá biểu thức nếu cần thiết, và trả lại kết quả

tử số và mẫu số. Câu lệnh MATLAB đợc thực hiện nh sau:

>> sym x a b

% tạo một số biến đặc trng

>> m = x^2

% tạo một biểu thức đơn giản

m =

x^2

>> [n,d] = numden(m)

% tách tử số và mẫu số.

n =

x^2

d =

1

>> f = a*x^2/(b-x) % tạo một biểu thức liên quan

f =

a*x^2/(b-x)

>> [n d] = numden(f)

% tách tử số và mẫu số.

m =

-a*x^2

d=

-b + x

Hai biểu thức đầu tiên cho ta kết qu¶ nh mong muèn

>> g = 3/2*x^2 + 2*x - 3/4

% tạo một biểu thức khác.

g =

3/2*x^2 + 2*x - 3/4

>> [n,d] = numden(g)

% hữu tỉ hoá và tách các phÇn

n =

6*x^2 + 8*x - 3

d =

4

>> h = (x^2 + 3)/(2*x - 1) + 3*x/(x - 1) % tæng của đa thức hữu tỉ

h =

x^3 + 5*x^2 - 3

d= (2*x - 1)*(x - 1)

>> h2 = n/d

% t¹o l¹i biÓu thøc cho h

h2 =

(x^2 + 3)/(2*x - 1) + 3*x/(x - 1)



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

3 Sự biểu diễn biểu thức đặc trưưng của MATLAB

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

×