본문으로 바로가기

Symbolic 연산은 MATLAB을 사용하는 사람들에게 꽤 유용한 기능 중 하나입니다. 특히 최근 MATLAB 2016에 탑재된 Live Editor에서는 그 표현이나 사용성에서 더욱 편리해졌는데요. 이번에는 제가 블로그에서 한 번 쯤 언급한 줄 알았더니.. 아니었던 solve라는 함수를 소개할까합니다. 쉽게 이야기하면... 방정식의 해를 찾아주는 아입니다. MATLAB에서 풀 수 있는 방정식이면 수식의 형태로 나타납니다. 아~~주 유용하죠^^

문법은 위 그림과 같습니다. 뭐... 그냥 예제로 쉽게 알 수 있도록 하죠~~~

위 그림처럼 문자를 정하고(syms) p1이라는 수식을 정의합니다. 2016버젼부터 보이는 Live Editor의 저 수식화 기능은 참 멋져 보입니다. 만약 제가 여전히 대학교에서 시간강의를 하고 있었다면.. 아마 저는 저 기능을 꽤 멋지게 강의에 이용했을 겁니다. 아무튼... 저렇게 p1을 정의하고... solve 명령에 'p1=0'라는 수식을 x에 관해 풀어달라는 이야기가 됩니다. 우리가 많이 봤던 그 수식이 나타나네요...

이번에는 삼각함수를 살짝 대상으로 풀어보았는데요... 결과가 잘 나오네요~~~

복소수의 영역까지~~~^^ solve라는 함수는 간편히 해를 찾을때 아주 편합니다.~~~^^


댓글을 달아 주세요

  1. BlogIcon 핑구야 날자 2016.07.20 07:48 신고

    연산에 관한 것은 프로그램밍이 재미있는 것 같아요

  2. BlogIcon 귀여운걸 2016.07.21 02:04 신고

    예제와 함께 쉽게 설명해주셔서 감사해요~
    덕분에 잘 배워갑니다^^

  3. lupinsuk 2017.04.09 13:37 신고

    x범위 0<x<2pi 에서 sinx가 -0.5가 되는 값을 구하려고 매트랩 했는데 아래와 같이햇습니다.

    clear
    clc
    x= 0:0.001:2*pi;

    y=sin(x);


    syms x
    x1 = solve(sin(x) == -0.5 )

    이렇게 햇는데 x1은 -pi/6이랑 7/6/pi 가 나오더라구요

    앞에서 0<x<2*pi 범위로 했는데
    저렇게 나오네요 어떤식으로 고쳐야 제가 원하는 답이 나올수 잇을까요 ;;

    • BlogIcon PinkWink 2017.04.09 18:40 신고

      앞부분의 x는 의미가 없습니다.
      뒤에서 이미 x를 바꾸었으니까요...
      solve로 인한 결과에 대한 옵션은 matlabcentral에서 찾아보셔야할 듯 합니다.
      전 잘 모르겠습니다.ㅜㅜ