본문 바로가기

Matlab

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

1. 기본 함수

sym(S), where S is a string

symbolic expresion에 사용되는 문자열

findsym(S,n) 

symbolic expresion에서 n번째 까지의 변수 찾기

ezplot(S,[xmin,xmax])

symbolic expresion를 특정한 범위내에서 그래프화


 >> S = sym('sin(x)*2+sin(4*y)');

>> findsym(S,2)

ans =

x,y

>> ezplot(S)



2. 단순함수

collect(S,['v'])

v에 대하여 계수들을 정리

expand(S)

S를 전개

factor(S)

S를 인수분해

simple(S)

S가 가능한 모든 형태 중 가장 간단한 형태로 변환

simplify(S)

S를 매트랩에 내재된 Maple에 의해 가장 간단한 형태로 변환

pretty(S) 

S를 Maple sting으로 화면에 나타남


 

>> S1 = sym('x^3-1');

>>  S2 = sym('(x-3)^2+(y-4)^2');

>> collect(S2)

 ans =

 x^2 - 6*x + (y - 4)^2 + 9

 >> collect(S2,'y')

 ans =

 y^2 - 8*y + (x - 3)^2 + 16

 >> expand(S2) 

ans =

 x^2 - 6*x + y^2 - 8*y + 25

 >> factor(S1)

 ans =

 (x - 1)*(x^2 + x + 1)

 >> simple(S2)

 simplify:

 x^2 - 6*x + y^2 - 8*y + 25

 radsimp: 

(x - 3)^2 + (y - 4)^2 

simplify(100): 

(x - 3)^2 + (y - 4)^2 

combine(sincos): 

(x - 3)^2 + (y - 4)^2 

combine(sinhcosh): 

(x - 3)^2 + (y - 4)^2 

combine(ln): 

(x - 3)^2 + (y - 4)^2 

factor: 

x^2 - 6*x + y^2 - 8*y + 25 

expand: 

x^2 - 6*x + y^2 - 8*y + 25 

combine: 

(x - 3)^2 + (y - 4)^2 

rewrite(exp): 

(x - 3)^2 + (y - 4)^2 

rewrite(sincos): 

(x - 3)^2 + (y - 4)^2 

rewrite(sinhcosh): 

(x - 3)^2 + (y - 4)^2 

rewrite(tan): 

(x - 3)^2 + (y - 4)^2 

mwcos2sin: 

(x - 3)^2 + (y - 4)^2 

collect(x): 

x^2 - 6*x + (y - 4)^2 + 9 

ans = 

(x - 3)^2 + (y - 4)^2

 

>> pretty(S2) 

         2          2 

  (x - 3)  + (y - 4)

 



3. 계산함수

[N, D] = numden(S)

S에서 분자 분모를 되돌려 줌

sym2poly(S)

symbolic으로 표현된 다항식을 다항식을 polynomial vector로 나타냄

poly2sym(S)

polynomial vector를 symbolic 다항식으로 나타냄

S1+S2

S1-S2

S1*S2

S1/S2

S^P

Symbolic operation


 >> syms y

>> S1 = 1/(y-3);

>> S2 = 3*y/(y+2);

>> S3 = (y+4)*(y-3)*y;

>> pretty(S1) 

    1 

  ----- 

  y - 3

>> pretty(S2) 

   3 y 

  ----- 

  y + 2

>> pretty(S3) 

  y (y - 3) (y + 4)

>> sym2poly(S1)

??? Error using ==> sym.sym2poly at 31

Not a polynomial. 

>> sym2poly(S2)

??? Error using ==> sym.sym2poly at 31

Not a polynomial. 

>> sym2poly(S3)

ans =

     1     1   -12     0

>> poly2sym(ans)

 ans = 

x^3 + x^2 - 12*x 


>> S1+S2 

ans = 

(3*y)/(y + 2) + 1/(y - 3)

>> pretty(S1+S2) 

   3 y      1 

  ----- + ----- 

  y + 2   y - 3

>> factor(S1+S2) 

ans = 

(3*y^2 - 8*y + 2)/((y + 2)*(y - 3)) 

>> pretty(factor(S1+S2)) 

     2 

  3 y  - 8 y + 2 

  --------------- 

  (y + 2) (y - 3)

>> [n,d] = numden(S1+S2)

 n = 

3*y^2 - 8*y + 2 

d = 

y^2 - y - 6 




'Matlab' 카테고리의 다른 글

Control Flow  (0) 2013.12.23
M-file  (0) 2013.12.23
Matrix Operator  (0) 2013.12.23
Matrix  (0) 2013.12.23
MATLAB 기호프로세서(symbolic processor) 기초2  (0) 2013.09.02