symbolic math toolbox_nhom8-solid

13
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ---oOo--- Tiểu luận: ĐO LƯỜNG VÀ ĐIỀU KHIỂN DÙNG MÁY TÍNH ỨNG DỤNG CÔNG CỤ TOÁN HỌC TRONG MATLAB SYMBOLIC MATH TOOLBOX GVHD: PGS.TS. Trần Quang Vinh Nhóm thực hiện: Trần Văn Chương Nguyễn Hoàng Văn Dương Văn Lập Huế, 11/2012

Upload: ehoangvan

Post on 05-Aug-2015

79 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Symbolic Math Toolbox_nhom8-Solid

ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆ---oOo---Tiểu luận: ĐO LƯỜNG VÀ ĐIỀU KHIỂN DÙNG MÁY TÍNHỨNG DỤNG CÔNG CỤ TOÁN HỌC TRONG MATLABSYMBOLIC MATH TOOLBOX

GVHD: PGS.TS. Trần Quang VinhNhóm thực hiện: Trần Văn ChươngNguyễn Hoàng VănDương Văn Lập

Huế, 11/2012

Page 2: Symbolic Math Toolbox_nhom8-Solid

Symbolic Math Toolbox

Nhóm 8: Trần Văn Chương-Nguyễn Hoàng Văn-Dương Văn Lập 1

MỤC LỤC1. Giới thiệu.........................................................................................................................................2

2. Khởi động ứng dụng Symbolic Math Toolbox.................................................................................2

2.1 Khai báo đối tượng Symbolic. .................................................................................................2

2.1.1 Khai báo biến...................................................................................................................2

2.1.2 Khai báo biến là kiểu số...................................................................................................2

2.2 Tạo biến và biểu thức Symbolic. .............................................................................................3

2.2.1 Tạo biến Symbolic. ..........................................................................................................3

2.2.2 Khai báo biến phức. ........................................................................................................3

2.2.3 Khai báo biểu thức. .........................................................................................................3

2.2.4 Tạo ma trận. ....................................................................................................................4

2.2.5 Tìm biến symbolic trong biểu thức và ma trận. ..............................................................4

3. Các phép tính toán trong Symbolic Math Toolbox. ........................................................................4

3.1 Các phép tính vi tích phân.......................................................................................................4

3.1.1 Phép tính đạo hàm..........................................................................................................4

3.1.2 Phép tính giới hạn. ..........................................................................................................6

3.1.3 Phép tính tích phân. ........................................................................................................6

3.1.4 Phép tính tổng của chuỗi. ...............................................................................................7

3.1.5 Chuỗi Taylor. ...................................................................................................................7

3.1.6 Tính toán mở rộng. .........................................................................................................7

3.2 Các hàm đơn giản và thay thế trong biểu thức. .....................................................................8

3.2.1 Các hàm đơn giản hóa.....................................................................................................8

3.2.2 Các hàm thay thế. ...........................................................................................................9

3.3 Giải phương trình....................................................................................................................9

3.3.1 Giải phương trình đại số. ................................................................................................9

3.3.2 Giải hệ phương trình.....................................................................................................10

3.3.3 Giải phương trình vi phân. ............................................................................................10

3.3.4 Giải hệ phương trình vi phân. ..............................................................................................11TÀI LIỆU THAM KHẢO ........................................................................................................................12

Page 3: Symbolic Math Toolbox_nhom8-Solid

Symbolic Math Toolbox

Nhóm 8: Trần Văn Chương-Nguyễn Hoàng Văn-Dương Văn Lập 2

1. Giới thiệu.Phần mềm Symbolic Math Toolbox cho phép tính toán các Symbolic trongmôi trường Matlab số. Nó cung cấp các cung cụ để giải quyết và thao tác các biểuthức toán học Symbolic và thực hiện thay đổi chính xác số học. Symbolic MathToolbox chứa hàng trăm chức năng về tính toán toán học như:• Các phép tính vi phân.• Các phép tính tích phân.• Các phép tính đại số tuyến tính.• Các phương pháp rút gọn biểu thức đại số.• Biến đổi Laplace, Fourrier, Z.• Đánh giá độ chính xác của các biểu thức đại số.• Giải phương trình.Ngoài ra ứng dụng Symbolic Math Toolbox còn chứa ngôn ngữ MuPADđược tối ưu hóa để xử lý và hoạt động trên các biểu thức toán học Symbolic.Ngoài việc bao gồm các nhiệm vụ toán học, các thư viện của MuPAD còn có cácchuyên ngành khác như lý thuyết số và tổ hợp. Chúng ta có thể xây dựng hay cácchức năng mở rộng và các thư viện bằng ngôn ngữ MuPAD.

2. Khởi động ứng dụng Symbolic Math Toolbox.2.1 Khai báo đối tượng Symbolic.2.1.1 Khai báo biến.

2.1.2 Khai báo biến là kiểu số.>> sym a % Khai báobiến a;

>> syms a b c d % Khai báo nhiều biến cùng một lúc;

>> a=sym('2') % Khai báo biến a bằng 2

>> a=sqrt(sym('2')) % Lấy căn bậc 2 của a, nhưng theo phân số.

a =

2^(1/2)

>> sym(2)/sym(5) % Ở đây biến là 2 và 5

ans =

2/5

Page 4: Symbolic Math Toolbox_nhom8-Solid

Symbolic Math Toolbox

Nhóm 8: Trần Văn Chương-Nguyễn Hoàng Văn-Dương Văn Lập 3

2.2 Tạo biến và biểu thức Symbolic.2.2.1 Tạo biến Symbolic.

syms sym• Không sử dụng dấu ngoặc đơnhoặc kép.• Có thể tạo ra nhiều đối tượng vớimột cuộc gọi.• Tốt nhất cho việc tạo ra các biếncá nhân duy nhất và nhiều biếnsymbolic. (dạng biến toàn cục)

• Khi tạo ra một số symbolic với10 hoặc nhỏ hơn thì không cầndấu ngoặc đơn.• Tạo đối tượng symbolic với mỗicuộc gọi.• Tạo ra các đối tượng tượngtrưng trong các chức năng và cáckịch bản.2.2.2 Khai báo biến phức.

2.2.3 Khai báo biểu thức.Ví dụ khai báo biểu thức f=2x+b

>>x = sym('x'); % Tạo biến x với giá trị là x.>>a = sym('alpha'); %Tạo biến a với giá trị là alpha.Chúng ta có thể dùng lệnh sym hoặc syms để tạo các biến symbolic.>>syms x;Tương đương với khai báo: >>x = sym('x');

>>x=sym('x','real'); y=sym('y','real'); %khai báo biến x,y là số thựchoặc>>syms x y real;

>> z=x+i*y; %Phương trình.

>>syms x b;

>>f=2*x+b;Hoặc>>f=sym(‘2*x+b’);

Page 5: Symbolic Math Toolbox_nhom8-Solid

Symbolic Math Toolbox

Nhóm 8: Trần Văn Chương-Nguyễn Hoàng Văn-Dương Văn Lập 4

2.2.4 Tạo ma trận.

2.2.5 Tìm biến symbolic trong biểu thức và ma trận.

3. Các phép tính toán trong Symbolic Math Toolbox.3.1 Các phép tính vi tích phân.3.1.1 Phép tính đạo hàm.• Ví dụ ta tạo biểu thức sau:

>>syms a b c;

>>A = [a b c; c a b; b c a]A =[ a, b, c][ c, a, b][ b, c, a]

>>syms a b n t x z;

>>f = x^n;

>>g = sin(a*t + b);

>>symvar(f)ans =[ n, x]>>symvar(g)ans =[ a, b, t]

>>syms x

>>f = sin(5*x)

>>diff(f)ans = 5*cos(5*x)

Page 6: Symbolic Math Toolbox_nhom8-Solid

Symbolic Math Toolbox

Nhóm 8: Trần Văn Chương-Nguyễn Hoàng Văn-Dương Văn Lập 5

Để tính đạo hàm của f theo a ta viết:

• Để tính đạo hàm bậc 2 của f theo x và a ta viết:

• Hàm diff có thể dùng đối số là ma trận. Trong trường hợp này đạo hàmđược thực hiện trên từng phần tử. Ví dụ:

Toán tử toán học Lệnh MATLABf = exp(ax + b) syms a b x

f = exp(a*x + b)Df/dx diff(x) hay

diff(f,x)

>>dfa = diff(f,a)dfa= cos(a*x)*x>>diff(f,2)ans = ‐ sin(a*x)*a^2>>diff(f,x,2)ans = ‐ sin(a*x)*x^2

>>syms a x>>A = [cos(a*x),sin(a*x);‐sin(a*x),cos(a*x)]A =[ cos(a*x), sin(a*x)] [‐sin(a*x),cos(a*x)]>>dy = diff(A)dy = [ ‐sin(a*x)*a, cos(a*x)*a][ ‐cos(a*x)*a, ‐sin(a*x)*a]

Page 7: Symbolic Math Toolbox_nhom8-Solid

Symbolic Math Toolbox

Nhóm 8: Trần Văn Chương-Nguyễn Hoàng Văn-Dương Văn Lập 6

Df/da diff(f,a)

d2f/d2a diff(f,a,2)

r = u2 + v2

t = arctan(v/u)syms r t u vr = u^2 + v^2t = atan(v/u)

J = ∂(r, t)∂(u,v)

J = jacobian([r ; t],[u , v])

3.1.2 Phép tính giới hạn.Đạo hàm của một hàm là giới hạn sau đây nếu nó tồn tại :f′(x) = lim (f(x + h) −f(x))/hh →0Symbolic Math Toolbox cho phép giới hạn của một hàm một cách trực tiếphơn. Lệnh:

Hàm toán học Lệnh MATLABlim f(x)x→0

limit(f)lim f(x)x→a

limit(f,x,a) haylimit(f,a)

lim f(x)x→­a

limit(f,x,a,’left’)lim f(x)x→+a

limit(f,x,a,’right’)3.1.3 Phép tính tích phân.Hàm toán học Lệnh MATLAB

f(x) = e­kx syms k xf = exp(‐k*x)

>>syms h n x>>dc = limit( (cos(x+h) – cos(x))/h,h,0 )dc = –sin(x)>>limit( (1 + x/n)^n,n,inf )ans = exp(x)

Page 8: Symbolic Math Toolbox_nhom8-Solid

Symbolic Math Toolbox

Nhóm 8: Trần Văn Chương-Nguyễn Hoàng Văn-Dương Văn Lập 7

∫ f(x)dx int(f) hay int(f,x)

∫ f(k)dk int(f,k)1

∫ f(x)dx0

int(f,0,1) hayint(f,x,0,1)

2g(x) = e­(kx) syms k x real

g=exp(‐(k*x)^2)∞

∫g(x)dx­∞

int(g,‐inf,inf) hayint(g,x,‐inf,inf)3.1.4 Phép tính tổng của chuỗi.Khi tính tổng của chuỗi ta dùng lệnh symsum

3.1.5 Chuỗi Taylor.

Là khai triển Taylor của f(x) lân cận x = 0(khai triển MacLaurin) có chứa 8 sốhạng khác 0.3.1.6 Tính toán mở rộng.Symbolic Math Toolbox cung cấp một bộ các lệnh dễ dùng để vẽ đồ thịcác biểu chữ, bao gồm các đường cong trong mặt phẳng(ezplot), các đường đẳngmức (ezcontour và ezcontourf), các mặt cong(ezsurf, ezsurfc, ezmesh vàezmeshc), đồ thị trong toạ độ cực(ezpolar) và đường cong dưới dạng thông số(ezplot và ezplot3) và mặt dưới dạng thông số (ezsurf).

>>syms h n x>>dc = limit( (cos(x+h) – cos(x))/h,h,0 )dc = –sin(x)>>limit( (1 + x/n)^n,n,inf )ans = exp(x)>>syms x>>f = 1/(5 + 4*cos(x));>>T = taylor(f, 8)T =1/9+2/81*x^2+5/1458*x^4+49/131220*x^6

Page 9: Symbolic Math Toolbox_nhom8-Solid

Symbolic Math Toolbox

Nhóm 8: Trần Văn Chương-Nguyễn Hoàng Văn-Dương Văn Lập 8

3.2 Các hàm đơn giản và thay thế trong biểu thức.3.2.1 Các hàm đơn giản hóa.a.collect: collect(f) xem f như một đa thức gồm các biến chữ x và gộp tấtcả các hệ cùng bậc của x. Đối số thứ 2 của chỉ rõ biến định gộp nếu cónhiều iến trong biểu thưc. Sau đây là một số ví dụ:

f collect(f)(x‐1)(x‐2)(x‐3) x^3‐6*x^2+11*x‐6x*(x*(x‐6)+11)‐6 x^3‐6*x^2+11*x‐6(1+x)*t + x*t 2*x*t+t

b.expand:expand(f) khai triển biểu thức. Sau đây là một số ví dụ:

f expand(f)a*(x+y) a*x+a*y(x‐1)*(x‐2)*(x‐3) x^3‐6*x^2+11*x‐6x*(x*(x‐6)+11)‐6 x^3‐6*x^2+11*x‐6exp(a+b) exp(a) + exp(b)cos(x+y) cos(x)*cos(y)‐

sin(x)*sin(y)cos(3*acos(x)) 4*x^3‐3*x

c.horner:horner(f) biến đổi một đa thức thành dạng Horner hay biểu diễn lồngnhau.

f horner(f)x^3-6*x^2+11*x-6 -6+(11+(-6+x)*x)*x1.1+2.2*x+3.3*x^2 11/10+(11/5+33/10*x)*x

d.factor: Nếu f là đa thức hệ số hữu tỉ, phát biểu:factor(f) biểu diễn f như là tích của các đa thức có bậc thấp hơn với hệ sốhữu tỷ.

f factor(f)x^3‐6*x^2+11*x‐6 (x‐1)*(x‐2)*(x‐3)x^3–6*x^2+11*x–5 x^3–6*x^2+11*x–5

Page 10: Symbolic Math Toolbox_nhom8-Solid

Symbolic Math Toolbox

Nhóm 8: Trần Văn Chương-Nguyễn Hoàng Văn-Dương Văn Lập 9

x^6+1 (x^2+1)*(x^4–x^2+1)e.simplify:Hàm simplify là một hàm mạnh, dùng rút gọn các biểu thức.f simplify(f)x*(x*(x‐6)+11)‐6 x^3‐6*x^2+11*x‐6(1‐x^2)/(1‐x) x + 1(1/a^3+6/a^2+12/a+8)^(1/3) ((2*a+1)^3/a^3)^(1/3)syms x y positive log(x*y) log(x) + log(y)exp(x) * exp(y) exp(x+y)f.simple: Hàm simple đưa ra dạng ngắn nhất có thể có của một biểuthức.Hàm này có nhiều dạng,mỗi dạng trả về kết quả khác nhau. Dạng:simple(f)

3.2.2 Các hàm thay thế.a.subexpr:b.subs: thay thế các giá trị old bằng new trong biểu thức expr.

3.3 Giải phương trình3.3.1 Giải phương trình đại số.Nếu S là một biểu thức symbolic thì dùng lệnh Solve(S) để tìm giá trị của biếnsymbolic trong S để S=0.Ví dụ:

>>sym x y

>>f=sin(x)

>>Subs(f,x,pi/3)ans = 0.8660

>>syms x>>simple(cos(x)^2 +sin(x)^2)ans = 1

Page 11: Symbolic Math Toolbox_nhom8-Solid

Symbolic Math Toolbox

Nhóm 8: Trần Văn Chương-Nguyễn Hoàng Văn-Dương Văn Lập 10

3.3.2 Giải hệ phương trình: Bây giờ ta xét hệ phương trình+ = 0− =

3.3.3 Giải phương trình vi phân.Cú pháp Phạm viy = dsolve(‘Dyt = y0*y’) Một phương trình, một nghiệm[u,v] = dsolve(ʹDu=vʹ,ʹDv=uʹ) Hai phương trình, hai nghiệmS = dsolve(ʹDf=gʹ,ʹDg=hʹ,ʹDh=–fʹ)S.f,S.g, S.h Ba phương trình, ra là cấu trúcNghiệm

>>syms a b c x

>>S = a*x^2 + b*x + c;

>>solve(S)ans =-(b + (b^2 - 4*a*c)^(1/2))/(2*a)-(b - (b^2 - 4*a*c)^(1/2))/(2*a)

>>syms x y;

>>alpha = sym('alpha');

>>[x, y] = solve(x^2*y^2, x-y/2 - alpha)x = alpha0y = 0-2*alpha

Page 12: Symbolic Math Toolbox_nhom8-Solid

Symbolic Math Toolbox

Nhóm 8: Trần Văn Chương-Nguyễn Hoàng Văn-Dương Văn Lập 11

3.3.4 Giải hệ phương trình vi phân.

Page 13: Symbolic Math Toolbox_nhom8-Solid

Symbolic Math Toolbox

Nhóm 8: Trần Văn Chương-Nguyễn Hoàng Văn-Dương Văn Lập 12

TÀI LIỆU THAM KHẢO[1] Website http://www.mathworks.com/[2] The MathWorks, “Symbolic Math Toolbox for use withMATLAB”, Version 5.4, 2010[3] MATLAB và Ứng dụng trong viễn thông. TS.Phạm HồngLiên,Đặng Ngọc Khoa,Trần Thanh Phương. 2005.