BÀI 4: SYMBOLIC• Là công cụ thực hiện tính toán các biểu thức toán học ở dạng ký tự.. • Khi tính toán, phải thực hiện thông qua một chuỗi biểu thức biểu diễn hàm toán học.. • Cần phải đị
Trang 1BÀI 4: SYMBOLIC
• Là công cụ thực hiện tính toán các biểu thức toán học ở dạng ký tự
• Khi tính toán, phải thực hiện thông qua một chuỗi biểu thức biểu diễn hàm toán học
• Cần phải định nghĩa hàm dưới dạng các ký hiệu
Trang 2Tên hàm Chức năng Tên hàm Chức năng
syms
sym
diff
simplify
int
subs
factor
expand
ezplot
limit
Khai báo biến Khai báo mảng Đạo hàm và vi phân Rút gọn biểu thức Tích phân
Thay thế các ký hiệu bằng giá trị Phân tích ra thừa số nguyên tố Khai triển biểu thức
Vẽ biểu thức Tìm giới hạn
findsyms pretty collect solve dsolve laplace ilaplace fourier ifourier finverse
Tìm biến trong biểu thức Sắp xếp biểu thức
Tách các hệ số Giải phương trình Giải phương trình vi phân Biến đổi Laplace
Biến đổi Laplace ngược Biến đổi Fourier
Biến đổi Fourier ngược Tính hàm ngược
Trang 3Đạo hàm
Dùng hàm diff để xác định đạo hàm của một hàm số.
>>syms x
>> y=diff(cos(x))
y =
-sin(x)
>>diff('x^3+3*x^2+2*x-1',2)
ans =
6*x + 6
>>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
Trang 4Đạo hàm
>> syms m
>> z = 2*sin(x) + m^2*cos(x)
>> diff(z,m,2)
ans =
2*cos(x)
>> diff(z,x,3) ans =
sin(x)*m^2 - 2*cos(x)
Trang 5Tích phân
Dùng hàm int để tính tích phân
>> y = int(1/(1+x^2))
y = atan(x)
>>y = int(log(x)/exp(x^2))
y = int(exp(-x^2)*log(x), x) Không thực hiện được khi hàm phức tạp
Trang 6Tích phân
Tích phân xác định
>> y = int(x*log(1+x),0,1)
y =
1/4
>> y=int(x^3*atan(x),0,pi/4)
y =
pi/16 - atan(pi/4)/4 + (pi^4*atan(pi/4))/1024 - pi^3/768
>> eval(y) ans =
0.0529
Trang 7Tích phân
Nhiều tích phân không thể tính nguyên hàm được > dùng hàm quad tính tích phân bằng phương pháp cầu phương Simpson thích nghi
>> y=int(exp(x)*atan(x^2)/cos(x),0,1)
y = int((atan(x^2)*exp(x))/cos(x), x, 0, 1)
>> y=inline('(exp(x).*atan(x.^2)./cos(x)’)
>> quad(y,0,1) ans =
0.9230
Trang 8Hàm ngược
Dùng hàm finverse để tìm hàm ngược.
>> finverse(1/x)
ans =
1/x
>> finverse(a*x+b)
ans =
-(b - x)/a
>> finverse(x^2) %Warning do có 2 kết quả khác nhau
Warning: finverse(x^2) is not unique
ans =
Trang 9Vẽ đồ thị
Dùng hàm ezplot vẽ đồ thị hàm số.
>> subplot(211)
>> ezplot(sin(x)/x)
>> subplot(212)
>> ezplot(sin(x)/x,[0,4*pi])
Trang 10Vẽ đồ thị
Dùng hàm ezsurf vẽ đồ thị 3D.
>> ezsurf(x*exp(-x^2 - y^2))
Trang 11Giải phương trình
Dùng hàm solve giải phương trình và hệ phương trình
>>y=solve(x^3+1==0)
y =
-1 1/2 - (3^(1/2)*1i)/2
(3^(1/2)*1i)/2 + 1/2
>> eval(y)
ans =
-1.0000 + 0.0000i
0.5000 - 0.8660i
0.5000 + 0.8660i
Trang 12>> y=solve(x^3+2*x^2+1==0)
y =
root(z^3 + 2*z^2 + 1, z, 1)
root(z^3 + 2*z^2 + 1, z, 2)
root(z^3 + 2*z^2 + 1, z, 3)
>> y=vpa(y)
y =
-2.2055694304005903117020286177838 0.10278471520029515585101430889191 - 0.66545695115281347670619061162908i 0.10278471520029515585101430889191 + 0.66545695115281347670619061162908i
>> eval(y)
ans =
-2.2056 + 0.0000i
0.1028 - 0.6655i
0.1028 + 0.6655i
Trang 13>> syms x1 x2 x3
>> [y1,y2,y3]=solve(2*x1+3*x2-2*x3==1,x1-x2+3*x3==2,x2-2*x3==4) y1 =
35/2
y2 =
-19
y3 =
Giải hệ phương trình
Trang 14Giải hệ phương trình
>> [y1,y2,y3]=solve(2*x1+3*x2-2*x3==1,x1-x2+3*x3==2,x2^2-2*x3==4)
y1 =
(7*329^(1/2))/64 + 21/64
21/64 - (7*329^(1/2))/64
y2 =
5/8 - 329^(1/2)/8
329^(1/2)/8 + 5/8
y3 =
49/64 - (5*329^(1/2))/64
(5*329^(1/2))/64 + 49/64
>> eval([y1 y2 y3])
ans =
2.3120 -1.6423 -0.6514
-1.6558 2.8923 2.1827
Trang 15Giải phương trình vi phân
>> y=dsolve('Dy=y*tan(x)+cos(x)',x)
y =
(x/2 + sin(2*x)/4)/cos(x) + C4/cos(x)
>> y = simplify(y)
y =
(4*C4 + 2*x + sin(2*x))/(4*cos(x))
>> pretty(y)
4 C4 + 2 x + sin(2 x)
-4 cos(x)
Dùng hàm dsolve giải phương trình vi phân
Không có điều kiện đầu
>> y=dsolve('Dy=1+y^2','y(0)=1','x')
y = tan(x + pi/4) Điều kiện đầu y(0) = 1
Trang 16Giải phương trình vi phân
>> y=dsolve('D2y=cos(2*x)-y','Dy(0)=1','y(0)=1','x')
y =
(5*cos(x))/3 + sin(x) + sin(x)*(sin(3*x)/6 + sin(x)/2) (2*cos(x)*(6*tan(x/2)^2 -3*tan(x/2)^4 + 1))/(3*(tan(x/2)^2 + 1)^3)
>> y=simplify(y)
y =
(8*cos(x))/3 + sin(x) - (8*cos(x/2)^4)/3 + 1
>> pretty(y)
/ x \4 cos| - | 8
8 cos(x) \ 2 /
- + sin(x) - - + 1
Trang 17Giải hệ phương trình vi phân
>>[f,s] = dsolve ('Dz=3*z+4*y', 'Dy=-4*z+3*y' , 'z(0)=0','y(0)=1','x')
f =
cos(4*x)*exp(3*x)
s =
sin(4*x)*exp(3*x)
Trang 18Tìm giới hạn
Dùng hàm limit tìm giới hạn
>> y=limit(sin(x)/x)
y = 1
>> y=limit(sin(x)/x,inf)
y =0
>> y=limit(cos(4*x)*exp(3*x))
y =1
>> y=limit(cos(4*x)*exp(3*x),inf)
% Giới hạn phải
>> limit(1/x,x,0,'right') ans =
Inf
% Giới hạn trái
>> limit(1/x,x,0,'left') ans =
-Inf
Trang 19Bài tập
1 Tính và vẽ đạo hàm của hàm số y = sinx3
2 Tính tích phân: 𝑦 = −11 𝑥2(2𝑥2+1)
5(𝑥3+3) 𝑑𝑥
3 Giải hệ phương trình: ቊ𝑥2𝑠𝑖𝑛𝑥2 − 𝑦 = 7
𝑥 − 𝑦 = 2
4 Vẽ mặt có phương trình sau: 𝑓 𝑥, 𝑦 = 𝑥
2𝑥2+𝑦2
5 Tính đạo hàm cấp 2 của hàm số sau: 𝑦 = 1 − 𝑥 𝑒𝑥2+2𝑥
6 Giải các bài toán trong bài 3 bằng cách dùng Symbolic