các hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlabcác hàm toán học matlab
TRƯỜNG ĐẠI HỌC NÔNG LÂM HUẾ KHOA CƠ KHÍ – CÔNG NGHỆ LỚP KĨ THUẬT CƠ ĐIỆN TỬ K48 CHỦ ĐỀ SỐ 22: Khai báo biến symbolic hàm Toolbox Symbolic SINH VIÊN THỰC HIỆN: Phạm Lương Hoàn Phan Văn Đông Nguyễn Quang Tân Nguyễn Tất Bão Hoàng Phi Long Nội dung 1.Giới thiệu symbolic Symbolic Math Toolbox Lệnh hàm Symbolic Matlab 2.1 Cấu trúc 2.2 Biến symbolic mặc định 1.Giới thiệu symbolic Symbolic Math Toolbox : Định nghĩa: kiểu liệu Matlab gọi đối tượng Symbolic Một đối tượng Symbolic cấu trúc liệu lưu trữ đại diện kiểu sâu ký tự biểu tượng (Symbol) Symbolic Math Toolbox sử dụng đối tượng Symbolic để biểu diễn biến, biểu thức Matlab trận Symbolic 2 Lệnh hàm Symbolic Matlab 2.1 Cấu trúc : - Lệnh sym cho phép xây dựng biến biểu thức symbolic Ví dụ: >> x = sym(‘x’); y = sym(‘y’) % lệnh tạo x,y biến symbolic - Tạo biến thực: >> x = sym(‘x’, ‘real’);y =sym(‘y’,’real’) %x,y biến kiểu thực symbolics >> x = sym(‘x’,’ real’) % x biến kiểu thực >> y = sym(‘y’) %y biến kiểu symbolic 2.2 Biến symbolic mặc định Theo quy ước toán học biến độc lập thường chữ in thường nằm cuối bảng chữ (ví dụ: x, y, z, t, u, v,…) >>syms a b t >>f = sin(a*t + b); >>diff(f) %Lệnh tính đạo hàm biểu thức symbolic f câu lệnh diff(f), ta không xác định đạo hàm biểu thức f theo biến (a, b hay x) Làm Matlab xác định ta muốn đạo hàm theo biến t mà a b Trong symbolic math toolbox sử dụng biến symbolic để xác định biến độc lập mặc định trường hợp không xác định biến độc lập, hàm tiện ích findsym Biến symbolic mặc định sử dụng phép toán tính toán, đơn giản hoá biểu thức, giải phương trình phép biến đổi >>findsym(f,1) ans = t đây, đối số thứ hai hàm findsym biểu thị số biến symbolic mà ta muốn tìm biểu thức f Nếu không xác định đối số thứ hai findsym trả danh sách liệt kê tất biến biểu thức Ví dụ: >> findsym(f) ans = a, b, t Luật findsym: Biến độc lập biểu thức symbolic chữ gần chữ x bảng chữ Nếu có hai chữ gần chữ x chữ sau x bảng chữ chọn ví dụ: >>findsym(a+c-v*y,1) ans= y 2.2.1 Phép đạo hàm Để tính đạo hàm biểu thức symbolic ta sử dụng hàm diff() + diff(S): Đạo hàm biểu thức symbolic S với biến tự xác định hàm findsym(S) + diff(S,v) hay diff(S,sym(‘v’)): Đạo hàm biểu thức symbolic S với biến lấy đạo hàm biến symbolic v nghĩa thực phép toán dS/dv + diff(S,n) : Đạo hàm cấp n biểu thức S, n số nguyên dương Ví dụ: >>syms x t >> y = sin(x^2); >>z = diff(y); z = 2*cos(x^2)*x >>pretty(z) %hiển thị dạng quen thuộc 2.cosx >>y = diff(t^6,6) % đạo hàm bậc hàm t^6 y = 720 >>syms u v >>y = u^2*v - u*v^3; >> y2u = diff(y,u,2) % đạo hàm cấp theo u y2u = 2*v >> y3u = diff(y,v,3) % đạo hàm cấp theo v y3u = -6*u 2.2.2 Phép tích phân Để tính tích phân biểu thức symbolic ta sử dụng hàm int() + int(S) : tích phân không xác định biểu thức symbolic S với biến mặc định xác định findsym + int(S, v): Tích phân không xác định biểu thức symbolic S với biến tích phân v + int(S,a,b): Tích phân không xác định biểu thức symbolic S với biến tự cận lấy tích phân từ [a,b] + int(S,v,a,b): Tích phân không xác định biểu thức symbolic S với biến tích phân v cận lấy tích phân từ [a,b] Ví dụ: >>syms x t z alpha >>int(-2*x/(1+x^2)^2) ans = 1/(1+x^2) >>int(x/(1+z^2),z) ans = x*atan(z) >>int(x*log(1+x),0,1) ans = 1/4 >>int(-2*x/(1+x^2)^2) ans = 1/(1+x^2) >> int([exp(t),exp(alpha*t)]) ans = [ exp(t), 1/alpha*exp(alpha*t)] 2.2.3 Tính tổng dãy số symbolic Để tính tổng biểu thức symbolic ta sử dụng hàm symsum() + symsum(S): Tổng biểu thức symbolic theo biến symbolic k , k xác định lệnh findsym từ k -1 + symsum(S,v): Tổng biểu thức symbolic S theo biến symbolic v,v xác định từ k - + symsum(S,a,b), symsum(S,v,a,b): Tổng biểu thức symbolic S theo symbolic v, v xác định từ v = s đến v = b Ví dụ: >>syms k n x >>symsum(k^2) ans = 1/3*k^3-1/2*k^2+1/6*k >>symsum(k) ans = 1/2*k^2-1/2*k >>symsum(k^2,0,10) ans = 385 2.2.4 Tìm giới hạn • • • • • Để tìm giới hạn biểu thức symbolic ta sử dụng hàm limit() + limit(F, x, a) : Tìm giới hạn biểu thức F x a + limit(F, a) : Tìm giới hạn biểu thức F với biến độc lập + limit(F) : Tìm giới hạn biểu thức F a = + limit(F, x, a,’right’) Lim it(F, x, a, ‘left’) : Tìm giới hạn phải bên trái Ví dụ: • • • • • • • • • • • • >>syms x a t h >>limit(sin(x)/x) ans = >>limit(1/x,x,0,‟right‟) ans = inf >>limit(1/x,x,0,‟left‟) ans = -inf >>limit((sin(x+h)-sin(x))/h,h,0) ans = cos(x) >>v = [(1+a/x)^x,exp(-x)]; >>limit(v,x,inf,‟left‟) ans = [exp(a),0] 2.2.5 Tách tử số mẫu số biểu thức symbolic [n,d] = numden(A): biến đổi phần tử A thành dạng hữu tỷ tử số mẫu số đa thức (tương đối) nguyên tố với hệ số nguyên Ví dụ: • • • • • • • • • • • • >>syms x y a b >>A= (4-x)/5; >>[n,d] = numden(A) n = 4-x d=5 >>[n,d] = numden(x/y + y/x) n = x^2+y^2 d = y*x >>A = [a, 1/b] >>[n,d] = numden(A) n = [a, 1] d = [1, b] 2.2.6 Phương trình vi phân Hàm dsolve tính toán lời giải symbolic cho phương trình vi phân thường Các phương trình xác định biểu thức symbolic chứa chữ D để biểu diễn ký hiệu vi phân d/dt Các ký hiệu D2, D3,…, Dn tương ứng với đạo hàm bậc 2, 3,…, n Vì vây, D2y tương đương với d^2 y/dt^2 Trong lời giải dsolve biến độc lập mặc định t Lưu ý tên biến symbolic không chứa ký tự D Điều kiện đầu xác định cách bổ xung thêm phương trình Nếu điều kiện đầu không xác định lời giải chứa số tích phân C1, C2, Cú pháp lệnh dsolve: dsolve(„PT1‟, „PT2‟,…, „PTn‟) Ví dụ: >>y = dsolve('(D2y) =1','y(0) = 1') y = (t*(C3 + t))/2 + >>[x,y] = dsolve('Dx = y', 'Dy = -x') X = C5*cos(t) + C4*sin(t) y = C4*cos(t) - C5*sin(t) 2.2.7 Biểu diễn biểu thức symbolic dạng toán học • • • • • • Sử dụng hàm pretty(S) để hiển thị S dạng dễ đọc quy ước toán học thông thường Ví dụ: >>s=2*cos(x)^2-sin(x)^2 s = 2*cos(x)^2-sin(x)^2 >>pretty(s) 2 cos(C5 cos(t) + C4 sin(t)) - sin(C5 cos(t) + C4 sin(t)) • TÀI LIỆU THAM KHẢO: http://doc.edu.vn/tai-lieu/bai-giang-matlab-su-dung-symbolic-math-toolbox-58465/ 2.http://mientayvn.com/Dien%20tu/Tai_lieu/Dien_dan/Phan_mem_UD/Matlab/bai_giang_matlab_8596.pdf http://monhoc.vn/tai-lieu/matlab-va-ung-dung-tinh-toan-hinh-thuc-trong-matlab-852/ CẢM ƠN THẦY VÀ CÁC BẠN ĐÃ CHÚ Ý THEO DÕI Mong bạn đến tham dự buổi tiệc chung vui với ... Phép đạo hàm Để tính đạo hàm biểu thức symbolic ta sử dụng hàm diff() + diff(S): Đạo hàm biểu thức symbolic S với biến tự xác định hàm findsym(S) + diff(S,v) hay diff(S,sym(‘v’)): Đạo hàm biểu... C4*cos(t) - C5*sin(t) 2.2.7 Biểu diễn biểu thức symbolic dạng toán học • • • • • • Sử dụng hàm pretty(S) để hiển thị S dạng dễ đọc quy ước toán học thông thường Ví dụ: >>s=2*cos(x)^2-sin(x)^2 s = 2*cos(x)^2-sin(x)^2... symbolic f câu lệnh diff(f), ta không xác định đạo hàm biểu thức f theo biến (a, b hay x) Làm Matlab xác định ta muốn đạo hàm theo biến t mà a b Trong symbolic math toolbox sử dụng biến symbolic