Professional Documents
Culture Documents
Symbolic Print
Symbolic Print
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.
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
2
11/11/2007
3
11/11/2007
• 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
• 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)
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
7
11/11/2007
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