Tạo đối t−ợng (biến, biểu thức) symbolic

Một phần của tài liệu Giáo trình Matlab phần cơ bản (Trang 69 - 71)

Lệnh sym cho phép xây dựng các biến và biểu thức symbolic. Ví dụ:

>> x = sym(‘x’); y = sym(‘y’); % lệnh này tạo ra x,y là các biến symbolic.

Giả sử ta muốn sử dụng một biến symbolic để biểu diễn tỷ số: ρ =

2 5 1+ ta sử dụng lệnh sau: >>ro = sym(‘(1+sqrt(5))/2’); ↵

sau lệnh ở trên ta có thể thực hiện rất nhiều phép toán đối với ro, ví dụ: >>f = ro^2-ro-1

f = (1/2+1/2*5^(1/2))^2-3/2-1/2*5^(1/2)

Giả sử bạn muốn nghiên cứu hàm bậc hai f = ax2 + bx +c. >> f=sym('a*x^2+b*x+c')

f =

a*x^2+b*x+c

Câu lệnh trên đã gán biểu thức symbolic ax2 + bx +c vào biến f. Tuy nhiên, trong tr−ờng hợp này Matlab không tạo ra các biến t−ơng ứng với các số hạng của biểu thức (a, b, c, x). Để thực hiện các phép toán symbolic chẳng hạn nh− tích phân, đạo hàm,… đối với f, cần tạo ra các biến một cách chính xác bằng cách gõ:

>>b = sym('b') >>c = sym('c') >>x = sym('x')

Hoặc ta có thể khai báo một cách đơn giản: >> syms a b c x

* Tạo các biến thực:

>> x = sym(‘x’, ‘real’);y =sym(‘y’,’real’) %x,y là biến kiểu thực symbolics hoặc đơn giản hơn

>>syms x y real %Lệnh này tạo ra các biến x và y là biến symbolic kiểu thực. >>syms x real y

hay x = sym(‘x’,’ real’);y = sym(‘y’)

% x là biến kiểu thực, y là biến bất kỳ kiểu symbolic

Để xoá đặc tính “real” của các biến x, y ta dùng lệnh sau: syms x y unreal hay: >>x = sym(‘x’, ‘unreal’)

syms t

Q = sym(‘Q(t)’);

% t biến symbolic và Q là hàm symbolic.

* Biến symbolic mặc định

Khi vận dụng các hàm toán học, việc chọn biến độc lập th−ờng là rõ ràng từ ngữ cảnh. Ví dụ, ta xem xét biểu thức toán học f = sin(a.t + b) đ−ợc biểu diễn trong Matlab nh− sau: f =. Nếu ta cần tính đạo hàm của biểu thức này mà không xác định biến độc lập thì theo quy −ớc toán học ta nhận đ−ợc f’ = a.cos(a.t + b). Giả thiết rằng biến độc lập trong biểu thức này là t thì các biến còn lại a, b đ−ợc xem nh− các hằng số hoặc tham số. Theo quy −ớc toán học thì biến độc lập th−ờng là các chữ in th−ờng nằm ở cuối bảng chữ cái (ví dụ: x, y, z, t, u, v,…).

>>syms a b t

>>diff(f) %Lệnh này tính đạo hàm của biểu thức symbolic f.

trong câu lệnh diff(f), ta không xác định là đạo hàm biểu thức f theo biến nào (a, b hay x). Làm thế nào Matlab xác định đ−ợc ta muốn đạo hàm theo biến t mà không phải là a hoặc b. Trong symbolic math toolbox sử dụng một biến symbolic để xác định biến độc lập mặc định trong tr−ờng hợp chúng ta không xác định biến độc lập, đó là một hàm tiện ích findsym. Biến symbolic mặc định đ−ợc sử dụng trong các phép toán tính toán, đơn giản hoá biểu thức, giải ph−ơng trình và các phép biến đổi.

>>findsym(f,1) ans =

t

ở đây, đối số thứ hai trong hàm findsym biểu thị số biến symbolic mà ta muốn tìm trong biểu thức f. Nếu không xác định đối số thứ hai thì findsym sẽ trả về một danh sách liệt kê tất cả các biến trong biểu thức. Ví dụ: (adsbygoogle = window.adsbygoogle || []).push({});

>> findsym(f) ans =

a, b, t

Luật findsym: Biến độc lập trong một biểu thức symbolic là một chữ cái gần chữ x nhất trong bảng chữ cái. Nếu có hai chữ gần chữ x thì chữ sau x trong bảng

chữ cái đ−ợc chọn.

ví dụ: >>findsym(a+c-v*y,1) ans=

y

Một phần của tài liệu Giáo trình Matlab phần cơ bản (Trang 69 - 71)