matlab for c/c++ programmers - kaist it academy web ... · âðŠðŠ= 2 ìy â2ð¥ð¥= 5...
TRANSCRIPT
MATLAB Programming
ë€íì (polynomial)
MATLABìì ë€íìì íí ë°©ë²
⢠ë€íì ðð ð¥ð¥ = ðð1ð¥ð¥ðð + ðð2ð¥ð¥ððâ1 + â¯+ ððððð¥ð¥ + ðððð+1 ê° ì£ŒìŽì¡ì ë, ê°
ê³ì pi륌 ì°šìê° ëì ììŒë¡ ëìŽí 벡í°ë¡ íííš
⢠ðð = ðð1, ðð2, ⊠, ðððð+1
ë€íìì ê° ê³ì°
⢠y = polyval( P, X )
â ë€íì P륌 죌ìŽì§ X ê°ì ëíŽ ê³ì°
ðð ð¥ð¥ = 3ð¥ð¥2 â 2ð¥ð¥ + 1
evaluate ðð(ð¥ð¥) at ð¥ð¥ = 5
>> p = [3 -2 1];>> polyval(p,5)
ans =66
2
MATLAB Programming
MATLABìì ë€íìì íí ë°©ë²
ë€íììŽ ìëì ê°ìŽ ì ì
⢠ðð ð¥ð¥ = 3ð¥ð¥6 â 3ð¥ð¥4 â 2ð¥ð¥
⢠ìì ë€íììì 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)
ans =0
>> polyval(P, 1)
ans =-2
3
MATLAB Programming
ë€íìì ê³ì°
ì¬ë¬ ê°ì ëíŽ ë€íì ëìì ê³ì°íêž°
⢠ðð ð¥ð¥ = 3ð¥ð¥6 â 3ð¥ð¥4 â 2ð¥ð¥
⢠Y = polyval( P, X) íšììì, X ê°ìŒë¡ ì€ì¹ŒëŒ, 벡í°, ëë íë ¬ ê°ë¥
⢠ê³ì° 결곌 Yë ì ë ¥ë Xì ëìŒí í¬êž°ë¥Œ ê°ì§
⢠P = [3 0 -3 0 0 -2 0]
>> polyval(P, [0 -3 2])
ans =
0 1950 140
>> polyval(P, magic(2))
ans =
-2 193811512 140
4
MATLAB Programming
Quiz
ë€ì ë€íìì ê°ì x = 0:2:6 ìì ê³ì°íŽ ëŽ ìë€.
ðð ð¥ð¥ = 3ð¥ð¥2 â 7ð¥ð¥2 + 2ð¥ð¥ + 23
ðð ð¥ð¥ = 4ð¥ð¥3 â 0.53ð¥ð¥4
ðð ð¥ð¥ = ð¥ð¥3 â 2ð¥ð¥4 â 2
5
MATLAB Programming
ë€íì ìœê² ë§ë€êž°
ë§ìœ ë€íì ì°šìê° ë§€ì° ëê±°ë, ë€íìì íë€ìŽ ë§€ì° ë§ë€ë©Ž?
⢠ðð ð¥ð¥ = 3ð¥ð¥100 â 3ð¥ð¥90 + 5ð¥ð¥23 â 3ð¥ð¥3 â 2ð¥ð¥
⢠ë€íìì ë§ë€êž° ìíŽ, ìëì ê°ìŽ êžžìŽê° 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)
6
MATLAB Programming
ë€íì ê³ì ë²¡í° ê²ìŠíêž°
ë€íì ê³ì 벡í°ê° ì ííê² ì êž°ì ëìëì§ ê²ìŠíë €ë©Ž?
⢠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)
ans =3*x^5 + x^4 - x^3 - 5*x
7
MATLAB Programming
ë€íìì ê³±ì
ë€íìë€ ê°ì ê³±ì ì ë ê³ì ë°°ìŽì convolutionìŒë¡ ê³ì°
⢠C = conv( A, B )
⢠ðð ð¥ð¥ = 4ð¥ð¥3 â 2ð¥ð¥ + 1 F = [4 0 -2 1]
⢠ðð ð¥ð¥ = 3ð¥ð¥3 + 5ð¥ð¥2 â 3ð¥ð¥ â 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)
ans =
12 20 -18 -15 11 1 -2
8
MATLAB Programming
ë€íìì ê³±ì
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)
ans =12 20 -18 -15 11 1 -2
9
MATLAB Programming
ìž ë€íìì ê³±ì
ë ë€íìì ê³±í ë€ì, ê·ž 결곌ì ëëšžì§ ë€íìì ê³±íš
ðð ð¥ð¥ = 2ð¥ð¥2 â ð¥ð¥ + 1
ðð ð¥ð¥ = ð¥ð¥3 â 2ð¥ð¥2 â 2
ðð ð¥ð¥ = ð¥ð¥ + 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)
ans =2 -3 -2 -3 -4 0 -2
ëë
10
MATLAB Programming
ë€íì ëëì
ë€íì g륌 hë¡ ëëë 겜ì°
⢠ðð ð¥ð¥ = â ð¥ð¥ ðð ð¥ð¥ + ðð(ð¥ð¥) 륌 ë§ì¡±íë 몫 ðð(ð¥ð¥) 곌 ëëšžì§ ðð(ð¥ð¥) 륌 구í
ì ìì
⢠[q, r] = deconv( g, h )
â ë€íì g륌 hë¡ ëëìŽ, 몫 qì ëëšžì§ rì ë°í (q, rì ë€íì)
>> g = [1 -6 12 -8];>> h = [1 -2];>> [q, r] = deconv(g,h)
q =1 -4 4
r =0 0 0 0
ðð ð¥ð¥ = ð¥ð¥3 â 6ð¥ð¥2 + 12ð¥ð¥ â 8
â ð¥ð¥ = ð¥ð¥ â 2
11
MATLAB Programming
Quiz
ë€íì g ì hì ëëì ì symbolic expressionìŒë¡ ìííŽ
ëŽ ìë€.
ë€ì ë ë€íìì symbolic expressionìŒë¡ íííê³ ëëì ì
íì ë, ê·ž 결곌륌 íìžíŽëŽ ìë€.
ðð ð¥ð¥ = ð¥ð¥3 â 6ð¥ð¥2 + 12ð¥ð¥ â 8
â ð¥ð¥ = ð¥ð¥ â 2
ðð ð¥ð¥ = ð¥ð¥3 â 6ð¥ð¥2 + 12ð¥ð¥ â 8
â ð¥ð¥ = ð¥ð¥ â 1 죌ì: ììíìŽ 1ë¡ë°ëìì
12
MATLAB Programming
Quiz Sol.
ë€íì g ì hì ëëì ì symbolic expressionìŒë¡ ìííŽ
ëŽ ìë€.
ðð ð¥ð¥ = ð¥ð¥3 â 6ð¥ð¥2 + 12ð¥ð¥ â 8
â ð¥ð¥ = ð¥ð¥ â 2
>> g = [1 -6 12 -8];>> h = [1 -2];>> sg = poly2sym(g); sh = poly2sym(h);>> sg/sh
ans = (x^3 - 6*x^2 + 12*x - 8)/(x - 2)
>> simplify(sg/sh)
ans =(x - 2)^2
>> expand(simplify(sg/sh))
ans =x^2 - 4*x + 4
13
MATLAB Programming
Quiz Sol.
ë€ì ë ë€íìì symbolic expressionìŒë¡ íííê³ ëëì ì
íì ë, ê·ž 결곌륌 íìžíŽëŽ ìë€.
ðð ð¥ð¥ = ð¥ð¥3 â 6ð¥ð¥2 + 12ð¥ð¥ â 8
â ð¥ð¥ = ð¥ð¥ â 1
>> g = [1 -6 12 -8];>> h = [1 -1];>> sg = poly2sym(g); sh = poly2sym(h);>> sg/sh
ans =(x^3 - 6*x^2 + 12*x - 8)/(x - 1)
>> simplify(sg/sh)
ans =(x - 2)^3/(x - 1)
몫곌ëëšžì§ë¥Œêµ¬íë €ë©Ž??14
MATLAB Programming
Symbolic ë€íììì 몫곌 ëëšžì§ êµ¬íêž°
[Q, R] = quorem( F, G )
⢠ì¬ë³ŒëŠ ë€íì Fì G륌 ì ë ¥ ë°ì F/G ëëì ì ìííê³ , 몫곌
ëëšžì§ë¥Œ ê°ê° Q, Rë¡ ë°ííš
ðð ð¥ð¥ = ð¥ð¥3 â 6ð¥ð¥2 + 12ð¥ð¥ â 8
â ð¥ð¥ = ð¥ð¥ â 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)
ans =x^3 - 6*x^2 + 12*x - 8 15
MATLAB Programming
ì¬ë³ŒëŠ ë€íììì ê³ì 구íêž°
sym/coeffs íšì
⢠[c, terms] = coeffs( P )
â ë€íì Pìì 몚ë 믞ì ë³ìë€ì ê³ì륌 ë°í
â cë ê³ì, termsë ê° ë¯žì ë³ìë€ì ì°šì
⢠[c, terms] = coeffs( P, X )
â ë€íì Pìì 믞ì ê³ì Xì ì°šì륌 ë°í
â 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 =[ 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] 16
MATLAB Programming
ì¬ë³ŒëŠ ë€íìì ë¶ì ííë¡ ëíëŽêž°
[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
17
MATLAB Programming
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');
18
MATLAB Programming
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' );
19
MATLAB Programming
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] )
20
MATLAB Programming
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]);
21
MATLAB Programming
Parametric íšìì Taylor ììŽ
ê³µê°ìì íšìê° ð¥ð¥ ð¡ð¡ = ððâð¡ð¡20 cos ð¡ð¡, ðŠðŠ ð¡ð¡ = ððâ
ð¡ð¡20 sin ð¡ð¡, ð§ð§ ð¡ð¡ = ð¡ð¡ ìŒ ë,
⢠Taylorë¡ ìì íšì륌 ê·Œì¬íë ë°©ë²ì, ê° íšì x(t), y(t), z(t)륌 tì ëíŽ ê·Œì¬
syms x y tx = 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]);
ìëíšì
ìíšì륌귌ì¬ííšì
22
MATLAB Programming
ë°©ì ì íìŽ
23
MATLAB Programming
Symbolic Equation Solver
solve íšì
⢠solve( eqn1, eqn2, âŠ, eqnN)
⢠solve( eqn1, eqn2, âŠ, eqnN, var1, var2, âŠ, varN)
â var ë ë°©ì ììì íê³ ì íë 믞ì§ì
ë°©ì ìì íŽ êµ¬íêž° ìì
⢠ððð¥ð¥2 + ððð¥ð¥ + ðð = 0
>> syms a b c x>> f = a*x^2+b*x+c;>> solve(f)
ans =
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)-(b - (b^2 - 4*a*c)^(1/2))/(2*a)
2ì°šë°©ì ììŽë¯ë¡ëê°ìíŽë¥Œì»ì
f==0 ìŒë¡ê³ì°íš
ð ð ð ð ð ð ââðð ± ðð2 â 4ðððð
2ðð
24
MATLAB Programming
Symbolic Equation Solver
solve íšì ì¬ì©ë²
⢠eg) ð¥ð¥2 â 2ð¥ð¥ â 4 = 0
⢠solve íšì륌 ìž ë, symbolic ííì ì ë ¥ìŒë¡ 죌거ë, ë°©ì ìì 묞ììŽ
ííë¡ ì€ ì ìì.
>> syms x>> f = x^2-2*x-4;>> solve(f==0, x)
ans =
5^(1/2) + 11 - 5^(1/2)
>> solve('x^2-2*x-4==0')
ans =
5^(1/2) + 11 - 5^(1/2)
ëë
25
MATLAB Programming
Symbolic Equation Solver
ðð ð¥ð¥ = ðð(ð¥ð¥) ë°©ì ìì 겜ì°,
⢠묞ììŽë¡ ì ë ¥íë 겜ì°, âf(x) = g(x)â ë¡ íë©Ž ëê³ , symbolic ííìŒë¡
êž°ì íë 겜ì°, f(x) â g(x) == 0 ííë¡ ë§ë€ìŽ 죌ìŽìŒ íš.
⢠eg) cos 2ð¥ð¥ = 1 â sin(ð¥ð¥)
>> solve('cos(2*x) = 1 - sin(x)')
ans =
0pi/6
(5*pi)/6
>> syms x>> f = cos(2*x) + sin(x) - 1
f = cos(2*x) + sin(x) - 1
>> solve(f)
ans =
0pi/6
(5*pi)/6
ëë
26
MATLAB Programming
ë€ë³ì ë°©ì ìì íìŽ
ì륌 ë€ìŽ, 2ð¥ð¥ â logðŠðŠ = 1 ë°©ì ìì 겜ì°,
⢠ìŽë ë³ìì ëíŽ í ì§ ì§ì íŽì£Œë©Ž ëš
>> syms x y>> f = 2*x-log(y)-1
f =2*x - log(y) - 1
>> solve(f, x)
ans =log(y)/2 + 1/2
>> solve(f, y)
ans =exp(2*x - 1)
>> solve('2*x-log(y)=1', 'x')
ans =
log(y)/2 + 1/2
>> solve('2*x-log(y)=1', 'y')
ans =
exp(2*x - 1)
ëë
27
MATLAB Programming
ì°ëŠœ ë°©ì ìì íìŽ
ì륌 ë€ìŽ, ð¥ð¥2 â ðŠðŠ = 2 ì y â 2ð¥ð¥ = 5 ë¡ êµ¬ì±ë ì°ëŠœ ë°©ì ìì íŒë€ê³
íë©Ž,
⢠1. ì¬ë¬ ë³ìê° ìì ë, ìŽë í ë³ì륌 ì§ì íì¬ íŽë¹ ë³ì륌 ì¢ë³ì ëê³
ë°©ì ìì ì 늬 (y ë³ìë¡ ìì ì 늬)
ðð1 â ðŠðŠ = ð¥ð¥2 â 2 , ðð2 â ðŠðŠ = 2ð¥ð¥ + 5
⢠2. ë ìì ê°ê° ì¢ë³, ì°ë³ì ëê³ ë±ììŒë¡ ë§ëŠ
ð¥ð¥2 â 2 = 2ð¥ð¥ + 5
⢠3. ë±ììŒë¡ ë§ë€ìŽì§ ìì íŽë¥Œ ì°Ÿì (xì ëí íŽ)
ð¥ð¥ = 1 ± 2 2
⢠4. 3ë²ìì ì°Ÿì íŽë¥Œ ìì ëì íì¬ ëëšžì§ ë³ìì ëí ê°ì ê³ì°
ðŠðŠ = 7 + 4 2, ðŠðŠ = 7 â 4 2
28
MATLAB Programming
ì°ëŠœ ë°©ì ìì íìŽ
ì륌 ë€ìŽ, ð¥ð¥2 â ðŠðŠ = 2 ì y â 2ð¥ð¥ = 5 ë¡ êµ¬ì±ë ì°ëŠœ ë°©ì ìì íŒë€ê³
íë©Ž,
>> syms x>> y1 = x^2 - 2;>> y2 = 2*x + 5;>> xsols = solve(y1 == y2)
xsols =
2*2^(1/2) + 11 - 2*2^(1/2)
>> simplify(subs(y1, xsols))
ans =
4*2^(1/2) + 77 - 4*2^(1/2)
>> simplify(subs(y2, xsols))
ans =
4*2^(1/2) + 77 - 4*2^(1/2)
29
MATLAB Programming
ì°ëŠœ ë°©ì ìì íìŽ
solve íšì륌 ìŽì©íë©Ž ì°ëŠœ ë°©ì ìì ìœê² í ì ìì
ð¥ð¥2 â ðŠðŠ = 2 ì y â 2ð¥ð¥ = 5 ë¡ êµ¬ì±ë ì°ëŠœ ë°©ì ì
>> syms x y>> sols = solve( x^2 - y == 2, y - 2*x == 5 )
sols =
x: [2x1 sym]y: [2x1 sym]
% 첫ë²ì§žíŽ
>> sols.x(1)
ans =
2*2^(1/2) + 1
>> sols.y(1)
ans =
4*2^(1/2) + 7
% ëë²ì§žíŽ
>> sols.x(2)
ans =
1 - 2*2^(1/2)
>> sols.y(2)
ans =
7 - 4*2^(1/2)
30
MATLAB Programming
Quiz
ë€ì ì°ëŠœ ë°©ì ìë€ì íŽë¥Œ solve íšì륌 ìŽì©íì¬ êµ¬íŽëŽ ìë€.
⢠ᅵð¥ð¥ + ðŠðŠ â ð§ð§ = 03ð¥ð¥ + 2ðŠðŠ â ð§ð§ = 52ð¥ð¥ â ðŠðŠ â 3ð§ð§ = â6
⢠ᅵ ðŠðŠ = 32ð¥ð¥ðŠðŠ = 5ð¥ð¥ + 1
â¢ð¥ð¥1 + 2ð¥ð¥2 + 4ð¥ð¥3 â 3ð¥ð¥4 = 5â2ð¥ð¥1 + 3ð¥ð¥2 â ð¥ð¥3 â 6ð¥ð¥4 = 2ð¥ð¥1 + 5ð¥ð¥2 â 3ð¥ð¥3 + 2ð¥ð¥4 = 4
ð¥ð¥1 â 3ð¥ð¥2 â 5ð¥ð¥3 = 1
31
MATLAB Programming
Quiz Sol.
ë€ì ì°ëŠœ ë°©ì ìë€ì íŽë¥Œ solve íšì륌 ìŽì©íì¬ êµ¬íŽëŽ ìë€.
⢠ᅵð¥ð¥ + ðŠðŠ â ð§ð§ = 03ð¥ð¥ + 2ðŠðŠ â ð§ð§ = 52ð¥ð¥ â ðŠðŠ â 3ð§ð§ = â6
⢠ᅵ ðŠðŠ = 32ð¥ð¥ðŠðŠ = 5ð¥ð¥ + 1
â¢ð¥ð¥1 + 2ð¥ð¥2 + 4ð¥ð¥3 â 3ð¥ð¥4 = 5â2ð¥ð¥1 + 3ð¥ð¥2 â ð¥ð¥3 â 6ð¥ð¥4 = 2ð¥ð¥1 + 5ð¥ð¥2 â 3ð¥ð¥3 + 2ð¥ð¥4 = 4
ð¥ð¥1 â 3ð¥ð¥2 â 5ð¥ð¥3 = 1
% problem 1>> syms x y z>> f1 = x + y - z == 0;>> f2 = 3*x + 2*y - z == 5;>> f3 = 2*x - y - 3*z == -6;>> sols = solve(f1, f2, f3)
sols =
x: [1x1 sym]y: [1x1 sym]z: [1x1 sym]
>> [sols.x sols.y sols.z]
ans =[ 2, 1, 3]
% problem 2>> syms x y>> sols = solve('y=3^(2*x)', 'y=5^x+1')
sols =
x: [1x1 sym]y: [1x1 sym]
>> [sols.x sols.y]
ans =
[ 0.57107246071180090433600366899982, 3.
>> digits(5)>> [sols.x sols.y]
% problem 3>> syms x1 x2 x3 x4>> f1 = x1+2*x2+4*x3-3*x4 == 5;>> f2 = -2*x1+3*x2-x3-6*x4 == 2;>> f3 = x1+5*x2-3*x3+2*x4 == 4;>> f4 = x1-3*x2-5*x3==1;>> sols = solve(f1,f2,f3,f4)
sols = x1: [1x1 sym]x2: [1x1 sym]x3: [1x1 sym]x4: [1x1 sym]
>> [sols.x1 sols.x2 sols.x3 sols.x4]
ans =[ 720/337, 397/674, -85/674, -246/337] 32
MATLAB Programming
Quiz
ë€ì ë íšì f(x,y)ì g(x,y)ê° êµì°šíë ì§ì ì ì¢íê°ì 구íŽëŽ ìë€.
⢠ðð ð¥ð¥,ðŠðŠ = ðŠðŠ â 4ð¥ð¥2 + 3
⢠ðð ð¥ð¥,ðŠðŠ = ð¥ð¥2
4+ ðŠðŠ2 â 1
33
MATLAB Programming
Quiz Sol.
ë€ì ë íšì f(x,y)ì g(x,y)ê° êµì°šíë ì§ì ì ì¢íê°ì 구íŽëŽ ìë€.
⢠ðð ð¥ð¥,ðŠðŠ = ðŠðŠ â 4ð¥ð¥2 + 3
⢠ðð ð¥ð¥,ðŠðŠ = ð¥ð¥2
4+ ðŠðŠ2 â 1
% solutionsyms x yf = y - 4*x^2+3;g = x^2/4 + y^2 - 1;h1 = ezplot(g);set(h1, 'color', 'r');hold on;h2 = ezplot(f);set(h2, 'color', 'b');grid on;axis([-3 3 -4 4]);
[xs, ys] = solve(f, g)sols = [double(xs) double(ys)]
34
MATLAB Programming
Quiz
íë 믞ì¬ìŒì ììì ë, ìê°ì ë°ë¥ž xì¶, yì¶ ë°©í¥ì 거늬ë ìëì
ê°ìµëë€.
⢠ððððð ð ð¡ð¡ð¥ð¥ ð¡ð¡ = ð£ð£0 ð¡ð¡ cos(ðð)
⢠ððððð ð ð¡ð¡ðŠðŠ ð¡ð¡ = ð£ð£0 ð¡ð¡ sin ðð â 12ððð¡ð¡2
ìŽêž° ìë v0ê° 100 m/s ìŽê³ , ì€ë ¥ê°ìë gê° 9.8 m/s2 ìŒ ë, 믞ì¬ìŒì
ìë ê°ëì ë°ëŒ 믞ì¬ìŒìŽ ë ì ë¿ì ëê¹ì§ ëë¬íë ê±°ëŠ¬ê° ìŽë»ê²
ë³ííëì§ ê·žëíë¡ ê·žë €ëŽ ìë€.
35
MATLAB Programming
Quiz Sol.
disty(t) ê·žëíê° 0ìŽ ëë ìê°ì t ê°ìŽ 믞ì¬ìŒìŽ ë ì ë«ë
ìê°ìŽë¯ë¡, disty(t) íšìê° 0ìŽ ë ë, tê°ì íŽë¥Œ ì°Ÿìë.
syms v0 t theta g
disty = v0 * t * sin(theta) - 1/2 * g * t^2;distx = v0 * t * cos(theta)
impact_time = solve(disty, t, 0)
impact_time =
0(2*v0*sin(theta))/g
36
MATLAB Programming
Quiz Sol.
disty(t) íšìê° 0ìŽ ë ë, tê°ì íŽë¥Œ distx ê°ì tì ëì
ê·žë¬ë©Ž, distx íšìë thetaì êŽí íšìê° ëš
impact_dist = subs(distx, t, impact_time(2));
g = 9.8;v0 = 100;
impact_dist = subs(impact_dist)
impact_dist =
(100000*cos(theta)*sin(theta))/49
37
MATLAB Programming
Quiz Sol.
distx(theta) íšì륌 theta = 0 .. pi/2 ê¹ì§ plot íšì ìŽì©íì¬ ê·žëŠŒ
t = 0:0.1:pi/2;y = subs(impact_dist, theta, t);
plot(t, y)grid on
38
MATLAB Programming
fzero
solve륌 íµíŽ f(x) = sin(x) â 0.5x ì íŽë¥Œ 구íë©Ž 0ë§ ëìŽ
⢠귞ë¬ë, ê·žëí륌 ê·žë €ë³Žë©Ž íŽê° 2ê° ë ì¡Žì¬íšì íìží ì ìì
fzeroë âëšìŒë³ìâ íšì fì ë¶ížê° ë³íë ì§ì (ìŠ, f(x) = 0)ì ê·Œì 구íë ë°ì ì¬ì©
⢠ìíë ê·Œì ê°ê¹ë€ê³ ìê°ëë ììê° x0 ë¡ë¶í° ê·Œì íìíì¬,
ð¥ð¥ðð â ð¥ð¥â †2 à 10â16 ì ë§ì¡±íë ì¶ì ê·Œ x*륌 구í ë ê¹ì§ ë°ë³µì ìŒë¡ ê³ì°
>> syms x>> ezplot('sin(x) - 0.5*x')>> grid on
39
MATLAB Programming
fzero
solve륌 íµíŽ f(x) = sin(x) â 0.5x ì íŽë¥Œ 구íë©Ž 0ë§ ëìŽ
⢠귞ë¬ë, ê·žëí륌 ê·žë €ë³Žë©Ž íŽê° 2ê° ë ì¡Žì¬íšì íìží ì ìì
>> solve('sin(x)-0.5*x==0')
ans =0
>> fzero('sin(x)-0.5*x', [1 3])
ans =1.8955
>> fzero('sin(x)-0.5*x', [-3 -1])
ans =-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.
40
MATLAB Programming
Quiz
ë€ì ë°©ì ìë€ì ê·Œì fzero íšì륌 ìŽì©íì¬ êµ¬íŽëŽ ìë€.
⢠x â tan(x) = 0
⢠cos(x) â x = 0
41
MATLAB Programming
Quiz Sol.
ë€ì ë°©ì ìë€ì ê·Œì fzero íšì륌 ìŽì©íì¬ êµ¬íŽëŽ ìë€.
⢠x â tan(x) = 0
⢠cos(x) â x = 0
>> solve('x - tan(x) == 0')
ans =0
>> ezplot('x - tan(x)')>> grid on>> fzero('x - tan(x)', -4)
ans =-4.4934
>> fzero('x - tan(x)', 4)
ans =4.4934
42
MATLAB Programming
ë€íìì ê·Œ ê³ì°
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.61801.6180
43
MATLAB Programming
ë€íìì ê·Œì ê²ìŠ
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.61801.6180
% ë€íìê·Œê²ìŠ
>> polyval(p, z)
ans =
1.0e-15 *
-0.11100.2220
0 ìê·Œì íê°
44
MATLAB Programming
ë¯žë¶ ë°©ì ì íêž°
45
MATLAB Programming
ë¯žë¶ ë°©ì ìì íí
MATLABììë ë¯žë¶ ì°ì°ì륌 ë€ì곌 ê°ìŽ íííš
⢠ððððð¥ð¥ D, ðð2
ððð¥ð¥2 D2, ðð
3
ððð¥ð¥3 D3, âŠ, ðð
ðð
ððð¥ð¥ðð Dn
⢠ìë ë¯žë¶ ë°©ì ìì 믞ë¶ì°ì°ì D륌 ìŽì©íì¬ ë€ì곌 ê°ìŽ íí ê°ë¥
ðððŠðŠððð¥ð¥
= â2ð¥ð¥ðŠðŠ Dy = -2xy
믞ë¶ë°©ì ìì íŽ êµ¬íêž° ìì
⢠ðððŠðŠððð¥ð¥
= â2ð¥ð¥ðŠðŠ, y 1 = 1
>> dsolve('Dy = -2*x*y', 'y(1) = 1', 'x')
ans =
exp(1)*exp(-x^2)46
MATLAB Programming
Symbolic Expression ìŽì©í ë¯žë¶ ë°©ì ì íìŽ
Symbolic Mathììë ìë 믞ë¶ì°ì°ì Dê° ì ì©ëì§ ìì
⢠ððððð¥ð¥ D, ðð2
ððð¥ð¥2 D2, ðð
3
ððð¥ð¥3 D3, âŠ, ðð
ðð
ððð¥ð¥ðð Dn
⢠ëì diff(x) ë¡ íííŽìŒ íš
믞ë¶ë°©ì ìì íŽ êµ¬íêž° ìì
⢠ðððŠðŠððð¥ð¥
= â2ð¥ð¥ðŠðŠ, y 1 = 1
>> syms x y(t)>> dsolve(diff(y) == -2*x*y, y(1) == 1, x)
ans =
exp(1)*exp(-x^2)
47
MATLAB Programming
nì°š ë¯žë¶ ë°©ì ìì íìŽ
ðŠðŠâ²â² + 6ðŠðŠâ² + 9ðŠðŠ = 0, y 0 = â4, yâ² 0 = 14
⢠ì¬êž°ì yââ ë ðð2ðŠðŠððð¥ð¥2
ëë D2y, yâë ðððŠðŠððð¥ð¥ëë 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)
ans =
2*exp(-3*x)*(x - 2)
48
MATLAB Programming
nì°š ë¯žë¶ ë°©ì ìì íìŽ
ðŠðŠâ²â² + 6ðŠðŠâ² + 9ðŠðŠ = 0, y 0 = â4, yâ² 0 = 14
⢠ì¬êž°ì yââ ë ðð2ðŠðŠððð¥ð¥2
ëë D2y, yâë ðððŠðŠððð¥ð¥ëë Dy 륌 ì믞íš
⢠symbolic expressionìŒë¡ ì°ë©Ž ìëì ê°ì
>> 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)
49
MATLAB Programming
ì°ëŠœ ë¯žë¶ ë°©ì ì
ì°ëŠœë¯žë¶ë°©ì ì (D = ðððððð
)
⢠ᅵð¥ð¥â² â 2ð¥ð¥ â 3ðŠðŠ = 2ðð2ð¡ð¡
âð¥ð¥ + ðŠðŠâ² â 4ðŠðŠ = 3ðð2ð¡ð¡, x 0 = â 2
3, y 0 = 1
3
⢠ì¬êž°ì xâ ëððð¥ð¥ððð¡ð¡ëë Dx, yâë
ðððŠðŠððð¡ð¡ëë 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
ans =- (3*exp(2*t))/4 - exp(5*t)*((11*exp(-3*t))/12 - 1)
>> DSol2.y
ans =exp(2*t)/4 - exp(5*t)*((11*exp(-3*t))/12 - 1) 50
MATLAB Programming
ì°ëŠœ ë¯žë¶ ë°©ì ì
ì°ëŠœ ë¯žë¶ ë°©ì ì (D = ðððððð
) ì Symbolic ExpressionìŒë¡ íìŽ
⢠ᅵð¥ð¥â² â 2ð¥ð¥ â 3ðŠðŠ = 2ðð2ð¡ð¡
âð¥ð¥ + ðŠðŠâ² â 4ðŠðŠ = 3ðð2ð¡ð¡, x 0 = â 2
3, y 0 = 1
3
⢠ì¬êž°ì xâ ëððð¥ð¥ððð¡ð¡ëë Dx, yâë
ðððŠðŠððð¡ð¡ëë 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);
51
MATLAB Programming
Quiz
ìë 죌ìŽì§ ë¯žë¶ ë°©ì ìì symbolic expressionì ì¬ì©íì¬ íìŽëŽ ìë€
⢠ðððŠðŠððð¥ð¥
= ððð¥ð¥
2ðŠðŠ
⢠ðððŠðŠððð¥ð¥
= ðððŠðŠð¥ð¥ðððŠðŠ+ð¥ð¥2ðððŠðŠ
⢠ððð¥ð¥(ððð¥ð¥ððð¡ð¡
+ 1) = 1 , ð¥ð¥(0) = 1
⢠ðððŠðŠððð¥ð¥
+ 1âðŠðŠ2
1âð¥ð¥2= 0
52
MATLAB Programming
Quiz Sol.
ìë 죌ìŽì§ ë¯žë¶ ë°©ì ìì symbolic expressionì ì¬ì©íì¬ íìŽëŽ ìë€
⢠ðððŠðŠððð¥ð¥
= ððð¥ð¥
2ðŠðŠ
⢠ðððŠðŠððð¥ð¥
= ðððŠðŠð¥ð¥ðððŠðŠ+ð¥ð¥2ðððŠðŠ
⢠ððð¥ð¥(ððð¥ð¥ððð¡ð¡
+ 1) = 1 , ð¥ð¥(0) = 1
⢠ðððŠðŠððð¥ð¥
+ 1âðŠðŠ2
1âð¥ð¥2= 0
syms x y(t)Dy = diff(y);dsolve(Dy==exp(x)/(2*y))
syms x y(t)Dy = diff(y);dsolve(Dy==(exp(y)*x)/(exp(y)+x^2*exp(y)))
syms x(t)Dx = diff(x);f = exp(x)*(Dx+1)==1;dsolve(f, x(0)==1)
syms x y(t)Dy = diff(y);f = Dy + sqrt((1-y^2)/(1-x^2)) == 0;dsolve(f)
53
MATLAB Programming
ë³í
54
MATLAB Programming
ë³íìŽë?
ìŽë í íšì f(t)륌 ë€ë¥ž íšì F(s)ë¡ ë³ííë ê².⢠ì ìê³µíììë ìê°
ë³íì íµíŽ ë³µì¡í íšì f(t)륌 ìœê² í ì ìë F(s)ë¡ ë³ííì¬ ë¬žì 륌 íŽê²°.
ë¯žë¶ ë°©ì ì ë±ì í ë ë늬 ì¬ì©.
ì륌 ë€ìŽ, 믞ë¶ë°©ì ìì íŒë€ê³ íë©Ž,
⢠1. íšì f(t)륌 F(s)ë¡ ë³í (ììŽ ê°ëšíŽì§)⢠2. F(s)ì ë¯žë¶ ë°©ì ìì í⢠3. F(s)ìì ì»ì íŽë¥Œ ë€ì ìë³ííë©Ž ì ì f(t)ì íŽê° ëš
ì¢ ë¥â¢ Laplace ë³í, Z-ë³í, Fourier ë³í, âŠ
55
MATLAB Programming
Laplace ë³í
ëŒíëŒì€ ë³í : ð¹ð¹ ð ð = ð¿ð¿ ðð ð¡ð¡ = â«0âðð ð¡ð¡ ððâð ð ð¡ð¡ððð¡ð¡
ì ëŒíëŒì€ ë³í : ðð ð¡ð¡ = 12ðððð â«ððâððâ
ðð+â ð¹ð¹ ð ð ððð ð ð¡ð¡ððð ð
ë³í ì
% ëŒíëŒì€ë³í>> syms t w>> laplace(t^2)
ans =2/s^3
>> laplace(cos(w*t))
ans =s/(s^2 + w^2)
>> laplace(t^1)
ans =1/s^2
% ëŒíëŒì€ìë³í>> syms s w>> ilaplace( 1/s^3 )
ans =t^2/2
>> ilaplace( 3/(s+w) )
ans =3*exp(-t*w)
>> ilaplace( s/(s^2+4) )
ans =cos(2*t)
56
MATLAB Programming
Laplace ë³í
ëŒíëŒì€ ë³íì ìŽì©í ë¯žë¶ ë°©ì ìì íìŽ (1/2)
⢠1ì°šì 2ì°š ë¯žë¶ ë°©ì ìì Laplace ë³í ð¿ð¿ ðððð
ððð¡ð¡= ð ð ð¹ð¹ ð ð â ðð 0
ð¿ð¿ ðð2ððððð¡ð¡2
= ð ð 2ð¹ð¹ ð ð â ð ð ð¹ð¹ ð ð â ððâ²(0)
⢠ë€ì ë¯žë¶ ë°©ì ì ðŠðŠâ²â² + 6ðŠðŠâ² + 9ðŠðŠ = 0, y 0 = â4, yâ² 0 = 14 ìLaplace ë³íìŒë¡ íìŽ
ð¿ð¿ ðŠðŠâ²â² + 6ðŠðŠâ² + 9ðŠðŠ = ð¿ð¿ ðŠðŠâ²â² + 6ð¿ð¿ ðŠðŠâ² + 9ð¿ð¿ ðŠðŠ
= ð ð 2ðð ð ð â ð ð ðð ð ð â ðŠðŠâ² 0 + 6ð ð ðð ð ð â 6ðŠðŠ 0 + 9ðð ð ð = 0
ð ð 2 + 6ð ð + 9 ðð ð ð = â4ð ð + 14
ð¹ð¹ ð ð = â4ð ð +14ð ð 2+6ð ð +9
57
MATLAB Programming
Laplace ë³í
ëŒíëŒì€ ë³íì ìŽì©í ë¯žë¶ ë°©ì ìì íìŽ (2/2)
ð¹ð¹ ð ð = â4ð ð +14ð ð 2+6ð ð +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)
ans =26*t*exp(-3*t) - 4*exp(-3*t)
58
MATLAB Programming
Z ë³í
Z ë³í : ð¹ð¹ ð ð = ðð ðð ð¡ð¡ = âðð=0â ðð ðððð ð§ð§âðð
ë³í ì
% Z ë³í>> syms t>> f = sin(2*t)
f = sin(2*t)
>> fz = ztrans(f)
fz =(z*sin(2))/(z^2 - 2*cos(2)*z + 1)
>> pretty(fz)
z sin(2) -------------------2 z - 2 cos(2) z + 1
% 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)
/ / / 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
ðð ð§ð§ =3ð§ð§
ð§ð§2 â 4ð§ð§ + 5
59
MATLAB Programming
Fourier ë³í
Fourier ë³í : ð¹ð¹ ð€ð€ = â«âââ ðð ð¥ð¥ ððâððððð¥ð¥ððð¥ð¥
ì Fourier ë³í : ðð ð¡ð¡ = 12ðð â«ââ
â ð¹ð¹ ð€ð€ ððððððð¥ð¥ððð€ð€
ë³í ì
% 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)
4 u i - ---------
2 2 (u + 1)
% Fourier ìë³í>> syms x>> f = exp(-abs(x))
f =
exp(-abs(x))
>> g = ifourier(f)
g =
1/(pi*(t^2 + 1))
ðð ð¥ð¥ = ð¥ð¥ððâ|ð¥ð¥| ðð ð¥ð¥ = ððâ|ð¥ð¥|
60
MATLAB Programming
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 ìììë³í 61