파이썬(Python)

[Python]복잡한 미분함수 파이썬으로 구하기(사인 Sine/Cosine, 로그 Log/ln)

끄적끄적아무거나 2023. 3. 21. 08:02
반응형

 

목차

     

     

     

     

    파이썬으로 다항식 미분하기

     

    미분식을 파이썬으로 구할 때 sympy 라는 라이브러리를 이용하면 쉽게 구할 수 있습니다. 

     

    아래 예제를 통해 쉽게 이해해보도록 하겠습니다.

     

     

    수식1

     

    수식1을 미분하는 코드는 아래와 같습니다.

     

    예제 코드>>

    import sympy as sp
    
    x = sp.Symbol('x')
    y = (x-7)*(x+36.2)
    
    print(sp.diff(y,x))

    3번 라인: x라는 변수에 대해 미분을 하기위해 symbol 함수로 x를 설정합니다.

    4번 라인: 전체 수식을 정의합니다.

    6번 라인: 미분 함수 diff를 넣고 식과 미분할 변수를 입력값으로 넣어 줍니다.

     

    결과>>

    2*x + 29.2

     

     

     

     

    이번 예제는 아래와 같이 다항식에 또다른 다항식을 나눠서 일반적으로 구하기 힘든 형태의 미분 식을 만들었습니다.

    수식2

     

    예제 코드>>

    import sympy as sp
    
    x = sp.Symbol('x')
    y = (x-7)*(x+36.2)/(x+3)
    
    print(sp.diff(y,x))

    수식만을 변경하고 기존과 동일합니다.

     

     

    결과>>

    (x - 7)/(x + 3) - (x - 7)*(x + 36.2)/(x + 3)**2 + (x + 36.2)/(x + 3)

    딱 떨어지는 형태의 표현이 어려워 위와 같이 수식을 전개해서 처리해 주었습니다. 

     

     

     

     

     

     

     

    파이썬으로 사인 로그 미분하기

     

    사인과 로그의 미분 수식이 복잡한 경우 여간 귀찮은 일이 아닙니다. 이러한 경우를 위해 파이썬 sympy 라이브러리에서 사인 함수나 로그 함수에 대한 모듈도 제공하고 있습니다.

     

    sympy.cos()을 사용하면 cos 함수에 대한 값을 사용할 수 있고 sympy.log() 함수를 사용하면 log에 대한 값을 사용할 수 있습니다. 그 외 여러 수식들은 sympy 홈페이지에서 확인 가능하니 참조 하시면 됩니다.

     

     

    예제 코드를 통해 쉽게 이해해 보도록 하겠습니다. 

     

    수식3

     

    이번 예제는 위 수식 3을 구현하는 예제 입니다.

     

     

    예제 코드>>

    import sympy as sp
    
    x = sp.Symbol('x')
    y = 3*x**2+sp.cos(x)+sp.log(x,2)
    
    print(sp.diff(y,x))

    4번 라인: ** 별표 두개의 의미는 지수승을 의미 합니다. log의 x와 2의 위치를 보시고 수식3과 비교를 하시면 이해가 쉽습니다. 이를 이용해서 다른 로그 값을 표현 가능 합니다.

     

     

    결과>>

    6*x - sin(x) + 1/(x*log(2))

     

     

     

     

     

    아래에 예제에 대한 코드를 첨부했으니 필요하신 분은 다운로드해서 사용하시면 됩니다.

     

    전체 코드 다운로드>>

    diff.py
    0.00MB

     

    반응형