'강좌'에 해당되는 글 1

  1. 4. Symbolic 계산 (2) 2007/12/28

4. Symbolic 계산

Posted at 2007/12/28 22:21 // in 전자 공학/Matlab // by downright

가. 함수
    1. 계산: diff(미분), int(적분), limit(극한값), taylor(Taylor급수), jacobian(Jacobian 행렬), symsum(합)
    2. 선형 대수: inv(역행렬), det(행렬식), rank(행렬의 계수), null(null space를 위한 basis를 계산),
                rref(행렬을 reduced row echelon form으로 만듦), eig(고유치와 고유벡터)
    3. 간략화: simplify(수식의 간략화), expand(수식의 전개), simple(Symbolic으로 된 수식의 가장
                간단한 형태를 찾음), subs(Symbolic으로 된 수식의 변수 갱신)
    4. 방정식의 해: solve(대수 방정식), dsolve(미분 방정식), finverse(역함수)
    5. 적분변환: fourier, laplace, ztrans, ifourier, ilaplace, iztrans
    6. 데이터형 변환: double(Symbolic 데이터를 수치 데이터로 변환), char(Symbolic 데이터를
                문자열로 변환)
    7. 기초 연산: sym(symbolic 객체 생성), syms(Symbolic 객체 생성 단축형), findsym(Symbolic
                객체 인지를 조사), pretty(Symbolic 수식을 보기 좋은 형태로 출력),
                latex(Symbolic 수식을 LaTex로 표현), ccode(C언어로 표현), fortran(Fortran언어로 표현)

나. 생성과 연산
: a=sym(‘x’) 또는 syms a 명령을 통해 symbolic a을 생성하고, 위 함수를 포함한 사칙연산을
               수행할 수 있음. [참고] 수식 전개 함수: expand(f)

다. 그래프: ezplot(f) 또는 ezplot(f,[a b])
    예제 1)                                                           예제 2)
    >> syms x                                                     >> syms x y
    >> f=1/(1+x*cos(x)+exp(x));                            >> f=x^2/16 – y^2/9-1;
    >> ezplot(f)                                                    >> ezplot(f,[-15 15])
 
             

라. Symbolic를 수치 데이터로 변환
    1. subs: symbolic 변수 대신에 수치를 대입하여 수치 데이터로 변환
        예) syms x; A=cos(x); x=30*pi/180; subs(A);
    2. double: symbolic 변수가 없는 symbolic 데이터를 수치 데이터로 변환
        예) syms x; f=cos(x)-0.5; solve(f,x); double(ans);

크리에이티브 커먼즈 라이센스
Creative Commons License
2007/12/28 22:21 2007/12/28 22:21
  1. 이헌기

    2008/09/29 17:26 [수정/삭제] [답글]

    안녕하십니까? 정리 하신걸 보니 고수이신듯하여 염체불구하고 이렇게 모르는것이 있어서 글씁니다.

    매트랩을 이용하여 역함수를 구하려고 합니다
    식은 y=a*x^(2*n)+b*x 이고 n의 범위는 0<n<1
    입니다.

    syms a b n x
    finverse (a*x^(2*n)+b*x )

    이렇게 실행시키니 답이 나오긴 하는데요..답에 _Z란 변수가 생기네요..
    어떤 의미인지 궁금해서..이렇게 글 씁니다.

    답변 해주시면 정말 감사하겠습니다.

    그럼 좋은 하루 되세요...제 메일은 qq9481@postech.ac.kr입니다.

    • downright

      2008/09/29 20:48 [수정/삭제]

      매트랩을 많이 이용해보지 않아서...
      처음 접해본 내용이라 검색을 해보았는데 명쾌한 답은 없는거 같네요.

      물어보신 대로 돌려보니까 RootOf(a*_Z^(2*n)+b*_Z-x) 이렇게 나오는데요.
      이 부분에서 _Z가 찾으려는 역함수에 해당하는 변수로 보입니다.
      근데 값들이 변수로 이루어져서 저렇게 나온거 같구요.
      값이 숫자로 들어갈 경우는 제대로 된 값이 나오는 것으로 보입니다.

      일단 의미는 Rootof 안의 식을 0으로 만족하는 _Z가 찾으려는 역함수라고 이해하시면 되구요.

      예를 들어서 설명을 드려보겠습니다.
      일단 가장 쉬운 예로 a=1, b=0, n=1 이라고 하면 y=x^2가 되고,
      이 함수의 역함수는 y=x^(1/2)가 됩니다.
      그러면 matlab에서 구한 식을 토대로 변수를 대입한다면,
      _Z^2-x = 0을 만족하는 _Z가 되겠지요. 이항해서 계산한다면
      _Z는 x^(1/2)가 나온다는 것을 알 수 있습니다.

댓글을 남겨주세요.

[로그인][오픈아이디란?]