1. Trang chủ
  2. » Thể loại khác

MatLab phkkhanh Chuong4 Symbolic

12 154 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 620,62 KB

Nội dung

Giáo trình MatLab Symbolic CHƯƠNG 4: SYMBOLIC Chương giới thiệu cách thức dùng Symbolic để giải phương trình tốn học Symbolic Symbolic cơng cụ thực tính tốn biểu thức tốn học dạng ký tự Khi tính tốn, phải thực thơng qua chuỗi biểu thức biểu diễn hàm toán học Như vậy, cần phải định nghĩa hàm dạng ký hiệu Để định nghĩa ký hiệu sử dụng biểu thức, MatLab khai báo sau: >>syms bien_1 bien_2 Một số hàm sử dụng symbolic: Chức Tên hàm Tên hàm Chức syms Khai báo biến findsyms Tìm biến biểu thức sym Khai báo mảng pretty Sắp xếp biểu thức diff Đạo hàm vi phân collect Tách hệ số simplify Rút gọn biểu thức solve Giải phương trình int Tích phân dsolve Giải phương trình vi phân subs Thay ký hiệu giá trị laplace Biến đổi Laplace factor Phân tích thừa số nguyên tố ilaplace Biến đổi Laplace ngược expand Khai triển biểu thức fourier Biến đổi Fourier ezplot Vẽ biểu thức ifourier Biến đổi Fourier ngược limit Tìm giới hạn finverse Tính hàm ngược 1.1 Đạo hàm vi phân Dùng hàm diff để xác định đạo hàm hàm số >>syms x >> y=diff(cos(x)) y = Phạm Hùng Kim Khánh Trang 81 Giáo trình MatLab Symbolic -sin(x) >>diff('x^3+3*x^2+2*x-1',2) %Đạo hàm cấp ans = 6*x + >>y = diff('x/(1+x^3)') y = 1/(x^3 + 1) - (3*x^3)/(x^3 + 1)^2 >> simplify(y) ans = -(2*x^3 - 1)/(x^3 + 1)^2 1.2 Tích phân Dùng hàm int để tính tích phân >>y = int('1/(1+x^2)') %Tích phân bất định y = atan(x) >> y = int(log(x)/exp(x^2)) %Không thực hàm phức tạp Warning: Explicit integral could not be found y = int(log(x)/exp(x^2), x) >> y = int(x*log(1+x),0,1) %Tích phân xác định y = 1/4 1.3 Hàm ngược Dùng hàm finverse để tìm hàm ngược >> finverse(1/x) Phạm Hùng Kim Khánh Trang 82 Giáo trình MatLab Symbolic ans = 1/x >> finverse(a*x+b) ans = -(b - x)/a >> finverse(x^2) %Warning có kết khác Warning: finverse(x^2) is not unique ans = x^(1/2) 1.4 Vẽ đồ thị Dùng hàm ezplot vẽ đồ thị hàm số >> syms x >> ezplot(sin(x)/x) >> ezplot(sin(x)/x,0,4*pi) Dùng hàm ezsurf vẽ đồ thị 3D >>ezsurf('x*exp(-x^2 - y^2)') 1.5 Định dạng biểu thức >> syms s >> y=int('sin(s+2*x)','s',pi/2,pi) y = cos(2*x) - sin(2*x) >> pretty(y) cos(2 x) - sin(2 x) Khai triển đẳng thức: >> f = sym('x^2-1'); >> factor(f) Phạm Hùng Kim Khánh Trang 83 Giáo trình MatLab Symbolic ans = (x - 1)*(x + 1) >> y=expand((x+1)^3-2*(x-1)^2) y = x^3 + x^2 + 7*x - Đơn giản biểu thức: >> y=simplify(sin(x)^2+cos(x)^2) y = >> y=simplify((1-x^2)/(1-x)) y = x + >> simple((1/x^3+6/x^2+12/x+8)^(1/3)) simplify: ((2*x + 1)^3/x^3)^(1/3) radsimp: (12/x + 6/x^2 + 1/x^3 + 8)^(1/3) simplify(100): ((2*x + 1)^3/x^3)^(1/3) combine(sincos): (12/x + 6/x^2 + 1/x^3 + 8)^(1/3) combine(sinhcosh): (12/x + 6/x^2 + 1/x^3 + 8)^(1/3) combine(ln): (12/x + 6/x^2 + 1/x^3 + 8)^(1/3) factor: Phạm Hùng Kim Khánh Trang 84 Giáo trình MatLab Symbolic (12/x + 6/x^2 + 1/x^3 + 8)^(1/3) expand: (12/x + 6/x^2 + 1/x^3 + 8)^(1/3) combine: (12/x + 6/x^2 + 1/x^3 + 8)^(1/3) rewrite(exp): (12/x + 6/x^2 + 1/x^3 + 8)^(1/3) rewrite(sincos): (12/x + 6/x^2 + 1/x^3 + 8)^(1/3) rewrite(sinhcosh): (12/x + 6/x^2 + 1/x^3 + 8)^(1/3) rewrite(tan): (12/x + 6/x^2 + 1/x^3 + 8)^(1/3) mwcos2sin: (12/x + 6/x^2 + 1/x^3 + 8)^(1/3) collect(x): FAIL ans = ((2*x + 1)^3/x^3)^(1/3) 1.6 Giải phương trình hệ phương trình Dùng hàm solve giải phương trình hệ phương trình, dsolve để giải phương trình vi phân Giải phương trình bậc n: >> y=solve('x^3+2*x^2+1') y = Phạm Hùng Kim Khánh Trang 85 Giáo trình MatLab Symbolic - 4/(9*(43/54 - (59^(1/2)*108^(1/2))/108)^(1/3)) (43/54 - 1/108*59^(1/2)*108^(1/2))^(1/3) - 2/3 - 2/(9*(43/54 (59^(1/2)*108^(1/2))/108)^(1/3)) + (43/54 (59^(1/2)*108^(1/2))/108)^(1/3)/2 (3^(1/2)*i*(4/(9*(43/54 - (59^(1/2)*108^(1/2))/108)^(1/3)) - (43/54 - 1/108*59^(1/2)*108^(1/2))^(1/3)))/2 - 2/3 2/(9*(43/54 (59^(1/2)*108^(1/2))/108)^(1/3)) + (43/54 (59^(1/2)*108^(1/2))/108)^(1/3)/2 + (3^(1/2)*i*(4/(9*(43/54 - (59^(1/2)*108^(1/2))/108)^(1/3)) - (43/54 - 1/108*59^(1/2)*108^(1/2))^(1/3)))/2 - 2/3 >> eval(y) ans = -2.2056 0.1028 - 0.6655i 0.1028 + 0.6655i >> [x,y]=solve('x^2+x*y+y=1','x^2-4*y=3') x = -1 - 11^(1/2) - 11^(1/2) - y = -1/2 11^(1/2) + 3 - 11^(1/2) >> eval(x) ans = -1.0000 Phạm Hùng Kim Khánh Trang 86 Giáo trình MatLab Symbolic -5.3166 1.3166 >> eval(y) ans = -0.5000 6.3166 -0.3166 Giải phương trình lượng giác: >> solve('2*cos(x)+2') ans = pi >> solve('2*cos(x)') ans = pi/2 >> solve('cos(x)=sin(x)') ans = pi/4 >> y=solve('exp(x)=tan(x)') y = matrix([[-226.19467105846511316931032359612]]) >> eval(y) ans = -226.1947 Phạm Hùng Kim Khánh Trang 87 Giáo trình MatLab Symbolic Giải hệ phương trình: >> y1=sym('2*x1+3*x2-2*x3=1'); >> y2=sym('x1-x2+3*x3=2'); >> y3=sym('x2-2*x3=4'); >> [x1,x2,x3]=solve(y1,y2,y3,'x1,x2,x3') x1 = 35/2 x2 = -19 x3 = -23/2 >> y3=sym('x2^2-2*x3=4'); >> [x1,x2,x3]=solve(y1,y2,y3,'x1,x2,x3') x1 = 21/64 - (7*329^(1/2))/64 (7*329^(1/2))/64 + 21/64 x2 = 329^(1/2)/8 + 5/8 5/8 - 329^(1/2)/8 x3 = (5*329^(1/2))/64 + 49/64 49/64 - (5*329^(1/2))/64 >> eval([x1,x2,x3]) ans = -1.6558 2.8923 2.1827 2.3120 -1.6423 -0.6514 Phạm Hùng Kim Khánh Trang 88 Giáo trình MatLab Symbolic Giải phương trình vi phân: >> y=dsolve('Dy=y*tan(x)+cos(x)','x') kiện đầu %Khơng có điều Điều kiện y = (x/2 + sin(2*x)/4)/cos(x) + C5/cos(x) >> simplify(y) ans = (4*C5 + 2*x + sin(2*x))/(4*cos(x)) >> pretty(y) x sin(2 x) - + -2 C5 + -cos(x) >> y(0)=1 cos(x) y=dsolve('Dy=1+y^2','y(0)=1','x') % đầu y = tan(pi/4 + x) >> y=dsolve('D2y=cos(2*x)-y','Dy(0)=1','y(0)=1','x') Giải phương trình vi phân cấp % y = Phạm Hùng Kim Khánh Trang 89 Giáo trình MatLab Symbolic (5*cos(x))/3 + sin(x) + (8*tan(x/2)^2*sin(x))/(3*(tan(x/2)^2 (2*cos(x)*(3*tan(x/2)^4 + 1))/(3*(tan(x/2)^2 + 1)^3) sin(x)*(sin(x) + 1)^2)) 6*tan(x/2)^2 + >>y= simplify(y) y = (2*tan(x/2)^3 + (16*tan(x/2)^2)/3 8/3)/(tan(x/2)^2 + 1)^2 - 5/3 + 2*tan(x/2) + >> pretty(y) / x \2 16 tan| - | / x \3 tan| - | \ / / x \ + + tan| - | + - \ / \ / - - / / x \2 | tan| - | \ \ / \2 + | / >> y=dsolve('D2y-2*Dy-3*y=0','y(0)=0','y(1)=1','x') y = 1/(exp(x)*(1/exp(1) - exp(3))) - exp(3*x)/(1/exp(1) exp(3)) >> y=simple(y) y = Phạm Hùng Kim Khánh Trang 90 Giáo trình MatLab Symbolic (1/exp(x) - exp(3*x))/(1/exp(1) - exp(3)) >> pretty(y) - exp(3 x) exp(x) - exp(3) exp(1) >> [f,s] = dsolve ('Dz=3*z+4*y', 'Dy=-4*z+3*y' 'z(0)=0','y(0)=1','x') %Giải hệ phương trình vi phân , f = cos(4*x)*exp(3*x) s = sin(4*x)*exp(3*x) 1.7 Tìm giới hạn Dùng hàm limit tìm giới hạn hàm >> syms x a t h >> y=limit(sin(x)/x) % x  y = >> y=limit(sin(x)/x,inf) % x   y = >> limit(1/x,x,0,'right') % Giới hạn phải Phạm Hùng Kim Khánh Trang 91 Giáo trình MatLab Symbolic ans = Inf >> limit(1/x,x,0,'left') % Giới hạn trái ans = -Inf >> limit((sin(x+h)-sin(x))/h,h,0) ans = cos(x) Phần thực hành - Tính vẽ đạo hàm hàm số y = sinx3 Tính tích phân: ∫ - Giải hệ phương trình: { - Vẽ mặt có phương trình sau: - Tính đạo hàm cấp hàm số sau: - Giải toán chương cách dùng Symbolic Phạm Hùng Kim Khánh Trang 92 ...Giáo trình MatLab Symbolic -sin(x) >>diff('x^3+3*x^2+2*x-1',2) %Đạo hàm cấp ans = 6*x + >>y = diff('x/(1+x^3)')... Dùng hàm finverse để tìm hàm ngược >> finverse(1/x) Phạm Hùng Kim Khánh Trang 82 Giáo trình MatLab Symbolic ans = 1/x >> finverse(a*x+b) ans = -(b - x)/a >> finverse(x^2) %Warning có kết khác... Khai triển đẳng thức: >> f = sym('x^2-1'); >> factor(f) Phạm Hùng Kim Khánh Trang 83 Giáo trình MatLab Symbolic ans = (x - 1)*(x + 1) >> y=expand((x+1)^3-2*(x-1)^2) y = x^3 + x^2 + 7*x - Đơn giản

Ngày đăng: 21/01/2018, 11:50

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w