# 지수 그래프# 지수 함수의 증가 폭이 더 큰 것을 볼 수 있다.
x = np.linspace(0,10)
plt.figure(figsize=(6,6))
plt.plot(x, x**2,'--', color='k', label=r'$x^2$')
plt.plot(x,2**x, color='k', label =r'$2^x$')
plt.legend(loc='center left', fontsize=25)
plt.xlabel("$x$", fontsize=25)
plt.ylabel("$y$", fontsize=25)
plt.show()
x가 2개인 지수식 : f(x)=(1+x1)x
2.7818281828459045..에 수렴
limx→∞(1+x1)x=limx→0(1+x1)x=e : 자연상수 e
베르누이가 2.1782818..이 있음을 밝히고 오일러가 e라는 표기 사용
# 식 확인
x = np.array([10,100,1000,10000,100000])(1+1/x)** x
# 시그모이드 함수
z = np.linspace(-10,10,100)
sigma =1/(1+np.exp(-z))
plt.figure(figsize=(12,8))
plt.plot(z, sigma)
plt.xlabel('$z$', fontsize=25)
plt.ylabel('$\sigma$', fontsize=25)
plt.show()
벡터 표현
x=(x1x2)
전치 행렬 표현 : x=(x1x2)T
단일 변수 스칼라 함수(단일 변수 출력) : y=f(x)
다중 변수 스칼라 함수(단일 변수 출력) : y=f(x)
다변수 벡터 함수(다중 변수 출력) : F(X)=(f1(X),f2(X),...,fn(X))T
S(u,v)=⎝⎜⎛uv1+u2+1+v2v⎠⎟⎞
# 다변수 벡터 함수 데이터
u = np.linspace(0,1,30)
v = np.linspace(0,1,30)# meshgrid# 1차원 배열 벡터를 묶어 하나의 좌표로 표현한다.# 좌표 벡터에서 좌표 행렬을 반환한다.
U, V = np.meshgrid(u, v)
X = U
Y = V
Z =(1+U**2)+(V/(1+V**2))# 다변수 벡터 함수 그래프
fig = plt.figure(figsize=(7,7))# 3d 표현을 위해 설정
ax = plt.axes(projection='3d')
ax.xaxis.set_tick_params(labelsize=15)
ax.yaxis.set_tick_params(labelsize=15)
ax.zaxis.set_tick_params(labelsize=15)
ax.set_xlabel('$x$', fontsize=20)
ax.set_ylabel('$y$', fontsize=20)
ax.set_zlabel('$z$', fontsize=20)
ax.scatter3D(X, Y, Z, marker='.', color='blue')
plt.show()
함수의 그래프 방식 표현
동그라미 : node
화살표 : edge
함수의 합성
y=f(x),z=g(y)=g(f(x))
g∘f=g(f(x))
# 함수의 합성 예시
x = np.linspace(-4,4,100)
y = x**3-15*x +30# f(x)
z = np.log(y)# g(y) = g(f(x))# 그래프 그리기
fig, ax = plt.subplots(1,2, figsize=(12,6))
ax[0].plot(x, y, label='$x^3 -15x + 30$', color='k')
ax[0].legend(fontsize=18)
ax[1].plot(y, z, label='$\log(y)$', color='k')
ax[1].legend(fontsize=18)
plt.show()