Matlab

MATLAB 기호프로세서(symbolic processor) 기초2

장곰부대 2013. 9. 2. 19:58

1. 연립방정식

solve(eq1,eq2,… ,eqn,var1,var2,…,varn)

>> S = sym('x^2+3*x+18');

>> solve(S) 

ans = 

 - 3/2 - (3*7^(1/2)*i)/2

 - 3/2 + (3*7^(1/2)*i)/2 

>> pretty(solve(S)) 

 


>> eq1 = '3*x+2*y-z-10'

>> eq2 = '-x+3*y+2*z-5'

>> eq3 = 'x-y-z+1'

>> answer = solve(eq1,eq2,eq3)

answer = 

    x: [1x1 sym]

    y: [1x1 sym]

    z: [1x1 sym]

>> answer.x 

ans = 

-2 

>> answer.y 

ans = 

5 

>> answer.z 

ans = 

-6 


2. 미분, 적분

diff(f,'t',n) 

symbolic으로 표현된 f를 t에 관하여 n번 미분


 >> syms x y z

>> f1 = 6*x^3-4*x^2+y^3-8*y^2-5;

>> f2 = sin(x);

>> f3 = (1-z^3)/(1+z^4);


>> diff(f1) 

ans = 

18*x^2 - 8*x 

>> diff(f1,2) 

ans = 

36*x - 8 

>> diff(f1,y,2) 

ans = 

6*y - 16

 

>> diff(f2,5)

 ans = 

cos(x)

 

>> diff(f3) 

ans = 

(4*z^3*(z^3 - 1))/(z^4 + 1)^2 - (3*z^2)/(z^4 + 1) 

>> pretty(diff(f3)) 



int(f,'t',a,b)

symbolic으로 표현된 f를 t에 관하여 a에서 b까지 적분


>> f1 = 6*x^2-5*x+5;

>> int(f1) 

ans = 

(x*(4*x^2 - 5*x + 10))/2 

>> int(f1,1,2) 

ans = 

23/2 

>> int(f1,'a','b') 

ans = 

- 2*a^3 + (5*a^2)/2 - 5*a + 2*b^3 - (5*b^2)/2 + 5*b 

>> int(f1,'y') 

ans = 

y*(6*x^2 - 5*x + 5)




3. 미분방정식

dsolve(eq1,eq2,…,'boundary or initial condition','var')


 >> dsolve('Dx = -a*x')

 ans = 

C2/exp(a*t) 

>> dsolve('Dx = -a*x','x(0)=1')

 ans = 

1/exp(a*t)

 

>>  S = dsolve('Df = f + g','Dg = -f + g','f(0) = 1','g(0) = 2')

S = 

    f: [1x1 sym]

    g: [1x1 sym]

>> S.f 

ans = 

exp(t)*cos(t) + 2*exp(t)*sin(t) 

>> S.g 

ans = 

2*exp(t)*cos(t) - exp(t)*sin(t)