math-basic

변수, 상수

y = a * x

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

a = 3  # a: 상수
x = np.arange(1,5)  # x: 변수
y = a * x  # y: 변수

plt.plot(x, y)
plt.xlabel("x", size=14)
plt.ylabel("y", size=14)
plt.grid()
plt.show()

함수 y = f(x)

y = a * x + b

import numpy as np

def f(x):  
    return 3*x + 2  # 3x + 2

x = 4  # 글로벌 변수이므로 위에 적은 인수 x와는 다른 변수
y = f(x)  # y = f(x)
print(y)

다항식

$$ y = x^3 + x^2 + x + 1 $$

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['axes.unicode_minus'] = False # - 부호 처리

def f(x):  
    return x**3 + x**2 + x + 1

x = np.arange(-2, 2, 0.1)
y = f(x)  # y = f(x)

plt.plot(x, y)
plt.xlabel("x", size=14)
plt.ylabel("y", size=14)
plt.grid()
plt.show()

삼각함수

sin(), cos() , tan() 그래프

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['axes.unicode_minus'] = False # - 부호 처리

def f_sin(x):  
    return np.sin(x)  # sin(x)

def f_cos(x):
    return np.cos(x)  # cos(x)

def f_tan(x):  
    return np.tan(x)  # tan(x)

x = np.linspace(-2*np.pi, 2*np.pi)  # -π부터 π(라디안)까지
y_sin = f_sin(x)
y_cos = f_cos(x)

x2 = np.linspace(-np.pi/2+0.2, np.pi/2-0.2)  # -pi/2, pi/2는 무한에 가까워짐 
y_tan = f_tan(x2)



plt.plot(x, y_sin, label="sin")
plt.plot(x, y_cos, label="cos")
plt.plot(x2, y_tan, label="tan")
plt.legend()

plt.xlabel("x", size=14)
plt.ylabel("y", size=14)
plt.grid()

plt.show()

총합

$$ y = a_1 + a_2 + ... + a_n $$

$$ y = \sum_{k=1}^n a_k $$

import numpy as np

x = np.arange(1,11)
y = np.sum(x)

총곱

$$ y = a_1 \times a_2 \times ... \times a_n $$

$$ y = \prod_{k=1}^n a_k $$

import numpy as np

x = np.arange(1,5)
y = np.prod(x)

난수 random

rand()

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

n = 1000  # 샘플 수
x = np.random.rand(n)  # 0-1의 균일한 난수
y = np.random.rand(n)  # 0-1의 균일한 난수

plt.scatter(x, y)  # 산포도의 플롯
plt.grid()
plt.show()

randr()

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

n = 1000  # 샘플 수
x = np.random.randn(n)  # 정규분포를 따른 난수의 분포
y = np.random.randn(n)  # 정규분포를 따른 난수의 분포

plt.scatter(x, y)  # 산포도의 플롯
plt.grid()
plt.show()

randint()

import numpy as np

r_int = np.random.randint(6) + 1  # 0부터 5까지의 난수에 1을 더한다
print(r_int) 

r_int = np.random.randint(1,7)  # 1부터 6까지의 난수
print(r_int)