- one to many
- 평면 또는 공간에 존재하는 곡선: 시간에 따른 물체의 이동 경로
- 입력: 스칼라
- 출력: vector
- 예시: \(t\rightarrow(x,y,z)\)
1 Univariable Vector Function
\[ r(t)=(f_1(t),f_2(t),...,f_n(t))^T, f:\mathbb R\rightarrow \mathbb R^n \]
\[ r(t)=f(x(t),y(y),z(t))=(\cos(-10t),\frac{3}{4}t,\frac{t^2}{6})^T \]
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
from mpl_toolkits import mplot3d
import matplotlib.font_manager as mfm
# numpy 출력 형식 지정
np.set_printoptions(precision=4, linewidth=150)
# matplotlib 스타일 지정
mpl.style.use('bmh')
style = plt.style.library['bmh']
# 스타일 컬러를 쉽게 쓸 수 있도록 리스트 저장
style_colors = [ c['color'] for c in style['axes.prop_cycle'] ]
# 그림을 로컬 폴더에 저장하고 싶으면 True로 수정
file_print = False
fig = plt.figure(figsize=(7, 7))
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)
t = np.linspace(0, 2, 101)
x = np.sin(6*t)
y = 1/4 * t
z = t**2 / 2
ax.plot3D(x, y, z, c='k')
ax.plot([x[0]], [y[0]], [z[0]], 'o', markersize=10, color='k',
label="t = {:.2f}".format(t[0]))
ax.plot([x[50]], [y[50]], [z[50]], '^', markersize=10, color='k',
label="t = {:.2f}".format(t[50]))
ax.plot([x[-1]], [y[-1]], [z[-1]], '*', markersize=10, color='k',
label="t = {:.2f}".format(t[-1]))
ax.legend(fontsize=15, loc="upper left")
plt.show()