크리에이티브 커먼즈 라이선스
Creative Commons License

매틀랩에는 다양한 기능들이 있지만
최근 심볼릭 방법에 대해서 알게 되었고 정말 신기하기도 하고 유용한 방법이기에 소개한다.



심볼릭 처리(symbolic process)에 대해서 간단히 설명하자면
매틀랩에서 사용되는 변수에 값을 입력하지 않고 변수 그 자체로 계산 하는 방법이다.
사용의 예를 들자면
y=x^2 이라는 식을 미분하여 y'=2x 라는 식을 얻을 수 있고
거기에 값을 대입해서 간단하게 미분식을 풀 수 있다.
장점이라고 한다면 일반화 할 수 있다는 점이고
그 일반화는 반복작업을 간단하게 만든다.
특히 미적분에 관해서 유용하게 쓰일 것이다. 숫자를 대입한 후 미분하는 것과는 다른 의미를 지니게 되니 말이다.

코딩 실력을 나누는 것은 얼마나 많은 함수를 알고 있느냐가 아니라
어떤 것을 할 수 있느냐에 따라 나뉜다. 함수는 찾고 검색하면 끝이지만 어떤 것을 할 수 있느냐하는 것은 찾기 쉽지 않기 때문이다.

심볼릭을 이용해서 할 수 있는 간단한 것들
1. 변수를 이용한 일반식을 만들 수 있다.
2. 그 식을 풀고 식을 간단히 할 수 있다.
3. 식에 미분 적분등의 계산을 적용할 수 있다.
4. 계산된 식에 값을 넣어 결과를 볼 수 있다.

이정도가 기본으로 할 수 있는 것들이다. (사실 나도 배운지 얼마 안되서 어떤 기능이 더 있는지 잘 모르겠다.)


심볼릭 처리의 종류
1. 심볼릭 상수
2. 심볼릭 변수


심볼릭 상수는 값이 정해져있기 때문에 언제든지 값이 상수로 변환될 수 있는 값이다.
예를 들면 2라는 심볼릭 상수와 3이라는 심볼릭 상수를 곱하면 2*3으로 표시되지만 간단하게 6이라는 결과로 바꿀 수 있다.

심볼릭 변수는 값이 정해져 있지 않기 때문에 값을 계산하기 위해서는 특정값을 넣어주어야한다.
x^2의 경우에 x라는 값이 정해져 있지 않아 특정 결과를 위해서는 사용자가 x의 값을 입력해 주어야 한다.

심볼릭 지정
심볼릭 상수: pi=sym('3.14'), sqareroot2=sym('sqrt(2)')
*심볼릭 상수와 일반 상수의 차이점
결과 표시: 2*sqrt(2)=2.8284
               2*sqareroot2=2*2^(1/2)

심볼릭 변수 
심볼릭 변수=sym('문자')
syms 심볼릭 변수
x=sym('x')
y=sym('y')
z=sym('z')
syms x y z // 위의 결과와 같다.

심볼릭 변수의 특성을 지정해 줄 수도 있다.
심볼릭 변수=sym('문자', '특성') 
x=sym('x', 'real') // x는 real 값 = syms x real 
y=sym('y', 'r') // y는 rational 값 
z=sym('z', 'f') // z는 floating 값 
syms a positive // a를 positive로 제한 sym을 이용해서 대체 가능
syms b negative  // b를 negative로 제한 sym을 이용해서 대체 가능
관련 함수
findsym(변수) // 변수에 포함된 심볼릭 변수를 찾아 표시한다.
class(변수) // 변수의 형태가 어떤 종류인지 나타낸다. 'double' or 'sym'
pretty(변수) // 일반적인 수학식으로 표시한다. 
expand(변수) // 심볼릭 변수들로 된 식을 계산한다. 예를 들면 (x+y)^2를 x^2+y^2+2xy로 나타낸다.
factor(변수) // 식을 인수분해한다.
simple(변수) // 식을 가장 간단한 형태로 나타낸다. (인수분해나 괄호를 풀이한 결과로)
simplify(변수) //  (Maple's simplification rule을 이용하여) 식을 간단히 한다. 
collect(변수) // 변수의 식을 내림차순으로 정리한다.
-사용법: collect(변수, 심볼릭 변수) // 특정 변수에 대해 내림차순으로 정리한다.
solve(변수) // 방정식 변수의 해를 구한다.

double(심볼릭 상수) // 심볼릭 상수의 값을 일반 상수로 계산하여 나타낸다.
subs(변수, 값) // 심볼릭 변수에 특정 값을 넣어 계산한다.
-사용법: subs( 식, 값) // 식에 심볼릭 변수가 하나만 존재하는 경우
            subs( 식, 심볼릭 변수, 값 ) // 특정 심볼릭 변수에 값을 넣는 경우
            subs( 식, [심볼릭변수1, 심볼릭변수2, ...], [심볼릭변수1의 값, 심볼릭변수2의 값, ...) // 행렬의 크기는 반드시 일치             해야한다. 모든 변수에 값을 넣어줄 필요는 없다.
conj(심볼릭 변수) // 심볼릭 변수의 complex conjugation (켤래 복소수) 값을 나타낸다.
numden(변수) // 변수의 분자값과 분모 값을 '분모', '분자'에 넣어준다. 변수가 식이라면 계산된 결과가 입력
-사용법: [분자 분모]= numden(변수)로 하면 분자, 분모에 넣어준다. 앞이 분자, 뒤가 분모임을 명심
ploy2sym([숫자1, 숫자2, ...]) // 행렬을 심볼릭 다항식 계수로 바꾸어준다.
sym2poly(변수)
// 식의 계수 벡터를 구한다. 

그래프 그리기
ezplot(변수) // [-2pi, 2pi]구간의 그래프를 그려준다.
ezplot(변수, [xmin, xmax]) // 특정구간을 정해서 그래프를 그린다. 
저작자 표시 비영리
신고

'전자 전공 > SOFTWARE' 카테고리의 다른 글

매틀랩(matlab) 심볼릭(symbolic) 사용법 - 기초  (5) 2011.12.26
  1. jazzier 2012.01.19 13:14 신고

    안녕하세요~ 공대생분이시군요~ ㅋㅋ 저도 공대생인데
    정리 잘 해놓으셔서 아주 잘 보고 갑니다~ 감사합니다 ^^

  2. 공대생2 2012.08.02 11:14 신고

    심볼릭에 대해서 배우고 갑니다....
    주인장님은 좋은 취지를 가지고 블로그를 운영하시는군요..^^ 앞으로 계속 발전하는 블로그가 되었으면 좋겠습니다.

  3. 공대생 2012.10.06 14:57 신고

    매틀랩을 처음 다루게 되었는데 덕분에 심볼릭이라는 유용한 기능을 접할 수 있게 되었습니다.
    프로필에 써있는 '세상의 발전은 지식 공유'라는 글귀가 상당히 인상깊네요. 저도 이것에 절대적으로 동의하는 공대생으로서 노력해야겠습니다. 고맙습니다.

  4. 공대생3 2012.11.07 22:17 신고

    와 정말 도움이 많이 됬습니다 고맙습니다!!

  5. 공대생3 2012.11.07 22:17 신고

    와 정말 도움이 많이 됬습니다 고맙습니다!!

+ Recent posts

티스토리 툴바