MATLAB에서도 문자연산 기능이 있다.

가끔 생각하기 귀찮을때, MATLAB한테 간단한 미적분 문제는 맡겨도 괜찮을 것이다.^^

 





문자연산은 먼저

문자연산에서 사용할 변수를 선언해야 한다.

 

syms x y

 

이렇게 선언을 하자...

평상시 MATLAB 연산과는 달리 세미콜론(;)이나 곰마(,)는 없다. 띄어쓰기만....^^

 



그리고 미분(diff)이나 적분(int) 명령을 사용해주면 된다.






 

이 글은 제 이전 홈페이지에 2008년 6월 15일 올렸던 내용입니다.
티스토리로 이전하면서 몇몇 글들을 이렇게 옮기고 있습니다.



저작자 표시 비영리 변경 금지
http://pinkwink.kr/trackback/19 관련글 쓰기
  • MATLAB에서 다변함수에 대한 문자연산을 이용한 미분 Trackback from PinkWink's Blog 2010/06/06 00:47 [ DELETE ]

    예전에 MATLAB에서 문자연산을 이용해서 미분하는 법에 대한 이야기[관련글]를 했었습니다. 그런데 만약 사용할 변수가 어떤 변수(대체로 시간 t)에 대해 종속이면서, 여러 함수를 사용 중 이라면, 문자연산을 이용한 미적분의 적용에 애를 먹게 됩니다. 물론 애초 syms로 선언할 당시 시간에 관한 함수라고 선언하면 되지만, 그렇게 하면 일반적 수식이 아니라 텍스트형태로 나오는 결과가 해당 식이 아주 복잡할 때는 더더욱 알아보기 힘들게 됩니다. 이것을..

  • 김정식 2012/01/02 11:50

    질문 있습니다.

    문자 연산과 역행렬을 이용해 복잡한 식에 해를 찾았습니다.(문자로만 이루어진)
    찾은 해는 매우매우 긴 문자 수식들로 이루어져 있는데요.
    자세히 살펴 보니 약분이 되면 매우 간단해 지는 수식인데 약분이 하나도 안되어 있네요....
    찾은 해가 간단하게 표현 될 수 있도록 약분되게 할 수 없나요?

    • PinkWink 2012/01/02 12:33

      항상 사람이 보는데로 깔끔하게 처리해주지는 않습니다.^^
      그래도 혹시 모르니 simple이라는 명령을 한번 사용해 보시지요. 그러면 그나마 괜찮아 질 수도 있습니다.

  • 김정식 2012/01/05 14:44

    정말 큰 도움 되었습니다. 감사합니다. 좋은 하루 되세요 ^-^

  • 이태엽 2013/01/20 12:24

    PinkWink님의 노고에 항상 감사드리며.. 질문이 있습니다.
    심볼릭 변수 자체를 자동으로 생성하고 싶은데..

    a = sym('a%d', [1 3]); 이라고 한다면
    >> a = [a1, a2, a3] 의 형태의 심볼릭 변수가 생성되지만,

    정작 제가 필요한 심볼릭 a변수 안의 요소들, 즉 a1, a2, a3는 심볼릭 변수로 생성되지가 않더군요..
    자동으로 심볼릭 변수 a1, a2, a3, ... 가 만들어지는 함수나 방법이 있을까요..?

    • PinkWink 2013/01/22 16:35

      a1 ... a10 ... a100
      뭐 이런식으로 원하는 만큼 만들고 싶으시다는 말씀이시죠..?
      손쉽게 핸들링할 수 있는건 eval 명령입니다. 제 블로그에서도 소개한 적이 있습니다. 위에 검색으로 eval을 검색해보시면 아마 나올텐데요.
      eval안에 syms로 변수 선언을 넣어서 사용하시면 될 듯 한데요...^^