오늘강의내용 (2014/01/15) Symbolic Math Toolbox 숫자로주어진변수 값 이아니라변수심볼에대한수식연산 ( 즉, symbolic expression 계산 ) 미분, 극한, 적분, 변환의 symbolic expression 계산 1
다항식 김탁은 kmste2@kaist.ac.kr 2
다항식 (polynomial) MATLAB 에서다항식의표현방법 다항식 pp xx = pp 1 xx nn + pp 2 xx nn 1 + + pp nn xx + pp nn+1 가주어졌을때, 각 계수 p i 를차수가높은순으로나열한벡터로표현함 PP = pp 1, pp 2,, pp nn+1 다항식의값계산 y = polyval( P, X ) 다항식 P 를주어진 X 값에대해계산 ff xx = 3xx 2 2xx + 1 evaluate ff(xx) at xx = 5 >> p = [3-2 1]; >> polyval(p,5) 66 3
MATLAB 에서다항식의표현방법 다항식이아래와같이정의 ff xx = 3xx 6 3xx 4 2xx 위의다항식에서 x 의 5 차, 3 차, 2 차, 1 차항과상수항이없으므로, 다항식을 MATLAB 벡터로표현할때빈자리를 0 으로채워줌 벡터는차수가높은항의계수부터적음 P = [3 0-3 0 0-2 0] >> P = [3 0-3 0 0-2 0]; >> polyval(p, 0) 0 >> polyval(p, 1) -2 4
다항식의계산 여러값에대해다항식동시에계산하기 ff xx = 3xx 6 3xx 4 2xx Y = polyval( P, X) 함수에서, X 값으로스칼라, 벡터, 또는행렬가능 계산결과 Y는입력된 X와동일한크기를가짐 P = [3 0-3 0 0-2 0] >> polyval(p, [0-3 2]) 0 1950 140 >> polyval(p, magic(2)) -2 1938 11512 140 5
Quiz 다음다항식의값을 x = 0:2:6 에서계산해봅시다. ff xx = 3xx 2 7xx 2 + 2xx + 23 ff xx = 4xx 3 0.53xx 4 ff xx = xx 3 2xx 4 2 6
다항식쉽게만들기 만약다항식차수가매우높거나, 다항식의항들이매우많다면? ff xx = 3xx 100 3xx 90 + 5xx 23 3xx 3 2xx 다항식을만들기위해, 아래와같이길이가 1001인벡터 P를생성 P = [3 0 0 0 0 0 0 0 0 0-3 0 0 0 0 0 0-3 0-2 0] 수작업으로다항식을생성하는것은오타의확률이높음! Symbolic Math Toolbox를이용하자!! P = sym2poly( F ) 심볼릭다항식 (symbolic polynomial) 을 polynomial coefficient vector로변환 >> syms x >> f = 3*x^100-3*x^90 + 5*x^23-3*x^3-2*x; >> P = sym2poly(f) 7
다항식계수벡터검증하기 다항식계수벡터가정확하게잘기술되었는지검증하려면? Symbolic Math Toolbox 를이용하자!! F = poly2sym( P ) polynomial coefficient vector 로부터심볼릭다항식생성 수작업으로생성한다항식계수벡터를심볼릭다항식으로바꿔서 검증 P = [3 1-1 0-5 0] >> P = [3 1-1 0-5 0]; >> poly2sym(p) 3*x^5 + x^4 - x^3-5*x 8
다항식의곱셈 다항식들간의곱셈은두계수배열의 convolution 으로계산 C = conv( A, B ) ff xx = 4xx 3 2xx 2 + 1 F = [4 0-2 1] gg xx = 3xx 3 + 5xx 2 3xx 2 G = [3 5-3 -2] 1-2 0 4 3 5-3 -2 4 x 3 = 12 3 5-3 -2 0 x 3 + 4 x 5 = 20 3 5-3 -2-2 x 3 + 0 x 5 + 4 x -3 = -18 3 5-3 -2 1 x 3 + -2 x 5 + 0 x -3 + 4 x -2 = -15 3 5-3 -2 1 x 5 + -2 x -3 + 0 x -2 = 11 3 5-3 -2 1 x -3 + -2 x -2 = 1 3 5-3 -2 1 x -2 = -2 >> F = [4 0-2 1]; >> G = [3 5-3 -2]; >> conv(f,g) 12 20-18 -15 11 1-2 9
다항식의곱셈 Convolution 을이용하지않는방법 1. 각각의다항식을 symbolic polynomial 로변경 2. symbolic polynomial 간의곱셈연산수행 3. sym2poly 함수를이용하여 polynomial coefficient vector 로변환 >> F = [4 0-2 1]; >> G = [3 5-3 -2]; >> fn = expand( poly2sym(f) * poly2sym(g) ) fn = 12*x^6 + 20*x^5-18*x^4-15*x^3 + 11*x^2 + x 2 >> sym2poly(fn) 12 20-18 -15 11 1-2 10
세다항식의곱셈 두다항식을곱한다음, 그결과와나머지다항식을곱함 aa xx = 2xx 2 xx + 1 bb xx = xx 3 2xx 2 2 cc xx = xx + 1 >> A = [2-1 1]; >> B = [1-2 0-2]; >> C = [1 1]; >> D = conv(conv(a,b),c) D = 2-3 -2-3 -4 0-2 또는 >> A = poly2sym([2-1 1]); >> B = poly2sym([1-2 0-2]); >> C = poly2sym([1 1]); >> D = A*B*C D = -(x + 1)*(2*x^2 - x + 1)*(- x^3 + 2*x^2 + 2) >> sym2poly(d) 2-3 -2-3 -4 0-2 11
다항식나눗셈 다항식 g 를 h 로나누는경우 gg xx = h xx qq xx + rr(xx) 를만족하는몫 qq(xx) 과나머지 rr(xx) 를구할 수있음 [q, r] = deconv( g, h ) 다항식 g 를 h 로나누어, 몫 q 와나머지 r 을반환 (q, r 은다항식 ) gg xx = xx 3 6xx 2 + 12xx 8 h xx = xx 2 >> g = [1-6 12-8]; >> h = [1-2]; >> [q, r] = deconv(g,h) q = 1-4 4 r = 0 0 0 0 12
Quiz 다항식 g 와 h의나눗셈을 symbolic expression으로수행해봅시다. gg xx = xx 3 6xx 2 + 12xx 8 h xx = xx 2 다음두다항식을 symbolic expression 으로표현하고나눗셈을 했을때, 그결과를확인해봅시다. gg xx = xx 3 6xx 2 + 12xx 8 h xx = xx 1 주의 : 상수항이 1 로바뀌었음 13
Symbolic 다항식에서몫과나머지구하기 [Q, R] = quorem( F, G ) 심볼릭다항식 F 와 G 를입력받아 F/G 나눗셈을수행하고, 몫과 나머지를각각 Q, R 로반환함 gg xx = xx 3 6xx 2 + 12xx 8 h xx = xx 1 >> g = [1-6 12-8]; >> h = [1-1]; >> sg = poly2sym(g); sh = poly2sym(h); >> [q, r] = quorem(sg, sh) q = x^2-5*x + 7 r = -1 % 검산 >> expand(q*sh+r) x^3-6*x^2 + 12*x - 8 14
심볼릭다항식에서계수구하기 sym/coeffs 함수 [c, terms] = coeffs( P ) 다항식 P에서모든미정변수들의계수를반환 c는계수, terms는각미정변수들의차수 >> syms x y >> z = 3*x^2*y^2 + 5*x*y^3 >> [c, terms] = coeffs(z) c = [ 3, 5] terms = [ x^2*y^2, x*y^3] >> syms x y >> z = 3*x^2*y^2 + 5*x*y^3 >> [c, terms] = coeffs(z, x) [c, terms] = coeffs( P, X ) 다항식 P 에서미정계수 X 의차수를반환 c 는계수, terms 는각미정변수들의차수 c = [ 3*y^2, 5*y^3] terms = [ x^2, x] >> [c, terms] = coeffs(z, y) c = [ 5*x, 3*x^2] terms = [ y^3, y^2] 15
심볼릭다항식을분수형태로나타내기 [N, D] = numden( A ) 심볼릭다항식또는심볼릭표현 A 를분수형태로나타냄 반환값 N (numerator), D (denominator) >> sym x y >> r = 1 + x^2 / (3 + x^2/5); r = x^2/(x^2/5 + 3) + 1 >> [n, d] = numden( r ) n = 6*x^2 + 15 d = x^2 + 15 >> [n,d] = numden(sym(4/5)) n = 4 d = 5 >> [n,d] = numden(x/y + y/x) n = x^2 + y^2 d = x*y 16
Taylor 수열 F = taylor( A ) 함수 A 가입력되면, 함수를근사하는심볼릭다항식 F 가반환됨 기본적으로 0 부근의 Taylor 수열이 5 차항까지생성 >> syms x y z >> f = taylor(log(1+x)) f = x^5/5 - x^4/4 + x^3/3 - x^2/2 + x >> ezplot( 'log(1+x)' ) >> hold on; >> h = ezplot( f ); >> set(h, 'color', 'red'); 17
Taylor 수열 F = taylor( A, x, a, order, n ) 함수 A 를 x = a 에서 n 차항의다항식으로근사 % sin(x) 를 x=0 에서근사 >> syms x; >> f = taylor(sin(x), x, 0, 'order', 10) f = x^9/362880 - x^7/5040 + x^5/120 - x^3/6 + x >> ezplot( 'sin(x)' ); >> hold on; >> h = ezplot( f ); >> set( h, 'color', 'red' ); 18
Taylor 수열 F = taylor( A, x, a, order, n ) 함수 A 를 x = a 에서 n 차항의다항식으로근사 % sin(x) 를 x=2 에서근사 >> syms x; >> f = taylor(sin(x), x, 2, 'order', 10) f = x^9/362880 - x^7/5040 + x^5/120 - x^3/6 + x >> ezplot( 'sin(x)' ); >> hold on; >> h = ezplot( f ); >> set( h, 'color', 'red' ); >> ylim( [-5 5] ) 19
Multivariable Taylor 수열 F = taylor( A, [x1, x2,, xk], [a1, a2,, ak], order, n ) 다변수함수 A 를 (x1, x2,, xk) = (a1, a2,..., ak) 에서 n 차항의다항식으로근사 % 2 변수함수를 (x,y) = (0, 0) 에서근사 >> syms x y; >> f = x + y + 3*exp(-x^2-y^2); >> ezsurf(f, [-1 2]); >> g = taylor(f, [x,y], [0,0], 'order', 10); >> hold on; >> ezsurf(g, [-1 2]); 20
Parametric 함수의 Taylor 수열 공간상의함수가 xx tt = ee tt 20 cos tt, yy tt = ee tt 20 sin tt, zz tt = tt 일때, Taylor 로위의함수를근사하는방법은, 각함수 x(t), y(t), z(t) 를 t 에대해근사 syms x y t x = exp(-t/20)*cos(t); y = exp(-t/20)*sin(t); z = t; figure(1); ezplot3(x,y,z, [-10 10]); 원함수를근사한함수 p = [x y z]; f = taylor(p, t, 0, 'order', 30); figure(2); ezplot3(f(1), f(2), f(3), [-10, 10]); 원래함수 21
방정식풀이 22
Symbolic Equation Solver solve 함수 solve( eqn1, eqn2,, eqnn) solve( eqn1, eqn2,, eqnn, var1, var2,, varn) var 는방정식에서풀고자하는미지수 방정식의해구하기예제 aaxx 2 + bbbb + cc = 0 >> syms a b c x >> f = a*x^2+b*x+c; >> solve(f) f==0 으로계산함 ssssss bb ± bb2 4aaaa 2aa -(b + (b^2-4*a*c)^(1/2))/(2*a) -(b - (b^2-4*a*c)^(1/2))/(2*a) 2 차방정식이므로두개의해를얻음 23
Symbolic Equation Solver solve 함수사용법 eg) xx 2 2xx 4 = 0 solve 함수를쓸때, symbolic 표현을입력으로주거나, 방정식을문자열형태로줄수있음. >> syms x >> f = x^2-2*x-4; >> solve(f==0, x) 5^(1/2) + 1 1-5^(1/2) 또는 >> solve('x^2-2*x-4==0') 5^(1/2) + 1 1-5^(1/2) 24
Symbolic Equation Solver ff xx = gg(xx) 방정식의경우, 문자열로입력하는경우, f(x) = g(x) 로하면되고, symbolic 표현으로기술하는경우, f(x) g(x) == 0 형태로만들어주어야함. eg) cos 2xx = 1 sin(xx) >> solve('cos(2*x) = 1 - sin(x)') 0 pi/6 (5*pi)/6 또는 >> syms x >> f = cos(2*x) + sin(x) - 1 f = cos(2*x) + sin(x) - 1 >> solve(f) 0 pi/6 (5*pi)/6 25
다변수방정식의풀이 예를들어, 2xx log yy = 1 방정식의경우, 어느변수에대해풀지지정해주면됨 >> syms x y >> f = 2*x-log(y)-1 f = 2*x - log(y) - 1 >> solve(f, x) log(y)/2 + 1/2 >> solve(f, y) exp(2*x - 1) 또는 >> solve('2*x-log(y)=1', 'x') log(y)/2 + 1/2 >> solve('2*x-log(y)=1', 'y') exp(2*x - 1) 26
연립방정식의풀이 예를들어, xx 2 yy = 2 와 y 2xx = 5 로구성된연립방정식을푼다고하면, 1. 여러변수가있을때, 어느한변수를지정하여해당변수를좌변에두고방정식을정리 (y 변수로식을정리 ) fff yy = xx 2 2, ff2 yy = 2xx + 5 2. 두식을각각좌변, 우변에두고등식으로만듦 xx 2 2 = 2xx + 5 3. 등식으로만들어진식의해를찾음 (x에대한해 ) xx = 1 ± 2 2 4. 3번에서찾은해를식에대입하여나머지변수에대한값을계산 yy = 7 + 4 2, yy = 7 4 2 27
연립방정식의풀이 예를들어, xx 2 yy = 2 와 y 2xx = 5 로구성된연립방정식을푼다고 하면, >> simplify(subs(y1, xsols)) >> syms x >> y1 = x^2-2; >> y2 = 2*x + 5; >> xsols = solve(y1 == y2) xsols = 2*2^(1/2) + 1 1-2*2^(1/2) 4*2^(1/2) + 7 7-4*2^(1/2) >> simplify(subs(y2, xsols)) 4*2^(1/2) + 7 7-4*2^(1/2) 28
연립방정식의풀이 solve 함수를이용하면연립방정식을쉽게풀수있음 xx 2 yy = 2 와 y 2xx = 5 로구성된연립방정식 >> syms x y >> sols = solve( x^2 - y == 2, y - 2*x == 5 ) sols = x: [2x1 sym] y: [2x1 sym] % 첫번째해 >> sols.x(1) 2*2^(1/2) + 1 >> sols.y(1) 4*2^(1/2) + 7 % 두번째해 >> sols.x(2) 1-2*2^(1/2) >> sols.y(2) 7-4*2^(1/2) 29
Quiz 다음연립방정식들의해를 solve 함수를이용하여구해봅시다. xx + yy zz = 0 3xx + 2yy zz = 5 2xx yy 3zz = 6 yy = 32xx yy = 5 xx + 1 xx 1 + 2xx 2 + 4xx 3 3xx 4 = 5 2xx 1 + 3xx 2 xx 3 6xx 4 = 2 xx 1 + 5xx 2 3xx 3 + 2xx 4 = 4 xx 1 3xx 2 5xx 3 = 1 30
Quiz 다음두함수 f(x,y) 와 g(x,y) 가교차하는지점의좌표값을구해봅시다. ff xx, yy = yy 4xx 2 + 3 gg xx, yy = xx2 4 + yy2 1 31
Quiz 탄도미사일을쏘았을때, 시간에따른 x축, y축방향의거리는아래와같습니다. ddddddtt xx tt = vv 0 tt cos(θθ) ddddddtt yy tt = vv 0 tt sin θθ 1 2 ggtt2 초기속도 v 0 가 100 m/s 이고, 중력가속도 g 가 9.8 m/s 2 일때, 미사일을 쏘는각도에따라미사일이땅에닿을때까지도달하는거리가어떻게 변화하는지그래프로그려봅시다. 32
fzero solve 를통해 f(x) = sin(x) 0.5x 의해를구하면 0 만나옴 그러나, 그래프를그려보면해가 2 개더존재함을확인할수있음 >> syms x >> ezplot('sin(x) - 0.5*x') >> grid on fzero 는 단일변수 함수 f 의부호가변하는지점 ( 즉, f(x) = 0) 의근을구하는데에사용 원하는근에가깝다고생각되는시작값 x 0 로부터근을탐색하여, xx nn xx 2 10 16 을만족하는추정근 x * 를구할때까지반복적으로계산 33
fzero solve 를통해 f(x) = sin(x) 0.5x 의해를구하면 0 만나옴 그러나, 그래프를그려보면해가 2 개더존재함을확인할수있음 >> solve('sin(x)-0.5*x==0') 0 >> fzero('sin(x)-0.5*x', [1 3]) 1.8955 >> fzero('sin(x)-0.5*x', [-3-1]) -1.8955 >> fzero('sin(x)-0.5*x', [-5-3]) Error using fzero (line 274) The function values at the interval endpoints must differ in sign. 34
Quiz 다음방정식들의근을 fzero 함수를이용하여구해봅시다. x tan(x) = 0 cos(x) x = 0 35
다항식의근계산 roots 함수 다항식 p 의근을수치적으로계산해주는함수 z = roots( p ) p 는다항식의계수벡터 z 는다항식 p = 0 의근 >> syms x >> p = sym2poly(x^2 - x - 1) p = 1-1 -1 >> z = roots(p) z = -0.6180 1.6180 36
다항식의근의검증 polyval 함수 다항식 p에값을대입하여다항식의값을계산함 v = polyval( p, z ) p 는다항식의계수벡터 z 는다항식의값을계산할값 % 다항식근계산 >> syms x >> p = sym2poly(x^2 - x - 1) p = 1-1 -1 >> z = roots(p) z = -0.6180 1.6180 % 다항식근검증 >> polyval(p, z) 1.0e-15 * -0.1110 0.2220 0 에근접한값 37
미분방정식풀기 38
미분방정식의표현 MATLAB 에서는미분연산자를다음과같이표현함 dd D, dd 2 dddd ddxx 2 D2, dd3 ddxx ddnn 3 D3,, nn Dn 아래미분방정식은미분연산자 D 를이용하여다음과같이표현가능 ddyy = 2xxxx Dy = -2xy dddd ddxx 미분방정식의해구하기예제 dddd = 2xxxx, y 1 = 1 dddd >> dsolve('dy = -2*x*y', 'y(1) = 1', 'x') exp(1)*exp(-x^2) 39
Symbolic Expression 이용한미분방정식풀이 Symbolic Math 에서는아래미분연산자 D 가적용되지않음 dd D, dd 2 dddd ddxx 2 D2, dd3 ddxx 대신 diff(x) 로표현해야함 ddnn 3 D3,, nn Dn ddxx 미분방정식의해구하기예제 dddd = 2xxxx, y 1 = 1 dddd >> syms x y(t) >> dsolve(diff(y) == -2*x*y, y(1) == 1, x) exp(1)*exp(-x^2) 40
n 차미분방정식의풀이 yy + 6yy + 9yy = 0, y 0 = 4, y 0 = 14 여기서 y 는 dd2 yy ddyy ddxx2 또는 D2y, y 는 ddxx 또는 Dy 를의미함 >> Dsol = dsolve('d2y+6*dy+9*y=0', 'y(0)=-4', 'Dy(0)=14', 'x') Dsol = 2*x*exp(-3*x) - 4*exp(-3*x) >> simple(dsol) 2*exp(-3*x)*(x - 2) 41
n 차미분방정식의풀이 yy + 6yy + 9yy = 0, y 0 = 4, y 0 = 14 여기서 y 는 dd2 yy dddd ddxx2 또는 D2y, y 는 dddd symbolic expression 으로쓰면아래와같음 또는 Dy 를의미함 >> syms x y(t) >> D2y = diff(diff(y)); >> Dy = diff(y); >> Dsol = dsolve(d2y+6*dy+9*y==0, y(0)==-4, Dy(0)==14, x) Dsol = 2*x*exp(-3*x) - 4*exp(-3*x) 42
연립미분방정식 연립미분방정식 (D = dd ddtt ) xx 2xx 3yy = 2ee 2tt xx + yy 4yy = 3ee 2tt, x 0 = 2 3, y 0 = 1 3 여기서 x 는 dddd dddd 또는 Dx, y 는 ddtt ddtt 또는 Dy 를의미함 >> DSol2 = dsolve('dx-2*x-3*y=2*exp(2*t)', '-x+dy-4*y=3*exp(2*t)', 'x(0)=-2/3', 'y(0)=1/3') DSol2 = y: [1x1 sym] x: [1x1 sym] >> DSol2.x - (3*exp(2*t))/4 - exp(5*t)*((11*exp(-3*t))/12-1) >> DSol2.y exp(2*t)/4 - exp(5*t)*((11*exp(-3*t))/12-1) 43
연립미분방정식 연립미분방정식 (D = dd ) 을 Symbolic Expression으로풀이 ddtt xx 2xx 3yy = 2ee 2tt xx + yy 4yy = 3ee 2tt, x 0 = 2 3, y 0 = 1 3 여기서 x 는 dddd dddd 또는 Dx, y 는 ddtt ddtt 또는 Dy 를의미함 syms x y x(t) y(t) Dx = diff(x); Dy = diff(y); deq1 = Dx-2*x-3*y==2*exp(2*t); deq2 = -x+dy-4*y==3*exp(2*t); DSol2 = dsolve(deq1, deq2, 'x(0)=-2/3', 'y(0)=1/3', t); 44
Quiz 아래주어진미분방정식을 symbolic expression 을사용하여풀어봅시다 dddd = eexx dddd 2yy dddd dddd = ee xx ( ddxx ddtt eeyy xx ee yy +xx 2 ee yy + 1) = 1, xx(0) = 1 dddd + dddd 1 yy2 1 xx 2 = 0 45
변환 46
변환이란? 어떠한함수 f(t) 를다른함수 F(s) 로변환하는것. 전자공학에서는시간 변환을통해복잡한함수 f(t) 를쉽게풀수있는 F(s) 로변환하여문제를해결. 미분방정식등을풀때널리사용. 예를들어, 미분방정식을푼다고하면, 1. 함수 f(t) 를 F(s) 로변환 ( 식이간단해짐 ) 2. F(s) 의미분방정식을품 3. F(s) 에서얻은해를다시역변환하면원식 f(t) 의해가됨 종류 Laplace 변환, Z- 변환, Fourier 변환, 47
Laplace 변환 라플라스변환 : FF ss = LL ff tt = 0 ff tt ee ssss dddd 역라플라스변환 : ff tt = 1 2ππii σσ+ σσ ii FF ss ee ssss ddss 변환예 % 라플라스변환 >> syms t w >> laplace(t^2) 2/s^3 >> laplace(cos(w*t)) s/(s^2 + w^2) >> laplace(t^1) 1/s^2 % 라플라스역변환 >> syms s w >> ilaplace( 1/s^3 ) t^2/2 >> ilaplace( 3/(s+w) ) 3*exp(-t*w) >> ilaplace( s/(s^2+4) ) cos(2*t) 48
Laplace 변환 라플라스변환을이용한미분방정식의풀이 (1/2) 1 차와 2 차미분방정식의 Laplace 변환 LL dddd dddd LL dd2 ff ddtt 2 = ssss ss ff 0 = ss 2 FF ss ssss ss ff (0) 다음미분방정식 yy + 6yy + 9yy = 0, y 0 = 4, y 0 = 14 을 Laplace 변환으로풀이 LL yy + 6yy + 9yy = LL yy + 6LL yy + 9LL yy = ss 2 YY ss ssss ss yy 0 + 6ssss ss 6yy 0 + 9YY ss = 0 ss 2 + 6ss + 9 YY ss = 4ss + 14 FF ss = 4ss+14 ss 2 +6ss+9 49
Laplace 변환 라플라스변환을이용한미분방정식의풀이 (2/2) FF ss = 4ss+14 ss 2 +6ss+9 F(s) 를라플라스역변환하면원미분방정식의해가구해짐 >> syms s >> Y = (-4*s+14)/(s^2+6*s+9) Y = -(4*s - 14)/(s^2 + 6*s + 9) >> ilaplace(y) 26*t*exp(-3*t) - 4*exp(-3*t) 50
Z 변환 Z 변환 : FF ss = ZZ ff tt = nn=0 ff nnnn zz nn 변환예 % Z 변환 >> syms t >> f = sin(2*t) f = sin(2*t) >> fz = ztrans(f) % Z 역변환 >> syms z >> f = 3*z/(z^2-4*z + 5); >> f = 3*z/(z^2-4*z + 5) f = (3*z)/(z^2-4*z + 5) >> ft = iztrans(f) ft = ((-1)^n*(- 2 - i)^(n - 1)*15*i)/4 - ((-1)^n*(- 2 + i)^(n - 1)*15*i)/4 + (3*(-1)^n*5^n*cos(n*(pi - a >> pretty(ft) ff zz = 3zz zz 2 4zz + 5 fz = (z*sin(2))/(z^2-2*cos(2)*z + 1) >> pretty(fz) z sin(2) ------------------- 2 z - 2 cos(2) z + 1 / / / 1/2 \ \ \ n n 2 5 3 (-1) 5 cos n pi - acos ------ n n - 1 \ \ \ 5 / / / 15 (-1) (i - 2) i ------------------------------------------- - ----------------------- + 1/2 n 4 2 (5 ) n n - 1 15 (-1) (- i - 2) i ------------------------- 4 51
Fourier 변환 Fourier 변환 : FF ww = ff xx ee iiiiii dddd 역 Fourier 변환 : ff tt = 1 2ππ FF ww ee iiiiii ddww 변환예 % Fourier 변환 >> syms x u >> f = x*exp(-abs(x)) f = x*exp(-abs(x)) >> g = fourier(f, u) g = -(u*4*i)/(u^2 + 1)^2 >> pretty(g) ff xx = xxee xx % Fourier 역변환 >> syms x >> f = exp(-abs(x)) f = exp(-abs(x)) >> g = ifourier(f) g = 1/(pi*(t^2 + 1)) gg xx = ee xx 4 u i - --------- 2 2 (u + 1) 52
Symbolic Math Toolbox 주요함수들 함수명 함수기능 syms symbolic 변수정의 ezplot symbolic 수식 plotting double symbolic 변수를 double형데이터로변환 diff 함수를미분 int 함수를적분 limit 함수의극한 symsum 급수계산 solve 방정식의해구함 fourier 함수의 fourier transform ifourier 함수의 inverse fourier transform laplace 함수의 laplace transform ilaplace 함수의 inverse laplace transform ztrans 함수의 z transformation iztrans 함수의 inverse z transformation collect 다항식의공통항정리 expand 다항식전개 factor 인수분해 hornor 다항식을 nested form으로만듦 simple 다항식을가장간소화된표현으로바꿈 simplify 다항식을간소화된표현으로바꿈 pretty 수학적표현으로 symbolic 수식을변형 53