You are on page 1of 10

11/11/2007

I. Giới thiệu
TÍNH TOÁN HÌNH THỨC 
• Tính toán hình thức.
TRONG MATLAB
TRONG MATLAB • Symbolic Math Toolbox.

Khai báo Khai báo biểu thức:


• Khai báo biến: • Khai báo biểu thức: f = 2*x + b
– syms a b c x – syms x b
hoặc – f = 2*x
2* + b
– a = sym(‘a’)
– b = sym(‘b’) hoặc
– c = sym(‘c’) – f = sym(‘2*x + b’)
– x = sym(‘x’) – sym(‘(sqrt(2) + 1)/3’)
– g = syms(
syms(‘5’)
5 ) (khác g = 5)
• Khai báo biếnế phức
– x = sym(‘x’,’real’); y = sym(‘y’,’real’) – syms x y
hoặc syms x y real – h = x^2 + y^2
– x = x + i*y

1
11/11/2007

• Lệnh findsym: tìm biến hình thức trong Hiển thị biến hình thức dưới dạng số học
biểu thức. • t = 0.1
• Ví dụ – sym(t,’ f ’)
– sy
symssabntxz – ans = '1.999999999999a'*2^(-4)
( )
– s = x^n; g = sin(a*t + b) – sym(t, ’r ’)
– findsym(f) – ans = 1/10
– ans = x n – sym(t,’ e ’)
– ans = 1/10+eps/40
– findsym(g)
– sym(t,’ d ’)
– ans = a b t
– ans = .10000000000000000555111512312578
• findsym(g,1): tìm biến hình thức mặc định – digits(7)
– findsym(g,1) – sym(t,’ d ’)
– ans = t – ans = .1000000

II. Các phép tính vi tích phân Đạo hàm


• diff(Y)
• Đạo hàm Y: hàm số hoặc biến hình thức cần lấy đạo hàm.
• Tích phân • Ví dụ
– syms x; f = sin(5*x)
• Giới hạn
– diff(f)
• Tổng chuỗi – ans = 5*cos(5*x)
– g = exp(x)*cos(x)
– diff(g)
– ans = exp(x)*cos(x) – exp(x)*sin(x)
– c = sym(‘5’); diff(c)
– ans = 0

2
11/11/2007

– diff(5) ƒ Đạo hàm cấp 2 theo x: diff(f,x,2)


– ans = [ ] vì 5 không phải là biến hình thức ƒ Đạo hàm cấp 2 theo y: diff(f,y,2)
ƒ Nếu x là biến mặc định của f thì diff(f,2) tương
• Lấy đạo hàm cấp 2 đương với diff(f,x,2).
– diff(g,2) o Ví dụ
hoặc ƒ syms s t
– diff(diff(g)) ƒ f = sin(s*t)
– ans = -2exp(x)*sin(x) ƒ diff(f,t) => ans = cos(s*t)*s
• Đạo
Đ hàm
hà đ
đa biế
biến ƒ diff(f,s)=>
diff(f ) > ans = cos(s*t)*t
( *t)*t
Gọi f = f(x,y) thì ƒ diff(f,t,2) => ans = -sin(s*t)*s^2
ƒ Đạo hàm theo x: diff(f,x) ƒ findsym(f,1) => ans = t
ƒ Đạo hàm theo y: diff(f,y) Suy ra biến mặc định là t do đó diff(f,2) = diff(f,t,2)

o Đạo hàm đối với ma trận Tích phân


ƒ syms a x
• int(f,x) hoặc inf(f) : Tìm nguyên hàm của
ƒ A = [cos(a*x) sin(a*x); -sin(a*x) cos(a*x)]
hàm f = f(x).
ƒ A=
• inf(f,a,b) : Tính tích phân của f từ a -> b.
[cos(a*x), sin(a*x)]
[-sin(a*x), cos(a*x)]
• Ví dụ
– syms x n a b t
ƒ diff(A)
–f=x^n
ƒ ans = – int(f) ( hoặc inf(f,x))
[-sin(a*x)*a, cos(a*x)*a] – ans = x^(n+1)/(n+1)
[-cos(a*x)*a, -sin(a*x)*a]

3
11/11/2007

– g = cos(a*t + b) Giới hạn


– int(g)
– ans = sin(a*t + b)/a
– h = sin(2*x)
sin(2 x) • limit(f)
(): lim f ( x)
x →0

– int(h,0,pi/2) • limit(f,x,a) : lim f ( x)


x→a
– ans = 1
– u = exp(-x^2) hoặc limit(f,a)
– int(u,0,inf) lim f ( x)
• limit(f,x,a,
limit(f x a ’left’)
left ) : x →a+
– ans = 1/2*pi^(1/2)
lim f ( x)
• limit(f,x,a,’right’) : x→a−

• Ví dụ Tổng chuỗi
– sym h n x
– limit((cos(x + h) – cos(x))/h,h,0) • Tính: 1 1
1+ + + ...
– ans = - sin(x)
( ) 22 32
– limit((1 + x/n)^n,n,inf) 1 + x + x 2 + ...
– ans = exp(x)
– limit(x/abs(x),x,0,’left’) – syms x k
– ans = -1 – s1 = symsum(1/k^2,1,inf)
– limit(x/abs(x),x,0,’right’)
limit(x/abs(x),x,0, right ) – s2 = symsum(x
symsum(x^kk,k,0,inf)
k 0 inf)
– ans = 1 – s1 = 1/6*pi^2
– limit(x/abs(x),x,0) – s2 = -1/(x-1)
– ans = NaN

4
11/11/2007

III. Các hàm đơn giản và thay thế • Ví dụ


biến trong biểu thức – syms x t
– f = x^3 – 6*x^2 + 11*x – 6
• collect(f) – f = f(x)
– g = ((x – 1)*(x
) ( – 2)*(x
) ( – 3))
• collect(f,y) - f = f(x,y,…) – h = -6 + (11 + (-6 + x)*x)*x
• Đơn giản hàm f bằng các nhóm các biến x có – pretty(f), pretty(g), pretty(h)
cùng số mũ. – collect(f) => ans = x^3 – 6*x^2 + 11*x – 6
• Trường hợp f có nhiều biến collect(f,y) sẽ chỉ – collect(g) => ans = x^3 – 6*x^2 + 11*x – 6
định gom nhóm theo biến yy. – collect(h) => ans = xx^3 3–6 6*x^2
x 2 + 11
11*x
x–6
• collect(f) gom nhóm theo biến mặc định được – f = (1 + x)*t + x*t
– collect(f) => ans = 2*x*t + t
chỉ ra trong findsym(f).
– collect(f,t) => ans = 2*x*t + t

• expand(f) : phân tích biểu thức f. • factor(f) : phân tích đa thức f thành nhân
tử chung
• Ví dụ • Ví dụ
– syms
y xyab – f = x^3 – 6
6*x^2
x^2 + 11*x
11 x – 6
– f = a*(x + y) – g = x^3 – 6*x^2 + 11*x – 5
– expand(f) => ans = a*x + a*y – h = x^6 + 1
– g = (x -1)*(x -2)*(x – 3) – factor(f)
– expand(g) => ans = x^3 – 6*x^2 + 11*x – 6 – ans = (x – 1)*(x -2)*(x – 3)
– h = exp(a + b) – factor(g)
f t ( )
– expand(h) => ans = exp(a)*exp(b) – ans = x^3 – 6*x^2 + 11*x – 5 ??
– cos(3*x) => ans = 4*cos(x)^3 – 3*cos(x) – factor(h)
– ans = (x^2 + 1)*(x^4 – x^2 + 1)

5
11/11/2007

• simplify(f): đơn giản biểu thức f. • simple(f): rút gọn biểu thức f, kết hợp các
• Ví dụ phép toán của simplify, collect, factor.
– f = x*(x*(x – 6) + 11) - 6 • Ví dụ
– simplify(f) => ans = x^3 – 6*x^2 + 11*x – 6 – f = (1/a^3 + 6/a^2 + 12/a + 8)^1/3
– g = (1 – x^2)/(1 – x) – simplify(f) => ans = ((2*a + 1)^3/a^3)^1/3
– simplify(g) => ans = x + 1 – simple(f) => ans = (2*a + 1)/a
– syms x y positive – syms x y positive
– simplify(log(x
simplify(log(x*y))
y)) => log(x) + log(y) – h = log(x*y)
log(x y)
– h = cos(x)^2 + sin(x)^2 – simplify(h) => ans = log(x) + log(y)
– simplify(h) => ans = 1 – simple(h) => ans = log(x*y)

• subs(expr,old,new): thay thế old bằng new • [N D] = numden(f): trích tử số và mẫu số


trong biểu thức expr. của f gán cho N và D.
• Ví dụ • Ví dụ
– syms x y – syms
s ms s
– f = sin(x) – H = -(1/6)/(s + 3) -(1/2)/(s + 1) + (2/3)/s
– subs(f,x,pi/3) => ans = 0.8660 – simplify(H)
– subs(f,x,sym(pi)/3) => ans = 1/2*3^1/2 – pretty(ans)
– S = xx^yy – [[N D]] = numden(H)
( )
– subs(S,{x y},{3 2}) –N=s+2
– subs(S,{x y},{3 x+1}) – D = (s+3)*(s+1)*s
– subs(S,y,1:5) => ans = [ x, x^2, x^3, x^4, x^5]

6
11/11/2007

• poly2sym(a,x): tạo một đa thức theo biến x III. Tính toán trong đại số tuyến
với các hệ số được lấy lần lượt từ mảng a. tính
• Ví dụ
– syms x; a = [1 4 -7
7 -10]
10]
• Khai
Kh i bá
báo ma ttrận

– p = poly2sym(a,x)
– syms a b c d t
– p = x^3 + 4*x^2 – 7*x - 10
– A =[a b; c d]
• x = sym2poly(p): trích các hệ số của đa
thức p chứa vào mảng s. – B = [cos(t) sin(t); -sin(t) cos(t)]
– C = [t 1 0;1 t 1; 0 1 t]
• Ví dụ
– syms x; p = 4*s^2 – 2*s^2 + 5*s – 16 – d = round(rand(3,3))
– x = sym2poly(p) – D = sym(D)
– x = 4 -2 5 -16

• Các phép toán: với 2 ma trận A và B • Các hàm xử lý ma trận:


ƒ A+B ƒ inv(A)
ƒ A–B ƒ det(A)
ƒ A*B ƒ rank(A)
ƒ A\B ( = A*inv(B) ) ƒ diag(A)
ƒ A/B ( = inv(A)*B ) ƒ tril(A)
ƒ A^n ƒ triu(A)
ƒ A.’

7
11/11/2007

• Có thể dùng các hàm rút gọn và lấy đạo hàm,


• Ví dụ tích phân trên ma trận.
– c = floor(10*rand(4)) • Ví dụ
– D = sym(c) – syms a b s
– K = [a+b,
[a+b aa-b;b-a,
b b a a+b]
– A = inv(D) – G = [cos(s) sin(s);-sin(s) cos(s)]
– inv(A)*A – L = K^2
– det(A) – collect(L)
– factor(L)
– b = ones(1,4)
– diff(L,a)
– x = b/A – int(K,a)
– x*A – J = K/G
– A^3 – simplify(J*G)
– simplify(G*(G.’))

IV. Giải phương trình đại số • solve(f) : giải phương trình theo biến mặc
định được chỉ ra trong hàm findsym(f), ở
đây findsym(f) -> ans = x. solve(f,a): giải
• solve(f)
():g
giải phương
p g trình f(x)
( ) = 0. theo biến được chỉ định là a (tương tự cho
• Ví dụ b, c).
– syms a b c x • Ví dụ
– f = a*x^2 + b*x + c; – solve(f,b)
– solve(f) – ans = -(a*x^2 + c)/x
– ans =
[1/2*a(-b + (b^2 – 4*a*c)^1/2)] • solve(‘ f(x) = g(x) ’): giải phương trình f(x)
[1/2*a(-b - (b^2 – 4*a*c)^1/2)] = g(x). Lưu ý: phải đặt trong dấu nháy.

8
11/11/2007

• Ví dụ • Ví dụ
⎧⎪ 2 2
x y =0
– s = solve(`cos(2*x) + sin(x) = 1`) Giải hệ: ⎨
⎪⎩ x − y /2 =α
–s=
[ 0] – syms x y alpha
[ pi] – [x y] = solve(‘x^2*y^2=0’,’x – y/2 = alpha’)
[ 1/6*pi] x= y=
[ 5/6*pi] [ 0] [ -2*alpha]
[ 0]] [ -2*alpha]
p ]
[ alpha] [ 0]
• solve(‘f(x)’,’g(x)’,’h(x)’,…): giải hệ nhiều
[ alpha] [ 0]
phương trình. • Nghiệm: v = [x, y]

⎧u 2 + v 2 = a 2
⎪ Giải phương trình đạo hàm riêng
• Giải hệ: ⎨u + v = 1
⎪a 2 − 2a = 3 • Hàm: dsolve
⎩ • Ví dụ
– S = solve(
solve(‘u^2+v^2=a^2’,’u+v=1’,’a^2–2*a=3’)
u 2 v 2 a 2,u v 1,a 2 2 a 3) • Giải: dy = 1 + y 2 , y (0)
( ) =1
–S= dt
a: [2x1 sym] – dsolve(‘Dy=1+y^2’,’y(0)=1’)
u: [2x1 sym] – y = tan(t + 1/4*pi)
v: [2x1 sym]
d2y d
– S.a • Giải:
Giải 2
= cos(2 x) − y, y(0)=1, y (0) = 0
dx dx
ans =
[ 3] – y =dsolve(‘D2y=cos(2*x) – y’,’y(0)=1’,’Dy(0)=0’,’x’)
[ -1] – simplify(y); ans = 4/3*cos(x) – 2/3*cos(x)^2+1/3

9
11/11/2007

⎧ d 3u
⎪ =u
• Giải: ⎨ dx3 V. Vẽ đồ thị
⎩⎪u (0) = 1; u '(0) = −1; u ''(0) = π
– dsolve(‘D3u=u’,’u(0)=1’,’Du(0)=-1’,’D2u(0)=pi’),’x’)
• Trong 2 – D:
ƒ Hàm
Hà ezplot(f)
l t(f)
⎧ df ƒ Ví dụ
⎪⎪ dt = 3 f (t ) + 4 g (t ) , f (0) = 0
• Giải: ⎨ – syms t x y
⎪ dg = −4 f (t ) + 3 g (t ) , g (0) = 1 – f = sin(2*x)
⎪⎩ dt
– g = t + 3*sin(t)
()
– [f g] = dsolve(‘Df = 3*f + 4*g’,’Dg = -4*f + 3*g’,… – h = 2*x/(x^2 -1)
– ezplot(f); ezplot(g); ezplot(h)
’f(0) = 0’,’g(0) = 1’)
– ezplot(x*exp(-x), [-1 4])
– f = exp(3*t)*sin(4*t); g = exp(3*t)*cost(4*t)

• Trong 3 – D
• Hàm ezplot3(x,y,z)
• Ví dụ
– syms
y xyzt
– x = 3*t/(1 + t^3)
– y = 3*t^2/(1 + t^3)
– z = sin(t)
– ezplot3(x,y,z)
• ezcontour
t / ezcontourf
t f
• ezmesh / ezmeshc
• ezsurf / ezsurfc

10

You might also like