티스토리 툴바


크리에이티브 커먼즈 라이선스
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]) // 특정구간을 정해서 그래프를 그린다. 
저작자 표시 비영리
Posted by SoGentle SoGentle