$\Delta x, \; \Delta y$ 그리기
다음 그림과 같이 곡선 그래프에 대한 일정한 구간에서 x축과 y축에서의 변화량을 나타내기 위한 그림을 작성합니다.
위 그림에서 곡선의 함수는 sympy 패키지를 사용하여 생성합니다. 다음은 $y=x^3$를 생성하기 위한 코드입니다.
x=symbols('x')
f=x**3; f
$\quad \color{navy}{\scriptstyle x^3}$
이 함수의 그래프를 작성하면 다음과 같습니다.
a=np.linspace(-3, 3, 100)
b=[float(f.subs(x, i)) for i in a]
plt.figure(dpi=100)
plt.plot(a, b, label=r'$\mathbf{x^3}$')
plt.show()
위 함수에서 소구간들을 구분하고 각 구간에서 다음 그림과 같이 작성합니다.
plt.figure(dpi=100)
a1=np.linspace(-3, 3, 10)
b1=[float(f.subs(x, i)) for i in a]
for i in range(1, 10):
plt.plot([a1[i-1], a1[i]], [b1[i-1], b1[i-1]])
plt.plot([a1[i], a1[i]], [b1[i-1], b1[i]])
plt.show()
위 두 그래프를 결합하기 위해 다음 함수를 작성합니다. 이 결과는 첫번째 그래프가 됩니다.
def deltaFigure(x, x1, func, symbol):
x=x
y=[float(func.subs(symbol, i)) for i in x]
x1=x1
y1=[float(func.subs(symbol, i)) for i in x1]
plt.plot(x, y)
n=0
for i in range(1, len(x1)):
if i==1:
plt.plot([x1[i-1], x1[i]],[y1[i-1], y1[i-1]], '--', color="red", label=r'$\mathbf{\Delta x}$')
plt.plot([x1[i], x1[i]],[y1[i-1], y1[i]], '--', color="blue", label=r'$\mathbf{\Delta y}$')
else:
plt.plot([x1[i-1], x1[i]],[y1[i-1], y1[i-1]], '--', color="red")
plt.plot([x1[i], x1[i]],[y1[i-1], y1[i]], '--', color="blue")
plt.legend(loc='best')
plt.axhline(0, color="k", linewidth=1, alpha=0.5)
plt.axvline(0, color="k", linewidth=1, alpha=0.5)
plt.xlabel("x", size=12, weight="bold")
plt.ylabel("y", size=12, weight="bold")
plt.show()
댓글
댓글 쓰기