본문 바로가기

코딩 관련

SymPy 연산,함수,그래프

Sympy Execise

SymPy 연습하자.

따라하기
In [22]:
from sympy import *
import math
from numpy import linspace
import matplotlib.pyplot as pl 
In [3]:
x = symbols('x')

$f(x) = \frac{x^2 +1}{x-1}$

In [5]:
f = (x**2 +1)/(x-1)
In [6]:
f.subs(x,1)
Out[6]:
$\displaystyle \tilde{\infty}$
In [7]:
f.subs(x,2)
Out[7]:
$\displaystyle 5$

Basic Operations

In [8]:
sqrt(2)
Out[8]:
$\displaystyle \sqrt{2}$
In [10]:
N(sqrt(2))
Out[10]:
$\displaystyle 1.4142135623731$
In [12]:
math.sqrt(2)
Out[12]:
1.4142135623730951
In [13]:
N(sqrt(2)+1)
Out[13]:
$\displaystyle 2.41421356237309$
In [14]:
2**3
Out[14]:
8
In [15]:
N(2**3)
Out[15]:
$\displaystyle 8.0$

Fucntions & Plotting

In [30]:
f = sin(x)
g = cos(x)
In [31]:
fx = lambdify(x,f,modules=['numpy'])
gx = lambdify(x,g,modules=['numpy'])
In [36]:
xVals = linspace(-math.pi,math.pi,100)
In [21]:
import numpy
In [37]:
pl.plot(xVals,fx(xVals),label = 'f(x)=sin(x)')
pl.plot(xVals,gx(xVals),label = 'g(x)=cos(x)')
pl.xlabel('x')
pl.ylabel('f(x) = sin(x), g(x) = cos(x)')
pl.title('f(x) = sin(x), g(x) = cos(x)')
pl.legend()
pl.show()
In [38]:
f = asin(x)
g = acos(x)
In [39]:
fx = lambdify(x,f,modules=['numpy'])
gx = lambdify(x,g,modules=['numpy'])
In [41]:
xVals = linspace(-1,1,100)
pl.plot(xVals,fx(xVals),label = 'f(x)=sin(x)')
pl.plot(xVals,gx(xVals),label = 'g(x)=cos(x)')
pl.xlabel('x')
pl.ylabel('f(x) = sin(x), g(x) = cos(x)')
pl.title('f(x) = arcsin(x), g(x) = arccos(x)')
pl.legend()
pl.show()
In [42]:
f = sinh(x)
g = cosh(x)
In [43]:
fx = lambdify(x,f,modules=['numpy'])
gx = lambdify(x,g,modules=['numpy'])
In [45]:
xVals = linspace(-10,10,100)
pl.plot(xVals,fx(xVals),label = 'f(x)=sinh(x)')
pl.plot(xVals,gx(xVals),label = 'g(x)=cosh(x)')
pl.xlabel('x')
pl.ylabel('f(x) = sinh(x), g(x) = cosh(x)')
pl.title('f(x) = sinh(x), g(x) = cosh(x)')
pl.legend()
pl.show()
In [46]:
f = asinh(x)
g = acosh(x)
In [47]:
fx = lambdify(x,f,modules=['numpy'])
gx = lambdify(x,g,modules=['numpy'])
In [48]:
xVals = linspace(1,10,100)
pl.plot(xVals,fx(xVals),label = 'f(x)=arcsinh(x)')
pl.plot(xVals,gx(xVals),label = 'g(x)=arccosh(x)')
pl.xlabel('x')
pl.ylabel('f(x) = arcsinh(x), g(x) = arccosh(x)')
pl.title('f(x) = arcsinh(x), g(x) = arccosh(x)')
pl.legend()
pl.show()

$\displaystyle f(x)= \left\lceil{x}\right\rceil, g(x) = \left\lfloor{x}\right\rfloor, h(x) = x- \left\lfloor{x}\right\rfloor$

In [57]:
f = ceiling(x)
g = floor(x)
h = frac(x)
In [58]:
fx = lambdify(x,f,modules=['numpy'])
gx = lambdify(x,g,modules=['numpy'])
hx = lambdify(x,h,modules=['numpy'])
In [59]:
xVals = linspace(-10,10,100)
pl.plot(xVals,fx(xVals),label = 'f(x)=ceiling(x)')
pl.plot(xVals,gx(xVals),label = 'g(x)=floor(x)')
pl.plot(xVals,hx(xVals),label = 'h(x)=frac(x)')
pl.xlabel('x')
pl.ylabel('f(x), g(x), h(x)')
pl.title('f(x) = ceiling(x), g(x) = floor(x), h(x)=frac(x)')
pl.legend()
pl.show()
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-59-627b385d076d> in <module>
      2 pl.plot(xVals,fx(xVals),label = 'f(x)=ceiling(x)')
      3 pl.plot(xVals,gx(xVals),label = 'g(x)=floor(x)')
----> 4 pl.plot(xVals,hx(xVals),label = 'h(x)=frac(x)')
      5 pl.xlabel('x')
      6 pl.ylabel('f(x), g(x), h(x)')

<lambdifygenerated-19> in _lambdifygenerated(x)
      1 def _lambdifygenerated(x):
----> 2     return (frac(x))

NameError: name 'frac' is not defined
In [52]:
g
Out[52]:
$\displaystyle \left\lfloor{x}\right\rfloor$
In [ ]:
 

'코딩 관련' 카테고리의 다른 글

주피터 노트북(Jupyter Notebook)  (0) 2020.05.06
Markdown(마크다운) 기본 사용법  (0) 2020.05.06