Chơng 2
Th viện toán học kiểu ký tự
(symbolic matlab)
2.1 Giới thiệu về th viện toán học kiểu ký tự
Symbolic matlab l th viện các phép toán kiểu ký tự đợc đa vo môi trờng
tính số học của matlab , th viện ny lm phong phú v tiện ích thêm với nhiều kiểu tính
toán về toán học khác cho phần tính số học v đồ hoạ đã có trớc đây trong th viện
Matlab.
2.2 Các lệnh cơ bản khai báo biến symbolic
2.2.1 Lệnh syms v lệnh sym
+ Nhiệm vụ tạo đối tợng (bao gồm cả biến) symbolic
Cấu trúc:
syms arg1 arg2 ...
syms arg1 arg2 ... real
syms arg1 arg2 ... unreal
Mô tả
Khai báo các biến arg1 , arg2 l các biến symbolic có hai cách khai báo dùng lệnh syms
hoặc lệnh sym nh sau:
syms arg1 arg2 ...
Khai báo các thông số arg1, arg2 l các biến symbolic , ta có thể khai báo nh sau
arg1 = sym('arg1');
arg2 = sym('arg2'); ...
Tơng tự :
syms arg1 arg2 ... real l ký hiệu ngắn gọn cho
arg1 = sym('arg1','real');
arg2 = sym('arg2','real'); ...
Các biến khai báo nh trên l các biến thực kiểu symbolic .Vậy thì các biến ny khác gì
các biến khai báo không có đặc tính real?
Ta phân biệt nh sau: Đối với một biến thực symbolic thì nó có các tính chất của số thực
ví dụ nh (arg)
2
kết quả l một số ,một biến symbolic.Nếu thông số đầu vo l một số vô hớng hay một
matrận, kết quả l một thể hiện của các số đã cho dới dạng symbolic
x = sym('x') Tạo biến symbolic với tên l x chứa kết quả trong x
x = sym('x','real') cho rằng x l thực cho nên conj(x) bằng với x(có thể coi đây l phơng
pháp kiểm tra số thực )
Ví dụ: x = sym('x','unreal') lm cho biến x(trong sạch) v không có đặc tính no
thêm(đảm bảo rằng x không phải l biến thực)
Ví dụ
+ pi= sym('pi') kết quả cho lại giá trị số pi (đầu vo l một chuỗi)
+ Lệnh pi = sym('pi') v delta = sym('1/10')
Kết quả delta= 1/10 ;
Cấu trúc sau cho phép chuyển đổi số symbolic sang các dạng số thực v các dạng số khác
tuỳ thuộc vo flag l ' r ' , ' d ' ,' e ' hoặc ' f '
Trang 2
S = sym(A,flag) ở đó flag l một trong 'r', 'd', 'e', or 'f'.
Ví dụ : Tạo ma trận symbolic A
A=[ 1 2 3 ; 4 5 6];
>>A=[ 1 2 3; 4 5 6];
>>A=sym(A)
Kết quả trả về ma trận A= [ 1 2 3]
[ 4 4 6]
Ví dụ: Tạo biến symbolic x ,y, z
>> syms x y z ;% hoặc sym('x' ) hoặc sym('y') . . .
>> f= x^2 + y^2 +z^2;
Ví dụ Tạo số symbolic a= 5
>> a= sym('5')
a =
5
Thông thờng hiệu quả của việc sử dụng lệnh sym l để chuyển đổi một ma trận từ số
sang dạng phom symbolic .Lệnh
[ 3, 5, 7]
[ 9, 11, 13]
Tơng tự cho phép nhân v phép chia ( * / \ ./ .\)
2.3 Tạo hm symbolic
Thông thờng có hai cách tạo hm Symbolic
Tạo hm bằng biểu thức symbolic f= f(x,y,z...) trong đó x, y z đợc khai báo l các
biến symbolic
Tạo trong M-file
Tạo trực tiếp các hm .
2.3.1 Tạo hm từ các biểu thức symbolic
Hm tạo ra chứa các biến phải l biến symbolic
Ví dụ tạo hm f= 3*x^2 + 2*x + 1 ta lm nh sau
>> syms x % khai báo x l biến symbolic
>> f= 3* x^2 + 2*x +1 % f l hm symbolic
ví dụ:
syms x y z
r = sqrt(x^2 + y^2 + z^2)
t = atan(y/x)
f = sin(x*y)/(x*y)
Tạo biểu thức symbolic r v t v f .
Chú ý Chỉ khi tạo một hm symbolic thì Bạn mới đợc phép sử dụng lệnh limit ,diff, int,
subs, v các hm toán học symbolic khác
2.3.2 Tạo Hm Symbolic từ M-file
Tạo một hm bằng cấu trúc function , trong đó đầu vo l các biến cần để thiết lập hm ,
đầu ra l biến chứa hm nh vậy cách tạo hm giống với tạo hm thông thờng ,Vì thế để
Trang 4
Matlab hiÓu r»ng ®©y lμ hμm symbolic th× ta pahØ l−u vμo file cã ®−êng dÉn nh− sau
C:\matlabR12\toolbox\symbolic\@sym\ten_ham
VÝ dô t¹o hμm symbolic z= sin(x)/x
>> diff(f,'x') ans = 6*x+2
VÝ dô : TÝnh 6!
Ta t¹o hμm tÝnh trùc tiÕp nh− sau
>> f=sym('x!');
Trang 5
>> subs(f,'x',6)
ans =
720
Ví dụ tạo hm 1/ x!
>> f=1/sym('x!');
>> subs(f,'x',n)
>> subs(f,'x','n')
ans =
1/(n)!
2.4 Tạo biến thực v biến phức
Tạo biến phức ví dụ z= x+ i* y thì ta phải khai báo x v y l các biến symbolic thực tức l:
syms x y real
z = x + i*y
I. Giải thích
Tạo biến symbolic x v y ,các biến ny có đợc sự công thêm các tính chất toán học của
một biến thực .Cụ thể nó có ý nghĩa rằng biểu thức
f = x^2 + y^2
f >=0. Cho nên, z l một biến phức
conj(x)= x;conj(z)=x-i*y;expand(z*conj(z))=x^2+y^2
Để xoá x khỏi l một biến thực ,bạn phải dùng lệnh nh sau
syms x unreal
hoặc
x = sym('x','unreal')
Lệnh sau
clear x